summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/e2e/suite/005-app-wide-update-strategy/01-assert.yaml19
-rw-r--r--test/e2e/suite/005-app-wide-update-strategy/01-install.yaml55
-rw-r--r--test/e2e/suite/005-app-wide-update-strategy/02-assert.yaml40
-rw-r--r--test/e2e/suite/005-app-wide-update-strategy/02-run-updater.yaml7
-rw-r--r--test/e2e/suite/005-app-wide-update-strategy/99-delete.yaml16
-rw-r--r--test/e2e/suite/005-app-wide-update-strategy/README.md68
6 files changed, 205 insertions, 0 deletions
diff --git a/test/e2e/suite/005-app-wide-update-strategy/01-assert.yaml b/test/e2e/suite/005-app-wide-update-strategy/01-assert.yaml
new file mode 100644
index 0000000..b44e4dd
--- /dev/null
+++ b/test/e2e/suite/005-app-wide-update-strategy/01-assert.yaml
@@ -0,0 +1,19 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: image-updater-005-01
+status:
+ health:
+ status: Healthy
+ sync:
+ status: Synced
+---
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: image-updater-005-02
+status:
+ health:
+ status: Healthy
+ sync:
+ status: Synced
diff --git a/test/e2e/suite/005-app-wide-update-strategy/01-install.yaml b/test/e2e/suite/005-app-wide-update-strategy/01-install.yaml
new file mode 100644
index 0000000..e8c6424
--- /dev/null
+++ b/test/e2e/suite/005-app-wide-update-strategy/01-install.yaml
@@ -0,0 +1,55 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: image-updater-e2e-005-01
+---
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: image-updater-005-01
+ annotations:
+ argocd-image-updater.argoproj.io/image-list: guestbook=gcr.io/heptio-images/ks-guestbook-demo:~0
+ argocd-image-updater.argoproj.io/guestbook.update-strategy: semver
+ finalizers:
+ - resources-finalizer.argocd.argoproj.io
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/argoproj/argocd-example-apps.git
+ path: kustomize-guestbook
+ targetRevision: HEAD
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: image-updater-e2e-005-01
+ syncPolicy:
+ automated: {}
+ retry:
+ limit: 2
+---
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: image-updater-e2e-005-02
+---
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: image-updater-005-02
+ annotations:
+ argocd-image-updater.argoproj.io/image-list: guestbook=gcr.io/heptio-images/ks-guestbook-demo:latest
+ argocd-image-updater.argoproj.io/guestbook.update-strategy: latest
+ finalizers:
+ - resources-finalizer.argocd.argoproj.io
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/argoproj/argocd-example-apps.git
+ path: kustomize-guestbook
+ targetRevision: HEAD
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: image-updater-e2e-005-02
+ syncPolicy:
+ automated: {}
+ retry:
+ limit: 2
diff --git a/test/e2e/suite/005-app-wide-update-strategy/02-assert.yaml b/test/e2e/suite/005-app-wide-update-strategy/02-assert.yaml
new file mode 100644
index 0000000..376c31b
--- /dev/null
+++ b/test/e2e/suite/005-app-wide-update-strategy/02-assert.yaml
@@ -0,0 +1,40 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: image-updater-005-01
+spec:
+ source:
+ kustomize:
+ images:
+ - gcr.io/heptio-images/ks-guestbook-demo:0.2
+status:
+ health:
+ status: Healthy
+ sync:
+ status: Synced
+---
+apiVersion: v1
+kind: Pod
+metadata:
+ namespace: image-updater-e2e-005-01
+spec:
+ containers:
+ - image: gcr.io/heptio-images/ks-guestbook-demo:0.2
+---
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: image-updater-005-02
+status:
+ health:
+ status: Healthy
+ sync:
+ status: Synced
+---
+apiVersion: v1
+kind: Pod
+metadata:
+ namespace: image-updater-e2e-005-02
+spec:
+ containers:
+ - image: gcr.io/heptio-images/ks-guestbook-demo:0.1 \ No newline at end of file
diff --git a/test/e2e/suite/005-app-wide-update-strategy/02-run-updater.yaml b/test/e2e/suite/005-app-wide-update-strategy/02-run-updater.yaml
new file mode 100644
index 0000000..f28b1bc
--- /dev/null
+++ b/test/e2e/suite/005-app-wide-update-strategy/02-run-updater.yaml
@@ -0,0 +1,7 @@
+apiVersion: kuttl.dev/v1beta1
+kind: TestStep
+commands:
+- script: |
+ ${SRC_DIR}/dist/argocd-image-updater run --once \
+ --argocd-namespace argocd-image-updater-e2e \
+ --loglevel info \ No newline at end of file
diff --git a/test/e2e/suite/005-app-wide-update-strategy/99-delete.yaml b/test/e2e/suite/005-app-wide-update-strategy/99-delete.yaml
new file mode 100644
index 0000000..5982dbe
--- /dev/null
+++ b/test/e2e/suite/005-app-wide-update-strategy/99-delete.yaml
@@ -0,0 +1,16 @@
+apiVersion: kuttl.dev/v1beta1
+kind: TestStep
+timeout: 120
+delete:
+- apiVersion: argoproj.io/v1alpha1
+ kind: Application
+ name: image-updater-005-01
+- apiVersion: v1
+ kind: Namespace
+ name: image-updater-e2e-005-01
+- apiVersion: argoproj.io/v1alpha1
+ kind: Application
+ name: image-updater-005-02
+- apiVersion: v1
+ kind: Namespace
+ name: image-updater-e2e-005-02
diff --git a/test/e2e/suite/005-app-wide-update-strategy/README.md b/test/e2e/suite/005-app-wide-update-strategy/README.md
new file mode 100644
index 0000000..33a64d3
--- /dev/null
+++ b/test/e2e/suite/005-app-wide-update-strategy/README.md
@@ -0,0 +1,68 @@
+This test case verifies [app wide update strategy](https://argocd-image-updater.readthedocs.io/en/stable/configuration/images/#update-strategies)
+
+This test case uses image from public container registry and application source from public GitHub repo.
+
+To run this individual test case,
+
+* make sure both docker daemon and k8s cluster is running
+* `cd $HOME/go/src/image-updater/test/e2e`
+* `SRC_DIR=$HOME/go/src/image-updater kubectl kuttl test --namespace argocd-image-updater-e2e --timeout 120 --test 005-app-wide-update-strategy`
+
+Test output:
+```bash
+=== RUN kuttl
+ harness.go:464: starting setup
+ harness.go:255: running tests using configured kubeconfig.
+ harness.go:278: Successful connection to cluster at: https://127.0.0.1:6443
+ harness.go:363: running tests
+ harness.go:75: going to run test suite with timeout of 120 seconds for each step
+ harness.go:375: testsuite: ./suite has 7 tests
+=== RUN kuttl/harness
+=== RUN kuttl/harness/005-app-wide-update-strategy
+=== PAUSE kuttl/harness/005-app-wide-update-strategy
+=== CONT kuttl/harness/005-app-wide-update-strategy
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy | Ignoring README.md as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy | Skipping creation of user-supplied namespace: argocd-image-updater-e2e
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/1-install | starting test step 1-install
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/1-install | Namespace:/image-updater-e2e-005-01 updated
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/1-install | Application:argocd-image-updater-e2e/image-updater-005-01 updated
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/1-install | Namespace:/image-updater-e2e-005-02 updated
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/1-install | Application:argocd-image-updater-e2e/image-updater-005-02 updated
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/1-install | test step completed 1-install
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | starting test step 2-run-updater
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | running command: [sh -c ${SRC_DIR}/dist/argocd-image-updater run --once \
+ --argocd-namespace argocd-image-updater-e2e \
+ --loglevel info
+ ]
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="argocd-image-updater v99.9.9+6c9e2ee starting [loglevel:INFO, interval:once, healthport:off]"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=warning msg="commit message template at /app/config/commit.template does not exist, using default"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=warning msg="Registry configuration at /app/config/registries.conf could not be read: stat /app/config/registries.conf: no such file or directory -- using default configuration"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="ArgoCD configuration: [apiKind=kubernetes, server=argocd-server.argocd-image-updater-e2e, auth_token=false, insecure=false, grpc_web=false, plaintext=false]"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="Starting metrics server on TCP port=8081"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="Warming up image cache"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=warning msg="Unknown sort option skip -- using semver" image_alias=guestbook image_digest= image_name=gcr.io/heptio-images/ks-guestbook-demo image_tag=0.1 registry_url=gcr.io
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="Setting new image to gcr.io/heptio-images/ks-guestbook-demo:0.1" alias=guestbook application=image-updater-005-02 image_name=heptio-images/ks-guestbook-demo image_tag=0.2 registry=gcr.io
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="Successfully updated image 'gcr.io/heptio-images/ks-guestbook-demo:0.2' to 'gcr.io/heptio-images/ks-guestbook-demo:0.1', but pending spec update (dry run=true)" alias=guestbook application=image-updater-005-02 image_name=heptio-images/ks-guestbook-demo image_tag=0.2 registry=gcr.io
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="Dry run - not committing 1 changes to application" application=image-updater-005-02
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="Finished cache warm-up, pre-loaded 0 meta data entries from 2 registries"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=info msg="Starting image update cycle, considering 2 annotated application(s) for update"
+ logger.go:42: 17:59:36 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:36-04:00" level=warning msg="Unknown sort option skip -- using semver" image_alias=guestbook image_digest= image_name=gcr.io/heptio-images/ks-guestbook-demo image_tag=0.1 registry_url=gcr.io
+ logger.go:42: 17:59:37 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:37-04:00" level=info msg="Setting new image to gcr.io/heptio-images/ks-guestbook-demo:0.1" alias=guestbook application=image-updater-005-02 image_name=heptio-images/ks-guestbook-demo image_tag=0.2 registry=gcr.io
+ logger.go:42: 17:59:37 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:37-04:00" level=info msg="Successfully updated image 'gcr.io/heptio-images/ks-guestbook-demo:0.2' to 'gcr.io/heptio-images/ks-guestbook-demo:0.1', but pending spec update (dry run=false)" alias=guestbook application=image-updater-005-02 image_name=heptio-images/ks-guestbook-demo image_tag=0.2 registry=gcr.io
+ logger.go:42: 17:59:37 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:37-04:00" level=info msg="Committing 1 parameter update(s) for application image-updater-005-02" application=image-updater-005-02
+ logger.go:42: 17:59:37 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:37-04:00" level=info msg="Successfully updated the live application spec" application=image-updater-005-02
+ logger.go:42: 17:59:37 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:37-04:00" level=info msg="Processing results: applications=2 images_considered=2 images_skipped=0 images_updated=1 errors=0"
+ logger.go:42: 17:59:37 | 005-app-wide-update-strategy/2-run-updater | time="2024-09-09T17:59:37-04:00" level=info msg=Finished.
+ logger.go:42: 17:59:38 | 005-app-wide-update-strategy/2-run-updater | test step completed 2-run-updater
+ logger.go:42: 17:59:38 | 005-app-wide-update-strategy/99-delete | starting test step 99-delete
+ logger.go:42: 17:59:38 | 005-app-wide-update-strategy/99-delete | test step completed 99-delete
+ logger.go:42: 17:59:38 | 005-app-wide-update-strategy | skipping kubernetes event logging
+=== NAME kuttl
+ harness.go:407: run tests finished
+ harness.go:515: cleaning up
+ harness.go:572: removing temp folder: ""
+--- PASS: kuttl (2.18s)
+ --- PASS: kuttl/harness (0.00s)
+ --- PASS: kuttl/harness/005-app-wide-update-strategy (2.17s)
+PASS
+``` \ No newline at end of file