mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
apiserver identity: update Lease creation integration test to validate new naming format and hostname label
Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
This commit is contained in:
parent
21507902ba
commit
f74f819e1a
@ -18,11 +18,14 @@ package controlplane
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
"fmt"
|
||||
"hash/fnv"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
coordinationv1 "k8s.io/api/coordination/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
@ -40,6 +43,12 @@ const (
|
||||
testLeaseName = "apiserver-lease-test"
|
||||
)
|
||||
|
||||
func expectedAPIServerIdentity(hostname string) string {
|
||||
h := fnv.New32a()
|
||||
h.Write([]byte(hostname))
|
||||
return "kube-apiserver-" + fmt.Sprint(h.Sum32())
|
||||
}
|
||||
|
||||
func TestCreateLeaseOnStart(t *testing.T) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.APIServerIdentity, true)()
|
||||
result := kubeapiservertesting.StartTestServerOrDie(t, nil, nil, framework.SharedEtcd())
|
||||
@ -50,6 +59,11 @@ func TestCreateLeaseOnStart(t *testing.T) {
|
||||
t.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
hostname, err := os.Hostname()
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error getting apiserver hostname: %v", err)
|
||||
}
|
||||
|
||||
t.Logf(`Waiting the kube-apiserver Lease to be created`)
|
||||
if err := wait.PollImmediate(500*time.Millisecond, 10*time.Second, func() (bool, error) {
|
||||
leases, err := kubeclient.
|
||||
@ -59,10 +73,25 @@ func TestCreateLeaseOnStart(t *testing.T) {
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
if leases != nil && len(leases.Items) == 1 && strings.HasPrefix(leases.Items[0].Name, "kube-apiserver-") {
|
||||
return true, nil
|
||||
|
||||
if leases == nil {
|
||||
return false, nil
|
||||
}
|
||||
return false, nil
|
||||
|
||||
if len(leases.Items) != 1 {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
lease := leases.Items[0]
|
||||
if lease.Name != expectedAPIServerIdentity(hostname) {
|
||||
return false, fmt.Errorf("unexpected apiserver identity, got: %v, expected: %v", lease.Name, expectedAPIServerIdentity(hostname))
|
||||
}
|
||||
|
||||
if lease.Labels[corev1.LabelHostname] != hostname {
|
||||
return false, fmt.Errorf("unexpected hostname label, got: %v, expected: %v", lease.Labels[corev1.LabelHostname], hostname)
|
||||
}
|
||||
|
||||
return true, nil
|
||||
}); err != nil {
|
||||
t.Fatalf("Failed to see the kube-apiserver lease: %v", err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user