mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 20:53:33 +00:00
Merge pull request #99852 from wojtek-t/cleanup_describe_16
Cleanup test/e2e/upgrades directory
This commit is contained in:
commit
eacb4bc8f0
@ -40,7 +40,11 @@ import (
|
|||||||
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
||||||
"k8s.io/kubernetes/test/e2e/upgrades"
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
apps "k8s.io/kubernetes/test/e2e/upgrades/apps"
|
"k8s.io/kubernetes/test/e2e/upgrades/apps"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades/auth"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades/autoscaling"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades/network"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades/node"
|
||||||
"k8s.io/kubernetes/test/e2e/upgrades/storage"
|
"k8s.io/kubernetes/test/e2e/upgrades/storage"
|
||||||
"k8s.io/kubernetes/test/utils/junit"
|
"k8s.io/kubernetes/test/utils/junit"
|
||||||
|
|
||||||
@ -55,42 +59,42 @@ var (
|
|||||||
const etcdImage = "3.4.9-1"
|
const etcdImage = "3.4.9-1"
|
||||||
|
|
||||||
var upgradeTests = []upgrades.Test{
|
var upgradeTests = []upgrades.Test{
|
||||||
&upgrades.ServiceUpgradeTest{},
|
&network.ServiceUpgradeTest{},
|
||||||
&upgrades.SecretUpgradeTest{},
|
&node.SecretUpgradeTest{},
|
||||||
&apps.ReplicaSetUpgradeTest{},
|
&apps.ReplicaSetUpgradeTest{},
|
||||||
&apps.StatefulSetUpgradeTest{},
|
&apps.StatefulSetUpgradeTest{},
|
||||||
&apps.DeploymentUpgradeTest{},
|
&apps.DeploymentUpgradeTest{},
|
||||||
&apps.JobUpgradeTest{},
|
&apps.JobUpgradeTest{},
|
||||||
&upgrades.ConfigMapUpgradeTest{},
|
&node.ConfigMapUpgradeTest{},
|
||||||
&upgrades.HPAUpgradeTest{},
|
&autoscaling.HPAUpgradeTest{},
|
||||||
&storage.PersistentVolumeUpgradeTest{},
|
&storage.PersistentVolumeUpgradeTest{},
|
||||||
&apps.DaemonSetUpgradeTest{},
|
&apps.DaemonSetUpgradeTest{},
|
||||||
&upgrades.AppArmorUpgradeTest{},
|
&node.AppArmorUpgradeTest{},
|
||||||
&storage.VolumeModeDowngradeTest{},
|
&storage.VolumeModeDowngradeTest{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var gpuUpgradeTests = []upgrades.Test{
|
var gpuUpgradeTests = []upgrades.Test{
|
||||||
&upgrades.NvidiaGPUUpgradeTest{},
|
&node.NvidiaGPUUpgradeTest{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var statefulsetUpgradeTests = []upgrades.Test{
|
var statefulsetUpgradeTests = []upgrades.Test{
|
||||||
&upgrades.MySQLUpgradeTest{},
|
&apps.MySQLUpgradeTest{},
|
||||||
&upgrades.EtcdUpgradeTest{},
|
&apps.EtcdUpgradeTest{},
|
||||||
&upgrades.CassandraUpgradeTest{},
|
&apps.CassandraUpgradeTest{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var kubeProxyUpgradeTests = []upgrades.Test{
|
var kubeProxyUpgradeTests = []upgrades.Test{
|
||||||
&upgrades.KubeProxyUpgradeTest{},
|
&network.KubeProxyUpgradeTest{},
|
||||||
&upgrades.ServiceUpgradeTest{},
|
&network.ServiceUpgradeTest{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var kubeProxyDowngradeTests = []upgrades.Test{
|
var kubeProxyDowngradeTests = []upgrades.Test{
|
||||||
&upgrades.KubeProxyDowngradeTest{},
|
&network.KubeProxyDowngradeTest{},
|
||||||
&upgrades.ServiceUpgradeTest{},
|
&network.ServiceUpgradeTest{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var serviceaccountAdmissionControllerMigrationTests = []upgrades.Test{
|
var serviceaccountAdmissionControllerMigrationTests = []upgrades.Test{
|
||||||
&upgrades.ServiceAccountAdmissionControllerMigrationTest{},
|
&auth.ServiceAccountAdmissionControllerMigrationTest{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// masterUpgrade upgrades master node on GCE/GKE.
|
// masterUpgrade upgrades master node on GCE/GKE.
|
||||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -34,6 +34,7 @@ import (
|
|||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2estatefulset "k8s.io/kubernetes/test/e2e/framework/statefulset"
|
e2estatefulset "k8s.io/kubernetes/test/e2e/framework/statefulset"
|
||||||
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
|
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
)
|
)
|
||||||
|
|
||||||
const cassandraManifestPath = "test/e2e/testing-manifests/statefulset/cassandra"
|
const cassandraManifestPath = "test/e2e/testing-manifests/statefulset/cassandra"
|
||||||
@ -49,7 +50,7 @@ type CassandraUpgradeTest struct {
|
|||||||
func (CassandraUpgradeTest) Name() string { return "cassandra-upgrade" }
|
func (CassandraUpgradeTest) Name() string { return "cassandra-upgrade" }
|
||||||
|
|
||||||
// Skip returns true when this test can be skipped.
|
// Skip returns true when this test can be skipped.
|
||||||
func (CassandraUpgradeTest) Skip(upgCtx UpgradeContext) bool {
|
func (CassandraUpgradeTest) Skip(upgCtx upgrades.UpgradeContext) bool {
|
||||||
minVersion := version.MustParseSemantic("1.6.0")
|
minVersion := version.MustParseSemantic("1.6.0")
|
||||||
for _, vCtx := range upgCtx.Versions {
|
for _, vCtx := range upgCtx.Versions {
|
||||||
if vCtx.Version.LessThan(minVersion) {
|
if vCtx.Version.LessThan(minVersion) {
|
||||||
@ -169,7 +170,7 @@ func (t *CassandraUpgradeTest) getServiceIP(f *framework.Framework, ns, svcName
|
|||||||
// from the db. Each attempt is tallied and at the end we verify if the success
|
// from the db. Each attempt is tallied and at the end we verify if the success
|
||||||
// ratio is over a certain threshold (0.75). We also verify that we get
|
// ratio is over a certain threshold (0.75). We also verify that we get
|
||||||
// at least the same number of rows back as we successfully wrote.
|
// at least the same number of rows back as we successfully wrote.
|
||||||
func (t *CassandraUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *CassandraUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
ginkgo.By("Continuously polling the database during upgrade.")
|
ginkgo.By("Continuously polling the database during upgrade.")
|
||||||
var (
|
var (
|
||||||
success, failures, writeAttempts, lastUserCount int
|
success, failures, writeAttempts, lastUserCount int
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -34,6 +34,7 @@ import (
|
|||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2estatefulset "k8s.io/kubernetes/test/e2e/framework/statefulset"
|
e2estatefulset "k8s.io/kubernetes/test/e2e/framework/statefulset"
|
||||||
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
|
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
)
|
)
|
||||||
|
|
||||||
const manifestPath = "test/e2e/testing-manifests/statefulset/etcd"
|
const manifestPath = "test/e2e/testing-manifests/statefulset/etcd"
|
||||||
@ -48,7 +49,7 @@ type EtcdUpgradeTest struct {
|
|||||||
func (EtcdUpgradeTest) Name() string { return "etcd-upgrade" }
|
func (EtcdUpgradeTest) Name() string { return "etcd-upgrade" }
|
||||||
|
|
||||||
// Skip returns true when this test can be skipped.
|
// Skip returns true when this test can be skipped.
|
||||||
func (EtcdUpgradeTest) Skip(upgCtx UpgradeContext) bool {
|
func (EtcdUpgradeTest) Skip(upgCtx upgrades.UpgradeContext) bool {
|
||||||
minVersion := version.MustParseSemantic("1.6.0")
|
minVersion := version.MustParseSemantic("1.6.0")
|
||||||
for _, vCtx := range upgCtx.Versions {
|
for _, vCtx := range upgCtx.Versions {
|
||||||
if vCtx.Version.LessThan(minVersion) {
|
if vCtx.Version.LessThan(minVersion) {
|
||||||
@ -157,7 +158,7 @@ func (t *EtcdUpgradeTest) getServiceIP(f *framework.Framework, ns, svcName strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Test waits for upgrade to complete and verifies if etcd is writable.
|
// Test waits for upgrade to complete and verifies if etcd is writable.
|
||||||
func (t *EtcdUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *EtcdUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
ginkgo.By("Continuously polling the database during upgrade.")
|
ginkgo.By("Continuously polling the database during upgrade.")
|
||||||
var (
|
var (
|
||||||
success, failures, writeAttempts, lastUserCount int
|
success, failures, writeAttempts, lastUserCount int
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -34,6 +34,7 @@ import (
|
|||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2estatefulset "k8s.io/kubernetes/test/e2e/framework/statefulset"
|
e2estatefulset "k8s.io/kubernetes/test/e2e/framework/statefulset"
|
||||||
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
|
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
)
|
)
|
||||||
|
|
||||||
const mysqlManifestPath = "test/e2e/testing-manifests/statefulset/mysql-upgrade"
|
const mysqlManifestPath = "test/e2e/testing-manifests/statefulset/mysql-upgrade"
|
||||||
@ -49,7 +50,7 @@ type MySQLUpgradeTest struct {
|
|||||||
func (MySQLUpgradeTest) Name() string { return "mysql-upgrade" }
|
func (MySQLUpgradeTest) Name() string { return "mysql-upgrade" }
|
||||||
|
|
||||||
// Skip returns true when this test can be skipped.
|
// Skip returns true when this test can be skipped.
|
||||||
func (MySQLUpgradeTest) Skip(upgCtx UpgradeContext) bool {
|
func (MySQLUpgradeTest) Skip(upgCtx upgrades.UpgradeContext) bool {
|
||||||
minVersion := version.MustParseSemantic("1.5.0")
|
minVersion := version.MustParseSemantic("1.5.0")
|
||||||
|
|
||||||
for _, vCtx := range upgCtx.Versions {
|
for _, vCtx := range upgCtx.Versions {
|
||||||
@ -125,7 +126,7 @@ func (t *MySQLUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
|
|
||||||
// Test continually polls the db using the read and write connections, inserting data, and checking
|
// Test continually polls the db using the read and write connections, inserting data, and checking
|
||||||
// that all the data is readable.
|
// that all the data is readable.
|
||||||
func (t *MySQLUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *MySQLUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
var writeSuccess, readSuccess, writeFailure, readFailure int
|
var writeSuccess, readSuccess, writeFailure, readFailure int
|
||||||
ginkgo.By("Continuously polling the database during upgrade.")
|
ginkgo.By("Continuously polling the database during upgrade.")
|
||||||
go wait.Until(func() {
|
go wait.Until(func() {
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package apps
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package auth
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -28,6 +28,7 @@ import (
|
|||||||
e2eauth "k8s.io/kubernetes/test/e2e/auth"
|
e2eauth "k8s.io/kubernetes/test/e2e/auth"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
imageutils "k8s.io/kubernetes/test/utils/image"
|
imageutils "k8s.io/kubernetes/test/utils/image"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ func (t *ServiceAccountAdmissionControllerMigrationTest) Setup(f *framework.Fram
|
|||||||
|
|
||||||
// Test waits for the upgrade to complete, and then verifies pod-before-migration
|
// Test waits for the upgrade to complete, and then verifies pod-before-migration
|
||||||
// and pod-after-migration are able to make requests using in cluster config.
|
// and pod-after-migration are able to make requests using in cluster config.
|
||||||
func (t *ServiceAccountAdmissionControllerMigrationTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *ServiceAccountAdmissionControllerMigrationTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
ginkgo.By("Waiting for upgrade to finish")
|
ginkgo.By("Waiting for upgrade to finish")
|
||||||
<-done
|
<-done
|
||||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package autoscaling
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -23,6 +23,7 @@ import (
|
|||||||
autoscalingv1 "k8s.io/api/autoscaling/v1"
|
autoscalingv1 "k8s.io/api/autoscaling/v1"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2eautoscaling "k8s.io/kubernetes/test/e2e/framework/autoscaling"
|
e2eautoscaling "k8s.io/kubernetes/test/e2e/framework/autoscaling"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
)
|
)
|
||||||
@ -61,7 +62,7 @@ func (t *HPAUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Test waits for upgrade to complete and verifies if HPA works correctly.
|
// Test waits for upgrade to complete and verifies if HPA works correctly.
|
||||||
func (t *HPAUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *HPAUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
// Block until upgrade is done
|
// Block until upgrade is done
|
||||||
ginkgo.By(fmt.Sprintf("Waiting for upgrade to finish before checking HPA"))
|
ginkgo.By(fmt.Sprintf("Waiting for upgrade to finish before checking HPA"))
|
||||||
<-done
|
<-done
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package network
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -29,6 +29,7 @@ import (
|
|||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
)
|
)
|
||||||
@ -55,7 +56,7 @@ func (t *KubeProxyUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Test validates if kube-proxy is migrated from static pods to DaemonSet.
|
// Test validates if kube-proxy is migrated from static pods to DaemonSet.
|
||||||
func (t *KubeProxyUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *KubeProxyUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
c := f.ClientSet
|
c := f.ClientSet
|
||||||
|
|
||||||
// Block until upgrade is done.
|
// Block until upgrade is done.
|
||||||
@ -90,7 +91,7 @@ func (t *KubeProxyDowngradeTest) Setup(f *framework.Framework) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Test validates if kube-proxy is migrated from DaemonSet to static pods.
|
// Test validates if kube-proxy is migrated from DaemonSet to static pods.
|
||||||
func (t *KubeProxyDowngradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *KubeProxyDowngradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
c := f.ClientSet
|
c := f.ClientSet
|
||||||
|
|
||||||
// Block until upgrade is done.
|
// Block until upgrade is done.
|
@ -14,13 +14,14 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package network
|
||||||
|
|
||||||
import (
|
import (
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
|
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
)
|
)
|
||||||
@ -85,11 +86,11 @@ func (t *ServiceUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Test runs a connectivity check to the service.
|
// Test runs a connectivity check to the service.
|
||||||
func (t *ServiceUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *ServiceUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
switch upgrade {
|
switch upgrade {
|
||||||
case MasterUpgrade, ClusterUpgrade:
|
case upgrades.MasterUpgrade, upgrades.ClusterUpgrade:
|
||||||
t.test(f, done, true, true)
|
t.test(f, done, true, true)
|
||||||
case NodeUpgrade:
|
case upgrades.NodeUpgrade:
|
||||||
// Node upgrades should test during disruption only on GCE/GKE for now.
|
// Node upgrades should test during disruption only on GCE/GKE for now.
|
||||||
t.test(f, done, shouldTestPDBs(), false)
|
t.test(f, done, shouldTestPDBs(), false)
|
||||||
default:
|
default:
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package node
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -24,6 +24,7 @@ import (
|
|||||||
e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl"
|
e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl"
|
||||||
e2esecurity "k8s.io/kubernetes/test/e2e/framework/security"
|
e2esecurity "k8s.io/kubernetes/test/e2e/framework/security"
|
||||||
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
"github.com/onsi/gomega"
|
"github.com/onsi/gomega"
|
||||||
@ -39,7 +40,7 @@ type AppArmorUpgradeTest struct {
|
|||||||
func (AppArmorUpgradeTest) Name() string { return "apparmor-upgrade" }
|
func (AppArmorUpgradeTest) Name() string { return "apparmor-upgrade" }
|
||||||
|
|
||||||
// Skip returns true when this test can be skipped.
|
// Skip returns true when this test can be skipped.
|
||||||
func (AppArmorUpgradeTest) Skip(upgCtx UpgradeContext) bool {
|
func (AppArmorUpgradeTest) Skip(upgCtx upgrades.UpgradeContext) bool {
|
||||||
supportedImages := make(map[string]bool)
|
supportedImages := make(map[string]bool)
|
||||||
for _, d := range e2eskipper.AppArmorDistros {
|
for _, d := range e2eskipper.AppArmorDistros {
|
||||||
supportedImages[d] = true
|
supportedImages[d] = true
|
||||||
@ -69,9 +70,9 @@ func (t *AppArmorUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
|
|
||||||
// Test waits for the upgrade to complete, and then verifies that a
|
// Test waits for the upgrade to complete, and then verifies that a
|
||||||
// pod can still consume the secret.
|
// pod can still consume the secret.
|
||||||
func (t *AppArmorUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *AppArmorUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
<-done
|
<-done
|
||||||
if upgrade == MasterUpgrade {
|
if upgrade == upgrades.MasterUpgrade {
|
||||||
t.verifyPodStillUp(f)
|
t.verifyPodStillUp(f)
|
||||||
}
|
}
|
||||||
t.verifyNodesAppArmorEnabled(f)
|
t.verifyNodesAppArmorEnabled(f)
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package node
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -24,6 +24,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
imageutils "k8s.io/kubernetes/test/utils/image"
|
imageutils "k8s.io/kubernetes/test/utils/image"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
@ -68,7 +69,7 @@ func (t *ConfigMapUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
|
|
||||||
// Test waits for the upgrade to complete, and then verifies that a
|
// Test waits for the upgrade to complete, and then verifies that a
|
||||||
// pod can still consume the ConfigMap.
|
// pod can still consume the ConfigMap.
|
||||||
func (t *ConfigMapUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *ConfigMapUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
<-done
|
<-done
|
||||||
ginkgo.By("Consuming the ConfigMap after upgrade")
|
ginkgo.By("Consuming the ConfigMap after upgrade")
|
||||||
t.testPod(f)
|
t.testPod(f)
|
@ -14,12 +14,13 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package node
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
e2ejob "k8s.io/kubernetes/test/e2e/framework/job"
|
e2ejob "k8s.io/kubernetes/test/e2e/framework/job"
|
||||||
"k8s.io/kubernetes/test/e2e/scheduling"
|
"k8s.io/kubernetes/test/e2e/scheduling"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
)
|
)
|
||||||
@ -45,11 +46,11 @@ func (t *NvidiaGPUUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
|
|
||||||
// Test waits for the upgrade to complete, and then verifies that the
|
// Test waits for the upgrade to complete, and then verifies that the
|
||||||
// cuda pod started by the gpu job can successfully finish.
|
// cuda pod started by the gpu job can successfully finish.
|
||||||
func (t *NvidiaGPUUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *NvidiaGPUUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
<-done
|
<-done
|
||||||
ginkgo.By("Verifying gpu job success")
|
ginkgo.By("Verifying gpu job success")
|
||||||
scheduling.VerifyJobNCompletions(f, completions)
|
scheduling.VerifyJobNCompletions(f, completions)
|
||||||
if upgrade == MasterUpgrade || upgrade == ClusterUpgrade {
|
if upgrade == upgrades.MasterUpgrade || upgrade == upgrades.ClusterUpgrade {
|
||||||
// MasterUpgrade should be totally hitless.
|
// MasterUpgrade should be totally hitless.
|
||||||
job, err := e2ejob.GetJob(f.ClientSet, f.Namespace.Name, "cuda-add")
|
job, err := e2ejob.GetJob(f.ClientSet, f.Namespace.Name, "cuda-add")
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package node
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -24,6 +24,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
imageutils "k8s.io/kubernetes/test/utils/image"
|
imageutils "k8s.io/kubernetes/test/utils/image"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo"
|
"github.com/onsi/ginkgo"
|
||||||
@ -66,7 +67,7 @@ func (t *SecretUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
|
|
||||||
// Test waits for the upgrade to complete, and then verifies that a
|
// Test waits for the upgrade to complete, and then verifies that a
|
||||||
// pod can still consume the secret.
|
// pod can still consume the secret.
|
||||||
func (t *SecretUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *SecretUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
<-done
|
<-done
|
||||||
ginkgo.By("Consuming the secret after upgrade")
|
ginkgo.By("Consuming the secret after upgrade")
|
||||||
t.testPod(f)
|
t.testPod(f)
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package upgrades
|
package node
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@ -29,6 +29,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/kubelet/sysctl"
|
"k8s.io/kubernetes/pkg/kubelet/sysctl"
|
||||||
|
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
"k8s.io/kubernetes/test/e2e/upgrades"
|
||||||
imageutils "k8s.io/kubernetes/test/utils/image"
|
imageutils "k8s.io/kubernetes/test/utils/image"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -49,10 +50,10 @@ func (t *SysctlUpgradeTest) Setup(f *framework.Framework) {
|
|||||||
|
|
||||||
// Test waits for the upgrade to complete, and then verifies that a
|
// Test waits for the upgrade to complete, and then verifies that a
|
||||||
// pod can still consume the ConfigMap.
|
// pod can still consume the ConfigMap.
|
||||||
func (t *SysctlUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) {
|
func (t *SysctlUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade upgrades.UpgradeType) {
|
||||||
<-done
|
<-done
|
||||||
switch upgrade {
|
switch upgrade {
|
||||||
case MasterUpgrade, ClusterUpgrade:
|
case upgrades.MasterUpgrade, upgrades.ClusterUpgrade:
|
||||||
ginkgo.By("Checking the safe sysctl pod keeps running on master upgrade")
|
ginkgo.By("Checking the safe sysctl pod keeps running on master upgrade")
|
||||||
pod, err := f.ClientSet.CoreV1().Pods(t.validPod.Namespace).Get(context.TODO(), t.validPod.Name, metav1.GetOptions{})
|
pod, err := f.ClientSet.CoreV1().Pods(t.validPod.Namespace).Get(context.TODO(), t.validPod.Name, metav1.GetOptions{})
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
Loading…
Reference in New Issue
Block a user