...
1
16
17 package network
18
19 import (
20 "context"
21 "fmt"
22
23 "k8s.io/kubernetes/test/e2e/cloud/gcp/common"
24 "k8s.io/kubernetes/test/e2e/feature"
25 "k8s.io/kubernetes/test/e2e/framework"
26 e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
27 "k8s.io/kubernetes/test/e2e/upgrades"
28 "k8s.io/kubernetes/test/e2e/upgrades/network"
29 "k8s.io/kubernetes/test/utils/junit"
30 admissionapi "k8s.io/pod-security-admission/api"
31
32 "github.com/onsi/ginkgo/v2"
33 )
34
35 var upgradeTests = []upgrades.Test{
36 &network.KubeProxyUpgradeTest{},
37 &network.ServiceUpgradeTest{},
38 }
39
40 var downgradeTests = []upgrades.Test{
41 &network.KubeProxyDowngradeTest{},
42 &network.ServiceUpgradeTest{},
43 }
44
45 func kubeProxyDaemonSetExtraEnvs(enableKubeProxyDaemonSet bool) []string {
46 return []string{fmt.Sprintf("KUBE_PROXY_DAEMONSET=%v", enableKubeProxyDaemonSet)}
47 }
48
49 var _ = SIGDescribe("kube-proxy migration", feature.KubeProxyDaemonSetMigration, func() {
50 f := framework.NewDefaultFramework("kube-proxy-ds-migration")
51 f.NamespacePodSecurityLevel = admissionapi.LevelPrivileged
52 upgradeTestFrameworks := upgrades.CreateUpgradeFrameworks(upgradeTests)
53 downgradeTestsFrameworks := upgrades.CreateUpgradeFrameworks(downgradeTests)
54
55 ginkgo.BeforeEach(func() {
56 e2eskipper.SkipUnlessProviderIs("gce")
57 })
58
59 ginkgo.Describe("Upgrade kube-proxy from static pods to a DaemonSet", func() {
60 f.It("should maintain a functioning cluster", feature.KubeProxyDaemonSetUpgrade, func(ctx context.Context) {
61 upgCtx, err := common.GetUpgradeContext(f.ClientSet.Discovery())
62 framework.ExpectNoError(err)
63
64 testSuite := &junit.TestSuite{Name: "kube-proxy upgrade"}
65 kubeProxyUpgradeTest := &junit.TestCase{
66 Name: "kube-proxy-ds-upgrade",
67 Classname: "upgrade_tests",
68 }
69 testSuite.TestCases = append(testSuite.TestCases, kubeProxyUpgradeTest)
70
71 extraEnvs := kubeProxyDaemonSetExtraEnvs(true)
72 upgradeFunc := common.ClusterUpgradeFunc(f, upgCtx, kubeProxyUpgradeTest, extraEnvs, extraEnvs)
73 upgrades.RunUpgradeSuite(ctx, upgCtx, upgradeTests, upgradeTestFrameworks, testSuite, upgrades.ClusterUpgrade, upgradeFunc)
74 })
75 })
76
77 ginkgo.Describe("Downgrade kube-proxy from a DaemonSet to static pods", func() {
78 f.It("should maintain a functioning cluster", feature.KubeProxyDaemonSetDowngrade, func(ctx context.Context) {
79 upgCtx, err := common.GetUpgradeContext(f.ClientSet.Discovery())
80 framework.ExpectNoError(err)
81
82 testSuite := &junit.TestSuite{Name: "kube-proxy downgrade"}
83 kubeProxyDowngradeTest := &junit.TestCase{
84 Name: "kube-proxy-ds-downgrade",
85 Classname: "upgrade_tests",
86 }
87 testSuite.TestCases = append(testSuite.TestCases, kubeProxyDowngradeTest)
88
89 extraEnvs := kubeProxyDaemonSetExtraEnvs(false)
90 upgradeFunc := common.ClusterDowngradeFunc(f, upgCtx, kubeProxyDowngradeTest, extraEnvs, extraEnvs)
91 upgrades.RunUpgradeSuite(ctx, upgCtx, downgradeTests, downgradeTestsFrameworks, testSuite, upgrades.ClusterUpgrade, upgradeFunc)
92 })
93 })
94 })
95
View as plain text