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

UI does not allow to specify values files in paths outside chart directory #3583

Open
3 tasks done
jannfis opened this issue May 13, 2020 · 3 comments
Open
3 tasks done
Labels
bug/priority:medium Should be fixed in the next minor releases bug/severity:minor Bug has limited impact, maybe affects only an edge-case or is of cosmetic nature bug Something isn't working component:ui User interfaces bugs and enhancements workaround There's a workaround, might not be great, but exists

Comments

@jannfis
Copy link
Member

jannfis commented May 13, 2020

Checklist:

  • I've searched in the docs and FAQ for my answer: http://bit.ly/argocd-faq.
  • I've included steps to reproduce the bug.
  • I've pasted the output of argocd version.

Describe the bug

When using Helm charts stored in Git, one can specify a values file to use for parametrization. Sometimes, it's convenient to store all the values files in different directories outside of the chart's directory, i.e.

helm-dependency-subdir/
  chart/
    Chart.yaml
  values/
    values.yaml

One can refer to this file as ../values/values.yaml when the source path of the application is helm-dependency-subdir/chart, i.e:

$ argocd app create helm-test --project default --dest-namespace helm-test \
  --dest-server https://kubernetes.default.svc \
  --repo https://github.com/jannfis/argocd-example-apps \
  --path helm-dependency-subdir/chart \
  --values '../values/values.yaml'

This works as expected:

$ argocd app get helm-test
Name:               helm-test
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          helm-test
URL:                https://10.96.247.181/applications/helm-test
Repo:               https://github.com/jannfis/argocd-example-apps
Target:             
Path:               helm-dependency-subdir/chart
Helm Values:        ../values/values.yaml
SyncWindow:         Sync Allowed
Sync Policy:        <none>
Sync Status:        OutOfSync from  (798b2d0)
Health Status:      Missing

GROUP  KIND                   NAMESPACE  NAME                     STATUS     HEALTH   HOOK  MESSAGE
       ConfigMap              helm-test  helm-test-mariadb        OutOfSync  Missing        
       ConfigMap              helm-test  helm-test-mariadb-tests  OutOfSync  Missing        
       PersistentVolumeClaim  helm-test  helm-test-wordpress      OutOfSync  Missing        
       Secret                 helm-test  helm-test-mariadb        OutOfSync  Missing        
       Secret                 helm-test  helm-test-wordpress      OutOfSync  Missing        
       Service                helm-test  helm-test-mariadb        OutOfSync  Missing        
       Service                helm-test  helm-test-wordpress      OutOfSync  Missing        
apps   Deployment             helm-test  helm-test-wordpress      OutOfSync  Missing        
apps   StatefulSet            helm-test  helm-test-mariadb        OutOfSync  Missing        

However, when creating the app within the UI, specifying path ../values/values.yaml results in the Helm values field being empty and no values to be used at all. No error message is displayed, and nothing is printed in the logs. The entered values files is just silently ignored.

To Reproduce

  1. Create an app from https://github.com/jannfis/argocd-example-apps/helm-dependency-subdir/chart in the web UI, specifying ../values/values.yaml for the Helm values to use.
  2. Observe that Helm values are empty

Expected behavior

Same behaviour as when the app would be created using the CLI: values file specified is taken into account when rendering manifests via Helm.

Version

argocd: v1.5.4+36bade7
  BuildDate: 2020-05-05T18:59:08Z
  GitCommit: 36bade7a2d7b69d1c0b0c4d41191f792a847d61c
  GitTreeState: clean
  GoVersion: go1.14.1
  Compiler: gc
  Platform: linux/amd64
argocd-server: v1.5.4+36bade7
  BuildDate: 2020-05-05T19:01:57Z
  GitCommit: 36bade7a2d7b69d1c0b0c4d41191f792a847d61c
  GitTreeState: clean
  GoVersion: go1.14.1
  Compiler: gc
  Platform: linux/amd64
  Ksonnet Version: v0.13.1
  Kustomize Version: {Version:kustomize/v3.5.4 GitCommit:3af514fa9f85430f0c1557c4a0291e62112ab026 BuildDate:2020-01-11T03:12:59Z GoOs:linux GoArch:amd64}
  Helm Version: version.BuildInfo{Version:"v3.2.0", GitCommit:"e11b7ce3b12db2941e90399e874513fbd24bcb71", GitTreeState:"clean", GoVersion:"go1.13.10"}
  Kubectl Version: v1.14.0

Logs

Paste any relevant application logs here.
@jannfis jannfis added bug Something isn't working bug/priority:medium Should be fixed in the next minor releases bug/severity:minor Bug has limited impact, maybe affects only an edge-case or is of cosmetic nature ui workaround There's a workaround, might not be great, but exists labels May 13, 2020
@jannfis
Copy link
Member Author

jannfis commented May 13, 2020

The workaround is to either create the application declaratively or via the CLI.

@xsreality
Copy link
Contributor

Another workaround is to click the Edit as YAML button in UI and specify the custom values files. Then the helm values field is correctly populated.

image

@jessesuen jessesuen added component:ui User interfaces bugs and enhancements and removed ui labels Aug 27, 2020
@echung808
Copy link

To add values file via GUI (declaratively), edit the app manifest:

project: project-name
source:
...
  helm:
    valueFiles:
      - ./path/to/file

The path is relative to the dir where the main chart lives.

Other details about what's possible with values files here: #938

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug/priority:medium Should be fixed in the next minor releases bug/severity:minor Bug has limited impact, maybe affects only an edge-case or is of cosmetic nature bug Something isn't working component:ui User interfaces bugs and enhancements workaround There's a workaround, might not be great, but exists
Projects
None yet
Development

No branches or pull requests

4 participants