Skip to content

feat(argocd-image-updater): Add missing config values, webhook support, and controller flags#3800

Open
DrFaust92 wants to merge 4 commits intoargoproj:mainfrom
DrFaust92:feat/image-updater-chart-missing-values
Open

feat(argocd-image-updater): Add missing config values, webhook support, and controller flags#3800
DrFaust92 wants to merge 4 commits intoargoproj:mainfrom
DrFaust92:feat/image-updater-chart-missing-values

Conversation

@DrFaust92
Copy link
Copy Markdown
Contributor

@DrFaust92 DrFaust92 commented Mar 22, 2026

Checklist:

  • I have bumped the chart version according to versioning
  • I have updated the documentation according to documentation
  • I have updated the chart changelog with all the changes that come with this pull request according to changelog.
  • Any new values are backwards compatible and/or have sensible default.
  • I have signed off all my commits as required by DCO.
  • I have created a separate pull request for each chart according to pull requests
  • My build is green (troubleshooting builds).

Summary

The argocd-image-updater chart (v1.1.3) has several CLI flags and ConfigMap keys that are wired in the deployment template but missing from values.yaml, making them undiscoverable. Additionally, newer webhook secrets from v1.1.0 (CloudEvents for ECR) are not wired at all.

This PR adds first-class support for:

  • Missing config valueslog.format, interval, max_concurrent_apps, max_concurrent_reconciles, argocd.namespace are all read via env vars from the ConfigMap but had no corresponding values.yaml entries
  • Webhook configurationwebhook.enable, webhook.port, webhook.ratelimit-allowed were wired as env vars but had no config values to populate them
  • New webhook secretsALIYUN_ACR_WEBHOOK_SECRET and CLOUDEVENTS_WEBHOOK_SECRET (new in v1.1.0 for ECR CloudEvents support) were not wired in the deployment template
  • Controller flagsmetricsSecure and enableHTTP2 are now first-class values instead of requiring extraArgs
  • Health probe--health-probe-bind-address is now wired to containerPorts.health instead of being hardcoded

All new config values default to empty strings (no-op in the ConfigMap) and boolean flags match upstream defaults, so this is fully backwards compatible.

Test plan

  • helm template with defaults renders correctly (no extra args, empty config values are no-op)
  • helm template with metricsSecure=false and enableHTTP2=true renders correct CLI args
  • helm template with webhook config values renders them in the ConfigMap
  • New env vars (ALIYUN_ACR_WEBHOOK_SECRET, CLOUDEVENTS_WEBHOOK_SECRET) appear in deployment
  • Deploy with webhook enabled and verify CloudEvents webhook receives ECR events

- kind: fixed
description: Remove command override in deployment to allow Dockerfile ENTRYPOINT with tini init process to prevent zombie processes
- kind: added
description: Add missing config values (log.format, interval, max_concurrent_apps, max_concurrent_reconciles, argocd.namespace)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put this PR into draft. Re add the PR checklist that you allowed your LLM to delete and follow it please.

@tico24
Copy link
Copy Markdown
Member

tico24 commented Mar 22, 2026

@DrFaust92 DrFaust92 marked this pull request as draft March 22, 2026 23:12
@DrFaust92
Copy link
Copy Markdown
Contributor Author

Thanks for flagging the GenAI policy — I've read through it.

I used Claude Code as a coding assistant, but the changes are based on my own review of the argocd-image-updater controller source where I identified gaps between upstream CLI flags/ConfigMap keys and what values.yaml exposes. I verified each change against the upstream code and tested with helm template. I've also updated the PR to include the proper checklist from the PR template and regenerated the README via helm-docs.

I've put the PR in draft for now — happy to mark it ready for review whenever you're comfortable with it.

@DrFaust92 DrFaust92 force-pushed the feat/image-updater-chart-missing-values branch from 69a2d82 to bef1c1b Compare March 22, 2026 23:30
@DrFaust92 DrFaust92 requested a review from tico24 March 22, 2026 23:30
@DrFaust92 DrFaust92 marked this pull request as ready for review March 24, 2026 23:09
DrFaust92 and others added 2 commits March 24, 2026 19:09
…t, and controller flags

- Add discoverable config values: log.format, interval, max_concurrent_apps,
  max_concurrent_reconciles, argocd.namespace
- Add webhook configuration: webhook.enable, webhook.port, webhook.ratelimit-allowed
- Wire Aliyun ACR and CloudEvents webhook secret env vars in deployment
- Add metricsSecure and enableHTTP2 as first-class controller args
- Wire health-probe-bind-address to containerPorts.health value

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Ilia <ilia.lazebnik@gmail.com>
…ptional

These flags only apply to the new controller-runtime based `run` command
and should not be rendered unless explicitly set by the user. Default to
empty string so the flags are omitted entirely when not configured.

Signed-off-by: Ilia Lazebnik <ilia.lazebnik@gmail.com>
Signed-off-by: Ilia <ilia.lazebnik@placer.ai>
@DrFaust92 DrFaust92 force-pushed the feat/image-updater-chart-missing-values branch from bef1c1b to dc2f18a Compare March 24, 2026 23:09
Signed-off-by: Ilia Lazebnik <ilia.lazebnik@gmail.com>
Signed-off-by: Ilia <ilia.lazebnik@placer.ai>
Signed-off-by: Ilia Lazebnik <ilia.lazebnik@gmail.com>
Signed-off-by: Ilia <ilia.lazebnik@placer.ai>
@yu-croco
Copy link
Copy Markdown
Collaborator

yu-croco commented Mar 25, 2026

Missing config values — log.format, interval, max_concurrent_apps, max_concurrent_reconciles, argocd.namespace are all read via env vars from the ConfigMap but had no corresponding values.yaml entries

Due to the following reasons, shall we follow as argo-cd's way instead of adding all configs?

WDYT? 😄 @mkilchhofer @jmeridth @tico24

@mkilchhofer
Copy link
Copy Markdown
Member

Due to the following reasons, shall we follow as argo-cd's way instead of adding all configs?

* Values under `Values.config`, everything goes through in configmap.
  
  * Ref https://github.com/argoproj/argo-helm/blob/main/charts/argocd-image-updater/templates/configmap.yaml#L15-L17

* It's hard for us to catch up the configs (added, edited, removed)

WDYT? 😄 @mkilchhofer @jmeridth @tico24

Yep, that was our / my idea when I upgraded the AIU to 1.0 (PR was created by Renovate):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants