Skip to content

Commit 94371c7

Browse files
committed
Drop spurious GET to check for existing argo instance
1 parent f8b98c1 commit 94371c7

2 files changed

Lines changed: 11 additions & 14 deletions

File tree

internal/controller/argo.go

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ func createOrUpdateArgoCD(client dynamic.Interface, fullClient kubernetes.Interf
469469
newArgo := &unstructured.Unstructured{Object: obj}
470470
_, err = client.Resource(gvr).Namespace(namespace).Create(context.TODO(), newArgo, metav1.CreateOptions{})
471471
} else { // update it
472-
oldArgo, errGet := getArgoCDFunc(client, name, namespace)
472+
oldArgo, oldUnstructured, errGet := getArgoCDFunc(client, name, namespace)
473473
if errGet != nil {
474474
return fmt.Errorf("failed to get existing ArgoCD %s/%s: %v", namespace, name, errGet)
475475
}
@@ -483,14 +483,11 @@ func createOrUpdateArgoCD(client dynamic.Interface, fullClient kubernetes.Interf
483483
// Preserve spec fields not known to this vendored argocd-operator version
484484
// (e.g. networkPolicy added in gitops-operator v1.20.3) to avoid
485485
// stripping them and causing infinite reconciliation loops.
486-
oldUnstructured, errGet2 := client.Resource(gvr).Namespace(namespace).Get(context.TODO(), name, metav1.GetOptions{})
487-
if errGet2 == nil {
488-
oldSpec, _, _ := unstructured.NestedMap(oldUnstructured.Object, "spec")
489-
newSpec, _, _ := unstructured.NestedMap(newArgo.Object, "spec")
490-
for key, val := range oldSpec {
491-
if _, exists := newSpec[key]; !exists {
492-
_ = unstructured.SetNestedField(newArgo.Object, val, "spec", key)
493-
}
486+
oldSpec, _, _ := unstructured.NestedMap(oldUnstructured.Object, "spec")
487+
newSpec, _, _ := unstructured.NestedMap(newArgo.Object, "spec")
488+
for key, val := range oldSpec {
489+
if _, exists := newSpec[key]; !exists {
490+
_ = unstructured.SetNestedField(newArgo.Object, val, "spec", key)
494491
}
495492
}
496493

@@ -555,15 +552,15 @@ func removeConsoleLink(client dynamic.Interface, argoName string) error {
555552

556553
var getArgoCDFunc = getArgoCD
557554

558-
func getArgoCD(client dynamic.Interface, name, namespace string) (*argooperator.ArgoCD, error) {
555+
func getArgoCD(client dynamic.Interface, name, namespace string) (*argooperator.ArgoCD, *unstructured.Unstructured, error) {
559556
gvr := schema.GroupVersionResource{Group: ArgoCDGroup, Version: ArgoCDVersion, Resource: ArgoCDResource}
560557
argo := &argooperator.ArgoCD{}
561558
unstructuredArgo, err := client.Resource(gvr).Namespace(namespace).Get(context.TODO(), name, metav1.GetOptions{})
562559
if err != nil {
563-
return nil, err
560+
return nil, nil, err
564561
}
565562
err = runtime.DefaultUnstructuredConverter.FromUnstructured(unstructuredArgo.UnstructuredContent(), argo)
566-
return argo, err
563+
return argo, unstructuredArgo, err
567564
}
568565

569566
func newApplicationParameters(p *api.Pattern) []argoapi.HelmParameter {

internal/controller/argo_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,8 +1083,8 @@ var _ = Describe("CreateOrUpdateArgoCD", func() {
10831083
}
10841084
_, err := dynamicClient.Resource(gvr).Namespace(namespace).Create(context.TODO(), argoCD, metav1.CreateOptions{})
10851085
Expect(err).ToNot(HaveOccurred())
1086-
getArgoCDFunc = func(_ dynamic.Interface, _, _ string) (*argooperator.ArgoCD, error) {
1087-
return nil, fmt.Errorf("forced error")
1086+
getArgoCDFunc = func(_ dynamic.Interface, _, _ string) (*argooperator.ArgoCD, *unstructured.Unstructured, error) {
1087+
return nil, nil, fmt.Errorf("forced error")
10881088
}
10891089
})
10901090

0 commit comments

Comments
 (0)