mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-29 21:29:24 +00:00
Merge pull request #27260 from nikhiljindal/dnsProvider
Automatic merge from submit-queue
Updating federation up scripts to work in non e2e setup
Ref: https://github.com/kubernetes/kubernetes.github.io/pull/656
Updating the federation up scripts so that they work as per steps in https://github.com/kubernetes/kubernetes.github.io/pull/656.
Changes are:
* Updating the default namespace to be "federation" instead of "federation-e2e"
* Updated the kubeconfig context to be named "federation-cluster" instead of "federated-context"
* Fixing federation-up so that FEDERATION_IMAGE_TAG is set even when federation-up is run without running `e2e.go --up`. e2e-up.sh sets it here: 6a388d4a0d/hack/e2e-internal/e2e-up.sh (L44).
* Adding a "missingkey=zero" option to template parser. Without this, the parser adds `"<no value>"` at the place of an env var that is not set. With this change, it instead replaces it with the corresponding zero value (for ex "" for strings). This is required for the FEDERATION_DNS_PROVIDER_CONFIG env var.
cc @kubernetes/sig-cluster-federation @colhom @mml
This commit is contained in:
@@ -18,16 +18,19 @@ package e2e
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
federationapi "k8s.io/kubernetes/federation/apis/federation"
|
||||
"k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/util/wait"
|
||||
"k8s.io/kubernetes/test/e2e/framework"
|
||||
)
|
||||
|
||||
// Create/delete cluster api objects
|
||||
var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func() {
|
||||
f := framework.NewDefaultFederatedFramework("federated-cluster")
|
||||
f := framework.NewDefaultFederatedFramework("federation-cluster")
|
||||
It("should allow creation of cluster api objects", func() {
|
||||
framework.SkipUnlessFederated(f.Client)
|
||||
|
||||
@@ -54,16 +57,34 @@ var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func
|
||||
},
|
||||
},
|
||||
}
|
||||
_, err := f.FederationClient.Clusters().Create(&cluster)
|
||||
_, err := f.FederationClientset.Federation().Clusters().Create(&cluster)
|
||||
framework.ExpectNoError(err, fmt.Sprintf("creating cluster: %+v", err))
|
||||
}
|
||||
|
||||
for _, context := range contexts {
|
||||
c, err := f.FederationClient.Clusters().Get(context.Name)
|
||||
c, err := f.FederationClientset.Federation().Clusters().Get(context.Name)
|
||||
framework.ExpectNoError(err, fmt.Sprintf("get cluster: %+v", err))
|
||||
if c.ObjectMeta.Name != context.Name {
|
||||
framework.Failf("cluster name does not match input context: actual=%+v, expected=%+v", c, context)
|
||||
}
|
||||
err = isReady(context.Name, f.FederationClientset)
|
||||
framework.ExpectNoError(err, fmt.Sprintf("unexpected error in verifying if cluster %s is ready: %+v", context.Name, err))
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
// Verify that the cluster is marked ready.
|
||||
func isReady(clusterName string, clientset *federation_internalclientset.Clientset) error {
|
||||
return wait.PollImmediate(time.Second, wait.ForeverTestTimeout, func() (bool, error) {
|
||||
c, err := clientset.Federation().Clusters().Get(clusterName)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
for _, condition := range c.Status.Conditions {
|
||||
if condition.Type == federationapi.ClusterReady && condition.Status == api.ConditionTrue {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
return false, nil
|
||||
})
|
||||
}
|
||||
|
||||
@@ -586,7 +586,7 @@ func (f *Framework) GetUnderlyingFederatedContexts() []E2EContext {
|
||||
|
||||
e2eContexts := []E2EContext{}
|
||||
for _, context := range kubeconfig.Contexts {
|
||||
if strings.HasPrefix(context.Name, "federation-e2e") {
|
||||
if strings.HasPrefix(context.Name, "federation") && context.Name != "federation-cluster" {
|
||||
|
||||
user := kubeconfig.findUser(context.Context.User)
|
||||
if user == nil {
|
||||
|
||||
@@ -92,7 +92,7 @@ func RegisterFlags() {
|
||||
flag.StringVar(&TestContext.KubeConfig, clientcmd.RecommendedConfigPathFlag, os.Getenv(clientcmd.RecommendedConfigPathEnvVar), "Path to kubeconfig containing embedded authinfo.")
|
||||
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", "", "ContentType used to communicate with apiserver")
|
||||
flag.StringVar(&federatedKubeContext, "federated-kube-context", "federated-cluster", "kubeconfig context for federated-cluster.")
|
||||
flag.StringVar(&federatedKubeContext, "federated-kube-context", "federation-cluster", "kubeconfig context for federation-cluster.")
|
||||
|
||||
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.")
|
||||
|
||||
@@ -383,7 +383,7 @@ func SkipUnlessServerVersionGTE(v semver.Version, c discovery.ServerVersionInter
|
||||
func SkipUnlessFederated(c *client.Client) {
|
||||
federationNS := os.Getenv("FEDERATION_NAMESPACE")
|
||||
if federationNS == "" {
|
||||
federationNS = "federation-e2e"
|
||||
federationNS = "federation"
|
||||
}
|
||||
|
||||
_, err := c.Namespaces().Get(federationNS)
|
||||
|
||||
Reference in New Issue
Block a user