Documentation ¶
Overview ¶
Package upgrades provides a framework for testing Kubernetes features before, during, and after different types of upgrades.
Index ¶
- type ConfigMapUpgradeTest
- type DaemonSetUpgradeTest
- type DeploymentUpgradeTest
- type HPAUpgradeTest
- type IngressUpgradeTest
- type JobUpgradeTest
- type PersistentVolumeUpgradeTest
- type SecretUpgradeTest
- type ServiceUpgradeTest
- type StatefulSetUpgradeTest
- type SysctlUpgradeTest
- type Test
- type UpgradeType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConfigMapUpgradeTest ¶
type ConfigMapUpgradeTest struct {
// contains filtered or unexported fields
}
ConfigMapUpgradeTest tests that a ConfigMap is available before and after a cluster upgrade.
func (*ConfigMapUpgradeTest) Setup ¶
func (t *ConfigMapUpgradeTest) Setup(f *framework.Framework)
Setup creates a ConfigMap and then verifies that a pod can consume it.
func (*ConfigMapUpgradeTest) Teardown ¶
func (t *ConfigMapUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*ConfigMapUpgradeTest) Test ¶
func (t *ConfigMapUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test waits for the upgrade to complete, and then verifies that a pod can still consume the ConfigMap.
type DaemonSetUpgradeTest ¶
type DaemonSetUpgradeTest struct {
// contains filtered or unexported fields
}
DaemonSetUpgradeTest tests that a DaemonSet is running before and after a cluster upgrade.
func (*DaemonSetUpgradeTest) Setup ¶
func (t *DaemonSetUpgradeTest) Setup(f *framework.Framework)
Setup creates a DaemonSet and verifies that it's running
func (*DaemonSetUpgradeTest) Teardown ¶
func (t *DaemonSetUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*DaemonSetUpgradeTest) Test ¶
func (t *DaemonSetUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test waits until the upgrade has completed and then verifies that the DaemonSet is still running
type DeploymentUpgradeTest ¶
type DeploymentUpgradeTest struct {
// contains filtered or unexported fields
}
DeploymentUpgradeTest tests that a deployment is using the same replica sets before and after a cluster upgrade.
func (*DeploymentUpgradeTest) Setup ¶
func (t *DeploymentUpgradeTest) Setup(f *framework.Framework)
Setup creates a deployment and makes sure it has a new and an old replica set running.
func (*DeploymentUpgradeTest) Teardown ¶
func (t *DeploymentUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*DeploymentUpgradeTest) Test ¶
func (t *DeploymentUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test checks whether the replica sets for a deployment are the same after an upgrade.
type HPAUpgradeTest ¶
type HPAUpgradeTest struct {
// contains filtered or unexported fields
}
HPAUpgradeTest tests that HPA rescales target resource correctly before and after a cluster upgrade.
func (*HPAUpgradeTest) Setup ¶
func (t *HPAUpgradeTest) Setup(f *framework.Framework)
Creates a resource consumer and an HPA object that autoscales the consumer.
func (*HPAUpgradeTest) Teardown ¶
func (t *HPAUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*HPAUpgradeTest) Test ¶
func (t *HPAUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test waits for upgrade to complete and verifies if HPA works correctly.
type IngressUpgradeTest ¶
type IngressUpgradeTest struct {
// contains filtered or unexported fields
}
IngressUpgradeTest adapts the Ingress e2e for upgrade testing
func (*IngressUpgradeTest) Setup ¶
func (t *IngressUpgradeTest) Setup(f *framework.Framework)
Setup creates a GLBC, allocates an ip, and an ingress resource, then waits for a successful connectivity check to the ip.
func (*IngressUpgradeTest) Teardown ¶
func (t *IngressUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*IngressUpgradeTest) Test ¶
func (t *IngressUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test waits for the upgrade to complete, and then verifies with a connectvity check to the loadbalancer ip.
type JobUpgradeTest ¶
type JobUpgradeTest struct {
// contains filtered or unexported fields
}
JobUpgradeTest is a test harness for batch Jobs.
func (*JobUpgradeTest) Setup ¶
func (t *JobUpgradeTest) Setup(f *framework.Framework)
Setup starts a Job with a parallelism of 2 and 2 completions running.
func (*JobUpgradeTest) Teardown ¶
func (t *JobUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*JobUpgradeTest) Test ¶
func (t *JobUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test verifies that the Jobs Pods are running after the an upgrade
type PersistentVolumeUpgradeTest ¶
type PersistentVolumeUpgradeTest struct {
// contains filtered or unexported fields
}
PersistentVolumeUpgradeTest test that a pv is available before and after a cluster upgrade.
func (*PersistentVolumeUpgradeTest) Setup ¶
func (t *PersistentVolumeUpgradeTest) Setup(f *framework.Framework)
Setup creates a pv and then verifies that a pod can consume it. The pod writes data to the volume.
func (*PersistentVolumeUpgradeTest) Teardown ¶
func (t *PersistentVolumeUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*PersistentVolumeUpgradeTest) Test ¶
func (t *PersistentVolumeUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test waits for the upgrade to complete, and then verifies that a pod can still consume the pv and that the volume data persists.
type SecretUpgradeTest ¶
type SecretUpgradeTest struct {
// contains filtered or unexported fields
}
SecretUpgradeTest test that a secret is available before and after a cluster upgrade.
func (*SecretUpgradeTest) Setup ¶
func (t *SecretUpgradeTest) Setup(f *framework.Framework)
Setup creates a secret and then verifies that a pod can consume it.
func (*SecretUpgradeTest) Teardown ¶
func (t *SecretUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*SecretUpgradeTest) Test ¶
func (t *SecretUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test waits for the upgrade to complete, and then verifies that a pod can still consume the secret.
type ServiceUpgradeTest ¶
type ServiceUpgradeTest struct {
// contains filtered or unexported fields
}
ServiceUpgradeTest tests that a service is available before and after a cluster upgrade. During a master-only upgrade, it will test that a service remains available during the upgrade.
func (*ServiceUpgradeTest) Setup ¶
func (t *ServiceUpgradeTest) Setup(f *framework.Framework)
Setup creates a service with a load balancer and makes sure it's reachable.
func (*ServiceUpgradeTest) Teardown ¶
func (t *ServiceUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*ServiceUpgradeTest) Test ¶
func (t *ServiceUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test runs a connectivity check to the service.
type StatefulSetUpgradeTest ¶
type StatefulSetUpgradeTest struct {
// contains filtered or unexported fields
}
StatefulSetUpgradeTest implements an upgrade test harness for StatefulSet upgrade testing.
func (*StatefulSetUpgradeTest) Setup ¶
func (t *StatefulSetUpgradeTest) Setup(f *framework.Framework)
Setup creates a StatefulSet and a HeadlessService. It verifies the basic SatefulSet properties
func (*StatefulSetUpgradeTest) Teardown ¶
func (t *StatefulSetUpgradeTest) Teardown(f *framework.Framework)
Deletes all StatefulSets
func (*StatefulSetUpgradeTest) Test ¶
func (t *StatefulSetUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Waits for the upgrade to complete and verifies the StatefulSet basic functionality
type SysctlUpgradeTest ¶
type SysctlUpgradeTest struct {
// contains filtered or unexported fields
}
SecretUpgradeTest tests that a pod with sysctls runs before and after an upgrade. During a master upgrade, the exact pod is expected to stay running. A pod with unsafe sysctls is expected to keep failing before and after the upgrade.
func (*SysctlUpgradeTest) Setup ¶
func (t *SysctlUpgradeTest) Setup(f *framework.Framework)
Setup creates two pods: one with safe sysctls, one with unsafe sysctls. It checks that the former launched and the later is rejected.
func (*SysctlUpgradeTest) Teardown ¶
func (t *SysctlUpgradeTest) Teardown(f *framework.Framework)
Teardown cleans up any remaining resources.
func (*SysctlUpgradeTest) Test ¶
func (t *SysctlUpgradeTest) Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType)
Test waits for the upgrade to complete, and then verifies that a pod can still consume the ConfigMap.
type Test ¶
type Test interface { // Setup should create and verify whatever objects need to // exist before the upgrade disruption starts. Setup(f *framework.Framework) // Test will run during the upgrade. When the upgrade is // complete, done will be closed and final validation can // begin. Test(f *framework.Framework, done <-chan struct{}, upgrade UpgradeType) // TearDown should clean up any objects that are created that // aren't already cleaned up by the framework. Teardown(f *framework.Framework) }
Test is an interface for upgrade tests.
type UpgradeType ¶
type UpgradeType int
UpgradeType represents different types of upgrades.
const ( // MasterUpgrade indicates that only the master is being upgraded. MasterUpgrade UpgradeType = iota // NodeUpgrade indicates that only the nodes are being upgraded. NodeUpgrade // ClusterUpgrade indicates that both master and nodes are // being upgraded. ClusterUpgrade // EtcdUpgrade indicates that only etcd is being upgraded (or migrated // between storage versions). EtcdUpgrade )