From bb24418a2ecc9304876e4c881f3d6b3ac8579eb3 Mon Sep 17 00:00:00 2001 From: rock Date: Mon, 28 Sep 2026 23:06:16 +0800 Subject: [PATCH] feat: remove ArgoCD Image Updater, replaced by Forgejo webhook Image promotion now handled by api-gw webhook endpoint (/v1/webhooks/forgejo) which patches ArgoCD Application CRs on Forgejo package push events (homelab-frontend PR #55). - Delete Image Updater Application and values - Remove argocd-image-updater.argoproj.io annotations from all apps - Registry secrets kept (used by webhook digest queries + imagePullSecrets) --- k8s/argocd/apps/01-image-updater.yaml | 33 ---------- k8s/argocd/apps/30-security.yaml | 27 ++------- k8s/argocd/apps/55-api-gateway.yaml | 8 +-- k8s/argocd/apps/60-applications.yaml | 7 +-- k8s/argocd/apps/70-poimen.yaml | 13 ++-- k8s/argocd/apps/71-poimen-toolkit.yaml | 8 +-- k8s/infra/argocd-image-updater/values.yaml | 70 ---------------------- 7 files changed, 18 insertions(+), 148 deletions(-) delete mode 100644 k8s/argocd/apps/01-image-updater.yaml delete mode 100644 k8s/infra/argocd-image-updater/values.yaml diff --git a/k8s/argocd/apps/01-image-updater.yaml b/k8s/argocd/apps/01-image-updater.yaml deleted file mode 100644 index c715316..0000000 --- a/k8s/argocd/apps/01-image-updater.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# ArgoCD Image Updater - auto-updates Application images from registry -# Watches forgejo.riotpiao.com for new image tags and updates Applications -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: argocd-image-updater - namespace: argocd - finalizers: - - resources-finalizer.argocd.argoproj.io - annotations: - argocd.argoproj.io/sync-wave: "1" -spec: - project: homelab - revisionHistoryLimit: 3 - sources: - - repoURL: https://argoproj.github.io/argo-helm - chart: argocd-image-updater - targetRevision: "0.11.2" - helm: - valueFiles: - - $values/k8s/infra/argocd-image-updater/values.yaml - - repoURL: https://forgejo.riotpiao.com/riotpiao-poimen/homelab.git - targetRevision: main - ref: values - destination: - server: https://kubernetes.default.svc - namespace: argocd - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=false diff --git a/k8s/argocd/apps/30-security.yaml b/k8s/argocd/apps/30-security.yaml index bda5074..a955315 100644 --- a/k8s/argocd/apps/30-security.yaml +++ b/k8s/argocd/apps/30-security.yaml @@ -152,13 +152,8 @@ metadata: namespace: argocd annotations: argocd.argoproj.io/sync-wave: "3" - argocd-image-updater.argoproj.io/image-list: runner=forgejo.riotpiao.com/rock/forgejo-runner-golang - argocd-image-updater.argoproj.io/runner.update-strategy: newest-build - argocd-image-updater.argoproj.io/runner.allow-tags: regexp:^[0-9a-f]{7}$|^latest$|^v[0-9]+$ - argocd-image-updater.argoproj.io/runner.helm.image-name: runner.image.repository - argocd-image-updater.argoproj.io/runner.helm.image-tag: runner.image.tag - argocd-image-updater.argoproj.io/write-back-method: git - argocd-image-updater.argoproj.io/git-branch: main + # Image promotion: Forgejo package webhook → api-gw. + # Replaced ArgoCD Image Updater (removed 2026-09-10). spec: project: homelab source: @@ -180,13 +175,8 @@ metadata: namespace: argocd annotations: argocd.argoproj.io/sync-wave: "3" - argocd-image-updater.argoproj.io/image-list: runner=forgejo.riotpiao.com/rock/forgejo-runner-node - argocd-image-updater.argoproj.io/runner.update-strategy: newest-build - argocd-image-updater.argoproj.io/runner.allow-tags: regexp:^[0-9a-f]{7}$|^latest$|^v[0-9]+$ - argocd-image-updater.argoproj.io/runner.helm.image-name: runner.image.repository - argocd-image-updater.argoproj.io/runner.helm.image-tag: runner.image.tag - argocd-image-updater.argoproj.io/write-back-method: git - argocd-image-updater.argoproj.io/git-branch: main + # Image promotion: Forgejo package webhook → api-gw. + # Replaced ArgoCD Image Updater (removed 2026-09-10). spec: project: homelab source: @@ -211,13 +201,8 @@ metadata: namespace: argocd annotations: argocd.argoproj.io/sync-wave: "3" - argocd-image-updater.argoproj.io/image-list: runner=forgejo.riotpiao.com/rock/forgejo-runner-rust - argocd-image-updater.argoproj.io/runner.update-strategy: newest-build - argocd-image-updater.argoproj.io/runner.allow-tags: regexp:^[0-9a-f]{7}$|^latest$|^v[0-9]+$ - argocd-image-updater.argoproj.io/runner.helm.image-name: runner.image.repository - argocd-image-updater.argoproj.io/runner.helm.image-tag: runner.image.tag - argocd-image-updater.argoproj.io/write-back-method: git - argocd-image-updater.argoproj.io/git-branch: main + # Image promotion: Forgejo package webhook → api-gw. + # Replaced ArgoCD Image Updater (removed 2026-09-10). spec: project: homelab source: diff --git a/k8s/argocd/apps/55-api-gateway.yaml b/k8s/argocd/apps/55-api-gateway.yaml index a05d36a..76a1992 100644 --- a/k8s/argocd/apps/55-api-gateway.yaml +++ b/k8s/argocd/apps/55-api-gateway.yaml @@ -36,11 +36,9 @@ metadata: app.kubernetes.io/component: gateway annotations: argocd.argoproj.io/sync-wave: "7" - # ArgoCD Image Updater - auto-update on new image push - argocd-image-updater.argoproj.io/image-list: gw=forgejo.riotpiao.com/rock/api-gateway - argocd-image-updater.argoproj.io/gw.update-strategy: digest - argocd-image-updater.argoproj.io/gw.allow-tags: regexp:^latest$ - argocd-image-updater.argoproj.io/write-back-method: argocd + # Image promotion: Forgejo package webhook → api-gw /v1/webhooks/forgejo + # → patches this Application's kustomize.images via k8s API. + # Replaced ArgoCD Image Updater (removed 2026-09-10). spec: project: homelab revisionHistoryLimit: 3 diff --git a/k8s/argocd/apps/60-applications.yaml b/k8s/argocd/apps/60-applications.yaml index d64c58b..f63f0af 100644 --- a/k8s/argocd/apps/60-applications.yaml +++ b/k8s/argocd/apps/60-applications.yaml @@ -246,11 +246,8 @@ metadata: namespace: argocd annotations: argocd.argoproj.io/sync-wave: "8" - # ArgoCD Image Updater - auto-update on new image push - argocd-image-updater.argoproj.io/image-list: app=forgejo.riotpiao.com/rock/portfolio - argocd-image-updater.argoproj.io/app.update-strategy: digest - argocd-image-updater.argoproj.io/app.allow-tags: regexp:^latest$ - argocd-image-updater.argoproj.io/write-back-method: argocd + # Image promotion: Forgejo package webhook → api-gw. + # Replaced ArgoCD Image Updater (removed 2026-09-10). spec: project: homelab source: diff --git a/k8s/argocd/apps/70-poimen.yaml b/k8s/argocd/apps/70-poimen.yaml index 4d26300..9256c74 100644 --- a/k8s/argocd/apps/70-poimen.yaml +++ b/k8s/argocd/apps/70-poimen.yaml @@ -27,15 +27,10 @@ metadata: app.kubernetes.io/part-of: poimen annotations: argocd.argoproj.io/sync-wave: "7" - # ── Image Updater ───────────────────────────────────────────────────────── - argocd-image-updater.argoproj.io/image-list: "workflows=forgejo.riotpiao.com/riotpiao-poimen/poimen-workflows,memory=forgejo.riotpiao.com/riotpiao-poimen/poimen-memory,frontend=forgejo.riotpiao.com/riotpiao-poimen/poimen-frontend" - argocd-image-updater.argoproj.io/workflows.update-strategy: digest - argocd-image-updater.argoproj.io/workflows.allow-tags: regexp:^latest$ - argocd-image-updater.argoproj.io/memory.update-strategy: digest - argocd-image-updater.argoproj.io/memory.allow-tags: regexp:^latest$ - argocd-image-updater.argoproj.io/frontend.update-strategy: digest - argocd-image-updater.argoproj.io/frontend.allow-tags: regexp:^latest$ - argocd-image-updater.argoproj.io/write-back-method: argocd + # ── Image promotion ────────────────────────────────────────────────────── + # Forgejo package webhook → api-gw patches kustomize.images per source. + # Source index mapping: 0=workflows, 1=memory, 3=frontend. + # Replaced ArgoCD Image Updater (removed 2026-09-10). spec: project: homelab # Multi-source: each repo owns its own k8s manifests. diff --git a/k8s/argocd/apps/71-poimen-toolkit.yaml b/k8s/argocd/apps/71-poimen-toolkit.yaml index 00d2352..669d61d 100644 --- a/k8s/argocd/apps/71-poimen-toolkit.yaml +++ b/k8s/argocd/apps/71-poimen-toolkit.yaml @@ -5,11 +5,9 @@ metadata: namespace: argocd annotations: argocd.argoproj.io/sync-wave: "7" - argocd-image-updater.argoproj.io/image-list: | - controller=ghcr.io/riotpiao-poimen/poimen-toolkit-controller - argocd-image-updater.argoproj.io/controller.update-strategy: digest - argocd-image-updater.argoproj.io/controller.allow-tags: regexp:^latest$ - argocd-image-updater.argoproj.io/write-back-method: argocd + # Image promotion: Forgejo package webhook → api-gw. + # Tracks: poimen-toolkit-controller, pi-worker. + # Replaced ArgoCD Image Updater (removed 2026-09-10). spec: project: homelab source: diff --git a/k8s/infra/argocd-image-updater/values.yaml b/k8s/infra/argocd-image-updater/values.yaml deleted file mode 100644 index 1935a16..0000000 --- a/k8s/infra/argocd-image-updater/values.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# ArgoCD Image Updater configuration -# Watches Forgejo registry and updates ArgoCD Applications with new image tags - -config: - # Registry configuration - Forgejo allows anonymous pulls - registries: - - name: forgejo - api_url: https://forgejo.riotpiao.com - prefix: forgejo.riotpiao.com - default: true - insecure: false - - # Log level - logLevel: debug - - # ArgoCD API server - argocd: - grpcWeb: true - serverAddress: argocd-server.argocd.svc.cluster.local - insecure: true - plaintext: true - - # Git write-back configuration (for multi-source Applications) - git: - # Commit author for image updates - user: - name: "ArgoCD Image Updater" - email: "argocd-image-updater@riotpiao.com" - # Use SSH keys from ArgoCD's known hosts + credentials - # Image Updater inherits ArgoCD's git credentials (mounted via ArgoCD secret) - -# Mount ArgoCD's git credentials for write-back -extraVolumes: - - name: argocd-ssh-known-hosts-cm - configMap: - name: argocd-ssh-known-hosts-cm - defaultMode: 0644 - - name: argocd-gpg-keys-cm - configMap: - name: argocd-gpg-keys-cm - optional: true - defaultMode: 0644 - - name: argocd-gpg-pubring - configMap: - name: argocd-gpg-pubring-cm - optional: true - defaultMode: 0644 - -extraVolumeMounts: - - name: argocd-ssh-known-hosts-cm - mountPath: /etc/ssh/ssh_known_hosts.d/argocd-ssh-known-hosts - subPath: ssh_known_hosts - - name: argocd-gpg-keys-cm - mountPath: /etc/gpg/source - - name: argocd-gpg-pubring - mountPath: /etc/gpg/pubring - -# Extra environment variables -extraEnv: - - name: GIT_SSH_KNOWN_HOSTS_CONFIG_MAP_ENABLED - value: "true" - -# Resources -resources: - requests: - cpu: 50m - memory: 64Mi - limits: - cpu: 200m - memory: 128Mi