tinkerbell / playground

Example deployments of the Tinkerbell Stack for use as playground environments
Apache License 2.0
126 stars 85 forks source link

Fix/update the Terraform quickstart guide #173

Closed douglaswainer closed 11 months ago

douglaswainer commented 1 year ago

I was experimenting with changes/fixes for the docker-compose guide and wanted to test the Terraform guide because it uses docker-compose. There were some bugs and references to legacy tink-cli containers that no longer exist.

Expected Behaviour

Running through the Terraform guide should result in a demonstration of Tinkerbell working with Equinix Metal Cloud.

Current Behaviour

1) There is a bug when running terraform plan/apply commands in sandbox/deploy/infrastructure/terraform directory where the path to the compose folder is incorrect.

2) The setup.sh script overwriting the .env file for the docker-compose folder doesn't include TINKERBELL_CLIENT_IP and TINKERBELL_CLIENT_GW, which is especially important considering the provisioner is set up as the gateway for the client in this quickstart.

3) The Terraform quickstart documentation uses the (legacy?) tink script that runs commands with the tink-cli container that was removed a while ago.

4) I couldn't figure out why but I found the PXE booting on the Equinix Cloud machines to be especially slow. There can be a several minute wait between the tink-worker pulling the LinuxKit image and it running workflows, far longer than I experienced using Tinkerbell on my own machines. As far as the docker compose logs and watching the workflow status, it really does look like the tink-worker is hanging for a while.

Possible Solution

1) and 4) are easily addressed.

2) I recommend that the sandbox/deploy/infrastructure has its own .env file with things like the TINKERBELL_CLIENT_GW prepopulated. This .env file can be added via base64 encoding in the cloud-config.cfg file alongside the others.

3) Update the scripts and documentation to remove references to the tink script and tink-cli container, and update them to use the kubectl command for watching workflow status.

Steps to Reproduce (for bugs)

Follow the Terraform quickstart guide.

Context

I was testing some changes to the docker-compose quickstart and wanted to test the Terraform quickstart as it depends on it.

Your Environment

Equinix cloud