Skip to content

feat(argo-cd): add VPA support for all components#3817

Open
rd-michel wants to merge 2 commits intoargoproj:mainfrom
rd-michel:feat/argo-cd-vpa-support
Open

feat(argo-cd): add VPA support for all components#3817
rd-michel wants to merge 2 commits intoargoproj:mainfrom
rd-michel:feat/argo-cd-vpa-support

Conversation

@rd-michel
Copy link
Copy Markdown

Note

This contribution was developed with the assistance of GitHub Copilot (AI pair programming). The implementation, testing, and review were guided by a human maintainer.

What this PR does

Adds VerticalPodAutoscaler support for all Argo CD components. Previously only the application-controller had a VPA template. This PR extends it to the remaining components:

  • argocd-server
  • argocd-repo-server
  • argocd-applicationset-controller
  • argocd-notifications-controller
  • dex
  • redis
  • argocd-commit-server

Each new VPA template follows the existing application-controller VPA template as a reference implementation.

Changes

  • New templates: vpa.yaml for each of the 7 components listed above
  • values.yaml: Added a vpa section after the pdb section for each component (same structure as controller.vpa):
    • enabled: false — disabled by default, fully backwards compatible
    • labels: {}
    • annotations: {}
    • updateMode: Initial
    • containerPolicy: {} (with commented examples)
  • ci/vpa-values.yaml: New CI test values file enabling VPA for all components
  • Chart.yaml: Version bump 9.4.179.4.18, artifacthub.io/changes updated
  • README.md: Regenerated via helm-docs

Testing

All CI values files lint cleanly with helm lint:

ci/default-values.yaml           ✔
ci/dynamic-sharding-values.yaml  ✔
ci/extension-values.yaml         ✔
ci/external-redis-values.yaml    ✔
ci/ha-autoscaling-values.yaml    ✔
ci/ha-static-values.yaml         ✔
ci/vpa-values.yaml               ✔
ci/with-commit-server-values.yaml ✔

helm template with all VPA flags enabled produces valid VerticalPodAutoscaler resources for all 8 components.


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).

Add VerticalPodAutoscaler templates and values for all Argo CD
components: application-controller, server, repo-server,
applicationset-controller, notifications-controller, dex, redis,
and commit-server.

All VPA resources are disabled by default (enabled: false) and
support configuring labels, annotations, updateMode, and
containerPolicy.

The existing application-controller VPA template is used as the
reference implementation.

Signed-off-by: Michel Mangano <michel.mangano@rewe-group.com>
VPA CRDs (autoscaling.k8s.io/v1) are not installed in the kind
cluster used for chart-testing, so helm install with vpa-values.yaml
fails. Apply the same pattern used for HPA by removing the file
before the install step.

Signed-off-by: Michel Mangano <michel.mangano@rewe-group.com>
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.

2 participants