env/linux-arm64/linaro: update for new builder
Change-Id: I272831718d04885ddb0d9a0198691c4cedd9b3dc
Reviewed-on: https://go-review.googlesource.com/40690
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/dashboard/builders.go b/dashboard/builders.go
index b9ff2c4..7a37dae 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -224,7 +224,7 @@
ReverseAliases: []string{"linux-ppc64le-buildlet"},
},
"host-linux-arm64-linaro": &HostConfig{
- Notes: "Ubuntu wily; run by Go team, from linaro",
+ Notes: "Ubuntu xenial; run by Go team, from linaro",
IsReverse: true,
ExpectNum: 5,
env: []string{"GOROOT_BOOTSTRAP=/usr/local/go-bootstrap"},
diff --git a/env/linux-arm64/Dockerfile b/env/linux-arm64/Dockerfile
new file mode 100644
index 0000000..fe6e18a
--- /dev/null
+++ b/env/linux-arm64/Dockerfile
@@ -0,0 +1,29 @@
+# Copyright 2017 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+FROM mickaelguene/arm64-debian:jessie
+
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN apt-get update && \
+ apt-get install --yes \
+ curl gcc strace ca-certificates \
+ procps lsof psmisc
+
+RUN mkdir /usr/local/go-bootstrap && \
+ curl --silent https://storage.googleapis.com/go-builder-data/gobootstrap-linux-arm64.tar.gz | \
+ tar -C /usr/local/go-bootstrap -zxv
+
+ENV GOROOT_BOOTSTRAP /usr/local/go-bootstrap
+RUN curl -o /usr/local/bin/stage0 https://storage.googleapis.com/go-builder-data/buildlet-stage0.linux-arm64 && \
+ chmod +x /usr/local/bin/stage0
+
+ENV GO_BUILD_KEY_DELETE_AFTER_READ true
+ENV GO_BUILD_KEY_PATH /buildkey/gobuildkey
+
+# Not really, but we're in a container like Kubernetes, and this makes the syscall
+# package happy:
+ENV IN_KUBERNETES 1
+
+
diff --git a/env/linux-arm64/build.sh b/env/linux-arm64/build.sh
new file mode 100755
index 0000000..80b0532
--- /dev/null
+++ b/env/linux-arm64/build.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+#
+# This is run on the arm64 host, with the Dockerfile in the same directory,
+# by the build scripts in linaro and packet subdirectories.
+
+docker build -t golang.org/linux-arm64 .
\ No newline at end of file
diff --git a/env/linux-arm64/linaro/Dockerfile b/env/linux-arm64/linaro/Dockerfile
new file mode 100644
index 0000000..8229537
--- /dev/null
+++ b/env/linux-arm64/linaro/Dockerfile
@@ -0,0 +1,9 @@
+# Copyright 2017 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+FROM golang.org/linux-arm64
+
+ENV GO_BUILDER_ENV host-linux-arm64-linaro
+
+CMD ["/usr/local/bin/stage0"]
\ No newline at end of file
diff --git a/env/linux-arm64/linaro/NOTES b/env/linux-arm64/linaro/NOTES
deleted file mode 100644
index 08992f8..0000000
--- a/env/linux-arm64/linaro/NOTES
+++ /dev/null
@@ -1,44 +0,0 @@
-Installing one of the linaro machines,
-
-Currently:
-
-Host arm64-go-1
- User brad.fitzpatrick
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
- ProxyCommand ssh -A brad.fitzpatrick@aus-colo.linaro.org nc -q0 r2-a25-go1 %p
-Host arm64-go-2
- User brad.fitzpatrick
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
- ProxyCommand ssh -A brad.fitzpatrick@aus-colo.linaro.org nc -q0 r2-a25-go2 %p
-Host arm64-go-3
- User brad.fitzpatrick
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
- ProxyCommand ssh -A brad.fitzpatrick@aus-colo.linaro.org nc -q0 r2-a25-go3 %p
-Host arm64-go-4
- User brad.fitzpatrick
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
- ProxyCommand ssh -A brad.fitzpatrick@aus-colo.linaro.org nc -q0 r2-a25-go4 %p
-Host arm64-go-5
- User brad.fitzpatrick
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
- ProxyCommand ssh -A brad.fitzpatrick@aus-colo.linaro.org nc -q0 r1-a4-go5 %p
-
-... which permit ssh public key:
-
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnW173QBalrgEiAf6NTEkB+Mi/jO1g+y6p0irn1KJ81gNaMAgbRIbNSARBGDLm0TcNCGRwmKCIQZLSPgXdIRf7wHr9vZWLUvSYTExTU839XxlazhV8LW4jj8qLd78JA4oEnsTVFgMnSbQ1wqk4CMU8/PGK+wEJr9aZ3LUoATCfgJJfqOMq51zzcvLWN9H3QDwVwL9kECgqFnfetwZ+Ie0dLo8oUsLUei0+ajWPwjMFBm8jcuEd3X+CCKkTWe9z7UaKqQWtYkaNFjUs5cQG8ycLcYrgdSAUEiw8PKvf8CDOpSmONOAr/boY8V2V9iCBZiHVKl05bdkl+KRB9B85fVA7 bradfitz@laptop
-
-For each node above: (sadly, not automated)
-
-- cp sources.list to /etc/apt/sources.list
-# apt-get update
-
-- Put builder key for "linux-arm64-buildlet" at /root/.gobuildkey
-- Put buildlet.service at /etc/systemd/system/
-# systemctl enable buildlet.service
-# systemctl start buildlet.service
-
diff --git a/env/linux-arm64/linaro/README b/env/linux-arm64/linaro/README
new file mode 100644
index 0000000..8f9dc54
--- /dev/null
+++ b/env/linux-arm64/linaro/README
@@ -0,0 +1,41 @@
+Machines:
+
+r2-a25:
+
+ $ ssh -i ~/keys/id_ed25519_golang1 linaro@64.28.99.28
+ (key: http://go/golang-ssh-key)
+
+Machine details:
+
+ linaro@r2-a25:~# cat /proc/cpuinfo | grep process | wc -l
+ 8
+
+ linaro@r2-a25:~# free
+ total used free shared buff/cache available
+ Mem: 32942028 850048 30117168 619288 1974812 31097620
+ Swap: 32165884 0 32165884
+
+
+ linaro@r2-a25:~# lsb_release -a
+ No LSB modules are available.
+ Distributor ID: Ubuntu
+ Description: Ubuntu 16.04.2 LTS
+ Release: 16.04
+ Codename: xenial
+
+
+But each machine is setup like:
+
+ $ apt-get install docker.io
+
+ $ build.sh (with Dockerfile in same directory)
+
+ $ echo "<BUILDER KEY>" > /etc/gobuild.key # or custom path, see rundockerbuildlet.go
+
+ $ GOARCH=arm64 GOOS=linux go install golang.org/x/build/cmd/rundockerbuildlet && \
+ scp -i ~/keys/id_ed25519_golang1 ~/bin/linux_arm64/rundockerbuildlet linaro@64.28.99.28:/usr/local/bin
+
+ $ scp -i ~/keys/id_ed25519_golang1 rundockerbuildlet.service linaro@64.28.99.28:/etc/systemd/user/
+
+ $ systemctl enable /etc/systemd/user/rundockerbuildlet.service
+ $ systemctl start rundockerbuildlet.service
diff --git a/env/linux-arm64/linaro/build.sh b/env/linux-arm64/linaro/build.sh
new file mode 100755
index 0000000..391ecee
--- /dev/null
+++ b/env/linux-arm64/linaro/build.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+#
+# This is run on the arm64 host with the Dockerfile in the same directory.
+# The parent Dockerfile and build.sh (linux-arm64/*) must be in parent directory.
+
+
+(cd ../ && ./build.sh) && docker build -t gobuilder-arm64-linaro:1 .
\ No newline at end of file
diff --git a/env/linux-arm64/linaro/buildlet.service b/env/linux-arm64/linaro/buildlet.service
deleted file mode 100644
index e7c8e2d..0000000
--- a/env/linux-arm64/linaro/buildlet.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Go builder buildlet
-After=network.target
-
-[Install]
-WantedBy=network-online.target
-
-[Service]
-Type=simple
-ExecStartPre=/bin/sh -c 'cd /usr/local/bin; /usr/bin/curl -R -f -z buildlet-stage0 -o buildlet-stage0 https://storage.googleapis.com/go-builder-data/buildlet-stage0.linux-arm64 && chmod +x buildlet-stage0'
-ExecStart=/usr/local/bin/buildlet-stage0
-Restart=always
-RestartSec=2
-StartLimitInterval=0
diff --git a/env/linux-arm64/linaro/rundockerbuildlet.service b/env/linux-arm64/linaro/rundockerbuildlet.service
new file mode 100644
index 0000000..c9d5d77
--- /dev/null
+++ b/env/linux-arm64/linaro/rundockerbuildlet.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Run Buildlets in Docker
+After=network.target
+
+[Install]
+WantedBy=network-online.target
+
+[Service]
+Type=simple
+ExecStart=/usr/local/bin/rundockerbuildlet -basename=linaro -image=gobuilder-arm64-linaro:1 -n=4
+Restart=always
+RestartSec=2
+StartLimitInterval=0
diff --git a/env/linux-arm64/linaro/sources.list b/env/linux-arm64/linaro/sources.list
deleted file mode 100644
index 2939038..0000000
--- a/env/linux-arm64/linaro/sources.list
+++ /dev/null
@@ -1,25 +0,0 @@
-deb http://ports.ubuntu.com/ubuntu-ports wily main restricted
-deb-src http://ports.ubuntu.com/ubuntu-ports wily main restricted
-
-deb http://ports.ubuntu.com/ubuntu-ports wily-updates main restricted
-deb-src http://ports.ubuntu.com/ubuntu-ports wily-updates main restricted
-
-deb http://ports.ubuntu.com/ubuntu-ports wily universe
-deb-src http://ports.ubuntu.com/ubuntu-ports wily universe
-deb http://ports.ubuntu.com/ubuntu-ports wily-updates universe
-deb-src http://ports.ubuntu.com/ubuntu-ports wily-updates universe
-
-deb http://ports.ubuntu.com/ubuntu-ports wily multiverse
-deb-src http://ports.ubuntu.com/ubuntu-ports wily multiverse
-deb http://ports.ubuntu.com/ubuntu-ports wily-updates multiverse
-deb-src http://ports.ubuntu.com/ubuntu-ports wily-updates multiverse
-
-deb http://ports.ubuntu.com/ubuntu-ports wily-backports main restricted universe multiverse
-deb-src http://ports.ubuntu.com/ubuntu-ports wily-backports main restricted universe multiverse
-
-deb http://ports.ubuntu.com/ubuntu-ports wily-security main restricted
-deb-src http://ports.ubuntu.com/ubuntu-ports wily-security main restricted
-deb http://ports.ubuntu.com/ubuntu-ports wily-security universe
-deb-src http://ports.ubuntu.com/ubuntu-ports wily-security universe
-deb http://ports.ubuntu.com/ubuntu-ports wily-security multiverse
-deb-src http://ports.ubuntu.com/ubuntu-ports wily-security multiverse
diff --git a/env/linux-arm64/packet/Dockerfile b/env/linux-arm64/packet/Dockerfile
index 207430a..44bf709 100644
--- a/env/linux-arm64/packet/Dockerfile
+++ b/env/linux-arm64/packet/Dockerfile
@@ -2,29 +2,8 @@
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
-FROM mickaelguene/arm64-debian:jessie
-
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN apt-get update && \
- apt-get install --yes \
- curl gcc strace ca-certificates \
- procps lsof psmisc
-
-RUN mkdir /usr/local/go-bootstrap && \
- curl --silent https://storage.googleapis.com/go-builder-data/gobootstrap-linux-arm64.tar.gz | \
- tar -C /usr/local/go-bootstrap -zxv
-
-ENV GOROOT_BOOTSTRAP /usr/local/go-bootstrap
-RUN curl -o /usr/local/bin/stage0 https://storage.googleapis.com/go-builder-data/buildlet-stage0.linux-arm64 && \
- chmod +x /usr/local/bin/stage0
+FROM golang.org/linux-arm64
ENV GO_BUILDER_ENV host-linux-arm64-packet
-ENV GO_BUILD_KEY_DELETE_AFTER_READ true
-ENV GO_BUILD_KEY_PATH /buildkey/gobuildkey
-
-# Not really, but we're in a container like Kubernetes, and this makes the syscall
-# package happy:
-ENV IN_KUBERNETES 1
CMD ["/usr/local/bin/stage0"]
diff --git a/env/linux-arm64/packet/README b/env/linux-arm64/packet/README
index 42e6783..933a9d5 100644
--- a/env/linux-arm64/packet/README
+++ b/env/linux-arm64/packet/README
@@ -34,11 +34,13 @@
$ apt-get install docker.io
$ build.sh (with Dockerfile in same directory)
+
+ $ echo "<BUILDER KEY>" > /etc/gobuild.key
$ GOARCH=arm64 GOOS=linux go install golang.org/x/build/cmd/rundockerbuildlet && \
- scp -i ~/keys/id_ed25519_golang1 ~/bin/linux_arm64/rundockerbuildlet root@147.75.109.230:/usr/local/bin
+ scp -i ~/keys/id_ed25519_golang1 ~/bin/linux_arm64/rundockerbuildlet root@147.75.109.230:/usr/local/bin
- $ scp -i ~/keys/id_ed25519_golang1 rundockerbuildlet.service root@147.75.109.230:/etc/systemd/user/
+ $ scp -i ~/keys/id_ed25519_golang1 rundockerbuildlet.service root@147.75.109.230:/usr/local/bin:/etc/systemd/user/
$ systemctl enable /etc/systemd/user/rundockerbuildlet.service
- $ systemctl start rundockerbuildlet.service
+ $ systemctl start rundockerbuildlet.service
\ No newline at end of file
diff --git a/env/linux-arm64/packet/build.sh b/env/linux-arm64/packet/build.sh
index 9e45052..78f16fe 100755
--- a/env/linux-arm64/packet/build.sh
+++ b/env/linux-arm64/packet/build.sh
@@ -1,5 +1,6 @@
#!/bin/bash
#
-# This is run on the arm64 host, with the Dockerfile in the same directory.
+# This is run on the arm64 host with the Dockerfile in the same directory.
+# The parent Dockerfile and build.sh (linux-arm64/*) must be in parent directory.
-exec docker build -t gobuilder-arm64:1 .
+(cd ../ && ./build.sh) && docker build -t gobuilder-arm64-packet:1 .
diff --git a/env/linux-arm64/packet/rundockerbuildlet.service b/env/linux-arm64/packet/rundockerbuildlet.service
index a5e91a3..8925c4e 100644
--- a/env/linux-arm64/packet/rundockerbuildlet.service
+++ b/env/linux-arm64/packet/rundockerbuildlet.service
@@ -7,7 +7,7 @@
[Service]
Type=simple
-ExecStart=/usr/local/bin/rundockerbuildlet -basename=packet -image=gobuilder-arm64:1 -n=20
+ExecStart=/usr/local/bin/rundockerbuildlet -basename=packet -image=gobuilder-arm64-packet:1 -n=20
Restart=always
RestartSec=2
StartLimitInterval=0