Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate NSS ARM docker-worker images to monopacker-built images in a Worker Manager managed worker pool #3524

Open
petemoore opened this issue Sep 17, 2020 · 0 comments

Comments

@petemoore
Copy link
Member

petemoore commented Sep 17, 2020

Currently NSS arm64 workers (a1.xlarge ec2 instance type) are manually provisioned under localprovisioner provisioner ID, and were manually created by Miles. We should integrate them into monopacker, which involves:

  1. Adding support for arm64 machine images in monopacker
  2. Building new arm64 docker-worker worker images, that include fixes from bug 1665052
  3. Creating a firefox-ci worker pool that replaces the single worker nss-static-aarch64 in ci-configuration repo and uses the new images created in 2)
  4. Purging the previous worker objects from firefox-ci taskcluster instance and firefox-ci AWS account, to ensure none of the old world lingers

Notes from Miles:

docker arm64: https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux/

Docker:
- curl -fsSL test.docker.com -o get-docker.sh && sh get-docker.sh

Nvm:
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
- export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

Node:
- nvm install 12.18.0 # or whatever current tc uses

Yarn:
- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
- echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
- sudo apt update && sudo apt install yarn

Gvm:
- bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
- source /home/ubuntu/.gvm/scripts/gvm
- sudo apt-get install bison

Go:
- sudo apt  install golang-go
- gvm install go1.13 # or whatever current tc uses
- gvm use go1.13

Worker-runner:
- # start-worker arm64 (built manually, releases not built automatically)
- git clone https://github.com/taskcluster/taskcluster.git
- cd taskcluster/tools/worker-runner
- go build -o /usr/local/bin/start-worker ./cmd/start-worker

Worker-runner start script:
#!/bin/bash
set -exv
/etc/taskcluster/worker-runner/start-worker.yml 2>&1 | logger --tag docker-worker

Docker-worker
- curl -L -o docker-worker.tgz https://github.com/taskcluster/taskcluster/releases/download/v30.1.1/docker-worker-x64.tgz
- tar xvf docker-worker.tgz
- cd /home/ubuntu/docker-worker
- npm rebuild

We probably want to split this up into smaller issues, as there are several non-trivial pieces of work here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants