From 31989bd87b83fb12dd4ebffa2f2f0b279c90e9a2 Mon Sep 17 00:00:00 2001 From: Flux <> Date: Mon, 12 Jun 2023 21:08:57 +0000 Subject: [PATCH 1/4] Add Flux sync manifests --- iipod-metal/cluster/flux-system/gotk-sync.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iipod-metal/cluster/flux-system/gotk-sync.yaml b/iipod-metal/cluster/flux-system/gotk-sync.yaml index 8f7dca0..e204a5f 100644 --- a/iipod-metal/cluster/flux-system/gotk-sync.yaml +++ b/iipod-metal/cluster/flux-system/gotk-sync.yaml @@ -8,10 +8,10 @@ metadata: spec: interval: 1m0s ref: - branch: mon423-hh + branch: tue0807-heyste secretRef: name: flux-system - url: ssh://ii@mon423-hh.ii.nz/home/ii/space-templates + url: ssh://git@tue0807-heyste.ii.nz:22/home/git/space-templates --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization From 0a624f5255bc16c04e53b6852b11359b1f9dd1d4 Mon Sep 17 00:00:00 2001 From: Hippie Hacker Date: Tue, 13 Jun 2023 00:14:34 +0300 Subject: [PATCH 2/4] Add install-flux Co-Authored-By: Stephen Heywood Co-Authored-By: Riaan Klienhans --- iipod-metal/etc/cloud/install-flux | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 iipod-metal/etc/cloud/install-flux diff --git a/iipod-metal/etc/cloud/install-flux b/iipod-metal/etc/cloud/install-flux new file mode 100644 index 0000000..b77c534 --- /dev/null +++ b/iipod-metal/etc/cloud/install-flux @@ -0,0 +1,18 @@ +#!/bin/bash +curl -s https://fluxcd.io/install.sh | bash +sudo su - ii -c \ + "cd ~/.ssh ; ssh-keygen -f id_rsa -N '' ; cat id_rsa.pub >> authorized_keys" +cp -a ~ii/.ssh ~git/.ssh +chown -R git.git /home/git/.ssh +sudo su - git -c \ + "git clone https://github.com/cloudnative-coop/space-templates ~/space-templates ; cd ~/space-templates ; git branch $(hostname -s)" +yes | flux bootstrap git \ + --private-key-file="/home/ii/.ssh/id_rsa" \ + --branch="$(hostname -s)" \ + --path=iipod-metal/cluster \ + --url=ssh://git@$(hostname):22/home/git/space-templates +sudo su - ii -c \ + "git clone --branch $(hostname -s) git@$(hostname):space-templates +cd space-templates +git remote add upstream git@github.com:cloudnative-coop/space-templates +" From f9373ba7aa7c169260d614e42ccd7a203bb0de34 Mon Sep 17 00:00:00 2001 From: heyste Date: Mon, 12 Jun 2023 21:19:01 +0000 Subject: [PATCH 3/4] Do not add keys to the git user. Co-authored-by: Stephen Heywood --- iipod-metal/cloud-config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/iipod-metal/cloud-config.yaml b/iipod-metal/cloud-config.yaml index 1153ff2..7bb0d14 100644 --- a/iipod-metal/cloud-config.yaml +++ b/iipod-metal/cloud-config.yaml @@ -155,7 +155,6 @@ packages: runcmd: - ip addr add ${elastic_ip} dev lo:0 - su - ii -c "ssh-import-id gh:${username} gh:hh gh:heyste gh:zachmandeville" - - su - git -c "ssh-import-id gh:${username} gh:hh gh:heyste gh:zachmandeville" - DEBIAN_FRONTENT=noninteractive apt-fast -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install -y ttyd tmux kitty-terminfo # emacs-gtk kitty novnc websockify postgresql-client tigervnc-standalone-server asciinema silversearcher-ag direnv jq - systemctl stop ttyd From b55921e49eadddd4ece0c33b7b9421a0e5599bdb Mon Sep 17 00:00:00 2001 From: heyste Date: Mon, 12 Jun 2023 21:40:15 +0000 Subject: [PATCH 4/4] Try to use our elastic ip with metallb --- iipod-metal/cloud-config.yaml | 6 +++++- iipod-metal/etc/cloud/install-flux | 3 +++ .../etc/kubernetes/manifests/apisnoop.yaml | 0 iipod-metal/etc/kubernetes/manifests/ips.yaml | 15 +++++++++++++++ iipod-metal/metal.tf | 4 ++++ 5 files changed, 27 insertions(+), 1 deletion(-) delete mode 100644 iipod-metal/etc/kubernetes/manifests/apisnoop.yaml create mode 100644 iipod-metal/etc/kubernetes/manifests/ips.yaml diff --git a/iipod-metal/cloud-config.yaml b/iipod-metal/cloud-config.yaml index 7bb0d14..788ea2c 100644 --- a/iipod-metal/cloud-config.yaml +++ b/iipod-metal/cloud-config.yaml @@ -68,6 +68,10 @@ write_files: content: ${coder_init_service} permissions: "0644" encoding: b64 + - path: /etc/kubernetes/manifests/ips.yaml + content: ${ip_manifest} + permissions: "0644" + encoding: b64 - path: /etc/kubernetes/manifests/iipod.yaml content: ${iipod_manifest} permissions: "0644" @@ -153,7 +157,7 @@ packages: - aria2 - apt-fast runcmd: - - ip addr add ${elastic_ip} dev lo:0 + # - ip addr add ${elastic_ip} dev lo:0 - su - ii -c "ssh-import-id gh:${username} gh:hh gh:heyste gh:zachmandeville" - DEBIAN_FRONTENT=noninteractive apt-fast -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install -y ttyd tmux kitty-terminfo # emacs-gtk kitty novnc websockify postgresql-client tigervnc-standalone-server asciinema silversearcher-ag direnv jq diff --git a/iipod-metal/etc/cloud/install-flux b/iipod-metal/etc/cloud/install-flux index b77c534..fab4faf 100644 --- a/iipod-metal/etc/cloud/install-flux +++ b/iipod-metal/etc/cloud/install-flux @@ -16,3 +16,6 @@ sudo su - ii -c \ cd space-templates git remote add upstream git@github.com:cloudnative-coop/space-templates " +sleep 15 +export KUBECONFIG=/etc/kubernetes/admin.conf +kubectl apply -f /etc/kubernetes/ips.yaml diff --git a/iipod-metal/etc/kubernetes/manifests/apisnoop.yaml b/iipod-metal/etc/kubernetes/manifests/apisnoop.yaml deleted file mode 100644 index e69de29..0000000 diff --git a/iipod-metal/etc/kubernetes/manifests/ips.yaml b/iipod-metal/etc/kubernetes/manifests/ips.yaml new file mode 100644 index 0000000..78762e2 --- /dev/null +++ b/iipod-metal/etc/kubernetes/manifests/ips.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: default + namespace: metallb-system +spec: + addresses: + - ${ip} +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: default + namespace: metallb-system diff --git a/iipod-metal/metal.tf b/iipod-metal/metal.tf index bb5846f..17469c4 100644 --- a/iipod-metal/metal.tf +++ b/iipod-metal/metal.tf @@ -37,6 +37,10 @@ resource "equinix_metal_device" "machine" { username = "ii" coder_agent_token = coder_agent.ii.token })) + ip_manifest = base64encode( + templatefile("./etc/kubernetes/manifests/ips.yaml", { + ip = local.elastic_ip + })) iipod_manifest = base64encode( templatefile("./etc/kubernetes/manifests/iipod.yaml", { coder_agent_token = coder_agent.iipod.token