Commit 70946a57 authored by k8s-merge-robot's avatar k8s-merge-robot

Merge pull request #20571 from liggitt/service-account-e2e

Auto commit by PR queue bot
parents b73f83d9 1a92b8d1
...@@ -21,8 +21,7 @@ import ( ...@@ -21,8 +21,7 @@ import (
"time" "time"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
client "k8s.io/kubernetes/pkg/client/unversioned" apierrors "k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/pkg/util/wait"
"k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount"
...@@ -40,21 +39,34 @@ var _ = Describe("ServiceAccounts", func() { ...@@ -40,21 +39,34 @@ var _ = Describe("ServiceAccounts", func() {
// Standard get, update retry loop // Standard get, update retry loop
expectNoError(wait.Poll(time.Millisecond*500, time.Second*10, func() (bool, error) { expectNoError(wait.Poll(time.Millisecond*500, time.Second*10, func() (bool, error) {
By("getting the auto-created API token") By("getting the auto-created API token")
tokenSelector := fields.SelectorFromSet(map[string]string{client.SecretType: string(api.SecretTypeServiceAccountToken)}) sa, err := f.Client.ServiceAccounts(f.Namespace.Name).Get("default")
options := api.ListOptions{FieldSelector: tokenSelector} if apierrors.IsNotFound(err) {
secrets, err := f.Client.Secrets(f.Namespace.Name).List(options) Logf("default service account was not found")
return false, nil
}
if err != nil { if err != nil {
Logf("error getting default service account: %v", err)
return false, err return false, err
} }
if len(secrets.Items) == 0 { if len(sa.Secrets) == 0 {
Logf("default service account has no secret references")
return false, nil return false, nil
} }
if len(secrets.Items) > 1 { for _, secretRef := range sa.Secrets {
return false, fmt.Errorf("Expected 1 token secret, got %d", len(secrets.Items)) secret, err := f.Client.Secrets(f.Namespace.Name).Get(secretRef.Name)
if err != nil {
Logf("Error getting secret %s: %v", secretRef.Name, err)
continue
}
if secret.Type == api.SecretTypeServiceAccountToken {
tokenContent = string(secret.Data[api.ServiceAccountTokenKey])
rootCAContent = string(secret.Data[api.ServiceAccountRootCAKey])
return true, nil
}
} }
tokenContent = string(secrets.Items[0].Data[api.ServiceAccountTokenKey])
rootCAContent = string(secrets.Items[0].Data[api.ServiceAccountRootCAKey]) Logf("default service account has no secret references to valid service account tokens")
return true, nil return false, nil
})) }))
pod := &api.Pod{ pod := &api.Pod{
......
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