diff --git a/controllers/akodeploymentconfig/akodeploymentconfig_controller_avi_phase.go b/controllers/akodeploymentconfig/akodeploymentconfig_controller_avi_phase.go index 1f6c8b1d..0cbc2471 100644 --- a/controllers/akodeploymentconfig/akodeploymentconfig_controller_avi_phase.go +++ b/controllers/akodeploymentconfig/akodeploymentconfig_controller_avi_phase.go @@ -293,21 +293,7 @@ func (r *AKODeploymentConfigReconciler) reconcileAviInfraSetting( log.Info("ControlPlaneNetwork is empty in akoDeploymentConfig, skip creating AVIInfraSetting") return res, nil } - return res, r.Patch(ctx, r.createAviInfraSetting(adc), client.Apply, client.ForceOwnership, client.FieldOwner("field-owner")) -} - -// AviInfraSetting is a top-level type -type AviInfraSetting struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - Spec AviInfraSettingSpec `json:"spec,omitempty"` -} - -type AviInfraSettingSpec struct { - Network akov1beta1.AviInfraSettingNetwork `json:"network,omitempty"` - SeGroup akov1beta1.AviInfraSettingSeGroup `json:"seGroup,omitempty"` - L7Settings akov1beta1.AviInfraL7Settings `json:"l7Settings,omitempty"` - NSXSettings *akov1beta1.AviInfraNSXSettings `json:"nsxSettings,omitempty"` + return res, r.Patch(ctx, r.createAviInfraSetting(adc), client.Apply, client.ForceOwnership, client.FieldOwner("akodeploymentconfig-controller")) } func (r *AKODeploymentConfigReconciler) createAviInfraSetting(adc *akoov1alpha1.AKODeploymentConfig) *unstructured.Unstructured { diff --git a/controllers/akodeploymentconfig/akodeploymentconfig_controller_types.go b/controllers/akodeploymentconfig/akodeploymentconfig_controller_types.go new file mode 100644 index 00000000..bac06194 --- /dev/null +++ b/controllers/akodeploymentconfig/akodeploymentconfig_controller_types.go @@ -0,0 +1,25 @@ +// Copyright 2020 VMware, Inc. +// SPDX-License-Identifier: Apache-2.0 + +package akodeploymentconfig + +import ( + akov1beta1 "github.com/vmware/load-balancer-and-ingress-services-for-kubernetes/pkg/apis/ako/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// AviInfraSetting is a top-level type +type AviInfraSetting struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec AviInfraSettingSpec `json:"spec,omitempty"` +} + +// AviInfraSettingSpec consists of the main AviInfraSetting settings +// Redefine AviInfraSettingSpec so that NSXSettings value is not required when reconciling AKODeploymentConfig +type AviInfraSettingSpec struct { + Network akov1beta1.AviInfraSettingNetwork `json:"network,omitempty"` + SeGroup akov1beta1.AviInfraSettingSeGroup `json:"seGroup,omitempty"` + L7Settings akov1beta1.AviInfraL7Settings `json:"l7Settings,omitempty"` + NSXSettings *akov1beta1.AviInfraNSXSettings `json:"nsxSettings,omitempty"` +}