-
Notifications
You must be signed in to change notification settings - Fork 6.4k
Closed
Labels
bugSomething isn't workingSomething isn't workingcomponent:application-setsIssue related to the ApplicationSet controllerIssue related to the ApplicationSet controllerversion:2.12Latest confirmed affected version is 2.12Latest confirmed affected version is 2.12
Description
Checklist:
- I've searched in the docs and FAQ for my answer: https://bit.ly/argocd-faq.
- I've included steps to reproduce the bug.
- I've pasted the output of
argocd version
.
Describe the bug
Typos in goTemplateOptions
in ApplicationSet CR can lead to applicationset controller panic.
To Reproduce
Create an ApplicationSet with a typo (eroor
not error
) in the goTemplateOptions
:
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: test
namespace: default
spec:
goTemplate: true
goTemplateOptions: ["missingkey=eroor"]
template:
spec:
syncPolicy: "{{.syncPolicy}}"
...
The applicationset controller will panic:
panic: unrecognized option: missingkey=eroor [recovered]
panic: unrecognized option: missingkey=eroor
goroutine 171 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:116 +0x1a4
panic({0x2f38c40?, 0x4000338b80?})
/usr/local/go/src/runtime/panic.go:770 +0x124
text/template.(*Template).setOption(0x4001e0e140, {0x4000a52520, 0x10})
/usr/local/go/src/text/template/option.go:71 +0x1a4
text/template.(*Template).Option(0x4001e0e140, {0x40017bebe0?, 0x5?, 0x4001e03f80?})
/usr/local/go/src/text/template/option.go:45 +0x114
github.com/argoproj/argo-cd/v2/applicationset/utils.(*Render).Replace(0x3106020?, {0x4000a524da, 0x5}, 0x4001e02630, 0x78?, {0x4000e9e1e0, 0x1, 0x40000bae10?})
/go/src/github.com/argoproj/argo-cd/applicationset/utils/utils.go:310 +0x2f8
github.com/argoproj/argo-cd/v2/applicationset/generators.replaceTemplatedString({0x4000a524da?, 0x400114cde0?}, 0x40017bee68?, 0x0?, {0x4000e9e1e0?, 0x19?, 0x40017bed18?})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/value_interpolation.go:37 +0x4c
github.com/argoproj/argo-cd/v2/applicationset/generators.appendTemplatedValues(0x400114cde0, 0x4001e02630, 0x1, {0x4000e9e1e0, 0x1, 0x1})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/value_interpolation.go:14 +0xe0
github.com/argoproj/argo-cd/v2/applicationset/generators.(*ClusterGenerator).GenerateParams(0x40007406e0, 0x4000a339a0, 0x40009d2848, {0x0?, 0x0?})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/cluster.go:147 +0xa10
github.com/argoproj/argo-cd/v2/applicationset/generators.Transform({_, _, _, _, _, _, _, _, _, _}, ...)
/go/src/github.com/argoproj/argo-cd/applicationset/generators/generator_spec_processor.go:68 +0x628
github.com/argoproj/argo-cd/v2/applicationset/generators.(*MergeGenerator).getParams(0x4000253e38, {0x0, 0x400087cea0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...}, ...)
/go/src/github.com/argoproj/argo-cd/applicationset/generators/merge.go:163 +0x248
github.com/argoproj/argo-cd/v2/applicationset/generators.(*MergeGenerator).getParamSetsForAllGenerators(0x4000253e38, {0x4000ab70e0?, 0x2, 0xe0?}, 0x40009d2848, {0x4ee1880, 0x4000cc8750})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/merge.go:43 +0x104
github.com/argoproj/argo-cd/v2/applicationset/generators.(*MergeGenerator).GenerateParams(0x400063fe00?, 0x4000dc4280, 0x40009d2848, {0x4ee1880?, 0x4000cc8750?})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/merge.go:63 +0x64
github.com/argoproj/argo-cd/v2/applicationset/generators.Transform({_, _, _, _, _, _, _, _, _, _}, ...)
/go/src/github.com/argoproj/argo-cd/applicationset/generators/generator_spec_processor.go:68 +0x628
github.com/argoproj/argo-cd/v2/applicationset/controllers.(*ApplicationSetReconciler).generateApplications(_, _, {{{0x2d62be9, 0xe}, {0x4000834018, 0x14}}, {{0x4000a52476, 0x9}, {0x0, 0x0}, ...}, ...})
/go/src/github.com/argoproj/argo-cd/applicationset/controllers/applicationset_controller.go:518 +0x1d4
github.com/argoproj/argo-cd/v2/applicationset/controllers.(*ApplicationSetReconciler).Reconcile(0x4000ac2100, {0x4ec43e0, 0x40007c4360}, {{{0x4000a52480, 0x6}, {0x4000a52476, 0x9}}})
/go/src/github.com/argoproj/argo-cd/applicationset/controllers/applicationset_controller.go:135 +0x430
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x4ecf6d8?, {0x4ec43e0?, 0x40007c4360?}, {{{0x4000a52480?, 0xb?}, {0x4000a52476?, 0x0?}}})
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:119 +0x8c
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0x4000e90780, {0x4ec4418, 0x4000740500}, {0x3397640, 0x400078d8a0})
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:316 +0x2dc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0x4000e90780, {0x4ec4418, 0x4000740500})
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:266 +0x16c
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:227 +0x74
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 180
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:223 +0x404
Expected behavior
Receives a validation error during the creation or observes an error in the applicationset controller that this goTemplateOptions
is invalid
Screenshots
N/A
Version
argocd: v2.12.7+4d70c51
BuildDate: 2024-11-05T15:52:38Z
GitCommit: 4d70c51e64e534ffe656c45317037b2bcdaa69f9
GitTreeState: clean
GoVersion: go1.22.8
Compiler: gc
Platform: darwin/arm64
Logs
panic: unrecognized option: missingkey=eroor [recovered]
panic: unrecognized option: missingkey=eroor
goroutine 171 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:116 +0x1a4
panic({0x2f38c40?, 0x4000338b80?})
/usr/local/go/src/runtime/panic.go:770 +0x124
text/template.(*Template).setOption(0x4001e0e140, {0x4000a52520, 0x10})
/usr/local/go/src/text/template/option.go:71 +0x1a4
text/template.(*Template).Option(0x4001e0e140, {0x40017bebe0?, 0x5?, 0x4001e03f80?})
/usr/local/go/src/text/template/option.go:45 +0x114
github.com/argoproj/argo-cd/v2/applicationset/utils.(*Render).Replace(0x3106020?, {0x4000a524da, 0x5}, 0x4001e02630, 0x78?, {0x4000e9e1e0, 0x1, 0x40000bae10?})
/go/src/github.com/argoproj/argo-cd/applicationset/utils/utils.go:310 +0x2f8
github.com/argoproj/argo-cd/v2/applicationset/generators.replaceTemplatedString({0x4000a524da?, 0x400114cde0?}, 0x40017bee68?, 0x0?, {0x4000e9e1e0?, 0x19?, 0x40017bed18?})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/value_interpolation.go:37 +0x4c
github.com/argoproj/argo-cd/v2/applicationset/generators.appendTemplatedValues(0x400114cde0, 0x4001e02630, 0x1, {0x4000e9e1e0, 0x1, 0x1})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/value_interpolation.go:14 +0xe0
github.com/argoproj/argo-cd/v2/applicationset/generators.(*ClusterGenerator).GenerateParams(0x40007406e0, 0x4000a339a0, 0x40009d2848, {0x0?, 0x0?})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/cluster.go:147 +0xa10
github.com/argoproj/argo-cd/v2/applicationset/generators.Transform({_, _, _, _, _, _, _, _, _, _}, ...)
/go/src/github.com/argoproj/argo-cd/applicationset/generators/generator_spec_processor.go:68 +0x628
github.com/argoproj/argo-cd/v2/applicationset/generators.(*MergeGenerator).getParams(0x4000253e38, {0x0, 0x400087cea0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...}, ...)
/go/src/github.com/argoproj/argo-cd/applicationset/generators/merge.go:163 +0x248
github.com/argoproj/argo-cd/v2/applicationset/generators.(*MergeGenerator).getParamSetsForAllGenerators(0x4000253e38, {0x4000ab70e0?, 0x2, 0xe0?}, 0x40009d2848, {0x4ee1880, 0x4000cc8750})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/merge.go:43 +0x104
github.com/argoproj/argo-cd/v2/applicationset/generators.(*MergeGenerator).GenerateParams(0x400063fe00?, 0x4000dc4280, 0x40009d2848, {0x4ee1880?, 0x4000cc8750?})
/go/src/github.com/argoproj/argo-cd/applicationset/generators/merge.go:63 +0x64
github.com/argoproj/argo-cd/v2/applicationset/generators.Transform({_, _, _, _, _, _, _, _, _, _}, ...)
/go/src/github.com/argoproj/argo-cd/applicationset/generators/generator_spec_processor.go:68 +0x628
github.com/argoproj/argo-cd/v2/applicationset/controllers.(*ApplicationSetReconciler).generateApplications(_, _, {{{0x2d62be9, 0xe}, {0x4000834018, 0x14}}, {{0x4000a52476, 0x9}, {0x0, 0x0}, ...}, ...})
/go/src/github.com/argoproj/argo-cd/applicationset/controllers/applicationset_controller.go:518 +0x1d4
github.com/argoproj/argo-cd/v2/applicationset/controllers.(*ApplicationSetReconciler).Reconcile(0x4000ac2100, {0x4ec43e0, 0x40007c4360}, {{{0x4000a52480, 0x6}, {0x4000a52476, 0x9}}})
/go/src/github.com/argoproj/argo-cd/applicationset/controllers/applicationset_controller.go:135 +0x430
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x4ecf6d8?, {0x4ec43e0?, 0x40007c4360?}, {{{0x4000a52480?, 0xb?}, {0x4000a52476?, 0x0?}}})
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:119 +0x8c
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0x4000e90780, {0x4ec4418, 0x4000740500}, {0x3397640, 0x400078d8a0})
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:316 +0x2dc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0x4000e90780, {0x4ec4418, 0x4000740500})
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:266 +0x16c
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:227 +0x74
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 180
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:223 +0x404
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingcomponent:application-setsIssue related to the ApplicationSet controllerIssue related to the ApplicationSet controllerversion:2.12Latest confirmed affected version is 2.12Latest confirmed affected version is 2.12