Skip to content

Commit 7384d21

Browse files
authored
Merge branch 'master' into pull-ginkgo-tests-from-argocd-operator
2 parents 607a0c0 + 9a05e42 commit 7384d21

13 files changed

+591
-77
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ build: generate fmt vet ## Build manager binary.
211211

212212
.PHONY: run
213213
run: manifests generate fmt vet ## Run a controller from your host.
214-
CLUSTER_SCOPED_ARGO_ROLLOUTS_NAMESPACES=argo-rollouts,test-rom-ns-1,rom-ns-1,openshift-gitops ARGOCD_CLUSTER_CONFIG_NAMESPACES=openshift-gitops REDIS_CONFIG_PATH="build/redis" go run ./cmd/main.go
214+
CLUSTER_SCOPED_ARGO_ROLLOUTS_NAMESPACES=argo-rollouts,test-rom-ns-1,rom-ns-1,openshift-gitops ARGOCD_CLUSTER_CONFIG_NAMESPACES="openshift-gitops, argocd-e2e-cluster-config, argocd-test-impersonation-1-046, argocd-agent-principal-1-051, argocd-agent-agent-1-052, appset-argocd, appset-old-ns, appset-new-ns" REDIS_CONFIG_PATH="build/redis" go run ./cmd/main.go
215215

216216
.PHONY: docker-build
217217
docker-build: test ## Build container image with the manager.

controllers/argocd/openshift/openshift_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,10 +306,10 @@ func TestAdminClusterRoleMapper(t *testing.T) {
306306

307307
// Sort both slices to ensure consistent comparison
308308
sort.Slice(result, func(i, j int) bool {
309-
return result[i].NamespacedName.Name < result[j].NamespacedName.Name
309+
return result[i].Name < result[j].Name
310310
})
311311
sort.Slice(expectedRequests, func(i, j int) bool {
312-
return expectedRequests[i].NamespacedName.Name < expectedRequests[j].NamespacedName.Name
312+
return expectedRequests[i].Name < expectedRequests[j].Name
313313
})
314314

315315
assert.Equal(t, expectedRequests, result)

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.24.6
44

55
require (
66
github.com/argoproj-labs/argo-rollouts-manager v0.0.7-0.20251105123110-0c547c7a7765
7-
github.com/argoproj-labs/argocd-image-updater v1.0.1
87
github.com/argoproj-labs/argocd-operator v0.17.0-rc1.0.20251203145554-258914335b86
98
github.com/argoproj/argo-cd/v3 v3.1.9
109
github.com/argoproj/gitops-engine v0.7.1-0.20250905160054-e48120133eec

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ github.com/argoproj-labs/argo-rollouts-manager v0.0.7-0.20251105123110-0c547c7a7
3333
github.com/argoproj-labs/argo-rollouts-manager v0.0.7-0.20251105123110-0c547c7a7765/go.mod h1:WPyZkNHZjir/OTt8mrRwcUZKe1euHrHPJsRv1Wp/F/0=
3434
github.com/argoproj-labs/argocd-operator v0.17.0-rc1.0.20251203145554-258914335b86 h1:crfiDUoEdB1wDUZCpo6Q4rQZmEoFqsrS5swvckM3OUw=
3535
github.com/argoproj-labs/argocd-operator v0.17.0-rc1.0.20251203145554-258914335b86/go.mod h1:JUvpFGuOdBL23437e/IdBsdwUE+69J6LzKQ2Q42ycc0=
36-
github.com/argoproj-labs/argocd-image-updater v1.0.1 h1:g6WRF33TQ0/CPDndbC97oP0aEqJMEesQenz0Cz8F6XQ=
37-
github.com/argoproj-labs/argocd-image-updater v1.0.1/go.mod h1:PJ+Pb3faVqSzNNs35INUZYtzlaqKvBE2ZgZGdDabJQM=
3836
github.com/argoproj/argo-cd/v3 v3.1.9 h1:9P9vJKo1RGWu6mtQnGu61r+0h3XKlA2j3kVhwogUQ/0=
3937
github.com/argoproj/argo-cd/v3 v3.1.9/go.mod h1:ZHb/LOz/hr88VWMJiVTd8DGYL7MheHCAT8S6DgYOBFo=
4038
github.com/argoproj/gitops-engine v0.7.1-0.20250905160054-e48120133eec h1:rNAwbRQFvRIuW/e2bU+B10mlzghYXsnwZedYeA7Drz4=

test/openshift/e2e/ginkgo/fixture/fixture.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,17 @@ func OutputDebugOnFail(namespaceParams ...any) {
882882
GinkgoWriter.Println(kubectlOutput)
883883
GinkgoWriter.Println("----------------------------------------------------------------")
884884

885+
kubectlOutput, err = osFixture.ExecCommandWithOutputParam(false, "kubectl", "get", "events", "-n", namespace)
886+
if err != nil {
887+
GinkgoWriter.Println("unable to get events for namespace", err, kubectlOutput)
888+
} else {
889+
GinkgoWriter.Println("")
890+
GinkgoWriter.Println("----------------------------------------------------------------")
891+
GinkgoWriter.Println("'kubectl get events -n " + namespace + ":")
892+
GinkgoWriter.Println(kubectlOutput)
893+
GinkgoWriter.Println("----------------------------------------------------------------")
894+
}
895+
885896
}
886897

887898
kubectlOutput, err := osFixture.ExecCommandWithOutputParam(false, "kubectl", "get", "argocds", "-A", "-o", "yaml")
@@ -895,6 +906,8 @@ func OutputDebugOnFail(namespaceParams ...any) {
895906
GinkgoWriter.Println("----------------------------------------------------------------")
896907
}
897908

909+
GinkgoWriter.Println("You can skip this debug output by setting 'SKIP_DEBUG_OUTPUT=true'")
910+
898911
}
899912

900913
// EnsureRunningOnOpenShift should be called if a test requires OpenShift (for example, it uses Route CR).

test/openshift/e2e/ginkgo/fixture/k8s/fixture.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ func NotHaveLabelWithValue(key string, value string) matcher.GomegaMatcher {
9090
return true
9191
}
9292

93+
GinkgoWriter.Println("NotHaveLabelWithValue: not expected: ", key, "/", value, ". actual:", labels[key])
94+
9395
return labels[key] != value
9496

9597
}, BeTrue())

test/openshift/e2e/ginkgo/fixture/secret/fixture.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,16 @@ func HaveDataKeyValue(key string, value []byte) matcher.GomegaMatcher {
9898

9999
}
100100

101+
// NotHaveDataKey returns true if Secret's .data 'key' does not exist, false otherwise
102+
func NotHaveDataKey(key string) matcher.GomegaMatcher {
103+
return fetchSecret(func(secret *corev1.Secret) bool {
104+
_, exists := secret.Data[key]
105+
GinkgoWriter.Println("NotHaveDataKey - key:", key, "Exists:", exists)
106+
return !exists
107+
})
108+
109+
}
110+
101111
// This is intentionally NOT exported, for now. Create another function in this file/package that calls this function, and export that.
102112
func fetchSecret(f func(*corev1.Secret) bool) matcher.GomegaMatcher {
103113

test/openshift/e2e/ginkgo/parallel/1-055_validate_notification_controller_test.go

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,5 +171,76 @@ var _ = Describe("GitOps Operator Parallel E2E Tests", func() {
171171

172172
})
173173

174+
It("ensure that sourceNamespace resources are not created for namespace-scoped instance", func() {
175+
176+
By("creating test namespaces")
177+
fooNs, fooNsCleanupFunc := fixture.CreateNamespaceWithCleanupFunc("foo-src-ns")
178+
defer fooNsCleanupFunc()
179+
180+
By("creating namespace-scoped Argo CD instance with sourceNamespaces")
181+
ns, cleanupFunc := fixture.CreateNamespaceWithCleanupFunc("1-055-src-ns-test")
182+
defer cleanupFunc()
183+
184+
argocd := &argov1beta1api.ArgoCD{
185+
ObjectMeta: metav1.ObjectMeta{
186+
Name: "example-argocd",
187+
Namespace: ns.Name,
188+
},
189+
Spec: argov1beta1api.ArgoCDSpec{
190+
Notifications: argov1beta1api.ArgoCDNotifications{
191+
Enabled: true,
192+
SourceNamespaces: []string{fooNs.Name},
193+
},
194+
SourceNamespaces: []string{fooNs.Name},
195+
},
196+
}
197+
Expect(k8sClient.Create(ctx, argocd)).To(Succeed())
198+
199+
By("verifying Argo CD and notification controller start as expected")
200+
Eventually(argocd, "4m", "5s").Should(argocdFixture.HaveNotificationControllerStatus("Running"))
201+
202+
By("verifying that sourceNamespace cmd args don't exist")
203+
depl := &appsv1.Deployment{
204+
ObjectMeta: metav1.ObjectMeta{
205+
Name: "example-argocd-notifications-controller",
206+
Namespace: ns.Name,
207+
},
208+
}
209+
Eventually(depl).Should(k8sFixture.ExistByName())
210+
// TODO: add check to test "--application-namespaces" cmd arg is not present in the notification deployment container args
211+
212+
By("verifying sourceNamespace rbac resources are not created")
213+
clusterRole := &rbacv1.ClusterRole{
214+
ObjectMeta: metav1.ObjectMeta{
215+
Name: "example-argocd-1-055-src-ns-test-argocd-notifications-controller",
216+
Namespace: ns.Name,
217+
},
218+
}
219+
clusterRoleBinding := &rbacv1.ClusterRoleBinding{
220+
ObjectMeta: metav1.ObjectMeta{
221+
Name: "example-argocd-1-055-src-ns-test-argocd-notifications-controller",
222+
Namespace: ns.Name,
223+
},
224+
}
225+
role := &rbacv1.Role{
226+
ObjectMeta: metav1.ObjectMeta{
227+
Name: "example-argocd-1-055-src-ns-test-notifications",
228+
Namespace: fooNs.Name,
229+
},
230+
}
231+
roleBinding := &rbacv1.RoleBinding{
232+
ObjectMeta: metav1.ObjectMeta{
233+
Name: "example-argocd-1-055-src-ns-test-notifications",
234+
Namespace: fooNs.Name,
235+
},
236+
}
237+
238+
Eventually(role).Should(k8sFixture.NotExistByName())
239+
Eventually(roleBinding).Should(k8sFixture.NotExistByName())
240+
Eventually(clusterRole).Should(k8sFixture.NotExistByName())
241+
Eventually(clusterRoleBinding).Should(k8sFixture.NotExistByName())
242+
243+
})
244+
174245
})
175246
})

test/openshift/e2e/ginkgo/parallel/1-121_validate_custom_labels_rollouts.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ var _ = Describe("GitOps Operator Parallel E2E Tests", func() {
7676
By("updating RolloutManager spec")
7777

7878
// Add a new label to trigger reconciliation
79-
if rolloutManager.ObjectMeta.Labels == nil {
80-
rolloutManager.ObjectMeta.Labels = make(map[string]string)
79+
if rolloutManager.Labels == nil {
80+
rolloutManager.Labels = make(map[string]string)
8181
}
82-
rolloutManager.ObjectMeta.Labels["test-update"] = "true"
82+
rolloutManager.Labels["test-update"] = "true"
8383
patch := client.MergeFrom(rolloutManager.DeepCopy())
8484
Expect(k8sClient.Patch(ctx, rolloutManager, patch)).To(Succeed())
8585

test/openshift/e2e/ginkgo/sequential/1-036_validate_role_rolebinding_for_source_namespace_test.go

Lines changed: 43 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import (
1212
namespaceFixture "github.com/redhat-developer/gitops-operator/test/openshift/e2e/ginkgo/fixture/namespace"
1313
"github.com/redhat-developer/gitops-operator/test/openshift/e2e/ginkgo/fixture/utils"
1414

15+
corev1 "k8s.io/api/core/v1"
1516
rbacv1 "k8s.io/api/rbac/v1"
17+
apierrors "k8s.io/apimachinery/pkg/api/errors"
1618
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1719
"sigs.k8s.io/controller-runtime/pkg/client"
1820
)
@@ -22,8 +24,10 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
2224
Context("1-036_validate_role_rolebinding_for_source_namespace", func() {
2325

2426
var (
25-
ctx context.Context
26-
k8sClient client.Client
27+
ctx context.Context
28+
k8sClient client.Client
29+
argoNamespace *corev1.Namespace
30+
cleanupArgoNSFunc func()
2731

2832
defaultNSArgoCD *v1beta1.ArgoCD
2933

@@ -39,30 +43,39 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
3943

4044
AfterEach(func() {
4145

42-
fixture.OutputDebugOnFail("default")
46+
fixture.OutputDebugOnFail(argoNamespace)
47+
48+
// Clean up argo cd instance created in test namespace first (before deleting the namespace itself)
49+
Expect(defaultNSArgoCD).ToNot(BeNil())
50+
err := k8sClient.Delete(ctx, defaultNSArgoCD)
51+
if err != nil && !apierrors.IsNotFound(err) {
52+
Expect(err).ToNot(HaveOccurred())
53+
}
4354

4455
// Clean up namespaces created
4556
for _, namespaceCleanupFunction := range cleanupFunctions {
4657
namespaceCleanupFunction()
4758
}
4859

49-
// Clean up argo cd instance created in 'default' NS
50-
Expect(defaultNSArgoCD).ToNot(BeNil())
51-
Expect(k8sClient.Delete(ctx, defaultNSArgoCD)).To(Succeed())
52-
5360
})
5461

5562
It("verifies that ArgoCD CR '.spec.sourceNamespaces' field wildcard-matching matches and manages only namespaces which match the wildcard", func() {
5663

64+
fixture.SetEnvInOperatorSubscriptionOrDeployment("ARGOCD_CLUSTER_CONFIG_NAMESPACES", "openshift-gitops, argocd-e2e-cluster-config")
65+
66+
By("creating cluster-scoped namespace for Argo CD instance")
67+
argoNamespace, cleanupArgoNSFunc = fixture.CreateNamespaceWithCleanupFunc("argocd-e2e-cluster-config")
68+
cleanupFunctions = append(cleanupFunctions, cleanupArgoNSFunc)
69+
5770
By("creating test NS")
5871
testNS, cleanupFunc := fixture.CreateNamespaceWithCleanupFunc("test")
5972
cleanupFunctions = append(cleanupFunctions, cleanupFunc)
6073

61-
By("creating Argo CD instance in default NS, with 'test' sourceNamespace only")
74+
By("creating Argo CD instance in argocd-e2e-cluster-config NS, with 'test' sourceNamespace only")
6275
defaultNSArgoCD = &v1beta1.ArgoCD{
6376
ObjectMeta: metav1.ObjectMeta{
6477
Name: "example-argocd",
65-
Namespace: "default",
78+
Namespace: argoNamespace.Name,
6679
},
6780
Spec: v1beta1.ArgoCDSpec{
6881
SourceNamespaces: []string{
@@ -73,7 +86,7 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
7386
Expect(k8sClient.Create(ctx, defaultNSArgoCD)).To(Succeed())
7487

7588
By("verifying Argo CD instance starts managing the namespace via managed-by-cluster-argocd label")
76-
Eventually(testNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
89+
Eventually(testNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
7790

7891
expectRoleAndRoleBindingValues := func(name string, ns string) {
7992

@@ -107,12 +120,12 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
107120
{
108121
Kind: "ServiceAccount",
109122
Name: "example-argocd-argocd-server",
110-
Namespace: "default",
123+
Namespace: argoNamespace.Name,
111124
},
112125
{
113126
Kind: "ServiceAccount",
114127
Name: "example-argocd-argocd-application-controller",
115-
Namespace: "default",
128+
Namespace: argoNamespace.Name,
116129
},
117130
}))
118131

@@ -133,7 +146,7 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
133146
})
134147

135148
By("verifying test-1 NS becomes managed, and expected role/rolebindings exist in test* namespaces but not dev")
136-
Eventually(test1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
149+
Eventually(test1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
137150

138151
expectRoleAndRoleBindingValues("example-argocd_test", "test")
139152

@@ -161,7 +174,7 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
161174
cleanupFunctions = append(cleanupFunctions, cleanupFunc)
162175

163176
By("verifying the test-2 namespace becomes managed by the argo cd instance, and has the expected role/rolebinding")
164-
Eventually(test2NS, "2m", "5s").Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
177+
Eventually(test2NS, "2m", "5s").Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
165178

166179
expectRoleAndRoleBindingValues("example-argocd_test-2", "test-2")
167180

@@ -173,17 +186,17 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
173186
})
174187

175188
By("verifying test, test-1, test-2, and dev are all managed and have the expected roles")
176-
Eventually(testNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
177-
Consistently(testNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
189+
Eventually(testNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
190+
Consistently(testNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
178191

179-
Eventually(test1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
180-
Consistently(test1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
192+
Eventually(test1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
193+
Consistently(test1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
181194

182-
Eventually(test2NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
183-
Consistently(test2NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
195+
Eventually(test2NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
196+
Consistently(test2NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
184197

185-
Eventually(devNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
186-
Consistently(devNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
198+
Eventually(devNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
199+
Consistently(devNS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
187200

188201
expectRoleAndRoleBindingValues("example-argocd_test", "test")
189202
expectRoleAndRoleBindingValues("example-argocd_test-1", "test-1")
@@ -208,11 +221,11 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
208221
cleanupFunctions = append(cleanupFunctions, cleanupFunc)
209222

210223
By("verifying test-ns-1 and dev-ns-1 are managed, but other-ns isn't")
211-
Eventually(test_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
212-
Consistently(test_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
224+
Eventually(test_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
225+
Consistently(test_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
213226

214-
Eventually(dev_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
215-
Consistently(dev_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
227+
Eventually(dev_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
228+
Consistently(dev_ns_1NS).Should(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
216229

217230
expectRoleAndRoleBindingValues("example-argocd_test-ns-1", "test-ns-1")
218231
expectRoleAndRoleBindingValues("example-argocd_dev-ns-1", "dev-ns-1")
@@ -239,18 +252,18 @@ var _ = Describe("GitOps Operator Sequential E2E Tests", func() {
239252
})
240253

241254
By("verifying dev-ns-1 eventually becomes unmanaged")
242-
Eventually(dev_ns_1NS).ShouldNot(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
243-
Consistently(dev_ns_1NS).ShouldNot(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", "default"))
255+
Eventually(dev_ns_1NS).ShouldNot(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
256+
Consistently(dev_ns_1NS).ShouldNot(namespaceFixture.HaveLabel("argocd.argoproj.io/managed-by-cluster-argocd", argoNamespace.Name))
244257

245258
devns1Role := &rbacv1.Role{
246259
ObjectMeta: metav1.ObjectMeta{
247-
Name: " example-argocd_dev-ns-1",
260+
Name: "example-argocd_dev-ns-1",
248261
Namespace: dev_ns_1NS.Name,
249262
},
250263
}
251264
devns1RoleBinding := &rbacv1.RoleBinding{
252265
ObjectMeta: metav1.ObjectMeta{
253-
Name: " example-argocd_dev-ns-1",
266+
Name: "example-argocd_dev-ns-1",
254267
Namespace: dev_ns_1NS.Name,
255268
},
256269
}

0 commit comments

Comments
 (0)