blob: 3ced718a7f38f1f16a5fb7a97725e7e19109d96d [file] [log] [blame]
C1 machines:
$ ssh -i ~/keys/id_ed25519_golang1 root@$C1_SERVER_IP
(key: http://go/go-builders-ssh)
Machine setup:
* start with Ubuntu bionic
* install docker-ce from Docker
* GOOS=linux GOARCH=arm go install golang.org/x/build/cmd/rundockerbuildlet
* scp -C -i ~/keys/id_ed25519_golang1 $(GOOS=linux GOARCH=arm go list -f {{.Target}} golang.org/x/build/cmd/rundockerbuildlet) root@$C1_SERVER_IP:/usr/local/bin
* scp -i ~/keys/id_ed25519_golang1 rundockerbuildlet.service root@$C1_SERVER_IP:/etc/systemd/user/
* ssh -i ~/keys/id_ed25519_golang1 root@$C1_SERVER_IP systemctl enable /etc/systemd/user/rundockerbuildlet.service
* ssh -i ~/keys/id_ed25519_golang1 root@$C1_SERVER_IP systemctl start rundockerbuildlet
* stop it
* snapshot its attached volume, name it (e.g. "buildlet-2019-11-05-1"), note its UUID
* click "Images" in top tab, create an image from that same snapshot. Can use the same name. (different namespaces)
* click "..." and "More info" on that image, get its ID (e.g. "13f4c905-3a4b-475a-aaba-a13168e2b6c7")
* copy that to cmd/scaleway's default flag value
* also update cmd/scaleway's bootscript value, if needed:
First, find out which bootscript (netboot kernel, initrd, etc) that the original image was using:
bradfitz@go:~$ scw images --no-trunc | grep Bionic
Ubuntu_Bionic_ML_10_1 latest 47d58f71-8382-48d1-88cd-75e5f1ed7df6 8 months [ par1] [x86_64]
Ubuntu_Bionic_ML_9_2 latest 905865bf-e34c-46b0-b7e2-5e11922e6511 8 months [ par1] [x86_64]
Ubuntu_Bionic latest e640c621-305b-45f5-975f-a3f80c1cec66 18 months [ams1 par1] [arm arm64 x86_64]
bradfitz@go:~$ scw inspect e640c621-305b-45f5-975f-a3f80c1cec66
IMAGEID FROM NAME ZONE ARCH
- f974feac image:ubuntu-bionic Ubuntu Bionic par1 x86_64
- f63fe42a image:ubuntu-bionic Ubuntu Bionic par1 arm
- b4bdbee1 image:ubuntu-bionic Ubuntu Bionic par1 arm64
FATA[0000] Too many candidates for e640c621-305b-45f5-975f-a3f80c1cec66 (3)
bradfitz@go:~$ scw inspect f63fe42a
[{
"id": "f63fe42a-900f-4a5e-ba99-ab0e59469b7e",
"name": "Ubuntu Bionic Beaver",
"creation_date": "2019-03-05T10:27:18.195593+00:00",
"modification_date": "2019-03-05T13:32:45.036625+00:00",
"root_volume": {
"id": "81992ee7-89b5-44f7-a260-5b4594c74b86",
"size": 10000000000,
"name": "snapshot-664f5068-f21e-44ba-8a99-ea2dfd6fd91f-2019-03-05_10:27",
"volume_type": "l_ssd"
},
"public": true,
"default_bootscript": {
"bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16",
"dtb": "dtb/c1-armv7l-mainline-lts-4.9-4.9.93-rev1",
"initrd": "initrd/uInitrd-Linux-armv7l-v3.14.6",
"kernel": "kernel/armv7l-mainline-lts-4.9-4.9.93-rev1",
"architecture": "arm",
"id": "5c8e4527-d166-4844-b6c6-087d7a6f5fb0",
"organization": "11111111-1111-4111-8111-111111111111",
"title": "armv7l mainline 4.9.93 rev1"
},
"organization": "51b656e3-4865-41e8-adbc-0c45bdd780db",
"arch": "arm"
}]
Look use that default_bootscript.id value as cmd/scaleway's --bootscript flag.
Updating the docker image on eu.gcr.io:
* create a dev Ubuntu image on scaleway
* install Docker on it
* copy Dockerfile to it
root@scaleway:~# cat Dockerfile | docker build -t eu.gcr.io/symbolic-datum-552/scaleway-builder -
* in your normal gcloud dev environment, get a short-lived access token:
you@dev:~$ gcloud auth print-access-token
* copy/paste it
* back on scaleway, log in, and paste the token when it asks for the password:
root@scaleway:~# docker login -u oauth2accesstoken https://eu.gcr.io
Password: <paste>
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
root@scaleway:~# docker push eu.gcr.io/symbolic-datum-552/scaleway-builder