Merge pull request #12973 from olemarkus/karpenter-npr

Various nill pointer fixes for karpenter
This commit is contained in:
Kubernetes Prow Robot 2021-12-19 16:19:24 -08:00 committed by GitHub
commit e0d22ce2f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 7 deletions

View File

@ -34,10 +34,11 @@ import (
"k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/json"
"k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/strategicpatch"
"k8s.io/klog/v2" "k8s.io/klog/v2"
"k8s.io/kubectl/pkg/drain"
api "k8s.io/kops/pkg/apis/kops" api "k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/cloudinstances" "k8s.io/kops/pkg/cloudinstances"
"k8s.io/kops/pkg/validation" "k8s.io/kops/pkg/validation"
"k8s.io/kubectl/pkg/drain"
) )
const rollingUpdateTaintKey = "kops.k8s.io/scheduled-for-update" const rollingUpdateTaintKey = "kops.k8s.io/scheduled-for-update"
@ -680,7 +681,7 @@ func (c *RollingUpdateCluster) UpdateSingleInstance(cloudMember *cloudinstances.
if detach { if detach {
if cloudMember.CloudInstanceGroup.InstanceGroup.IsMaster() { if cloudMember.CloudInstanceGroup.InstanceGroup.IsMaster() {
klog.Warning("cannot detach master instances. Assuming --surge=false") klog.Warning("cannot detach master instances. Assuming --surge=false")
} else { } else if cloudMember.CloudInstanceGroup.InstanceGroup.Spec.Manager != api.InstanceManagerKarpenter {
err := c.detachInstance(cloudMember) err := c.detachInstance(cloudMember)
if err != nil { if err != nil {
return fmt.Errorf("failed to detach instance: %v", err) return fmt.Errorf("failed to detach instance: %v", err)

View File

@ -546,9 +546,11 @@ func deleteInstance(c AWSCloud, i *cloudinstances.CloudInstance) error {
return fmt.Errorf("id was not set on CloudInstance: %v", i) return fmt.Errorf("id was not set on CloudInstance: %v", i)
} }
err := deregisterInstanceFromClassicLoadBalancer(c, i) if i.CloudInstanceGroup.InstanceGroup.Spec.Manager != kops.InstanceManagerKarpenter {
if err != nil { err := deregisterInstanceFromClassicLoadBalancer(c, i)
return fmt.Errorf("failed to deregister instance from loadBalancer before terminating: %v", err) if err != nil {
return fmt.Errorf("failed to deregister instance from loadBalancer before terminating: %v", err)
}
} }
request := &ec2.TerminateInstancesInput{ request := &ec2.TerminateInstancesInput{
@ -576,7 +578,6 @@ func deregisterInstanceFromClassicLoadBalancer(c AWSCloud, i *cloudinstances.Clo
asgDetails, err := c.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{ asgDetails, err := c.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
AutoScalingGroupNames: []*string{asg.AutoScalingGroupName}, AutoScalingGroupNames: []*string{asg.AutoScalingGroupName},
}) })
if err != nil { if err != nil {
return fmt.Errorf("error describing autoScalingGroups: %v", err) return fmt.Errorf("error describing autoScalingGroups: %v", err)
} }
@ -599,7 +600,6 @@ func deregisterInstanceFromClassicLoadBalancer(c AWSCloud, i *cloudinstances.Clo
InstanceId: aws.String(i.ID), InstanceId: aws.String(i.ID),
}}, }},
}) })
if err != nil { if err != nil {
return fmt.Errorf("error describing instance health: %v", err) return fmt.Errorf("error describing instance health: %v", err)
} }