@@ -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
556553var 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
569566func newApplicationParameters (p * api.Pattern ) []argoapi.HelmParameter {
0 commit comments