Skip to content

Latest commit

 

History

History
 
 

scaleway

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
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