Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support new extensions mechanism #2396

Closed
jcogilvie opened this issue Dec 21, 2023 · 0 comments · Fixed by #2406
Closed

Support new extensions mechanism #2396

jcogilvie opened this issue Dec 21, 2023 · 0 comments · Fixed by #2406
Labels
argo-cd enhancement New feature or request

Comments

@jcogilvie
Copy link

jcogilvie commented Dec 21, 2023

Is your feature request related to a problem?

Argo extensions via CRD have been deprecated. Update the chart to support the new initContainer approach.

Related helm chart

argo-cd

Describe the solution you'd like

Retain the server.extensions field but use the values to inform initContainers to pull down the desired extensions. Allow for specifying

extensionList:
  - name:  fooBarExtension
    extensionUrl: https://foo
    extensionChecksumUrl:  https://bar # optional

The existing functionality for mounts and mount paths can be preserved.

As an example, to install the rollouts extension with the new mechanism in the current helm chart, I must set:

server:
  initContainers:
    - name: rollout-extension
      image: quay.io/argoprojlabs/argocd-extension-installer:v0.0.1
      env:
        - name: EXTENSION_URL
          value: https://github.com/argoproj-labs/rollout-extension/releases/download/v0.3.3/extension.tar
#        - name: EXTENSION_CHECKSUM_URL
#          value: TODO
      volumeMounts:
        - name: extensions
          mountPath: /tmp/extensions
      securityContext:
        runAsUser: 1000
        allowPrivilegeEscalation: false
  volumeMounts:
    - name: extensions
      mountPath: /tmp/extensions
  volumes:
    - name: extensions
      emptyDir: {}

I believe with a little bit of effort this can be reduced to:

server:
  extensions:
    enabled: true
    image: # this could/should be defaulted to the following value
      repository: "quay.io/argoprojlabs/argocd-extension-installer"
      tag: "v0.0.1"
    extensionList:
    - name: rollout-extension
      extensionUrl: https://github.com/argoproj-labs/rollout-extension/releases/download/v0.3.3/extension.tar
      extensionChecksumUrl: https://github.com/foo/bar # optional 

Describe alternatives you've considered

Leave it to consumers of the helm chart to specify this with initContainers. This seems more prone to error given the volumes and volumeMounts which this helm chart already has code for.

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
argo-cd enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants