From 7eba0aeddeda9c0ba1fa05bc603c19655e4a36ff Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Mon, 6 May 2024 19:21:16 +0300 Subject: [PATCH 1/3] ci: Adapt image automation test to v1beta2 Signed-off-by: Stefan Prodan --- .github/workflows/e2e-bootstrap.yaml | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/.github/workflows/e2e-bootstrap.yaml b/.github/workflows/e2e-bootstrap.yaml index a6ce5404..41c06aad 100644 --- a/.github/workflows/e2e-bootstrap.yaml +++ b/.github/workflows/e2e-bootstrap.yaml @@ -36,6 +36,8 @@ jobs: kubectl_version: v1.29.2 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main + - name: Setup yq + uses: fluxcd/pkg/actions/yq@main - name: Build run: | make cmd/flux/.manifests.done @@ -105,21 +107,10 @@ jobs: --path=test-cluster \ --read-write-key /tmp/flux reconcile image repository podinfo + /tmp/flux reconcile image update flux-system /tmp/flux get images all - - retries=10 - count=0 - ok=false - until ${ok}; do - /tmp/flux get image update flux-system | grep 'commit' && ok=true || ok=false - count=$(($count + 1)) - if [[ ${count} -eq ${retries} ]]; then - echo "No more retries left" - exit 1 - fi - sleep 6 - /tmp/flux reconcile image update flux-system - done + kubectl -n flux-system get -o yaml ImageUpdateAutomation flux-system | \ + yq '.status.lastPushCommit | length > 1' | grep 'true' env: GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} GITHUB_REPO_NAME: ${{ steps.vars.outputs.test_repo_name }} From de46bae6fe49e0c2b7b5647dfd4dadfb55a02acd Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Mon, 6 May 2024 20:02:16 +0300 Subject: [PATCH 2/3] Address kustomize version cmd deprecation Signed-off-by: Stefan Prodan --- manifests/scripts/bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/scripts/bundle.sh b/manifests/scripts/bundle.sh index c8f242c8..4259e026 100755 --- a/manifests/scripts/bundle.sh +++ b/manifests/scripts/bundle.sh @@ -42,7 +42,7 @@ rm -rf $OUT_PATH mkdir -p $OUT_PATH files="" -info using "$(kustomize version --short)" +info using kustomize "$(kustomize version)" # build controllers for controller in ${IN_PATH}/bases/*/; do From 47e30e2e5f56f6a4592ee1bda8f26906366e958c Mon Sep 17 00:00:00 2001 From: Stefan Prodan Date: Mon, 6 May 2024 20:10:04 +0300 Subject: [PATCH 3/3] ci: Run bootstrap e2e using Kubernetes 1.30 Signed-off-by: Stefan Prodan --- .github/workflows/e2e-bootstrap.yaml | 32 +++++++++++----------------- Makefile | 3 +-- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/.github/workflows/e2e-bootstrap.yaml b/.github/workflows/e2e-bootstrap.yaml index 41c06aad..f003e81d 100644 --- a/.github/workflows/e2e-bootstrap.yaml +++ b/.github/workflows/e2e-bootstrap.yaml @@ -32,16 +32,14 @@ jobs: cluster_name: kind # The versions below should target the newest Kubernetes version # Keep this up-to-date with https://endoflife.date/kubernetes - node_image: kindest/node:v1.29.2 - kubectl_version: v1.29.2 + node_image: ghcr.io/fluxcd/kindest/node:v1.30.0-amd64 + kubectl_version: v1.30.0 - name: Setup Kustomize uses: fluxcd/pkg/actions/kustomize@main - name: Setup yq uses: fluxcd/pkg/actions/yq@main - name: Build - run: | - make cmd/flux/.manifests.done - go build -o /tmp/flux ./cmd/flux + run: make build-dev - name: Set outputs id: vars run: | @@ -53,7 +51,7 @@ jobs: echo "test_repo_name=$TEST_REPO_NAME" >> $GITHUB_OUTPUT - name: bootstrap init run: | - /tmp/flux bootstrap github --manifests ./manifests/install/ \ + ./bin/flux bootstrap github --manifests ./manifests/install/ \ --owner=fluxcd-testing \ --image-pull-secret=ghcr-auth \ --registry-creds=fluxcd:$GITHUB_TOKEN \ @@ -68,7 +66,7 @@ jobs: kubectl -n flux-system get secret ghcr-auth | grep dockerconfigjson - name: bootstrap no-op run: | - /tmp/flux bootstrap github --manifests ./manifests/install/ \ + ./bin/flux bootstrap github --manifests ./manifests/install/ \ --owner=fluxcd-testing \ --image-pull-secret=ghcr-auth \ --repository=${{ steps.vars.outputs.test_repo_name }} \ @@ -80,7 +78,7 @@ jobs: - name: bootstrap customize run: | make setup-bootstrap-patch - /tmp/flux bootstrap github --manifests ./manifests/install/ \ + ./bin/flux bootstrap github --manifests ./manifests/install/ \ --owner=fluxcd-testing \ --repository=${{ steps.vars.outputs.test_repo_name }} \ --branch=main \ @@ -95,20 +93,20 @@ jobs: GITHUB_ORG_NAME: fluxcd-testing - name: uninstall run: | - /tmp/flux uninstall -s --keep-namespace + ./bin/flux uninstall -s --keep-namespace kubectl delete ns flux-system --timeout=10m --wait=true - name: test image automation run: | make setup-image-automation - /tmp/flux bootstrap github --manifests ./manifests/install/ \ + ./bin/flux bootstrap github --manifests ./manifests/install/ \ --owner=fluxcd-testing \ --repository=${{ steps.vars.outputs.test_repo_name }} \ --branch=main \ --path=test-cluster \ --read-write-key - /tmp/flux reconcile image repository podinfo - /tmp/flux reconcile image update flux-system - /tmp/flux get images all + ./bin/flux reconcile image repository podinfo + ./bin/flux reconcile image update flux-system + ./bin/flux get images all kubectl -n flux-system get -o yaml ImageUpdateAutomation flux-system | \ yq '.status.lastPushCommit | length > 1' | grep 'true' env: @@ -117,13 +115,9 @@ jobs: GITHUB_ORG_NAME: fluxcd-testing - name: delete repository if: ${{ always() }} + continue-on-error: true run: | - curl \ - -X DELETE \ - -H "Accept: application/vnd.github.v3+json" \ - -H "Authorization: token ${GITHUB_TOKEN}" \ - --fail --silent \ - https://api.github.com/repos/fluxcd-testing/${{ steps.vars.outputs.test_repo_name }} + gh repo delete fluxcd-testing/${{ steps.vars.outputs.test_repo_name }} --yes env: GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }} - name: Debug failure diff --git a/Makefile b/Makefile index 8a7b9fbb..787d369f 100644 --- a/Makefile +++ b/Makefile @@ -81,8 +81,7 @@ install-envtest: setup-envtest ENVTEST = $(shell pwd)/bin/setup-envtest .PHONY: envtest setup-envtest: ## Download envtest-setup locally if necessary. - # replace the commit SHA with 'latest' when https://github.com/kubernetes-sigs/controller-runtime/issues/2720 is fixed - $(call go-install-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest@c7e1dc9b5302d649d5531e19168dd7ea0013736d) + $(call go-install-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest@latest) # go-install-tool will 'go install' any package $2 and install it to $1. PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))