From 4316432b03444ab2a99dfde113914dbb3506f431 Mon Sep 17 00:00:00 2001 From: batistein Date: Thu, 5 May 2022 09:26:50 +0200 Subject: [PATCH] :seedling: Support for k8s 1.24 --- .github/actions/e2e/action.yaml | 2 +- .github/workflows/e2e-basic-packer.yaml | 54 ++++++++++++++++++ .github/workflows/e2e-periodic.yaml | 19 ++++++ .github/workflows/pr-verify-code.yml | 10 ++-- .github/workflows/pr-verify.yml | 11 ++-- Makefile | 21 ++++--- README.md | 1 + docs/developers/development.md | 4 +- docs/pics/caph.png | Bin 68056 -> 72799 bytes docs/topics/node-image.md | 6 +- docs/topics/preparation.md | 2 +- docs/topics/quickstart.md | 4 +- hack/ci-e2e-capi.sh | 10 ++++ hack/kind-dev.sh | 2 +- .../bases/hcloud-kcp-packer.yaml | 5 -- .../bases/hcloud-kcp-ubuntu.yaml | 9 +-- .../bases/hetznerbaremetal-kcp-ubuntu.yaml | 11 +--- .../bases/kct-md-0-ubuntu.yaml | 4 +- .../image.json | 2 +- .../packer-validate.sh | 0 .../scripts/base.sh | 0 .../scripts/cilium-requirements.sh | 0 .../scripts/cleanup.sh | 0 .../scripts/cri.sh | 4 +- .../scripts/kubernetes.sh | 2 +- test/e2e/Makefile | 4 +- test/e2e/config/hetzner-ci.yaml | 24 ++++---- test/e2e/config/hetzner-talos.yaml | 2 +- test/e2e/config/hetzner.yaml | 24 ++++---- .../kustomization.yaml | 13 +++++ test/e2e/feature_packer_test.go | 40 +++++++++++++ test/e2e/upgrade_caph_controller.go | 4 +- 32 files changed, 214 insertions(+), 80 deletions(-) create mode 100644 .github/workflows/e2e-basic-packer.yaml rename templates/node-image/{1.23.4-ubuntu-20-04-containerd => 1.24.1-ubuntu-20-04-containerd}/image.json (96%) rename templates/node-image/{1.23.4-ubuntu-20-04-containerd => 1.24.1-ubuntu-20-04-containerd}/packer-validate.sh (100%) rename templates/node-image/{1.23.4-ubuntu-20-04-containerd => 1.24.1-ubuntu-20-04-containerd}/scripts/base.sh (100%) rename templates/node-image/{1.23.4-ubuntu-20-04-containerd => 1.24.1-ubuntu-20-04-containerd}/scripts/cilium-requirements.sh (100%) rename templates/node-image/{1.23.4-ubuntu-20-04-containerd => 1.24.1-ubuntu-20-04-containerd}/scripts/cleanup.sh (100%) rename templates/node-image/{1.23.4-ubuntu-20-04-containerd => 1.24.1-ubuntu-20-04-containerd}/scripts/cri.sh (96%) rename templates/node-image/{1.23.4-ubuntu-20-04-containerd => 1.24.1-ubuntu-20-04-containerd}/scripts/kubernetes.sh (95%) create mode 100644 test/e2e/data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer/kustomization.yaml create mode 100644 test/e2e/feature_packer_test.go diff --git a/.github/actions/e2e/action.yaml b/.github/actions/e2e/action.yaml index 3a53cc23b..e2b3fd286 100644 --- a/.github/actions/e2e/action.yaml +++ b/.github/actions/e2e/action.yaml @@ -73,7 +73,7 @@ runs: MANIFEST_PATH: "../../../out" HCLOUD_TOKEN: ${{ env.HCLOUD_TOKEN }} SKIP_IMAGE_BUILD: "1" - CAPH_LATEST_VERSION: "v1.0.0-alpha.17" + CAPH_LATEST_VERSION: "v1.0.0-alpha.18" run: make ${{ inputs.e2e_make_target }} - name: Upload artifact uses: actions/upload-artifact@v3 diff --git a/.github/workflows/e2e-basic-packer.yaml b/.github/workflows/e2e-basic-packer.yaml new file mode 100644 index 000000000..de120c659 --- /dev/null +++ b/.github/workflows/e2e-basic-packer.yaml @@ -0,0 +1,54 @@ +name: E2E Basic Packer +on: + workflow_dispatch: +env: + hcloudctl_version: 1.29.4 + IMAGE_NAME: cluster-api-provider-hetzner + REGISTRY: quay.io/syself + metadata_flavor: latest=false + metadata_tags: type=sha + +jobs: + manager-image: + name: Build and push manager image + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v3 + - name: Build and push manager image + id: manager-image + uses: ./.github/actions/manager-image + with: + manager_image_quay_username: ${{ secrets.QUAY_USERNAME }} + manager_image_quay_password: ${{ secrets.QUAY_PASSWORD }} + + test-release: + name: Test Release + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v3 + - name: Test Release + id: manager-image + uses: ./.github/actions/test-release + with: + test_release_quay_username: ${{ secrets.QUAY_USERNAME }} + + e2e-hcloud-basic-packer: + name: Test Hcloud Basic Packer Image + concurrency: ci-${{ github.ref }}-e2e-basic-packer + runs-on: ubuntu-latest + needs: + - manager-image + - test-release + steps: + - name: checkout + uses: actions/checkout@v3 + - name: Run e2e Test + id: e2e + uses: ./.github/actions/e2e + with: + e2e_name: hcloud-basic-packer + e2e_make_target: test-e2e-feature-packer + e2e_quay_username: ${{ secrets.QUAY_USERNAME }} + e2e_tts_token: ${{ secrets.TTS_TOKEN }} diff --git a/.github/workflows/e2e-periodic.yaml b/.github/workflows/e2e-periodic.yaml index aa6aa94e0..09045729c 100644 --- a/.github/workflows/e2e-periodic.yaml +++ b/.github/workflows/e2e-periodic.yaml @@ -72,6 +72,25 @@ jobs: e2e_quay_username: ${{ secrets.QUAY_USERNAME }} e2e_tts_token: ${{ secrets.TTS_TOKEN }} + e2e-hcloud-feature-packer: + name: Test Hcloud Feature Packer Image + concurrency: ci-${{ github.ref }}-e2e-feature-packer + runs-on: ubuntu-latest + needs: + - manager-image + - test-release + steps: + - name: checkout + uses: actions/checkout@v3 + - name: Run e2e Test + id: e2e + uses: ./.github/actions/e2e + with: + e2e_name: hcloud-feature-packer + e2e_make_target: test-e2e-feature-packer + e2e_quay_username: ${{ secrets.QUAY_USERNAME }} + e2e_tts_token: ${{ secrets.TTS_TOKEN }} + e2e-hcloud-lifecycle: name: Test Hcloud Lifecycle concurrency: ci-${{ github.ref }}-e2e-lifecycle diff --git a/.github/workflows/pr-verify-code.yml b/.github/workflows/pr-verify-code.yml index 3137e5806..85058ac4a 100644 --- a/.github/workflows/pr-verify-code.yml +++ b/.github/workflows/pr-verify-code.yml @@ -1,12 +1,12 @@ -name: verify +name: Verify PR Code on: pull_request: types: [opened, edited, synchronize, reopened] branches: - main - - 'releases/**' + - "releases/**" paths-ignore: - - '**.md' + - "**.md" jobs: test: @@ -18,10 +18,10 @@ jobs: - name: Install go uses: actions/setup-go@v3 with: - go-version: '^1.17' + go-version: "^1.17" - name: Verify Boilerplate run: make verify-boilerplate - name: Verify Modules run: make verify-modules - name: Verify gen - run: make verify-gen \ No newline at end of file + run: make verify-gen diff --git a/.github/workflows/pr-verify.yml b/.github/workflows/pr-verify.yml index 0623ac44a..f6b98e275 100644 --- a/.github/workflows/pr-verify.yml +++ b/.github/workflows/pr-verify.yml @@ -1,3 +1,4 @@ +name: Verify Pull Request on: pull_request_target: types: [opened, edited, synchronize, reopened] @@ -7,8 +8,8 @@ jobs: runs-on: ubuntu-latest name: verify PR contents steps: - - name: Verifier action - id: verifier - uses: kubernetes-sigs/kubebuilder-release-tools@v0.2.0 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} + - name: Verifier action + id: verifier + uses: kubernetes-sigs/kubebuilder-release-tools@v0.2.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/Makefile b/Makefile index 3ab238404..3f35219aa 100644 --- a/Makefile +++ b/Makefile @@ -44,14 +44,14 @@ CI_KIND ?= true # Binaries. # MINIMUM_CLUSTERCTL_VERSION=1.1.4 # https://github.com/kubernetes-sigs/cluster-api/releases -MINIMUM_CTLPTL_VERSION=0.7.8 # https://github.com/tilt-dev/ctlptl/releases +MINIMUM_CTLPTL_VERSION=0.8.3 # https://github.com/tilt-dev/ctlptl/releases MINIMUM_GO_VERSION=go$(GO_VERSION) # Check current project go version MINIMUM_HCLOUD_VERSION=1.29.4 # https://github.com/hetznercloud/cli/releases MINIMUM_HELMFILE_VERSION=v0.144.0 # https://github.com/roboll/helmfile/releases -MINIMUM_KIND_VERSION=v0.12.0 # https://github.com/kubernetes-sigs/kind/releases -MINIMUM_KUBECTL_VERSION=v1.23.0 # https://github.com/kubernetes/kubernetes/releases -MINIMUM_PACKER_VERSION=1.8.0 # https://github.com/hashicorp/packer/releases -MINIMUM_TILT_VERSION=0.27.2 # https://github.com/tilt-dev/tilt/releases +MINIMUM_KIND_VERSION=v0.14.0 # https://github.com/kubernetes-sigs/kind/releases +MINIMUM_KUBECTL_VERSION=v1.24.0 # https://github.com/kubernetes/kubernetes/releases +MINIMUM_PACKER_VERSION=1.8.1 # https://github.com/hashicorp/packer/releases +MINIMUM_TILT_VERSION=0.30.1 # https://github.com/tilt-dev/tilt/releases KUSTOMIZE_VERSION=4.5.4 # https://github.com/kubernetes-sigs/kustomize/releases # @@ -448,6 +448,10 @@ test-e2e: $(E2E_CONF_FILE) $(if $(SKIP_IMAGE_BUILD),,e2e-image) $(ARTIFACTS) test-e2e-feature: $(E2E_CONF_FILE) $(if $(SKIP_IMAGE_BUILD),,e2e-image) $(ARTIFACTS) GINKO_FOKUS="'\[Feature\]'" GINKO_NODES=3 ./hack/ci-e2e-capi.sh +.PHONY: test-e2e-feature-packer +test-e2e-feature-packer: $(if $(SKIP_IMAGE_BUILD),,e2e-image) $(ARTIFACTS) + GINKO_FOKUS="'\[Feature Packer\]'" GINKO_NODES=1 PACKER_IMAGE_NAME=templates/node-image/1.24.1-ubuntu-20-04-containerd ./hack/ci-e2e-capi.sh + .PHONY: test-e2e-feature-talos test-e2e-feature-talos: $(if $(SKIP_IMAGE_BUILD),,e2e-image) $(ARTIFACTS) GINKO_FOKUS="'\[Feature Talos\]'" GINKO_NODES=1 PACKER_TALOS=templates/node-image/talos-image ./hack/ci-e2e-capi.sh @@ -462,7 +466,7 @@ test-e2e-upgrade-caph: $(E2E_CONF_FILE) $(if $(SKIP_IMAGE_BUILD),,e2e-image) $(A .PHONY: test-e2e-upgrade-kubernetes test-e2e-upgrade-kubernetes: $(if $(SKIP_IMAGE_BUILD),,e2e-image) $(ARTIFACTS) - GINKO_FOKUS="'\[Upgrade Kubernetes\]'" GINKO_NODES=2 PACKER_KUBERNETES_UPGRADE_FROM=templates/node-image/1.23.4-ubuntu-20-04-containerd PACKER_KUBERNETES_UPGRADE_TO=templates/node-image/1.23.6-ubuntu-20-04-containerd ./hack/ci-e2e-capi.sh + GINKO_FOKUS="'\[Upgrade Kubernetes\]'" GINKO_NODES=2 PACKER_KUBERNETES_UPGRADE_FROM=templates/node-image/1.23.6-ubuntu-20-04-containerd PACKER_KUBERNETES_UPGRADE_TO=templates/node-image/1.24.1-ubuntu-20-04-containerd ./hack/ci-e2e-capi.sh .PHONY: test-e2e-conformance test-e2e-conformance: $(E2E_CONF_FILE) $(if $(SKIP_IMAGE_BUILD),,e2e-image) $(ARTIFACTS) @@ -579,12 +583,13 @@ wait-and-get-secret: ${TIMEOUT} 5m bash -c "while ! kubectl get secrets | grep $(CLUSTER_NAME)-kubeconfig; do sleep 1; done" # Get kubeconfig and store it locally. kubectl get secrets $(CLUSTER_NAME)-kubeconfig -o json | jq -r .data.value | base64 --decode > $(CAPH_WORKER_CLUSTER_KUBECONFIG) - ${TIMEOUT} 15m bash -c "while ! kubectl --kubeconfig=$(CAPH_WORKER_CLUSTER_KUBECONFIG) get nodes | grep master; do sleep 1; done" + ${TIMEOUT} 15m bash -c "while ! kubectl --kubeconfig=$(CAPH_WORKER_CLUSTER_KUBECONFIG) get nodes | grep control-plane; do sleep 1; done" install-manifests-cilium: # Deploy cilium helm repo add cilium https://helm.cilium.io/ - KUBECONFIG=$(CAPH_WORKER_CLUSTER_KUBECONFIG) helm upgrade --install cilium cilium/cilium --version 1.10.5 \ + helm repo update cilium + KUBECONFIG=$(CAPH_WORKER_CLUSTER_KUBECONFIG) helm upgrade --install cilium cilium/cilium --version 1.11.5 \ --namespace kube-system \ -f templates/cilium/cilium.yaml diff --git a/README.md b/README.md index 5f11d3d3f..2ec5de341 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,7 @@ This provider's versions can install and manage the following versions of Kubern |---|---| | Kubernetes 1.22.x | ✓ | | Kubernetes 1.23.x | ✓ | +| Kubernetes 1.24.x | ✓ | Test status: diff --git a/docs/developers/development.md b/docs/developers/development.md index b7d42105a..07c99fd77 100644 --- a/docs/developers/development.md +++ b/docs/developers/development.md @@ -35,8 +35,8 @@ You need to create a ```tilt-settings.json``` file and specify the values you ne "HCLOUD_REGION": "fsn1", "CONTROL_PLANE_MACHINE_COUNT": "3", "WORKER_MACHINE_COUNT": "3", - "KUBERNETES_VERSION": "v1.23.4", - "HCLOUD_IMAGE_NAME": "1.23.4-ubuntu-20.04-containerd", + "KUBERNETES_VERSION": "v1.24.0", + "HCLOUD_IMAGE_NAME": "1.24.0-ubuntu-20.04-containerd", "HCLOUD_CONTROL_PLANE_MACHINE_TYPE": "cpx31", "HCLOUD_WORKER_MACHINE_TYPE": "cpx31", "CLUSTER_NAME": "testing", diff --git a/docs/pics/caph.png b/docs/pics/caph.png index 1fba34f18f12459ed6475b50c0627460d287ed64..86a28afa8020b643a22ece880ee22dfa1f07136c 100644 GIT binary patch literal 72799 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 bz4)Jbmi6xUEbor6G5~?6tDnm{r-UW|46i5D literal 68056 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 H!-D@0->5#Z diff --git a/docs/topics/node-image.md b/docs/topics/node-image.md index 644387019..d9d523b7b 100644 --- a/docs/topics/node-image.md +++ b/docs/topics/node-image.md @@ -7,16 +7,16 @@ In this repo is also an example packer node-image. To use it do the following: export HCLOUD_TOKEN= ## Only build -packer build templates/node-image/1.23.4-fedora-35-crio/image.json +packer build templates/node-image/1.24.1-ubuntu-20-04-containerd/image.json ## Debug and ability to ssh into the created server -packer build --debug --on-error=abort templates/node-image/1.23.4-fedora-35-crio/image.json +packer build --debug --on-error=abort templates/node-image/1.24.1-ubuntu-20-04-containerd/image.json ``` The first command is necessary so that packer is able to create a server in hcloud. The second one creates the server with packer. If you are developing your own packer image the third command could be helpful to check what's going wrong. It's very important to know that if you create your own packer image you need to set a label so that CAPH is able to find the specified image name. We use for this label the following key: `caph-image-name` -Please have a look into the image.json of the [example node-image](/templates/node-image/1.23.4-fedora-35-crio/image.json). +Please have a look into the image.json of the [example node-image](/templates/node-image/1.24.1-ubuntu-20-04-containerd/image.json). If you use your own node image. You should also use your own cluster-template.yaml and not the default one. The default one use preKubeadm commands to install all necessary things. This is very helpful for testing but is not recommended in a production system. \ No newline at end of file diff --git a/docs/topics/preparation.md b/docs/topics/preparation.md index d6e40dcac..eb8d8dbe6 100644 --- a/docs/topics/preparation.md +++ b/docs/topics/preparation.md @@ -67,7 +67,7 @@ export CLUSTER_NAME="my-cluster" \ export HCLOUD_REGION="fsn1" \ export CONTROL_PLANE_MACHINE_COUNT=3 \ export WORKER_MACHINE_COUNT=3 \ -export KUBERNETES_VERSION=1.23.4 \ +export KUBERNETES_VERSION=1.24.0 \ export HCLOUD_CONTROL_PLANE_MACHINE_TYPE=cpx31 \ export HCLOUD_WORKER_MACHINE_TYPE=cpx31 ``` diff --git a/docs/topics/quickstart.md b/docs/topics/quickstart.md index c796f2a8e..1abf84db0 100644 --- a/docs/topics/quickstart.md +++ b/docs/topics/quickstart.md @@ -22,13 +22,13 @@ It generates a YAML file named `my-cluster.yaml` with a predefined list of Clust See also `clusterctl generate cluster --help`. ```shell -clusterctl generate cluster my-cluster --kubernetes-version v1.23.4 --control-plane-machine-count=3 --worker-machine-count=3 > my-cluster.yaml +clusterctl generate cluster my-cluster --kubernetes-version v1.24.1 --control-plane-machine-count=3 --worker-machine-count=3 > my-cluster.yaml ``` You can also use different flavors, e.g. to create a cluster with private network: ```shell -clusterctl generate cluster my-cluster --kubernetes-version v1.23.4 --control-plane-machine-count=3 --worker-machine-count=3 --flavor hcloud-network > my-cluster.yaml +clusterctl generate cluster my-cluster --kubernetes-version v1.24.1 --control-plane-machine-count=3 --worker-machine-count=3 --flavor hcloud-network > my-cluster.yaml ``` All pre-configured flavors can be found on the [release page](https://github.com/syself/cluster-api-provider-hetzner/releases). The cluster-templates start with `cluster-template-`. The flavor name is the suffix. diff --git a/hack/ci-e2e-capi.sh b/hack/ci-e2e-capi.sh index 4c00342fa..6a5f5e45a 100755 --- a/hack/ci-e2e-capi.sh +++ b/hack/ci-e2e-capi.sh @@ -55,6 +55,16 @@ if [[ "${PACKER_KUBERNETES_UPGRADE_FROM:-""}" != "" ]]; then make e2e-conf-file fi +if [[ "${PACKER_IMAGE_NAME:-""}" != "" ]]; then + (cd ${REPO_ROOT}/${PACKER_IMAGE_NAME} && packer build image.json) + export HCLOUD_IMAGE_NAME=$(jq -r '.builds[-1].custom_data.snapshot_label' ${REPO_ROOT}/${PACKER_IMAGE_NAME}/manifest.json) + trap 'remove_manifests' EXIT + remove_manifests() { + rm ${REPO_ROOT}/${PACKER_IMAGE_NAME}/manifest.json + } + make e2e-conf-file +fi + if [[ "${PACKER_TALOS:-""}" != "" ]]; then (cd ${REPO_ROOT}/${PACKER_TALOS} && packer build image.json) export HCLOUD_IMAGE_NAME=$(jq -r '.builds[-1].custom_data.snapshot_label' ${REPO_ROOT}/${PACKER_TALOS}/manifest.json) diff --git a/hack/kind-dev.sh b/hack/kind-dev.sh index f106d2dd2..7e32d7020 100755 --- a/hack/kind-dev.sh +++ b/hack/kind-dev.sh @@ -17,7 +17,7 @@ set -o errexit set -o pipefail -K8S_VERSION=v1.23.5 +K8S_VERSION=v1.24.1 REPO_ROOT=$(git rev-parse --show-toplevel) cd "${REPO_ROOT}" || exit 1 diff --git a/templates/cluster-templates/bases/hcloud-kcp-packer.yaml b/templates/cluster-templates/bases/hcloud-kcp-packer.yaml index 46a6d4067..01b26df27 100644 --- a/templates/cluster-templates/bases/hcloud-kcp-packer.yaml +++ b/templates/cluster-templates/bases/hcloud-kcp-packer.yaml @@ -46,7 +46,6 @@ spec: kubelet-preferred-address-types: ExternalIP,Hostname,InternalDNS,ExternalDNS profiling: "false" enable-bootstrap-token-auth: "true" - insecure-port: "0" default-not-ready-toleration-seconds: "45" default-unreachable-toleration-seconds: "45" extraVolumes: @@ -68,9 +67,7 @@ spec: kubeconfig: /etc/kubernetes/controller-manager.conf authentication-kubeconfig: /etc/kubernetes/controller-manager.conf authorization-kubeconfig: /etc/kubernetes/controller-manager.conf - address: "127.0.0.1" bind-address: "0.0.0.0" - port: "0" secure-port: "10257" allocate-node-cidrs: "true" pod-eviction-timeout: 2m @@ -78,9 +75,7 @@ spec: extraArgs: profiling: "false" kubeconfig: /etc/kubernetes/scheduler.conf - address: "127.0.0.1" bind-address: "0.0.0.0" - port: "0" secure-port: "10259" etcd: local: diff --git a/templates/cluster-templates/bases/hcloud-kcp-ubuntu.yaml b/templates/cluster-templates/bases/hcloud-kcp-ubuntu.yaml index 5d992c030..75403afd6 100644 --- a/templates/cluster-templates/bases/hcloud-kcp-ubuntu.yaml +++ b/templates/cluster-templates/bases/hcloud-kcp-ubuntu.yaml @@ -46,7 +46,6 @@ spec: kubelet-preferred-address-types: ExternalIP,Hostname,InternalDNS,ExternalDNS profiling: "false" enable-bootstrap-token-auth: "true" - insecure-port: "0" default-not-ready-toleration-seconds: "45" default-unreachable-toleration-seconds: "45" extraVolumes: @@ -68,9 +67,7 @@ spec: kubeconfig: /etc/kubernetes/controller-manager.conf authentication-kubeconfig: /etc/kubernetes/controller-manager.conf authorization-kubeconfig: /etc/kubernetes/controller-manager.conf - address: "127.0.0.1" bind-address: "0.0.0.0" - port: "0" secure-port: "10257" allocate-node-cidrs: "true" pod-eviction-timeout: 2m @@ -78,9 +75,7 @@ spec: extraArgs: profiling: "false" kubeconfig: /etc/kubernetes/scheduler.conf - address: "127.0.0.1" bind-address: "0.0.0.0" - port: "0" secure-port: "10259" etcd: local: @@ -210,8 +205,8 @@ spec: nameserver 1.0.0.1 nameserver 2606:4700:4700::1111 preKubeadmCommands: - - export CRUN=1.4.3 - - export CONTAINERD=1.6.1 + - export CRUN=1.4.5 + - export CONTAINERD=1.6.5 - export KUBERNETES_VERSION=$(echo ${KUBERNETES_VERSION} | sed 's/^v//') - localectl set-locale LANG=en_US.UTF-8 - localectl set-locale LANGUAGE=en_US.UTF-8 diff --git a/templates/cluster-templates/bases/hetznerbaremetal-kcp-ubuntu.yaml b/templates/cluster-templates/bases/hetznerbaremetal-kcp-ubuntu.yaml index f02aac9f0..8f1d5bfee 100644 --- a/templates/cluster-templates/bases/hetznerbaremetal-kcp-ubuntu.yaml +++ b/templates/cluster-templates/bases/hetznerbaremetal-kcp-ubuntu.yaml @@ -46,7 +46,6 @@ spec: kubelet-preferred-address-types: ExternalIP,Hostname,InternalDNS,ExternalDNS profiling: "false" enable-bootstrap-token-auth: "true" - insecure-port: "0" default-not-ready-toleration-seconds: "45" default-unreachable-toleration-seconds: "45" extraVolumes: @@ -68,9 +67,7 @@ spec: kubeconfig: /etc/kubernetes/controller-manager.conf authentication-kubeconfig: /etc/kubernetes/controller-manager.conf authorization-kubeconfig: /etc/kubernetes/controller-manager.conf - address: "127.0.0.1" bind-address: "0.0.0.0" - port: "0" secure-port: "10257" allocate-node-cidrs: "true" pod-eviction-timeout: 2m @@ -78,9 +75,7 @@ spec: extraArgs: profiling: "false" kubeconfig: /etc/kubernetes/scheduler.conf - address: "127.0.0.1" bind-address: "0.0.0.0" - port: "0" secure-port: "10259" etcd: local: @@ -210,9 +205,9 @@ spec: nameserver 1.0.0.1 nameserver 2606:4700:4700::1111 preKubeadmCommands: - - export CRUN=1.4.3 - - export CONTAINERD=1.6.1 - - export KUBERNETES_VERSION=1.23.4 + - export CRUN=1.4.5 + - export CONTAINERD=1.6.5 + - export KUBERNETES_VERSION=$(echo ${KUBERNETES_VERSION} | sed 's/^v//') - localectl set-locale LANG=en_US.UTF-8 - localectl set-locale LANGUAGE=en_US.UTF-8 - apt-get update -y diff --git a/templates/cluster-templates/bases/kct-md-0-ubuntu.yaml b/templates/cluster-templates/bases/kct-md-0-ubuntu.yaml index 4ecacdcc7..bb7956631 100644 --- a/templates/cluster-templates/bases/kct-md-0-ubuntu.yaml +++ b/templates/cluster-templates/bases/kct-md-0-ubuntu.yaml @@ -92,8 +92,8 @@ spec: nameserver 1.0.0.1 nameserver 2606:4700:4700::1111 preKubeadmCommands: - - export CRUN=1.4.3 - - export CONTAINERD=1.6.1 + - export CRUN=1.4.5 + - export CONTAINERD=1.6.5 - export KUBERNETES_VERSION=$(echo ${KUBERNETES_VERSION} | sed 's/^v//') - localectl set-locale LANG=en_US.UTF-8 - localectl set-locale LANGUAGE=en_US.UTF-8 diff --git a/templates/node-image/1.23.4-ubuntu-20-04-containerd/image.json b/templates/node-image/1.24.1-ubuntu-20-04-containerd/image.json similarity index 96% rename from templates/node-image/1.23.4-ubuntu-20-04-containerd/image.json rename to templates/node-image/1.24.1-ubuntu-20-04-containerd/image.json index e684f4ecf..dbae3f738 100644 --- a/templates/node-image/1.23.4-ubuntu-20-04-containerd/image.json +++ b/templates/node-image/1.24.1-ubuntu-20-04-containerd/image.json @@ -3,7 +3,7 @@ "hcloud_token": "{{env `HCLOUD_TOKEN`}}", "scripts": "{{template_dir}}/scripts", "os": "ubuntu-20.04", - "image-name": "1.23.4-ubuntu-20.04-containerd", + "image-name": "1.24.1-ubuntu-20.04-containerd", "version": "{{isotime \"2006-01-02-1504\"}}" }, "sensitive-variables": ["hcloud_token"], diff --git a/templates/node-image/1.23.4-ubuntu-20-04-containerd/packer-validate.sh b/templates/node-image/1.24.1-ubuntu-20-04-containerd/packer-validate.sh similarity index 100% rename from templates/node-image/1.23.4-ubuntu-20-04-containerd/packer-validate.sh rename to templates/node-image/1.24.1-ubuntu-20-04-containerd/packer-validate.sh diff --git a/templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/base.sh b/templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/base.sh similarity index 100% rename from templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/base.sh rename to templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/base.sh diff --git a/templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/cilium-requirements.sh b/templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/cilium-requirements.sh similarity index 100% rename from templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/cilium-requirements.sh rename to templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/cilium-requirements.sh diff --git a/templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/cleanup.sh b/templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/cleanup.sh similarity index 100% rename from templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/cleanup.sh rename to templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/cleanup.sh diff --git a/templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/cri.sh b/templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/cri.sh similarity index 96% rename from templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/cri.sh rename to templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/cri.sh index 25e68e4ec..3f59c82eb 100644 --- a/templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/cri.sh +++ b/templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/cri.sh @@ -50,8 +50,8 @@ EOF # Apply sysctl params without reboot sysctl --system -CRUN=1.4.3 # https://github.com/containers/crun/releases -CONTAINERD=1.6.1 # https://github.com/containerd/containerd/releases +CRUN=1.4.5 # https://github.com/containers/crun/releases +CONTAINERD=1.6.5 # https://github.com/containerd/containerd/releases # Install containerd wget https://github.com/containerd/containerd/releases/download/v${CONTAINERD}/cri-containerd-cni-${CONTAINERD}-linux-amd64.tar.gz diff --git a/templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/kubernetes.sh b/templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/kubernetes.sh similarity index 95% rename from templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/kubernetes.sh rename to templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/kubernetes.sh index 7b98c72f3..3dac50450 100644 --- a/templates/node-image/1.23.4-ubuntu-20-04-containerd/scripts/kubernetes.sh +++ b/templates/node-image/1.24.1-ubuntu-20-04-containerd/scripts/kubernetes.sh @@ -23,7 +23,7 @@ echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/ apt-get update # Check actual version: https://github.com/kubernetes/kubernetes/releases -KUBERNETES_VERSION=1.23.4 # https://kubernetes.io/releases/#release-history +KUBERNETES_VERSION=1.24.1 # https://kubernetes.io/releases/#release-history apt-get install -y kubelet=$KUBERNETES_VERSION-00 kubeadm=$KUBERNETES_VERSION-00 kubectl=$KUBERNETES_VERSION-00 bash-completion apt-mark hold kubelet kubectl kubeadm diff --git a/test/e2e/Makefile b/test/e2e/Makefile index bf23a71b1..24bae2734 100644 --- a/test/e2e/Makefile +++ b/test/e2e/Makefile @@ -55,7 +55,8 @@ HETZNER_TEMPLATES := $(REPO_ROOT)/test/e2e/data/infrastructure-hetzner e2e-cilium-templates: helm repo add cilium https://helm.cilium.io/ - helm template cilium cilium/cilium --version 1.10.5 \ + helm repo update cilium + helm template cilium cilium/cilium --version 1.11.5 \ --namespace kube-system \ -f $(REPO_ROOT)/templates/cilium/cilium.yaml > $(REPO_ROOT)/test/e2e/data/cni/cilium/cilium.yaml @@ -81,6 +82,7 @@ cluster-templates-v1beta1: $(KUSTOMIZE) ## Generate cluster templates for v1beta $(KUSTOMIZE) build $(HETZNER_TEMPLATES)/v1beta1/cluster-template --load-restrictor LoadRestrictionsNone | sed 's/hcloud_secret_placeholder/$(shell echo -n "$(HCLOUD_TOKEN)" | base64 | tr -d '\n')/' > $(HETZNER_TEMPLATES)/v1beta1/cluster-template.yaml $(KUSTOMIZE) build $(HETZNER_TEMPLATES)/v1beta1/cluster-template-k8s-upgrade --load-restrictor LoadRestrictionsNone | sed 's/hcloud_secret_placeholder/$(shell echo -n "$(HCLOUD_TOKEN)" | base64 | tr -d '\n')/' > $(HETZNER_TEMPLATES)/v1beta1/cluster-template-k8s-upgrade.yaml $(KUSTOMIZE) build $(HETZNER_TEMPLATES)/v1beta1/cluster-template-k8s-upgrade-kcp-scale-in --load-restrictor LoadRestrictionsNone | sed 's/hcloud_secret_placeholder/$(shell echo -n "$(HCLOUD_TOKEN)" | base64 | tr -d '\n')/' > $(HETZNER_TEMPLATES)/v1beta1/cluster-template-k8s-upgrade-kcp-scale-in.yaml + $(KUSTOMIZE) build $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-packer --load-restrictor LoadRestrictionsNone | sed 's/hcloud_secret_placeholder/$(shell echo -n "$(HCLOUD_TOKEN)" | base64 | tr -d '\n')/' > $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-packer.yaml $(KUSTOMIZE) build $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-csr-off --load-restrictor LoadRestrictionsNone | sed 's/hcloud_secret_placeholder/$(shell echo -n "$(HCLOUD_TOKEN)" | base64 | tr -d '\n')/' > $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-csr-off.yaml $(KUSTOMIZE) build $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-load-balancer-extra-services --load-restrictor LoadRestrictionsNone | sed 's/hcloud_secret_placeholder/$(shell echo -n "$(HCLOUD_TOKEN)" | base64 | tr -d '\n')/' > $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-load-balancer-extra-services.yaml $(KUSTOMIZE) build $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-placement-groups --load-restrictor LoadRestrictionsNone | sed 's/hcloud_secret_placeholder/$(shell echo -n "$(HCLOUD_TOKEN)" | base64 | tr -d '\n')/' > $(HETZNER_TEMPLATES)/v1beta1/cluster-template-hcloud-feature-placement-groups.yaml diff --git a/test/e2e/config/hetzner-ci.yaml b/test/e2e/config/hetzner-ci.yaml index aebfc4c15..22482f825 100644 --- a/test/e2e/config/hetzner-ci.yaml +++ b/test/e2e/config/hetzner-ci.yaml @@ -63,8 +63,8 @@ providers: - name: hetzner type: InfrastructureProvider versions: - - name: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.17} # latest published release - value: https://github.com/syself/cluster-api-provider-hetzner/releases/download/${CAPH_LATEST_VERSION:-v1.0.0-alpha.17}/infrastructure-components.yaml + - name: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.18} # latest published release + value: https://github.com/syself/cluster-api-provider-hetzner/releases/download/${CAPH_LATEST_VERSION:-v1.0.0-alpha.18}/infrastructure-components.yaml type: "url" contract: v1beta1 files: @@ -72,6 +72,7 @@ providers: - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade-kcp-scale-in.yaml" + - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-csr-off.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-load-balancer-extra-services.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-placement-groups.yaml" @@ -89,6 +90,7 @@ providers: - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade-kcp-scale-in.yaml" + - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-csr-off.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-load-balancer-extra-services.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-placement-groups.yaml" @@ -99,10 +101,10 @@ providers: - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-kcp-remediation.yaml" variables: # Upgrade Test - KUBERNETES_VERSION_MANAGEMENT: "v1.23.6" - KUBERNETES_VERSION: "${KUBERNETES_VERSION:-v1.23.6}" - KUBERNETES_VERSION_UPGRADE_FROM: "v1.23.0" - KUBERNETES_VERSION_UPGRADE_TO: "v1.23.6" + KUBERNETES_VERSION_MANAGEMENT: "v1.24.1" + KUBERNETES_VERSION: "${KUBERNETES_VERSION:-v1.24.1}" + KUBERNETES_VERSION_UPGRADE_FROM: "v1.23.6" + KUBERNETES_VERSION_UPGRADE_TO: "v1.24.1" CONTROL_PLANE_MACHINE_TEMPLATE_UPGRADE_TO: "k8s-upgrade-control-plane" WORKERS_MACHINE_TEMPLATE_UPGRADE_TO: "k8s-upgrade-worker" KUBERNETES_IMAGE_UPGRADE_FROM: ${KUBERNETES_IMAGE_UPGRADE_FROM:-} @@ -113,10 +115,10 @@ variables: # NOTE: INIT_WITH_BINARY and INIT_WITH_KUBERNETES_VERSION are only used by the clusterctl upgrade test to initialize # the management cluster to be upgraded. - INIT_WITH_BINARY: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.0/clusterctl-linux-amd64" + INIT_WITH_BINARY: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.4/clusterctl-linux-amd64" INIT_WITH_PROVIDERS_CONTRACT: "v1beta1" - INIT_WITH_KUBERNETES_VERSION: "v1.23.6" - INIT_WITH_INFRASTRUCTURE_PROVIDER_VERSION: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.17} + INIT_WITH_KUBERNETES_VERSION: "v1.24.1" + INIT_WITH_INFRASTRUCTURE_PROVIDER_VERSION: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.18} # Cluster Addons CNI: "./data/cni/cilium/cilium.yaml" @@ -138,7 +140,7 @@ variables: HCLOUD_TOKEN: "admin123" HCLOUD_SSH_KEY: "test" HCLOUD_REGION: "nbg1" - HCLOUD_IMAGE_NAME: ${HCLOUD_IMAGE_NAME:-fedora-35} + HCLOUD_IMAGE_NAME: ${HCLOUD_IMAGE_NAME:-} HCLOUD_CONTROL_PLANE_MACHINE_TYPE: cpx31 HCLOUD_WORKER_MACHINE_TYPE: cpx21 REDACT_LOG_SCRIPT: "../../hack/log/redact.sh" @@ -146,7 +148,7 @@ variables: intervals: default/wait-cluster: ["15m", "10s"] default/wait-control-plane: ["30m", "10s"] - default/wait-worker-nodes: ["15m", "10s"] + default/wait-worker-nodes: ["20m", "10s"] default/wait-controllers: ["5m", "10s"] default/wait-delete-cluster: ["20m", "10s"] default/wait-machine-upgrade: ["20m", "10s"] diff --git a/test/e2e/config/hetzner-talos.yaml b/test/e2e/config/hetzner-talos.yaml index 744c45fdb..5d0f52201 100644 --- a/test/e2e/config/hetzner-talos.yaml +++ b/test/e2e/config/hetzner-talos.yaml @@ -95,7 +95,7 @@ variables: INIT_WITH_BINARY: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.0/clusterctl-linux-amd64" INIT_WITH_PROVIDERS_CONTRACT: "v1beta1" INIT_WITH_KUBERNETES_VERSION: "v1.23.6" - INIT_WITH_INFRASTRUCTURE_PROVIDER_VERSION: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.17} + INIT_WITH_INFRASTRUCTURE_PROVIDER_VERSION: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.18} # Cluster Addons CNI: "./data/cni/cilium/cilium.yaml" diff --git a/test/e2e/config/hetzner.yaml b/test/e2e/config/hetzner.yaml index f5d7243ac..a4ee53fcc 100644 --- a/test/e2e/config/hetzner.yaml +++ b/test/e2e/config/hetzner.yaml @@ -63,8 +63,8 @@ providers: - name: hetzner type: InfrastructureProvider versions: - - name: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.17} # latest published release - value: https://github.com/syself/cluster-api-provider-hetzner/releases/download/${CAPH_LATEST_VERSION:-v1.0.0-alpha.17}/infrastructure-components.yaml + - name: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.18} # latest published release + value: https://github.com/syself/cluster-api-provider-hetzner/releases/download/${CAPH_LATEST_VERSION:-v1.0.0-alpha.18}/infrastructure-components.yaml type: "url" contract: v1beta1 files: @@ -72,6 +72,7 @@ providers: - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade-kcp-scale-in.yaml" + - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-csr-off.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-load-balancer-extra-services.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-placement-groups.yaml" @@ -95,6 +96,7 @@ providers: - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-k8s-upgrade-kcp-scale-in.yaml" + - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-csr-off.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-load-balancer-extra-services.yaml" - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-placement-groups.yaml" @@ -105,10 +107,10 @@ providers: - sourcePath: "../data/infrastructure-hetzner/v1beta1/cluster-template-kcp-remediation.yaml" variables: # Upgrade Test - KUBERNETES_VERSION_MANAGEMENT: "v1.23.6" - KUBERNETES_VERSION: "${KUBERNETES_VERSION:-v1.23.6}" - KUBERNETES_VERSION_UPGRADE_FROM: "v1.23.0" - KUBERNETES_VERSION_UPGRADE_TO: "v1.23.6" + KUBERNETES_VERSION_MANAGEMENT: "v1.24.1" + KUBERNETES_VERSION: "${KUBERNETES_VERSION:-v1.24.1}" + KUBERNETES_VERSION_UPGRADE_FROM: "v1.23.6" + KUBERNETES_VERSION_UPGRADE_TO: "v1.24.1" CONTROL_PLANE_MACHINE_TEMPLATE_UPGRADE_TO: "k8s-upgrade-control-plane" WORKERS_MACHINE_TEMPLATE_UPGRADE_TO: "k8s-upgrade-worker" KUBERNETES_IMAGE_UPGRADE_FROM: ${KUBERNETES_IMAGE_UPGRADE_FROM:-} @@ -119,10 +121,10 @@ variables: # NOTE: INIT_WITH_BINARY and INIT_WITH_KUBERNETES_VERSION are only used by the clusterctl upgrade test to initialize # the management cluster to be upgraded. - INIT_WITH_BINARY: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.0/clusterctl-linux-amd64" + INIT_WITH_BINARY: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.1.4/clusterctl-linux-amd64" INIT_WITH_PROVIDERS_CONTRACT: "v1beta1" - INIT_WITH_KUBERNETES_VERSION: "v1.23.6" - INIT_WITH_INFRASTRUCTURE_PROVIDER_VERSION: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.17} + INIT_WITH_KUBERNETES_VERSION: "v1.24.1" + INIT_WITH_INFRASTRUCTURE_PROVIDER_VERSION: ${CAPH_LATEST_VERSION:-v1.0.0-alpha.18} # Cluster Addons CNI: "./data/cni/cilium/cilium.yaml" @@ -144,7 +146,7 @@ variables: HCLOUD_TOKEN: "admin123" HCLOUD_SSH_KEY: "test" HCLOUD_REGION: "nbg1" - HCLOUD_IMAGE_NAME: ${HCLOUD_IMAGE_NAME:-fedora-35} + HCLOUD_IMAGE_NAME: ${HCLOUD_IMAGE_NAME:-} HCLOUD_CONTROL_PLANE_MACHINE_TYPE: cpx31 HCLOUD_WORKER_MACHINE_TYPE: cpx21 REDACT_LOG_SCRIPT: "../../hack/log/redact.sh" @@ -152,7 +154,7 @@ variables: intervals: default/wait-cluster: ["15m", "10s"] default/wait-control-plane: ["30m", "10s"] - default/wait-worker-nodes: ["15m", "10s"] + default/wait-worker-nodes: ["20m", "10s"] default/wait-controllers: ["5m", "10s"] default/wait-delete-cluster: ["20m", "10s"] default/wait-machine-upgrade: ["20m", "10s"] diff --git a/test/e2e/data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer/kustomization.yaml b/test/e2e/data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer/kustomization.yaml new file mode 100644 index 000000000..3b392bbaa --- /dev/null +++ b/test/e2e/data/infrastructure-hetzner/v1beta1/cluster-template-hcloud-feature-packer/kustomization.yaml @@ -0,0 +1,13 @@ +bases: + - ../../../../../../templates/cluster-templates/bases/capi-cluster-kubeadm.yaml + - ../../../../../../templates/cluster-templates/bases/hcloud-hetznerCluster.yaml + - ../../../../../../templates/cluster-templates/bases/hcloud-kcp-packer.yaml + - ../../../../../../templates/cluster-templates/bases/hcloud-mt-control-plane-packer.yaml + - ../../../../../../templates/cluster-templates/bases/hcloud-md-0-kubeadm.yaml + - ../../../../../../templates/cluster-templates/bases/kct-md-0-packer.yaml + - ../../../../../../templates/cluster-templates/bases/hcloud-mt-md-0-packer.yaml + - ../bases/crs-cni.yaml + - ../bases/crs-ccm.yaml + - ../bases/secret.yaml +patchesStrategicMerge: + - ../patches/cluster_patch.yaml diff --git a/test/e2e/feature_packer_test.go b/test/e2e/feature_packer_test.go new file mode 100644 index 000000000..8b71c42ab --- /dev/null +++ b/test/e2e/feature_packer_test.go @@ -0,0 +1,40 @@ +/* +Copyright 2022 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package e2e + +import ( + "context" + + . "github.com/onsi/ginkgo" +) + +var _ = Describe("[Feature Packer] Testing Cluster Flavor with 3x control-planes 1x worker", func() { + ctx := context.TODO() + + Context("Testing packer image", func() { + CaphClusterDeploymentSpec(ctx, func() CaphClusterDeploymentSpecInput { + return CaphClusterDeploymentSpecInput{ + E2EConfig: e2eConfig, + ClusterctlConfigPath: clusterctlConfigPath, + BootstrapClusterProxy: bootstrapClusterProxy, + ArtifactFolder: artifactFolder, + SkipCleanup: skipCleanup, + Flavor: "hcloud-feature-packer", + } + }) + }) +}) diff --git a/test/e2e/upgrade_caph_controller.go b/test/e2e/upgrade_caph_controller.go index 6a09c27e6..468c7ec73 100644 --- a/test/e2e/upgrade_caph_controller.go +++ b/test/e2e/upgrade_caph_controller.go @@ -208,7 +208,7 @@ func ClusterctlUpgradeSpec(ctx context.Context, inputGetter func() ClusterctlUpg LogFolder: filepath.Join(input.ArtifactFolder, "clusters", cluster.Name), }, input.E2EConfig.GetIntervals(specName, "wait-controllers")...) - ginkgo.By("THE MANAGEMENT CLUSTER WITH THE OLDER VERSION OF PROVIDERS IS UP&RUNNING!") + ginkgo.By("THE MANAGEMENT CLUSTER WITH THE OLDER VERSION OF PROVIDERS IS UP & RUNNING!") Byf("Creating a namespace for hosting the %s test workload cluster", specName) testNamespace, testCancelWatches = framework.CreateNamespaceAndWatchEvents(ctx, framework.CreateNamespaceAndWatchEventsInput{ @@ -269,7 +269,7 @@ func ClusterctlUpgradeSpec(ctx context.Context, inputGetter func() ClusterctlUpg return n, nil }, input.E2EConfig.GetIntervals(specName, "wait-worker-nodes")...).Should(gomega.Equal(*controlPlaneMachineCount + *workerMachineCount)) - ginkgo.By("THE MANAGEMENT CLUSTER WITH OLDER VERSION OF PROVIDERS WORKS!") + ginkgo.By("THE MANAGEMENT CLUSTER WITH THE OLDER VERSION OF CAPH WORKS!") if input.PreUpgrade != nil { ginkgo.By("Running Pre-upgrade steps against the management cluster")