Tinkerbell.Sandbox/notes.md
Jacob Weinstock 6b841fee7c This simplifies the stand-up of a sandbox:
Only 2 main Vagrant calls are now needed (`vagrant up` and `vagrant up machine1`).
This PR only updates the Vagrant Virtualbox setup. The Vagrant Libvirt and Terraform
still need to be updated.

This uses docker-compose as the entry point for standing up the stack and makes the stand-up
of the sandbox more portal. Vagrant and Terraform are only responsible for standing up infrastructure
and then running docker-compose, not for running any glue scripts.

The docker-compose calls out to single-shot services to do all the glue required to get the fully
functional Tinkerbell stack up and running. All the single-shot services are idempotent.
This increases portability and the development iteration loop. This also simplifies the required
steps needed to get a fully functioning sandbox up and running.

This is intended to help people looking to get started by getting them to a provisioned
machine quicker and more easily.

Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
2021-08-09 08:04:06 -06:00

32 lines
2.0 KiB
Markdown

# TODO
- [x] automate getting osie download and decompressed/extracted
- create directories (`state/webroot/workflow` and `state/webroot/misc/osie/current`)
- automate moving files around (workflow-helper scripts)
- [x] automate getting tink-worker uploaded to internal registry
- on the provisioner machine need to enable pushing to [local registry](https://docs.docker.com/registry/insecure/), using one of the following:
1. ~~enable insecure registry in `/etc/docker/daemon.json`~~
2. ~~add crt to `/etc/docker/certs.d/192.168.50.4/ca.crt` && `sudo update-ca-certificates`~~
3. use `skopeo` to copy images to the local registry
- [x] automate ca.pem (bundle.pem) making it to `state/webroot/workflow/ca.pem` (used for docker registry)
- [x] automate hardware, template, and workflow creation
- [x] update Vagrantfile with a machine to provision (vagrant up machine1)
- [x] wait for osie and ubuntu download and/or notify user that it's ready
- [x] after `vagrant up machine1` notify user how to show progress `tink workflow events`
- [x] after machine1 is complete notify user how login to the machine
- [ ] reboot action for machine1
- [x] build idempotency in for downloads and extractions
- [x] add idempotency to cert generation (`tls/generate.sh`)
- [x] download focal cloud img and convert to raw and place it in correct location (`state/webroot/focal.img`)
- [x] make virtualbox networking more stable
- [x] create a getting started document that will replace the existing on on tinkerbell.org
- [ ] create a contributor guide to explain how the new sandbox works
- [ ] machine1 default creds: tink/tink
- [x] document on how to run docker-compose on its own `TINKERBELL_HOST_IP=192.168.65.3 TINKERBELL_CLIENT_IP=192.168.65.43 docker-compose up -d` or update `.env` file
- [x] test in multipass - works great!
- [x] document prerequisites
- [ ] docker-compose >= 1.29.2
- [ ] storage > ?
- [x] make the "TINKERBELL_IP" configurable. `csr.json`, `ubuntu.json`
- [x] make client machine ip configurable. `hardware.json`