Skip to content

Commit

Permalink
cmd/buildlet/stage0: set linux-arm-scaleway resolv.conf to 8.8.8.8
Browse files Browse the repository at this point in the history
Fixes golang/go#14997

Change-Id: I44d5390d72da12f9f6ed8b2f3f5ec8f8ab13799f
Reviewed-on: https://go-review.googlesource.com/21194
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
  • Loading branch information
bradfitz committed Mar 29, 2016
1 parent 08bad8c commit 5ded83e
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 12 deletions.
30 changes: 18 additions & 12 deletions cmd/buildlet/stage0/Makefile
@@ -1,19 +1,25 @@
buildlet-stage0.windows-amd64: stage0.go
GOOS=windows GOARCH=amd64 go build -o $@
cat $@ | (cd ../../upload && go run upload.go --public --cacheable=false go-builder-data/$@)
usage: FORCE
# See targets in Makefile
exit 1

buildlet-stage0.linux-arm-scaleway: stage0.go
GOOS=linux GOARCH=arm go build -o $@
cat $@ | (cd ../../upload && go run upload.go --public --cacheable=false go-builder-data/$@)
FORCE:

buildlet-stage0.windows-amd64: FORCE
go install golang.org/x/build/cmd/upload
upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet/stage0 --public --cacheable=false go-builder-data/$@

buildlet-stage0.linux-arm-scaleway: FORCE
go install golang.org/x/build/cmd/upload
upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet/stage0 --public --cacheable=false go-builder-data/$@

# No staging vs prod targets here, because this file gets baked into
# the Docker layers on gcr.io (which do have staging vs prod names).
# That is, this file on GCS is only used at "docker build"-time, not
# during day-to-day builds.
buildlet-stage0.linux-amd64-kube: stage0.go
GOOS=linux GOARCH=amd64 go build -o $@
cat $@ | (cd ../../upload && go run upload.go --public --cacheable=false go-builder-data/$@)
buildlet-stage0.linux-amd64-kube: FORCE
go install golang.org/x/build/cmd/upload
upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet/stage0 --public --cacheable=false go-builder-data/$@

buildlet-stage0.linux-s390x: stage0.go
GOOS=linux GOARCH=s390x go build -o $@
cat $@ | (cd ../../upload && go run upload.go --public --cacheable=false go-builder-data/$@)
buildlet-stage0.linux-s390x: FORCE
go install golang.org/x/build/cmd/upload
upload --verbose --osarch=$@ --file=go:golang.org/x/build/cmd/buildlet/stage0 --public --cacheable=false go-builder-data/$@
16 changes: 16 additions & 0 deletions cmd/buildlet/stage0/stage0.go
Expand Up @@ -11,6 +11,7 @@
package main

import (
"bytes"
"encoding/json"
"flag"
"fmt"
Expand Down Expand Up @@ -218,6 +219,7 @@ func initScaleway() {
initScalewaySwap()
initScalewayWorkdir()
initScalewayMeta()
initScalewayDNS()
initScalewayGo14()
log.Printf("Scaleway init complete; metadata is %+v", scalewayMeta)
}
Expand Down Expand Up @@ -253,6 +255,20 @@ func initScalewayMeta() {
}
}

func initScalewayDNS() {
setFileContents("/etc/resolv.conf", []byte("nameserver 8.8.8.8\n"))
}

func setFileContents(file string, contents []byte) {
old, err := ioutil.ReadFile(file)
if err == nil && bytes.Equal(old, contents) {
return
}
if err := ioutil.WriteFile(file, contents, 0644); err != nil {
log.Fatal(err)
}
}

func initScalewaySwap() {
const swapFile = "/swapfile"
slurp, _ := ioutil.ReadFile("/proc/swaps")
Expand Down
3 changes: 3 additions & 0 deletions cmd/upload/upload.go
Expand Up @@ -145,6 +145,9 @@ func buildGoTarget() {
if *osarch != "" {
*osarch = (*osarch)[strings.LastIndex(*osarch, ".")+1:]
v := strings.Split(*osarch, "-")
if len(v) == 3 {
v = v[:2] // support e.g. "linux-arm-scaleway" as GOOS=linux, GOARCH=arm
}
if len(v) != 2 || v[0] == "" || v[1] == "" {
log.Fatalf("invalid -osarch value %q", *osarch)
}
Expand Down

0 comments on commit 5ded83e

Please sign in to comment.