From 27269ee9f7059218fac245bd06ac79c9508addef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 12:34:52 +0100 Subject: [PATCH 01/23] create and set base variables to config releases versioning --- 00-bootstrap-vm-cs.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index f0495ee..ef675ff 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -10,6 +10,12 @@ ARCH=$(uname -m) ARCH="${ARCH/x86_64/amd64}" OS=$(uname -s | tr A-Z a-z) +# Releases of the components to install +CAPI_RELEASE=1.9.4 # clusterctl +HELM_RELEASE=3.17.1 # helm +KIND_RELEASE=0.26.0 # kind +KUBERNETES_RELEASE=1.31.6 # kubectl + # Usage: install_via_pkgmgr pkgnm [pkgnm [...]] install_via_pkgmgr() { @@ -50,13 +56,13 @@ install_via_download_tgz() mkdir -p ~/Download INSTCMD="apt-get install -y --no-install-recommends --no-install-suggests" DEB12_PKGS=(docker.io golang jq yq git gh python3-openstackclient) -DEB12_TGZS=("https://get.helm.sh/helm-v3.17.1-${OS}-${ARCH}.tar.gz") +DEB12_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") DEB12_TCHK=("3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469") DEB12_TOLD=("${OS}-${ARCH}/helm") DEB12_TNEW=(".") -DEB12_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v0.26.0/kind-${OS}-${ARCH}" - "https://dl.k8s.io/release/v1.31.6/bin/${OS}/${ARCH}/kubectl" - "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.9.4/clusterctl-${OS}-${ARCH}" +DEB12_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" + "https://dl.k8s.io/release/v${KUBERNETES_RELEASE}/bin/${OS}/${ARCH}/kubectl" + "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" ) DEB12_BCHK=("d445b44c28297bc23fd67e51cc24bb294ae7b977712be2d4d312883d0835829b" "c46b2f5b0027e919299d1eca073ebf13a4c5c0528dd854fc71a5b93396c9fa9d" From 4c214e75099b0cb2767ecc1c9f4eb9fde9f1e97d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 12:35:45 +0100 Subject: [PATCH 02/23] silent the apt output a bit by setting its quiet mode --- 00-bootstrap-vm-cs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index ef675ff..43f2639 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -54,7 +54,7 @@ install_via_download_tgz() # Debian 12 (Bookworm) mkdir -p ~/Download -INSTCMD="apt-get install -y --no-install-recommends --no-install-suggests" +INSTCMD="apt-get install -qq -y --no-install-recommends --no-install-suggests" DEB12_PKGS=(docker.io golang jq yq git gh python3-openstackclient) DEB12_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") DEB12_TCHK=("3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469") From c1e490c5236e9a53ca93868dee4393aa70bc0e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 12:58:23 +0100 Subject: [PATCH 03/23] rename DEB12 to jus DEBIAN --- 00-bootstrap-vm-cs.sh | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 43f2639..3dac3b8 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -52,31 +52,31 @@ install_via_download_tgz() sudo mv "$3" /usr/local/bin/"$4" } -# Debian 12 (Bookworm) +# List of binaries (with their respective checksums) and packages for Debian mkdir -p ~/Download INSTCMD="apt-get install -qq -y --no-install-recommends --no-install-suggests" -DEB12_PKGS=(docker.io golang jq yq git gh python3-openstackclient) -DEB12_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") -DEB12_TCHK=("3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469") -DEB12_TOLD=("${OS}-${ARCH}/helm") -DEB12_TNEW=(".") -DEB12_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" +DEBIAN_PKGS=(docker.io golang jq yq git gh python3-openstackclient) +DEBIAN_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") +DEBIAN_TCHK=("3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469") +DEBIAN_TOLD=("${OS}-${ARCH}/helm") +DEBIAN_TNEW=(".") +DEBIAN_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" "https://dl.k8s.io/release/v${KUBERNETES_RELEASE}/bin/${OS}/${ARCH}/kubectl" "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" ) -DEB12_BCHK=("d445b44c28297bc23fd67e51cc24bb294ae7b977712be2d4d312883d0835829b" +DEBIAN_BCHK=("d445b44c28297bc23fd67e51cc24bb294ae7b977712be2d4d312883d0835829b" "c46b2f5b0027e919299d1eca073ebf13a4c5c0528dd854fc71a5b93396c9fa9d" "0c80a58f6158cd76075fcc9a5d860978720fa88860c2608bb00944f6af1e5752" ) -DEB12_BNEW=("kind" "." "clusterctl") +DEBIAN_BNEW=("kind" "." "clusterctl") sudo apt-get update -install_via_pkgmgr "${DEB12_PKGS[@]}" || exit 1 -for i in $(seq 0 $((${#DEB12_TGZS[*]}-1))); do - install_via_download_tgz "${DEB12_TGZS[$i]}" "${DEB12_TCHK[$i]}" "${DEB12_TOLD[$i]}" "${DEB12_TNEW[$i]}" || exit 2 +install_via_pkgmgr "${DEBIAN_PKGS[@]}" || exit 1 +for i in $(seq 0 $((${#DEBIAN_TGZS[*]}-1))); do + install_via_download_tgz "${DEBIAN_TGZS[$i]}" "${DEBIAN_TCHK[$i]}" "${DEBIAN_TOLD[$i]}" "${DEBIAN_TNEW[$i]}" || exit 2 done -for i in $(seq 0 $((${#DEB12_BINS[*]}-1))); do - install_via_download_bin "${DEB12_BINS[$i]}" "${DEB12_BCHK[$i]}" "${DEB12_BNEW[$i]}" || exit 3 +for i in $(seq 0 $((${#DEBIAN_BINS[*]}-1))); do + install_via_download_bin "${DEBIAN_BINS[$i]}" "${DEBIAN_BCHK[$i]}" "${DEBIAN_BNEW[$i]}" || exit 3 done GOBIN=/tmp go install github.com/drone/envsubst/v2/cmd/envsubst@latest @@ -85,4 +85,3 @@ sudo mv /tmp/envsubst /usr/local/bin/ test -e "~/.bash_aliases" || echo -e "alias ll='ls -lF'\nalias k=kubectl" > ~/.bash_aliases sudo groupmod -a -U `whoami` docker sudo systemctl enable --now docker - From f935b1fed8bec9694ae71731262d41255839fadc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:01:37 +0100 Subject: [PATCH 04/23] update helm release to be installed --- 00-bootstrap-vm-cs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 3dac3b8..ebaaf50 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -12,7 +12,7 @@ OS=$(uname -s | tr A-Z a-z) # Releases of the components to install CAPI_RELEASE=1.9.4 # clusterctl -HELM_RELEASE=3.17.1 # helm +HELM_RELEASE=4.0.0 # helm KIND_RELEASE=0.26.0 # kind KUBERNETES_RELEASE=1.31.6 # kubectl @@ -57,7 +57,7 @@ mkdir -p ~/Download INSTCMD="apt-get install -qq -y --no-install-recommends --no-install-suggests" DEBIAN_PKGS=(docker.io golang jq yq git gh python3-openstackclient) DEBIAN_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") -DEBIAN_TCHK=("3b66f3cd28409f29832b1b35b43d9922959a32d795003149707fea84cbcd4469") +DEBIAN_TCHK=("c77e9e7c1cc96e066bd240d190d1beed9a6b08060b2043ef0862c4f865eca08f") DEBIAN_TOLD=("${OS}-${ARCH}/helm") DEBIAN_TNEW=(".") DEBIAN_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" From dcc2301b6948cb21be16ccc3311b92f9dc0ff9c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:07:48 +0100 Subject: [PATCH 05/23] update kubernetes components and their checksums --- 00-bootstrap-vm-cs.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index ebaaf50..ccf0054 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -11,10 +11,10 @@ ARCH="${ARCH/x86_64/amd64}" OS=$(uname -s | tr A-Z a-z) # Releases of the components to install -CAPI_RELEASE=1.9.4 # clusterctl +CAPI_RELEASE=1.11.3 # clusterctl HELM_RELEASE=4.0.0 # helm -KIND_RELEASE=0.26.0 # kind -KUBERNETES_RELEASE=1.31.6 # kubectl +KIND_RELEASE=0.30.0 # kind +KUBERNETES_RELEASE=1.34.2 # kubectl # Usage: install_via_pkgmgr pkgnm [pkgnm [...]] install_via_pkgmgr() @@ -60,13 +60,15 @@ DEBIAN_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") DEBIAN_TCHK=("c77e9e7c1cc96e066bd240d190d1beed9a6b08060b2043ef0862c4f865eca08f") DEBIAN_TOLD=("${OS}-${ARCH}/helm") DEBIAN_TNEW=(".") -DEBIAN_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" - "https://dl.k8s.io/release/v${KUBERNETES_RELEASE}/bin/${OS}/${ARCH}/kubectl" - "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" +DEBIAN_BINS=( + "https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" + "https://dl.k8s.io/release/v${KUBERNETES_RELEASE}/bin/${OS}/${ARCH}/kubectl" + "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" ) -DEBIAN_BCHK=("d445b44c28297bc23fd67e51cc24bb294ae7b977712be2d4d312883d0835829b" - "c46b2f5b0027e919299d1eca073ebf13a4c5c0528dd854fc71a5b93396c9fa9d" - "0c80a58f6158cd76075fcc9a5d860978720fa88860c2608bb00944f6af1e5752" +DEBIAN_BCHK=( + "517ab7fc89ddeed5fa65abf71530d90648d9638ef0c4cde22c2c11f8097b8889" + "9591f3d75e1581f3f7392e6ad119aab2f28ae7d6c6e083dc5d22469667f27253" + "d65ec7a42c36e863847103d48216c3dad248b82c447a27b3b2325a61e26ead9a" ) DEBIAN_BNEW=("kind" "." "clusterctl") From c7632220bd08cca0022719804f75b49e684b1c73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:08:42 +0100 Subject: [PATCH 06/23] update quick note about script support (only for Debian) --- 00-bootstrap-vm-cs.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index ccf0054..28742c4 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -5,7 +5,11 @@ # (c) Kurt Garloff , 2/2025 # SPDX-License-Identifier: CC-BY-SA-4.0 -# ToDo: Magic to switch b/w apt, zypper, dnf, pacman, ... +# TODO: Magic to switch b/w apt, zypper, dnf, pacman, ... +# +# *** This script currently supports only Debian GNU/Linux +# + ARCH=$(uname -m) ARCH="${ARCH/x86_64/amd64}" OS=$(uname -s | tr A-Z a-z) From 5200f2415e93c3ba1261126782a2511287666022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:12:28 +0100 Subject: [PATCH 07/23] rewrite how Docker was installed (we now follow docker-ce) --- 00-bootstrap-vm-cs.sh | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 28742c4..839d46d 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -59,7 +59,7 @@ install_via_download_tgz() # List of binaries (with their respective checksums) and packages for Debian mkdir -p ~/Download INSTCMD="apt-get install -qq -y --no-install-recommends --no-install-suggests" -DEBIAN_PKGS=(docker.io golang jq yq git gh python3-openstackclient) +DEBIAN_PKGS=(ca-certificates curl golang jq yq git gh python3-openstackclient) DEBIAN_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") DEBIAN_TCHK=("c77e9e7c1cc96e066bd240d190d1beed9a6b08060b2043ef0862c4f865eca08f") DEBIAN_TOLD=("${OS}-${ARCH}/helm") @@ -88,6 +88,22 @@ done GOBIN=/tmp go install github.com/drone/envsubst/v2/cmd/envsubst@latest sudo mv /tmp/envsubst /usr/local/bin/ +# Add Docker's official GPG key +sudo install -m 0755 -d /etc/apt/keyrings +sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc +sudo chmod a+r /etc/apt/keyrings/docker.asc + +# Add the repository to apt sources +sudo tee /etc/apt/sources.list.d/docker.sources < ~/.bash_aliases sudo groupmod -a -U `whoami` docker sudo systemctl enable --now docker From 48edc4a1f6d97f08778aa16f1354025122d43419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:18:59 +0100 Subject: [PATCH 08/23] silent curl's output --- 00-bootstrap-vm-cs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 839d46d..102ac58 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -38,7 +38,7 @@ test_sha256() install_via_download_bin() { cd ~/Download - curl -LO "$1" || return + curl -s -LO "$1" || return FNM="${1##*/}" if ! test_sha256 "$FNM" "$2"; then echo "Checksum mismatch for ${FNM}" 1>&2; return 1; fi chmod +x "$FNM" @@ -49,7 +49,7 @@ install_via_download_bin() install_via_download_tgz() { cd ~/Download - curl -LO "$1" || return + curl -s -LO "$1" || return FNM="${1##*/}" if ! test_sha256 "$FNM" "$2"; then echo "Checksum mismatch for ${FNM}" 1>&2; return 1; fi tar xvzf "$FNM" From 5389ffefc216aca10bd05ac63c721a2abef06531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:20:22 +0100 Subject: [PATCH 09/23] remove empty line from BINS and CHECKSUMS --- 00-bootstrap-vm-cs.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 102ac58..bac50f6 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -64,13 +64,11 @@ DEBIAN_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") DEBIAN_TCHK=("c77e9e7c1cc96e066bd240d190d1beed9a6b08060b2043ef0862c4f865eca08f") DEBIAN_TOLD=("${OS}-${ARCH}/helm") DEBIAN_TNEW=(".") -DEBIAN_BINS=( - "https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" +DEBIAN_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_RELEASE}/kind-${OS}-${ARCH}" "https://dl.k8s.io/release/v${KUBERNETES_RELEASE}/bin/${OS}/${ARCH}/kubectl" "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" ) -DEBIAN_BCHK=( - "517ab7fc89ddeed5fa65abf71530d90648d9638ef0c4cde22c2c11f8097b8889" +DEBIAN_BCHK=("517ab7fc89ddeed5fa65abf71530d90648d9638ef0c4cde22c2c11f8097b8889" "9591f3d75e1581f3f7392e6ad119aab2f28ae7d6c6e083dc5d22469667f27253" "d65ec7a42c36e863847103d48216c3dad248b82c447a27b3b2325a61e26ead9a" ) From 0d42eb8c480356b5606a4e08e9e3b99a4533c32f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:25:28 +0100 Subject: [PATCH 10/23] update few notes at the end of the script --- 00-bootstrap-vm-cs.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index bac50f6..149fa84 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -13,6 +13,7 @@ ARCH=$(uname -m) ARCH="${ARCH/x86_64/amd64}" OS=$(uname -s | tr A-Z a-z) +WHOAMI=$(whoami -u) # Releases of the components to install CAPI_RELEASE=1.11.3 # clusterctl @@ -99,9 +100,14 @@ Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") Components: stable Signed-By: /etc/apt/keyrings/docker.asc EOF + +# Update apt cache and install docker packages sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +# Check if we have ~/.bash_aliases to set test -e "~/.bash_aliases" || echo -e "alias ll='ls -lF'\nalias k=kubectl" > ~/.bash_aliases -sudo groupmod -a -U `whoami` docker -sudo systemctl enable --now docker + +# Add current user to the Docker group +sudo groupmod -a -U ${WHOAMI} docker +sudo systemctl enable --now docker.service From 725c47f066a4415eb68a5727fbf00385db604647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 13:26:02 +0100 Subject: [PATCH 11/23] fix typo with $WHOAMI --- 00-bootstrap-vm-cs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 149fa84..ac50bc7 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -13,7 +13,7 @@ ARCH=$(uname -m) ARCH="${ARCH/x86_64/amd64}" OS=$(uname -s | tr A-Z a-z) -WHOAMI=$(whoami -u) +WHOAMI=$(whoami) # Releases of the components to install CAPI_RELEASE=1.11.3 # clusterctl From 83fa85f2c871a24fb5243e5d5e73285dac09d5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 14:35:31 +0100 Subject: [PATCH 12/23] add .gitignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e3dd385 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +cluster-settings.env From f722d0f4e93dbf70781182a9b1e2dfb3a944d3e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 14:53:19 +0100 Subject: [PATCH 13/23] move addons.cluster.x-k8s.io into the v1beta2 --- 07-cluster-secret.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/07-cluster-secret.sh b/07-cluster-secret.sh index a57c879..ddc497f 100755 --- a/07-cluster-secret.sh +++ b/07-cluster-secret.sh @@ -105,7 +105,7 @@ metadata: clusterctl.cluster.x-k8s.io/move: "true" type: addons.cluster.x-k8s.io/resource-set --- -apiVersion: addons.cluster.x-k8s.io/v1beta1 +apiVersion: addons.cluster.x-k8s.io/v1beta2 kind: ClusterResourceSet metadata: name: crs-openstack-newsecret$3 @@ -132,7 +132,7 @@ metadata: clusterctl.cluster.x-k8s.io/move: "true" type: addons.cluster.x-k8s.io/resource-set --- -apiVersion: addons.cluster.x-k8s.io/v1beta1 +apiVersion: addons.cluster.x-k8s.io/v1beta2 kind: ClusterResourceSet metadata: name: crs-openstack-secret$3 From fbb894915676f3072d8ed2814044ff800617d7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 15:11:09 +0100 Subject: [PATCH 14/23] rollback k8s to 1.33.6 --- 00-bootstrap-vm-cs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index ac50bc7..eed7d94 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -19,7 +19,7 @@ WHOAMI=$(whoami) CAPI_RELEASE=1.11.3 # clusterctl HELM_RELEASE=4.0.0 # helm KIND_RELEASE=0.30.0 # kind -KUBERNETES_RELEASE=1.34.2 # kubectl +KUBERNETES_RELEASE=1.33.6 # kubectl # Usage: install_via_pkgmgr pkgnm [pkgnm [...]] install_via_pkgmgr() @@ -70,7 +70,7 @@ DEBIAN_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_ "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" ) DEBIAN_BCHK=("517ab7fc89ddeed5fa65abf71530d90648d9638ef0c4cde22c2c11f8097b8889" - "9591f3d75e1581f3f7392e6ad119aab2f28ae7d6c6e083dc5d22469667f27253" + "7c7ba245770669abaf4ff49a80a367b4c33f1880bade3d6a565cc851a163d71f" "d65ec7a42c36e863847103d48216c3dad248b82c447a27b3b2325a61e26ead9a" ) DEBIAN_BNEW=("kind" "." "clusterctl") From 32936028f53433caacf969a19b76c5fb7dd0a1be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 15:16:22 +0100 Subject: [PATCH 15/23] rollback from .6 to .4 --- 00-bootstrap-vm-cs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index eed7d94..328e56f 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -19,7 +19,7 @@ WHOAMI=$(whoami) CAPI_RELEASE=1.11.3 # clusterctl HELM_RELEASE=4.0.0 # helm KIND_RELEASE=0.30.0 # kind -KUBERNETES_RELEASE=1.33.6 # kubectl +KUBERNETES_RELEASE=1.33.4 # kubectl # Usage: install_via_pkgmgr pkgnm [pkgnm [...]] install_via_pkgmgr() @@ -70,7 +70,7 @@ DEBIAN_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_ "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" ) DEBIAN_BCHK=("517ab7fc89ddeed5fa65abf71530d90648d9638ef0c4cde22c2c11f8097b8889" - "7c7ba245770669abaf4ff49a80a367b4c33f1880bade3d6a565cc851a163d71f" + "cf39509aa1e3d8fdf4418619170506aada2974de41c93551c1f3a75eef57c66e" "d65ec7a42c36e863847103d48216c3dad248b82c447a27b3b2325a61e26ead9a" ) DEBIAN_BNEW=("kind" "." "clusterctl") From 335f746db0dd8687a46d30d04bc8a6b8573d60b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 17:23:39 +0100 Subject: [PATCH 16/23] fix the sha256sum for kubectl --- 00-bootstrap-vm-cs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 328e56f..6277599 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -70,7 +70,7 @@ DEBIAN_BINS=("https://github.com/kubernetes-sigs/kind/releases/download/v${KIND_ "https://github.com/kubernetes-sigs/cluster-api/releases/download/v${CAPI_RELEASE}/clusterctl-${OS}-${ARCH}" ) DEBIAN_BCHK=("517ab7fc89ddeed5fa65abf71530d90648d9638ef0c4cde22c2c11f8097b8889" - "cf39509aa1e3d8fdf4418619170506aada2974de41c93551c1f3a75eef57c66e" + "c2ba72c115d524b72aaee9aab8df8b876e1596889d2f3f27d68405262ce86ca1" "d65ec7a42c36e863847103d48216c3dad248b82c447a27b3b2325a61e26ead9a" ) DEBIAN_BNEW=("kind" "." "clusterctl") From 724942c1f59f2a1e19838e8b8e3848be3fdd6cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 17:33:11 +0100 Subject: [PATCH 17/23] create the .config/openstack dir --- 00-bootstrap-vm-cs.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 6277599..046d92e 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -57,8 +57,13 @@ install_via_download_tgz() sudo mv "$3" /usr/local/bin/"$4" } +# Create necessary directories hierarchy and touch the clouds credential file +mkdir -p \ + ~/.config/openstack \ + ~/Download +touch ~/.config/openstack/clouds.yaml + # List of binaries (with their respective checksums) and packages for Debian -mkdir -p ~/Download INSTCMD="apt-get install -qq -y --no-install-recommends --no-install-suggests" DEBIAN_PKGS=(ca-certificates curl golang jq yq git gh python3-openstackclient) DEBIAN_TGZS=("https://get.helm.sh/helm-v${HELM_RELEASE}-${OS}-${ARCH}.tar.gz") From 5f6bbc19d7f9ac9eaa7c2cbbe04d49327413e3ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 17:44:13 +0100 Subject: [PATCH 18/23] ensure to be on an updated env (also add some notes) --- 00-bootstrap-vm-cs.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/00-bootstrap-vm-cs.sh b/00-bootstrap-vm-cs.sh index 046d92e..7f55a64 100755 --- a/00-bootstrap-vm-cs.sh +++ b/00-bootstrap-vm-cs.sh @@ -80,7 +80,11 @@ DEBIAN_BCHK=("517ab7fc89ddeed5fa65abf71530d90648d9638ef0c4cde22c2c11f8097b8889" ) DEBIAN_BNEW=("kind" "." "clusterctl") +# Ensure we are on a updated environment sudo apt-get update +sudo apt-get upgrade -qq -y + +# Install required binaries and Debian packages for this KAAS setup install_via_pkgmgr "${DEBIAN_PKGS[@]}" || exit 1 for i in $(seq 0 $((${#DEBIAN_TGZS[*]}-1))); do install_via_download_tgz "${DEBIAN_TGZS[$i]}" "${DEBIAN_TCHK[$i]}" "${DEBIAN_TOLD[$i]}" "${DEBIAN_TNEW[$i]}" || exit 2 @@ -89,6 +93,7 @@ for i in $(seq 0 $((${#DEBIAN_BINS[*]}-1))); do install_via_download_bin "${DEBIAN_BINS[$i]}" "${DEBIAN_BCHK[$i]}" "${DEBIAN_BNEW[$i]}" || exit 3 done +# Install envsubs (using Go, as that's not available as Debian package) GOBIN=/tmp go install github.com/drone/envsubst/v2/cmd/envsubst@latest sudo mv /tmp/envsubst /usr/local/bin/ From 419c1f8c0ee73f4033899c4d06cc77d75f24d4bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 18:07:38 +0100 Subject: [PATCH 19/23] update README and mention the newgrp command --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 88bbdf1..ec107b2 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,13 @@ any changes if you did not change any settings. * `02-deploy-capi.sh`: Install ORC and CAPI. * `03-deploy-cso.sh`: Install the Cluster Stack Operator. +> Should you be installing that manually (to get a closer and better understanding of the entire process), it may be possible that you would be presented errors related to the user not still be part of the `docker` group. To solve that you can run the scripts using `newgrp`. + + - Here's how you could run scripts with `newgrp` + ```sh + newgrp -c "bash 01-kind-cluster.sh" docker + ``` + ### Once per OpenStack Project in which we want to install clusters (per namespace) * `04-cloud-secret.sh`: Create namespace and secrets for CAPO and ORC to work with the wanted OpenStack project. From f7d7aafe90ab3b22e6031a3343ef619918f130e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 18:08:30 +0100 Subject: [PATCH 20/23] update typo to fix formatting issue --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ec107b2..43c5761 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,8 @@ any changes if you did not change any settings. > Should you be installing that manually (to get a closer and better understanding of the entire process), it may be possible that you would be presented errors related to the user not still be part of the `docker` group. To solve that you can run the scripts using `newgrp`. - - Here's how you could run scripts with `newgrp` + * Here's how you could run scripts with `newgrp` + ```sh newgrp -c "bash 01-kind-cluster.sh" docker ``` From 0b3711f00cc00862b3953e8731a14a92b94a5fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Thu, 13 Nov 2025 18:09:22 +0100 Subject: [PATCH 21/23] update formatting --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 43c5761..b59c3a7 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,11 @@ any changes if you did not change any settings. > Should you be installing that manually (to get a closer and better understanding of the entire process), it may be possible that you would be presented errors related to the user not still be part of the `docker` group. To solve that you can run the scripts using `newgrp`. - * Here's how you could run scripts with `newgrp` + - Example: - ```sh - newgrp -c "bash 01-kind-cluster.sh" docker - ``` + ```sh + newgrp -c "bash 01-kind-cluster.sh" docker + ``` ### Once per OpenStack Project in which we want to install clusters (per namespace) * `04-cloud-secret.sh`: Create namespace and secrets for CAPO and ORC to From ce630c0bdaee026307c10e8d4d52168318cc433c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Sat, 15 Nov 2025 11:54:13 +0100 Subject: [PATCH 22/23] set '--set octavia_ovn=true' as that will be required on the script 08 --- 03-deploy-cso.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/03-deploy-cso.sh b/03-deploy-cso.sh index 2736ac0..265277e 100755 --- a/03-deploy-cso.sh +++ b/03-deploy-cso.sh @@ -34,5 +34,7 @@ EOF # Install Cluster Stack Operator (CSO) with above values helm upgrade -i cso -n cso-system \ --create-namespace --values ~/tmp/cso-rbac.yaml \ + --set octavia_ovn=true \ oci://registry.scs.community/cluster-stacks/cso + kubectl -n cso-system rollout status deployment From 665029170ea1e66ab35914b22639b900cc3b6b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Zavam?= Date: Fri, 12 Dec 2025 18:22:15 +0100 Subject: [PATCH 23/23] rollback the api version here from v1beta2 to v1beta1 --- 07-cluster-secret.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/07-cluster-secret.sh b/07-cluster-secret.sh index ddc497f..a57c879 100755 --- a/07-cluster-secret.sh +++ b/07-cluster-secret.sh @@ -105,7 +105,7 @@ metadata: clusterctl.cluster.x-k8s.io/move: "true" type: addons.cluster.x-k8s.io/resource-set --- -apiVersion: addons.cluster.x-k8s.io/v1beta2 +apiVersion: addons.cluster.x-k8s.io/v1beta1 kind: ClusterResourceSet metadata: name: crs-openstack-newsecret$3 @@ -132,7 +132,7 @@ metadata: clusterctl.cluster.x-k8s.io/move: "true" type: addons.cluster.x-k8s.io/resource-set --- -apiVersion: addons.cluster.x-k8s.io/v1beta2 +apiVersion: addons.cluster.x-k8s.io/v1beta1 kind: ClusterResourceSet metadata: name: crs-openstack-secret$3