argoproj / argo-cd

Declarative Continuous Deployment for Kubernetes
https://argo-cd.readthedocs.io
Apache License 2.0
18.06k stars 5.51k forks source link

Unable to edit application if current config resolves invalid #12153

Open h-baer opened 1 year ago

h-baer commented 1 year ago

Checklist:

Describe the bug We have the situation that one app no longer can be maintained by argocd because the current configuration (probably an error in annotations) resolves in an invalid state :

rpc error: code = Unknown desc = Manifest generation error (cached): helm template . --name-template myproj-backend --namespace myproj-backend --kube-version 1.24 --set-string deliveryWorker.image.name=registry.app.internal/myproj/myvault --set-string deliveryWorker.image.tag= --set-string controller.image.name=registry.app.internal/myproj/myvault --set-string controller.image.tag=int-1673516902014 [...] --api-versions v1/Service --api-versions v1/ServiceAccount --include-crds failed exit status 1: Error: YAML parse error on myproj-backend/charts/deliveryWorker/templates/deployment.yaml: error converting YAML to JSON: yaml: line 37: mapping values are not allowed in this context Use --debug flag to render out invalid YAML

Unable to clear the cached manifest.

To Reproduce

It's unclear what really caused the situation. The .image.name and .image.tag should get set by argocd-image-updater using annotations. Existing annotations: argocd-image-updater.argoproj.io/controller.allow-tags=regexp:^int-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ argocd-image-updater.argoproj.io/controller.helm.image-name=controller.image.name argocd-image-updater.argoproj.io/controller.helm.image-tag=controller.image.tag argocd-image-updater.argoproj.io/controller.update-strategy=latest argocd-image-updater.argoproj.io/deliveryWorker.allow-tags=regexp:^int-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ argocd-image-updater.argoproj.io/deliveryWorker.force-update=true argocd-image-updater.argoproj.io/deliveryWorker.helm.image-name=deliveryWorker.image.name argocd-image-updater.argoproj.io/deliveryWorker.helm.image-tag=deliveryWorker.image.tag argocd-image-updater.argoproj.io/git-branch=master argocd-image-updater.argoproj.io/image-list=controller=registry.app.internal/myproj/myvault :int, deliveryWorker=registry.app.corpintra.internal/myproj/myvault :int argocd-image-updater.argoproj.io/write-back-method=git

I think that while editing the annotations in the GUI in the recent past (the repository got relocated) we lost the annotation for deliveryWorker.image.tag but are unable to add it back due to the error above. Now every action that tries to change the application either in the GUI or with cli ends in the same error.

Expected behavior Either Hardrefresh should drop any existing internal values and replace with settings from repository. Or rolling back application to a previous state should restore the annotations at that time

Screenshots

Version

Paste the output from `argocd version` here.

argocd: v2.4.2+c6d0c8b BuildDate: 2022-06-21T21:03:41Z GitCommit: c6d0c8baaa291cd68465acd7ad6bef58b2b6f942 GitTreeState: clean GoVersion: go1.18.3 Compiler: gc Platform: linux/amd64 argocd-server: v2.4.4+fe80bdc BuildDate: 2022-07-07T07:11:00Z GitCommit: fe80bdcfdc847372f268f5d711d3112c7d1e39bf GitTreeState: clean GoVersion: go1.18.3 Compiler: gc Platform: linux/amd64 Kustomize Version: v4.4.1 2021-11-11T23:36:27Z Helm Version: v3.8.1+g5cb9af4 Kubectl Version: v0.23.1 Jsonnet Version: v0.18.0 Logs

Paste any relevant application logs here.
igitcode commented 1 year ago

+1

running into the same issue. I have an invalid repo/HELM chart path config and I'm unable to update or delete the application.

argocd: v2.4.11+3d9e9f2.dirty BuildDate: 2022-08-22T12:47:26Z GitCommit: 3d9e9f2f95b7801b90377ecfc4073e5f0f07205b GitTreeState: dirty GoVersion: go1.19 Compiler: gc Platform: darwin/arm64