Skip to content

Commit 78c7f94

Browse files
committed
vagrant/terraform environment: trust the tinkerbell ca
Signed-off-by: Rui Lopes <[email protected]>
1 parent 130ca6e commit 78c7f94

File tree

3 files changed

+49
-26
lines changed

3 files changed

+49
-26
lines changed

deploy/compose/tls/trust.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
set -euxo pipefail
3+
4+
TINKERBELL_HOST_IP="$1"
5+
6+
if [ -d /vagrant/compose ]; then
7+
cd /vagrant/compose
8+
fi
9+
10+
# trust the tinkerbell CA.
11+
docker-compose exec -T registry cat /certs/onprem/ca-crt.pem >/usr/local/share/ca-certificates/tinkerbell.crt
12+
update-ca-certificates
13+
systemctl restart docker
14+
15+
# login into the docker registry.
16+
docker login "$TINKERBELL_HOST_IP" --username admin --password-stdin <<<'Admin1234'
17+
if id -u vagrant >/dev/null 2>&1; then
18+
su vagrant -c "docker login \"$TINKERBELL_HOST_IP\" --username admin --password-stdin" <<<'Admin1234'
19+
fi
20+
21+
# ensure everything is up after docker restart.
22+
docker-compose up --detach

deploy/terraform/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ resource "null_resource" "setup" {
102102
provisioner "remote-exec" {
103103
inline = [
104104
"cd /root && tar zxvf /root/compose.tar.gz -C /root/sandbox",
105-
"cd /root/sandbox/compose && TINKERBELL_CLIENT_MAC=${metal_device.tink_worker.ports[1].mac} TINKERBELL_TEMPLATE_MANIFEST=/manifests/template/ubuntu-equinix-metal.yaml TINKERBELL_HARDWARE_MANIFEST=/manifests/hardware/hardware-equinix-metal.json docker-compose up -d"
105+
"cd /root/sandbox/compose && TINKERBELL_CLIENT_MAC=${metal_device.tink_worker.ports[1].mac} TINKERBELL_TEMPLATE_MANIFEST=/manifests/template/ubuntu-equinix-metal.yaml TINKERBELL_HARDWARE_MANIFEST=/manifests/hardware/hardware-equinix-metal.json docker-compose up -d",
106+
"cd /root/sandbox/compose && bash tls/trust.sh ${metal_device.tink_provisioner.network[0].address}",
106107
]
107108
}
108109
}

deploy/vagrant/Vagrantfile

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,26 @@ unless Vagrant.has_plugin?("vagrant-docker-compose")
1515
exit
1616
end
1717

18+
def provision_provisioner(config, provider_name)
19+
if provider_name == 'virtualbox'
20+
manifest_suffix = ''
21+
else
22+
manifest_suffix = "-#{provider_name}"
23+
end
24+
config.vm.provision :docker_compose,
25+
compose_version: "1.29.2",
26+
yml: "/vagrant/compose/docker-compose.yml",
27+
run: "always",
28+
env: {
29+
"TINKERBELL_HOST_IP": PROVISIONER_IP,
30+
"TINKERBELL_CLIENT_IP": MACHINE1_IP,
31+
"REPO_TOP_LEVEL": "/vagrant/compose",
32+
"TINKERBELL_HARDWARE_MANIFEST": "/manifests/hardware/hardware#{manifest_suffix}.json",
33+
"TINKERBELL_TEMPLATE_MANIFEST": "/manifests/template/ubuntu#{manifest_suffix}.yaml"
34+
}
35+
config.vm.provision "shell", name: "Trust the Tinkerbell CA", path: "../compose/tls/trust.sh", args: [PROVISIONER_IP]
36+
end
37+
1838
Vagrant.configure("2") do |config|
1939
config.vm.provider :libvirt do |libvirt|
2040
libvirt.qemu_use_session = false
@@ -36,34 +56,14 @@ Vagrant.configure("2") do |config|
3656
v.memory = 2048
3757
v.cpus = 2
3858
override.vm.synced_folder '../', '/vagrant'
39-
# vagrant plugin install vagrant-docker-compose
40-
override.vm.provision :docker_compose,
41-
compose_version: "1.29.1",
42-
yml: "/vagrant/compose/docker-compose.yml",
43-
run:"always",
44-
env: {
45-
"TINKERBELL_HOST_IP": PROVISIONER_IP,
46-
"TINKERBELL_CLIENT_IP": MACHINE1_IP,
47-
"REPO_TOP_LEVEL": "/vagrant/compose",
48-
"TINKERBELL_HARDWARE_MANIFEST": "/manifests/hardware/hardware.json",
49-
"TINKERBELL_TEMPLATE_MANIFEST": "/manifests/template/ubuntu.yaml"
50-
}
59+
provision_provisioner(override, 'virtualbox')
5160
end
5261

5362
provisioner.vm.provider "libvirt" do |l, override|
54-
override.vm.synced_folder '../', '/vagrant', type: "rsync"
55-
# vagrant plugin install vagrant-docker-compose
56-
override.vm.provision :docker_compose,
57-
compose_version: "1.29.1",
58-
yml: "/vagrant/compose/docker-compose.yml",
59-
run:"always",
60-
env: {
61-
"TINKERBELL_HOST_IP": PROVISIONER_IP,
62-
"TINKERBELL_CLIENT_IP": MACHINE1_IP,
63-
"REPO_TOP_LEVEL": "/vagrant/compose",
64-
"TINKERBELL_HARDWARE_MANIFEST": "/manifests/hardware/hardware-libvirt.json",
65-
"TINKERBELL_TEMPLATE_MANIFEST": "/manifests/template/ubuntu-libvirt.yaml"
66-
}
63+
l.memory = 2048
64+
l.cpus = 2
65+
override.vm.synced_folder '../', '/vagrant', type: 'rsync'
66+
provision_provisioner(override, 'libvirt')
6767
end
6868
end
6969

0 commit comments

Comments
 (0)