Commit fe44d1f5 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #44073 from marun/fed-e2e-config-from-secrets

Automatic merge from submit-queue (batch tested with PRs 43500, 44073) [Federation] Add option to retrieve e2e cluster config from secrets Previously the federation e2e setup was reading member cluster configuration from the test run's kubeconfig. This change removes that dependency in favor of reading member cluster configuration from secrets in the hosting cluster, and caches the configuration to avoid having to read it separately for each test. cc: @kubernetes/sig-federation-pr-reviews @perotinus
parents bdc2b20b 9a9d897d
...@@ -268,6 +268,7 @@ feature-gates ...@@ -268,6 +268,7 @@ feature-gates
federated-api-burst federated-api-burst
federated-api-qps federated-api-qps
federated-kube-context federated-kube-context
federation-config-from-cluster
federation-name federation-name
federation-system-namespace federation-system-namespace
federation-upgrade-target federation-upgrade-target
......
...@@ -92,6 +92,8 @@ type TestContextType struct { ...@@ -92,6 +92,8 @@ type TestContextType struct {
FederatedKubeContext string FederatedKubeContext string
// Federation control plane version to upgrade to while doing upgrade tests // Federation control plane version to upgrade to while doing upgrade tests
FederationUpgradeTarget string FederationUpgradeTarget string
// Whether configuration for accessing federation member clusters should be sourced from the host cluster
FederationConfigFromCluster bool
// Viper-only parameters. These will in time replace all flags. // Viper-only parameters. These will in time replace all flags.
...@@ -179,6 +181,7 @@ func RegisterClusterFlags() { ...@@ -179,6 +181,7 @@ func RegisterClusterFlags() {
flag.StringVar(&TestContext.KubeContext, clientcmd.FlagContext, "", "kubeconfig context to use/override. If unset, will use value from 'current-context'") flag.StringVar(&TestContext.KubeContext, clientcmd.FlagContext, "", "kubeconfig context to use/override. If unset, will use value from 'current-context'")
flag.StringVar(&TestContext.KubeAPIContentType, "kube-api-content-type", "application/vnd.kubernetes.protobuf", "ContentType used to communicate with apiserver") flag.StringVar(&TestContext.KubeAPIContentType, "kube-api-content-type", "application/vnd.kubernetes.protobuf", "ContentType used to communicate with apiserver")
flag.StringVar(&TestContext.FederatedKubeContext, "federated-kube-context", "e2e-federation", "kubeconfig context for federation.") flag.StringVar(&TestContext.FederatedKubeContext, "federated-kube-context", "e2e-federation", "kubeconfig context for federation.")
flag.BoolVar(&TestContext.FederationConfigFromCluster, "federation-config-from-cluster", false, "whether to source configuration for member clusters from the hosting cluster.")
flag.StringVar(&TestContext.KubeVolumeDir, "volume-dir", "/var/lib/kubelet", "Path to the directory containing the kubelet volumes.") flag.StringVar(&TestContext.KubeVolumeDir, "volume-dir", "/var/lib/kubelet", "Path to the directory containing the kubelet volumes.")
flag.StringVar(&TestContext.CertDir, "cert-dir", "", "Path to the directory containing the certs. Default is empty, which doesn't use certs.") flag.StringVar(&TestContext.CertDir, "cert-dir", "", "Path to the directory containing the certs. Default is empty, which doesn't use certs.")
......
...@@ -57,7 +57,7 @@ var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func ...@@ -57,7 +57,7 @@ var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func
framework.Logf("Checking that %d clusters are Ready", len(contexts)) framework.Logf("Checking that %d clusters are Ready", len(contexts))
for _, context := range contexts { for _, context := range contexts {
fedframework.ClusterIsReadyOrFail(f, &context) fedframework.ClusterIsReadyOrFail(f, context.Name)
} }
framework.Logf("%d clusters are Ready", len(contexts)) framework.Logf("%d clusters are Ready", len(contexts))
......
...@@ -21,6 +21,7 @@ go_library( ...@@ -21,6 +21,7 @@ go_library(
"//federation/client/clientset_generated/federation_clientset:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library",
"//federation/pkg/federatedtypes:go_default_library", "//federation/pkg/federatedtypes:go_default_library",
"//federation/pkg/federatedtypes/crudtester:go_default_library", "//federation/pkg/federatedtypes/crudtester:go_default_library",
"//federation/pkg/federation-controller/util:go_default_library",
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/v1:go_default_library", "//pkg/api/v1:go_default_library",
"//pkg/api/validation:go_default_library", "//pkg/api/validation:go_default_library",
...@@ -35,7 +36,6 @@ go_library( ...@@ -35,7 +36,6 @@ go_library(
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library",
"//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library",
], ],
) )
......
...@@ -228,11 +228,15 @@ func (f *Framework) GetUnderlyingFederatedContexts() []E2EContext { ...@@ -228,11 +228,15 @@ func (f *Framework) GetUnderlyingFederatedContexts() []E2EContext {
} }
func (f *Framework) GetRegisteredClusters() ClusterSlice { func (f *Framework) GetRegisteredClusters() ClusterSlice {
return getRegisteredClusters(f) if framework.TestContext.FederationConfigFromCluster {
return registeredClustersFromSecrets(f)
} else {
return registeredClustersFromConfig(f)
}
} }
func (f *Framework) GetClusterClients() []kubeclientset.Interface { func (f *Framework) GetClusterClients() []kubeclientset.Interface {
clusters := getRegisteredClusters(f) clusters := f.GetRegisteredClusters()
var clusterClients []kubeclientset.Interface var clusterClients []kubeclientset.Interface
for _, c := range clusters { for _, c := range clusters {
clusterClients = append(clusterClients, c.Clientset) clusterClients = append(clusterClients, c.Clientset)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment