mirror of https://github.com/kubernetes/kops.git
Validate after updating bastion
This commit is contained in:
parent
2e36124f77
commit
1239c05e71
|
|
@ -189,11 +189,7 @@ func (r *RollingUpdateInstanceGroup) RollingUpdate(rollingUpdateData *RollingUpd
|
||||||
klog.Infof("waiting for %v after terminating instance", sleepAfterTerminate)
|
klog.Infof("waiting for %v after terminating instance", sleepAfterTerminate)
|
||||||
time.Sleep(sleepAfterTerminate)
|
time.Sleep(sleepAfterTerminate)
|
||||||
|
|
||||||
if isBastion {
|
if rollingUpdateData.CloudOnly {
|
||||||
klog.Infof("Deleted a bastion instance, %s, and continuing with rolling-update.", instanceId)
|
|
||||||
|
|
||||||
continue
|
|
||||||
} else if rollingUpdateData.CloudOnly {
|
|
||||||
klog.Warningf("Not validating cluster as cloudonly flag is set.")
|
klog.Warningf("Not validating cluster as cloudonly flag is set.")
|
||||||
|
|
||||||
} else if featureflag.DrainAndValidateRollingUpdate.Enabled() {
|
} else if featureflag.DrainAndValidateRollingUpdate.Enabled() {
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@ import (
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
v1meta "k8s.io/apimachinery/pkg/apis/meta/v1"
|
v1meta "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
|
|
@ -500,6 +499,41 @@ func TestRollingUpdateClusterErrorsValidationAfterOneNode(t *testing.T) {
|
||||||
assertGroupInstanceCount(t, cloud, "node-1", 1)
|
assertGroupInstanceCount(t, cloud, "node-1", 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type failThreeTimesClusterValidator struct {
|
||||||
|
invocationCount int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v *failThreeTimesClusterValidator) Validate() (*validation.ValidationCluster, error) {
|
||||||
|
v.invocationCount++
|
||||||
|
if v.invocationCount <= 3 {
|
||||||
|
return &validation.ValidationCluster{
|
||||||
|
Failures: []*validation.ValidationError{
|
||||||
|
{
|
||||||
|
Kind: "testing",
|
||||||
|
Name: "testingfailure",
|
||||||
|
Message: "testing failure",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
return &validation.ValidationCluster{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRollingUpdateValidatesAfterBastion(t *testing.T) {
|
||||||
|
c, cloud, cluster := getTestSetup()
|
||||||
|
|
||||||
|
c.ValidationTimeout = 10 * time.Millisecond
|
||||||
|
c.ClusterValidator = &failThreeTimesClusterValidator{}
|
||||||
|
|
||||||
|
err := c.RollingUpdate(getGroupsAllNeedUpdate(), cluster, &kopsapi.InstanceGroupList{})
|
||||||
|
assert.NoError(t, err, "rolling update")
|
||||||
|
|
||||||
|
assertGroupInstanceCount(t, cloud, "node-1", 0)
|
||||||
|
assertGroupInstanceCount(t, cloud, "node-2", 0)
|
||||||
|
assertGroupInstanceCount(t, cloud, "master-1", 0)
|
||||||
|
assertGroupInstanceCount(t, cloud, "bastion-1", 0)
|
||||||
|
}
|
||||||
|
|
||||||
func assertGroupInstanceCount(t *testing.T, cloud awsup.AWSCloud, groupName string, expected int) {
|
func assertGroupInstanceCount(t *testing.T, cloud awsup.AWSCloud, groupName string, expected int) {
|
||||||
asgGroups, _ := cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
asgGroups, _ := cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||||
AutoScalingGroupNames: []*string{aws.String(groupName)},
|
AutoScalingGroupNames: []*string{aws.String(groupName)},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue