From 624caf0ea1ae333e38caebfdb450e65d3912375c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wilson=20J=C3=BAnior?= Date: Wed, 15 May 2024 17:16:29 -0300 Subject: [PATCH] Add flag by cluster to disable validation --- internal/config/config.go | 13 +++++++------ pkg/web/target/multi-cluster.go | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index 1148f9a1b..3ed1dba95 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -58,12 +58,13 @@ type RpaasConfig struct { } type ClusterConfig struct { - Name string `json:"name"` - Default bool `json:"default"` - Address string `json:"address"` - Token string `json:"token"` - TokenFile string `json:"tokenFile"` - CA string `json:"ca"` + Name string `json:"name"` + Default bool `json:"default"` + DisableValidation bool `json:"disableValidation"` + Address string `json:"address"` + Token string `json:"token"` + TokenFile string `json:"tokenFile"` + CA string `json:"ca"` AuthProvider *clientcmdapi.AuthProviderConfig `json:"authProvider"` ExecProvider *clientcmdapi.ExecConfig `json:"execProvider"` diff --git a/pkg/web/target/multi-cluster.go b/pkg/web/target/multi-cluster.go index 45a065bad..1577a409d 100644 --- a/pkg/web/target/multi-cluster.go +++ b/pkg/web/target/multi-cluster.go @@ -93,6 +93,8 @@ func (m *multiClusterFactory) Manager(ctx context.Context, headers http.Header) return nil, err } + clusterValidationDisabled := m.validationDisabled(clusterName) + k8sClient, err := sigsk8sclient.New(kubernetesRestConfig, sigsk8sclient.Options{Scheme: extensionsruntime.NewScheme()}) if err != nil { return nil, err @@ -103,7 +105,7 @@ func (m *multiClusterFactory) Manager(ctx context.Context, headers http.Header) return nil, err } - if !disableValidation { + if !disableValidation && !clusterValidationDisabled { manager = validation.New(manager, k8sClient) } @@ -114,6 +116,17 @@ func (m *multiClusterFactory) Manager(ctx context.Context, headers http.Header) return manager, nil } +func (m *multiClusterFactory) validationDisabled(name string) bool { + + for _, cluster := range m.clusters { + if cluster.Name == name { + return cluster.DisableValidation + } + } + + return false +} + func (m *multiClusterFactory) getKubeConfig(name, address string) (*rest.Config, error) { selectedCluster := config.ClusterConfig{}