Clean shutdown of pods integration tests

This commit is contained in:
Wojciech Tyczyński 2022-05-21 10:22:03 +02:00
parent 054c489d00
commit 79289294b2

View File

@ -25,26 +25,26 @@ import (
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
utilfeature "k8s.io/apiserver/pkg/util/feature"
clientset "k8s.io/client-go/kubernetes"
typedv1 "k8s.io/client-go/kubernetes/typed/core/v1"
restclient "k8s.io/client-go/rest"
featuregatetesting "k8s.io/component-base/featuregate/testing"
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/test/integration"
"k8s.io/kubernetes/test/integration/framework"
)
func TestPodUpdateActiveDeadlineSeconds(t *testing.T) {
_, s, closeFn := framework.RunAnAPIServer(nil)
defer closeFn()
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
defer server.TearDownFn()
ns := framework.CreateTestingNamespace("pod-activedeadline-update", t)
defer framework.DeleteTestingNamespace(ns, t)
client := clientset.NewForConfigOrDie(server.ClientConfig)
client := clientset.NewForConfigOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}})
ns := framework.CreateNamespaceOrDie(client, "pod-activedeadline-update", t)
defer framework.DeleteNamespaceOrDie(client, ns, t)
var (
iZero = int64(0)
@ -155,14 +155,15 @@ func TestPodUpdateActiveDeadlineSeconds(t *testing.T) {
}
func TestPodReadOnlyFilesystem(t *testing.T) {
_, s, closeFn := framework.RunAnAPIServer(nil)
defer closeFn()
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
defer server.TearDownFn()
client := clientset.NewForConfigOrDie(server.ClientConfig)
isReadOnly := true
ns := framework.CreateTestingNamespace("pod-readonly-root", t)
defer framework.DeleteTestingNamespace(ns, t)
client := clientset.NewForConfigOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}})
ns := framework.CreateNamespaceOrDie(client, "pod-readonly-root", t)
defer framework.DeleteNamespaceOrDie(client, ns, t)
pod := &v1.Pod{
ObjectMeta: metav1.ObjectMeta{
@ -191,13 +192,14 @@ func TestPodReadOnlyFilesystem(t *testing.T) {
func TestPodCreateEphemeralContainers(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EphemeralContainers, true)()
_, s, closeFn := framework.RunAnAPIServer(nil)
defer closeFn()
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
defer server.TearDownFn()
ns := framework.CreateTestingNamespace("pod-create-ephemeral-containers", t)
defer framework.DeleteTestingNamespace(ns, t)
client := clientset.NewForConfigOrDie(server.ClientConfig)
client := clientset.NewForConfigOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}})
ns := framework.CreateNamespaceOrDie(client, "pod-create-ephemeral-containers", t)
defer framework.DeleteNamespaceOrDie(client, ns, t)
pod := &v1.Pod{
ObjectMeta: metav1.ObjectMeta{
@ -261,13 +263,14 @@ func setUpEphemeralContainers(podsClient typedv1.PodInterface, pod *v1.Pod, cont
func TestPodPatchEphemeralContainers(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EphemeralContainers, true)()
_, s, closeFn := framework.RunAnAPIServer(nil)
defer closeFn()
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
defer server.TearDownFn()
ns := framework.CreateTestingNamespace("pod-patch-ephemeral-containers", t)
defer framework.DeleteTestingNamespace(ns, t)
client := clientset.NewForConfigOrDie(server.ClientConfig)
client := clientset.NewForConfigOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}})
ns := framework.CreateNamespaceOrDie(client, "pod-patch-ephemeral-containers", t)
defer framework.DeleteNamespaceOrDie(client, ns, t)
testPod := func(name string) *v1.Pod {
return &v1.Pod{
@ -493,13 +496,14 @@ func TestPodPatchEphemeralContainers(t *testing.T) {
func TestPodUpdateEphemeralContainers(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EphemeralContainers, true)()
_, s, closeFn := framework.RunAnAPIServer(nil)
defer closeFn()
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
defer server.TearDownFn()
ns := framework.CreateTestingNamespace("pod-update-ephemeral-containers", t)
defer framework.DeleteTestingNamespace(ns, t)
client := clientset.NewForConfigOrDie(server.ClientConfig)
client := clientset.NewForConfigOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}})
ns := framework.CreateNamespaceOrDie(client, "pod-update-ephemeral-containers", t)
defer framework.DeleteNamespaceOrDie(client, ns, t)
testPod := func(name string) *v1.Pod {
return &v1.Pod{
@ -686,13 +690,14 @@ func TestPodUpdateEphemeralContainers(t *testing.T) {
func TestPodEphemeralContainersDisabled(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.EphemeralContainers, false)()
_, s, closeFn := framework.RunAnAPIServer(nil)
defer closeFn()
// Disable ServiceAccount admission plugin as we don't have serviceaccount controller running.
server := kubeapiservertesting.StartTestServerOrDie(t, nil, []string{"--disable-admission-plugins=ServiceAccount"}, framework.SharedEtcd())
defer server.TearDownFn()
ns := framework.CreateTestingNamespace("pod-ephemeral-containers-disabled", t)
defer framework.DeleteTestingNamespace(ns, t)
client := clientset.NewForConfigOrDie(server.ClientConfig)
client := clientset.NewForConfigOrDie(&restclient.Config{Host: s.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}})
ns := framework.CreateNamespaceOrDie(client, "pod-ephemeral-containers-disabled", t)
defer framework.DeleteNamespaceOrDie(client, ns, t)
pod := &v1.Pod{
ObjectMeta: metav1.ObjectMeta{