Tim
Tim

Reputation: 1471

ArgoCD helm chart how to override values yml in declarative helm chart deployment App/controller

I have an yaml which gets deployed by the ArgoCd controller, that deploys a helm chart from artifactory.

For my local development I use a sperate values.yml in the helm chart.

My controller looks like below refer git link

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: <name-to-the-app>
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://harbor.1000kit.org/chartrepo/1000kit/
    targetRevision: <version-hardcode-in-repo>
    chart: <chart-name-that-is-getting-deployed>
    helm:
       releaseName: <release-name-hardcoded>
       # custom values to override the helm chart one
       values: |
          <pass-the-custom-values>>
  destination:
        server: https://kubernetes.default.svc
        namespace: <namespace-where-to-be-deployed>
  syncPolicy:
        automated:
          prune: true
          selfHeal: true

Question:

Another observation is that, The helm chart repo values.yaml is being loaded as parmater in the ArgoCD, and the argocd.io application yaml the values are displayed in the UI.

From the documents i see there are parameters, which can be overridden but the values can't be overridden.

  spec:
    source:
      helm:
        parameters:
        - name: app
          value: $ARGOCD_APP_NAME

Is there any option to explicitly tell ArgoCD to ignore the values.yml from the helm chart in artifactory.

I am new to ArgoCd

Upvotes: 0

Views: 9924

Answers (1)

Tim
Tim

Reputation: 1471

Looks like,

The helm chart in the artifactory has a key : value combination say

# value present in the helm chart values.yaml 
app-details: 
   name: "demoapp"
   version: "1.0"
   description: "simple demo app"

In argoCd application manifest

# .....
  helm:
       releaseName: <release-name-hardcoded>
       # custom values to override the helm chart one
       values: |
          app-details : 
             name: "demoapp"
             version: "1.0"
             # if I didn't specify the description here <--------------- *
# ....

* - ArgoCd is setting the default value (from values.yaml) for description key in this case. This description value can be seen in the deployed manifest.

Also the values.yml data are displayed as parameter in the UI.

I had to use a different approach, where I need to make changes in the template charts that uses this description value.

Upvotes: 0

Related Questions