diff --git a/pkg/fleet-manager/fleet_plugin_backup.go b/pkg/fleet-manager/fleet_plugin_backup.go index 0c647d0b2..012fa3e87 100644 --- a/pkg/fleet-manager/fleet_plugin_backup.go +++ b/pkg/fleet-manager/fleet_plugin_backup.go @@ -82,7 +82,6 @@ func (f *FleetManager) reconcileBackupPlugin(ctx context.Context, fleet *v1alpha for key, cluster := range fleetClusters { // generate Velero helm config for each fleet cluster b, err := plugin.RenderVelero(f.Manifests, fleetNN, fleetOwnerRef, plugin.KubeConfigSecretRef{ - Name: key.Name, SecretName: cluster.Secret, SecretKey: cluster.SecretKey, }, veleroCfg, newSecret.Name) diff --git a/pkg/fleet-manager/fleet_plugin_distributedstorage.go b/pkg/fleet-manager/fleet_plugin_distributedstorage.go index d975db0cc..34362eb24 100644 --- a/pkg/fleet-manager/fleet_plugin_distributedstorage.go +++ b/pkg/fleet-manager/fleet_plugin_distributedstorage.go @@ -45,9 +45,8 @@ func (f *FleetManager) reconcileDistributedStoragePlugin(ctx context.Context, fl var resources kube.ResourceList // First install rook-operator for the specified multicluster. - for key, cluster := range fleetClusters { + for _, cluster := range fleetClusters { b, err := plugin.RendeStorageOperator(f.Manifests, fleetNN, fleetOwnerRef, plugin.KubeConfigSecretRef{ - Name: key.Name, SecretName: cluster.Secret, SecretKey: cluster.SecretKey, }, distributedStorageCfg) @@ -74,9 +73,8 @@ func (f *FleetManager) reconcileDistributedStoragePlugin(ctx context.Context, fl // After Rook operator are created, starts to install rook-ceph if distributedStorageCfg.Storage != nil { - for key, cluster := range fleetClusters { + for _, cluster := range fleetClusters { b, err := plugin.RenderClusterStorage(f.Manifests, fleetNN, fleetOwnerRef, plugin.KubeConfigSecretRef{ - Name: key.Name, SecretName: cluster.Secret, SecretKey: cluster.SecretKey, }, distributedStorageCfg) diff --git a/pkg/fleet-manager/fleet_plugin_kyverno.go b/pkg/fleet-manager/fleet_plugin_kyverno.go index bd6ef1912..945599e05 100644 --- a/pkg/fleet-manager/fleet_plugin_kyverno.go +++ b/pkg/fleet-manager/fleet_plugin_kyverno.go @@ -47,9 +47,8 @@ func (f *FleetManager) reconcileKyvernoPlugin(ctx context.Context, fleet *fleetv fleetOwnerRef := ownerReference(fleet) var resources kube.ResourceList - for key, cluster := range fleetClusters { + for _, cluster := range fleetClusters { b, err := plugin.RenderKyverno(f.Manifests, fleetNN, fleetOwnerRef, plugin.KubeConfigSecretRef{ - Name: key.Name, SecretName: cluster.Secret, SecretKey: cluster.SecretKey, }, fleet.Spec.Plugin.Policy.Kyverno) @@ -76,10 +75,9 @@ func (f *FleetManager) reconcileKyvernoPlugin(ctx context.Context, fleet *fleetv // After CRDs are created, start to install pod security policy if kyvernoCfg.PodSecurity != nil { - for key, cluster := range fleetClusters { + for _, cluster := range fleetClusters { // generate policies for pod security admission b, err := plugin.RenderKyvernoPolicy(f.Manifests, fleetNN, fleetOwnerRef, plugin.KubeConfigSecretRef{ - Name: key.Name, SecretName: cluster.Secret, SecretKey: cluster.SecretKey, }, kyvernoCfg) diff --git a/pkg/fleet-manager/fleet_plugin_metric.go b/pkg/fleet-manager/fleet_plugin_metric.go index b8923e118..955a3c3c5 100644 --- a/pkg/fleet-manager/fleet_plugin_metric.go +++ b/pkg/fleet-manager/fleet_plugin_metric.go @@ -286,8 +286,7 @@ func (f *FleetManager) reconcileMetricPlugin(ctx context.Context, fleet *fleetap return nil, ctrl.Result{}, fmt.Errorf("failed to reconcile objstore secret for cluster %s: %w", c.Name, err) } - b, err := plugin.RenderPrometheus(f.Manifests, fleetNN, fleetOwnerRef, plugin.KubeConfigSecretRef{ - Name: c.Name, + b, err := plugin.RenderPrometheus(f.Manifests, fleetNN, fleetOwnerRef, c.Name, plugin.KubeConfigSecretRef{ SecretName: fleetCluster.Secret, SecretKey: fleetCluster.SecretKey, }, metricCfg) diff --git a/pkg/fleet-manager/plugin/plugin.go b/pkg/fleet-manager/plugin/plugin.go index 29c72ba75..35f00980e 100644 --- a/pkg/fleet-manager/plugin/plugin.go +++ b/pkg/fleet-manager/plugin/plugin.go @@ -181,7 +181,7 @@ func RenderThanos(fsys fs.FS, fleetNN types.NamespacedName, fleetRef *metav1.Own return renderFleetPlugin(fsys, thanosCfg) } -func RenderPrometheus(fsys fs.FS, fleetName types.NamespacedName, fleetRef *metav1.OwnerReference, cluster KubeConfigSecretRef, metricCfg *fleetv1a1.MetricConfig) ([]byte, error) { +func RenderPrometheus(fsys fs.FS, fleetName types.NamespacedName, fleetRef *metav1.OwnerReference, clusterName string, cluster KubeConfigSecretRef, metricCfg *fleetv1a1.MetricConfig) ([]byte, error) { promChart, err := getFleetPluginChart(fsys, PrometheusComponentName) if err != nil { return nil, err @@ -197,7 +197,7 @@ func RenderPrometheus(fsys fs.FS, fleetName types.NamespacedName, fleetRef *meta values = transform.MergeMaps(values, map[string]interface{}{ "prometheus": map[string]interface{}{ "externalLabels": map[string]interface{}{ - "cluster": cluster.Name, + "cluster": clusterName, }, "thanos": map[string]interface{}{ "objectStorageConfig": map[string]interface{}{ diff --git a/pkg/fleet-manager/plugin/plugin_test.go b/pkg/fleet-manager/plugin/plugin_test.go index eb3d51f85..db4f166dc 100644 --- a/pkg/fleet-manager/plugin/plugin_test.go +++ b/pkg/fleet-manager/plugin/plugin_test.go @@ -59,7 +59,6 @@ func TestRenderKyvernoPolicy(t *testing.T) { for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { got, err := RenderKyvernoPolicy(manifestFS, tc.fleet, tc.ref, KubeConfigSecretRef{ - Name: "cluster1", SecretName: "cluster1", SecretKey: "kubeconfig.yaml", }, tc.in) @@ -99,7 +98,6 @@ func TestRenderKyverno(t *testing.T) { for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { got, err := RenderKyverno(manifestFS, tc.fleet, tc.ref, KubeConfigSecretRef{ - Name: "cluster1", SecretName: "cluster1", SecretKey: "kubeconfig.yaml", }, tc.in) @@ -270,8 +268,7 @@ func TestRenderPrometheus(t *testing.T) { for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { - got, err := RenderPrometheus(manifestFS, tc.fleet, tc.ref, KubeConfigSecretRef{ - Name: "cluster1", + got, err := RenderPrometheus(manifestFS, tc.fleet, tc.ref, "cluster1", KubeConfigSecretRef{ SecretName: "cluster1", SecretKey: "kubeconfig.yaml", }, tc.in) @@ -383,7 +380,6 @@ func TestRenderVelero(t *testing.T) { for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { got, err := RenderVelero(manifestFS, tc.fleet, tc.ref, KubeConfigSecretRef{ - Name: "cluster1", SecretName: "cluster1", SecretKey: "kubeconfig.yaml", }, tc.in, tc.newSecretName) @@ -438,7 +434,6 @@ func TestRenderStorageOperator(t *testing.T) { for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { got, err := RendeStorageOperator(manifestFS, tc.fleet, tc.ref, KubeConfigSecretRef{ - Name: "cluster1", SecretName: "cluster1", SecretKey: "kubeconfig.yaml", }, tc.config) @@ -528,7 +523,6 @@ func TestRenderClusterStorage(t *testing.T) { for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { got, err := RenderClusterStorage(manifestFS, tc.fleet, tc.ref, KubeConfigSecretRef{ - Name: "cluster1", SecretName: "cluster1", SecretKey: "kubeconfig.yaml", }, tc.config) diff --git a/pkg/fleet-manager/plugin/render.go b/pkg/fleet-manager/plugin/render.go index 049217bc2..1d39bc6df 100644 --- a/pkg/fleet-manager/plugin/render.go +++ b/pkg/fleet-manager/plugin/render.go @@ -37,26 +37,7 @@ type FleetPluginConfig struct { Values map[string]interface{} } -func (plugin FleetPluginConfig) ResourceName() string { - if plugin.Cluster != nil { - return plugin.Component + "-" + plugin.Cluster.Name - } - - return plugin.Component -} - -func (plugin FleetPluginConfig) StorageNamespace() string { - // StorageNamespace is the namespace where the plugin stores its data - // It's same as the target namespace for cluster scoped plugins - if plugin.Cluster != nil { - return plugin.Chart.TargetNamespace - } - - return plugin.Fleet.Namespace -} - type KubeConfigSecretRef struct { - Name string SecretName string SecretKey string }