diff --git a/cloudmock/aws/mockec2/dhcpoptions.go b/cloudmock/aws/mockec2/dhcpoptions.go index dbe846258b8e5..49a38db481090 100644 --- a/cloudmock/aws/mockec2/dhcpoptions.go +++ b/cloudmock/aws/mockec2/dhcpoptions.go @@ -45,18 +45,11 @@ func (m *MockEC2) DescribeDhcpOptions(ctx context.Context, request *ec2.Describe for id, dhcpOptions := range m.DhcpOptions { allFiltersMatch := true for _, filter := range request.Filters { - match := false - switch *filter.Name { - // case "vpc-id": - // if *subnet.main.VpcId == *filter.Values[0] { - // match = true - // } - default: - if strings.HasPrefix(*filter.Name, "tag:") { - match = m.hasTag(ec2types.ResourceTypeDhcpOptions, *dhcpOptions.DhcpOptionsId, filter) - } else { - return nil, fmt.Errorf("unknown filter name: %q", *filter.Name) - } + var match bool + if strings.HasPrefix(*filter.Name, "tag:") { + match = m.hasTag(ec2types.ResourceTypeDhcpOptions, *dhcpOptions.DhcpOptionsId, filter) + } else { + return nil, fmt.Errorf("unknown filter name: %q", *filter.Name) } if !match { diff --git a/cloudmock/aws/mockec2/tags.go b/cloudmock/aws/mockec2/tags.go index de646a9778346..120a25aaa2599 100644 --- a/cloudmock/aws/mockec2/tags.go +++ b/cloudmock/aws/mockec2/tags.go @@ -43,31 +43,32 @@ func (m *MockEC2) CreateTags(ctx context.Context, request *ec2.CreateTagsInput, func (m *MockEC2) addTags(resourceId string, tags ...ec2types.Tag) { var resourceType ec2types.ResourceType - if strings.HasPrefix(resourceId, "subnet-") { + switch { + case strings.HasPrefix(resourceId, "subnet-"): resourceType = ec2types.ResourceTypeSubnet - } else if strings.HasPrefix(resourceId, "vpc-") { + case strings.HasPrefix(resourceId, "vpc-"): resourceType = ec2types.ResourceTypeVpc - } else if strings.HasPrefix(resourceId, "sg-") { + case strings.HasPrefix(resourceId, "sg-"): resourceType = ec2types.ResourceTypeSecurityGroup - } else if strings.HasPrefix(resourceId, "vol-") { + case strings.HasPrefix(resourceId, "vol-"): resourceType = ec2types.ResourceTypeVolume - } else if strings.HasPrefix(resourceId, "igw-") { + case strings.HasPrefix(resourceId, "igw-"): resourceType = ec2types.ResourceTypeInternetGateway - } else if strings.HasPrefix(resourceId, "eigw-") { + case strings.HasPrefix(resourceId, "eigw-"): resourceType = ec2types.ResourceTypeEgressOnlyInternetGateway - } else if strings.HasPrefix(resourceId, "nat-") { + case strings.HasPrefix(resourceId, "nat-"): resourceType = ec2types.ResourceTypeNatgateway - } else if strings.HasPrefix(resourceId, "dopt-") { + case strings.HasPrefix(resourceId, "dopt-"): resourceType = ec2types.ResourceTypeDhcpOptions - } else if strings.HasPrefix(resourceId, "rtb-") { + case strings.HasPrefix(resourceId, "rtb-"): resourceType = ec2types.ResourceTypeRouteTable - } else if strings.HasPrefix(resourceId, "eipalloc-") { + case strings.HasPrefix(resourceId, "eipalloc-"): resourceType = ec2types.ResourceTypeElasticIp - } else if strings.HasPrefix(resourceId, "lt-") { + case strings.HasPrefix(resourceId, "lt-"): resourceType = ec2types.ResourceTypeLaunchTemplate - } else if strings.HasPrefix(resourceId, "key-") { + case strings.HasPrefix(resourceId, "key-"): resourceType = ec2types.ResourceTypeKeyPair - } else { + default: klog.Fatalf("Unknown resource-type in create tags: %v", resourceId) } for _, tag := range tags { @@ -83,7 +84,8 @@ func (m *MockEC2) addTags(resourceId string, tags ...ec2types.Tag) { func (m *MockEC2) hasTag(resourceType ec2types.ResourceType, resourceId string, filter ec2types.Filter) bool { name := *filter.Name - if strings.HasPrefix(name, "tag:") { + switch { + case strings.HasPrefix(name, "tag:"): tagKey := name[4:] for _, tag := range m.Tags { @@ -103,7 +105,7 @@ func (m *MockEC2) hasTag(resourceType ec2types.ResourceType, resourceId string, } } } - } else if name == "tag-key" { + case name == "tag-key": for _, tag := range m.Tags { if *tag.ResourceId != resourceId { continue @@ -117,7 +119,7 @@ func (m *MockEC2) hasTag(resourceType ec2types.ResourceType, resourceId string, } } } - } else { + default: klog.Fatalf("Unsupported filter: %v", filter) } return false diff --git a/cloudmock/aws/mockec2/volumes.go b/cloudmock/aws/mockec2/volumes.go index 6e5323aea14fb..f39dd42c6a809 100644 --- a/cloudmock/aws/mockec2/volumes.go +++ b/cloudmock/aws/mockec2/volumes.go @@ -91,14 +91,11 @@ func (m *MockEC2) DescribeVolumes(ctx context.Context, request *ec2.DescribeVolu for _, volume := range m.Volumes { allFiltersMatch := true for _, filter := range request.Filters { - match := false - switch *filter.Name { - default: - if strings.HasPrefix(*filter.Name, "tag:") { - match = m.hasTag(ec2types.ResourceTypeVolume, *volume.VolumeId, filter) - } else { - return nil, fmt.Errorf("unknown filter name: %q", *filter.Name) - } + var match bool + if strings.HasPrefix(*filter.Name, "tag:") { + match = m.hasTag(ec2types.ResourceTypeVolume, *volume.VolumeId, filter) + } else { + return nil, fmt.Errorf("unknown filter name: %q", *filter.Name) } if !match { diff --git a/cloudmock/aws/mockelbv2/tags.go b/cloudmock/aws/mockelbv2/tags.go index 02d197fc1ffd1..6aa737599672a 100644 --- a/cloudmock/aws/mockelbv2/tags.go +++ b/cloudmock/aws/mockelbv2/tags.go @@ -46,7 +46,8 @@ func (m *MockELBV2) AddTags(ctx context.Context, request *elbv2.AddTagsInput, op } if !found { tags := m.Tags[arn] - tags.Tags = append(m.Tags[arn].Tags, reqTag) + tags.Tags = append(tags.Tags, reqTag) + m.Tags[arn] = tags } } } else { diff --git a/cloudmock/aws/mockelbv2/targetgroups.go b/cloudmock/aws/mockelbv2/targetgroups.go index 991ca25c8cab3..6018e7498483e 100644 --- a/cloudmock/aws/mockelbv2/targetgroups.go +++ b/cloudmock/aws/mockelbv2/targetgroups.go @@ -42,24 +42,24 @@ func (m *MockELBV2) DescribeTargetGroups(ctx context.Context, request *elbv2.Des var tgs []elbv2types.TargetGroup for _, tg := range m.TargetGroups { match := false - - if len(request.TargetGroupArns) > 0 { + switch { + case len(request.TargetGroupArns) > 0: for _, name := range request.TargetGroupArns { if aws.ToString(tg.description.TargetGroupArn) == name { match = true } } - } else if request.LoadBalancerArn != nil { + case request.LoadBalancerArn != nil: if len(tg.description.LoadBalancerArns) > 0 && tg.description.LoadBalancerArns[0] == aws.ToString(request.LoadBalancerArn) { match = true } - } else if len(request.Names) > 0 { + case len(request.Names) > 0: for _, name := range request.Names { if aws.ToString(tg.description.TargetGroupName) == name { match = true } } - } else { + default: match = true } diff --git a/cloudmock/openstack/mockcompute/instanceactions.go b/cloudmock/openstack/mockcompute/instanceactions.go index 49fdd8ec1f8cb..c7333660218a7 100644 --- a/cloudmock/openstack/mockcompute/instanceactions.go +++ b/cloudmock/openstack/mockcompute/instanceactions.go @@ -26,7 +26,7 @@ type instanceActionsResponse struct { } func (m *MockClient) mockInstanceActions() { - //re := regexp.MustCompile(`/servers/(.*?)/os-instance-actions/?`) + // re := regexp.MustCompile(`/servers/(.*?)/os-instance-actions/?`) handler := func(w http.ResponseWriter, r *http.Request) { m.mutex.Lock() diff --git a/cloudmock/openstack/mockdns/zones.go b/cloudmock/openstack/mockdns/zones.go index 3059cbd607323..3b6d5a0985ab5 100644 --- a/cloudmock/openstack/mockdns/zones.go +++ b/cloudmock/openstack/mockdns/zones.go @@ -58,16 +58,17 @@ func (m *MockClient) mockZones() { zoneName = r.Form.Get("name") switch r.Method { case http.MethodGet: - if zoneID == "" && zoneName == "" { + switch { + case zoneID == "" && zoneName == "": // /zones m.listZones(w) - } else if len(parts) == 3 && parts[2] == "recordsets" { + case len(parts) == 3 && parts[2] == "recordsets": // /zones//recordsets m.listRecordSets(w, zoneID) - } else if len(parts) == 4 && parts[2] == "recordsets" { + case len(parts) == 4 && parts[2] == "recordsets": // /zones//recordsets/ m.getRecordSet(w, zoneID, parts[3]) - } else { + default: // /zones?name= m.getZone(w, zoneName) } diff --git a/cloudmock/scaleway/mockdns/api.go b/cloudmock/scaleway/mockdns/api.go index 46d7b197b57c5..9e627d1ca4102 100644 --- a/cloudmock/scaleway/mockdns/api.go +++ b/cloudmock/scaleway/mockdns/api.go @@ -80,14 +80,14 @@ func (f *FakeDomainAPI) ListDNSZoneRecords(req *domain.ListDNSZoneRecordsRequest func (f *FakeDomainAPI) UpdateDNSZoneRecords(req *domain.UpdateDNSZoneRecordsRequest, opts ...scw.RequestOption) (*domain.UpdateDNSZoneRecordsResponse, error) { for _, change := range req.Changes { - - if change.Add != nil { + switch { + case change.Add != nil: for _, toAdd := range change.Add.Records { toAdd.ID = uuid.New().String() f.Records[toAdd.Name] = toAdd } - } else if change.Set != nil { + case change.Set != nil: if len(change.Set.Records) != 1 { fmt.Printf("only 1 record change will be applied from %d changes requested", len(change.Set.Records)) } @@ -98,7 +98,7 @@ func (f *FakeDomainAPI) UpdateDNSZoneRecords(req *domain.UpdateDNSZoneRecordsReq toUpsert.ID = *change.Set.ID f.Records[toUpsert.Name] = toUpsert } - } else if change.Delete != nil { + case change.Delete != nil: found := false for name, record := range f.Records { if record.ID == *change.Delete.ID { @@ -111,7 +111,7 @@ func (f *FakeDomainAPI) UpdateDNSZoneRecords(req *domain.UpdateDNSZoneRecordsReq return nil, fmt.Errorf("could not find record %s to delete", *change.Delete.ID) } - } else { + default: return nil, fmt.Errorf("mock DNS not implemented for this method") } } diff --git a/cmd/kops-controller/controllers/hosts_controller.go b/cmd/kops-controller/controllers/hosts_controller.go index 7a47ec3a74fb2..058ddbd9cb562 100644 --- a/cmd/kops-controller/controllers/hosts_controller.go +++ b/cmd/kops-controller/controllers/hosts_controller.go @@ -114,7 +114,7 @@ func (r *HostsReconciler) updateHosts(ctx context.Context, endpointsList *corev1 } suffix := ".internal." + r.clusterName if !strings.HasSuffix(hostname, suffix) { - hostname = hostname + suffix + hostname += suffix } else { klog.Warningf("endpoints %s/%s found with full internal name for discovery label %q; use short name %q instead", endpoints.Name, endpoints.Namespace, kops.DiscoveryLabelKey, strings.TrimSuffix(hostname, suffix)) } diff --git a/dnsprovider/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go b/dnsprovider/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go index d79312c6fcdfa..af59e446520a6 100644 --- a/dnsprovider/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go +++ b/dnsprovider/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go @@ -56,7 +56,7 @@ func NewRoute53APIStub() *Route53APIStub { func (r *Route53APIStub) ListResourceRecordSets(ctx context.Context, input *route53.ListResourceRecordSetsInput, optFns ...func(*route53.Options)) (*route53.ListResourceRecordSetsOutput, error) { output := &route53.ListResourceRecordSetsOutput{} // TODO: Support optional input args. - if len(r.recordSets) <= 0 { + if len(r.recordSets) == 0 { output.ResourceRecordSets = []route53types.ResourceRecordSet{} } else if _, ok := r.recordSets[*input.HostedZoneId]; !ok { output.ResourceRecordSets = []route53types.ResourceRecordSet{} diff --git a/pkg/apis/kops/v1alpha2/register.go b/pkg/apis/kops/v1alpha2/register.go index 3eac7695ccb5d..502072f1ebe2f 100644 --- a/pkg/apis/kops/v1alpha2/register.go +++ b/pkg/apis/kops/v1alpha2/register.go @@ -42,7 +42,7 @@ const GroupName = "kops.k8s.io" var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha2"} //// Kind takes an unqualified kind and returns a Group qualified GroupKind -//func Kind(kind string) schema.GroupKind { +// func Kind(kind string) schema.GroupKind { // return SchemeGroupVersion.WithKind(kind).GroupKind() //} // diff --git a/pkg/apis/kops/v1alpha3/register.go b/pkg/apis/kops/v1alpha3/register.go index 9a6009f425547..36af488ae5100 100644 --- a/pkg/apis/kops/v1alpha3/register.go +++ b/pkg/apis/kops/v1alpha3/register.go @@ -42,7 +42,7 @@ const GroupName = "kops.k8s.io" var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha3"} //// Kind takes an unqualified kind and returns a Group qualified GroupKind -//func Kind(kind string) schema.GroupKind { +// func Kind(kind string) schema.GroupKind { // return SchemeGroupVersion.WithKind(kind).GroupKind() //} // diff --git a/pkg/apis/nodeup/config.go b/pkg/apis/nodeup/config.go index 8c13dbc69eec5..5d45e37f98a4f 100644 --- a/pkg/apis/nodeup/config.go +++ b/pkg/apis/nodeup/config.go @@ -294,11 +294,12 @@ func NewConfig(cluster *kops.Cluster, instanceGroup *kops.InstanceGroup) (*Confi config.Openstack = cluster.Spec.CloudProvider.Openstack - if instanceGroup.Spec.UpdatePolicy != nil { + switch { + case instanceGroup.Spec.UpdatePolicy != nil: config.UpdatePolicy = *instanceGroup.Spec.UpdatePolicy - } else if cluster.Spec.UpdatePolicy != nil { + case cluster.Spec.UpdatePolicy != nil: config.UpdatePolicy = *cluster.Spec.UpdatePolicy - } else { + default: config.UpdatePolicy = kops.UpdatePolicyAutomatic } diff --git a/pkg/dump/resourcedumper.go b/pkg/dump/resourcedumper.go index 6c36633582513..8c7b088b6c47e 100644 --- a/pkg/dump/resourcedumper.go +++ b/pkg/dump/resourcedumper.go @@ -265,8 +265,7 @@ func (d *resourceDumper) dumpGVRNamespaces(ctx context.Context, jobs chan gvrNam } func maskObject(obj runtime.Object) error { - switch obj.GetObjectKind().GroupVersionKind() { - case schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Secret"}: + if obj.GetObjectKind().GroupVersionKind() == (schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Secret"}) { unstructuredObj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) if err != nil { return err diff --git a/pkg/kopscontrollerclient/client.go b/pkg/kopscontrollerclient/client.go index 24c3a5cfec74e..7565090b57b06 100644 --- a/pkg/kopscontrollerclient/client.go +++ b/pkg/kopscontrollerclient/client.go @@ -102,16 +102,19 @@ func (b *Client) Query(ctx context.Context, req any, resp any) error { if err != nil { return err } - if response.Body != nil { - defer response.Body.Close() - } - // if we receive StatusConflict it means that we should exit gracefully if response.StatusCode == http.StatusConflict { klog.Infof("kops-controller returned status code %d", response.StatusCode) + if response.Body != nil { + response.Body.Close() + } os.Exit(0) } + if response.Body != nil { + defer response.Body.Close() + } + if response.StatusCode != http.StatusOK { detail := "" if response.Body != nil { diff --git a/pkg/model/gcemodel/api_loadbalancer.go b/pkg/model/gcemodel/api_loadbalancer.go index 7d97d10801c19..d2c29112bbde7 100644 --- a/pkg/model/gcemodel/api_loadbalancer.go +++ b/pkg/model/gcemodel/api_loadbalancer.go @@ -230,7 +230,7 @@ func (b *APILoadBalancerBuilder) createInternalLB(c *fi.CloudupModelBuilderConte }, } // We previously created a forwarding rule which was external; prune it - fr.PruneForwardingRulesWithName(b.NameForForwardingRule("kops-controller")) //, "Removing legacy external load balancer for kops-controller") + fr.PruneForwardingRulesWithName(b.NameForForwardingRule("kops-controller")) // , "Removing legacy external load balancer for kops-controller") c.AddTask(fr) } diff --git a/pkg/model/gcemodel/autoscalinggroup.go b/pkg/model/gcemodel/autoscalinggroup.go index 1eeede68d1308..061092ae79a9d 100644 --- a/pkg/model/gcemodel/autoscalinggroup.go +++ b/pkg/model/gcemodel/autoscalinggroup.go @@ -134,9 +134,7 @@ func (b *AutoscalingGroupModelBuilder) buildInstanceTemplate(c *fi.CloudupModelB sortedLabelKeys[i] = k i++ } - slices.SortStableFunc(sortedLabelKeys, func(a, b string) int { - return strings.Compare(a, b) - }) + slices.SortStableFunc(sortedLabelKeys, strings.Compare) for _, k := range sortedLabelKeys { nodeLabels += k + "=" + ig.Spec.NodeLabels[k] + "," } @@ -233,11 +231,11 @@ func (b *AutoscalingGroupModelBuilder) buildInstanceTemplate(c *fi.CloudupModelB t.ServiceAccounts = append(t.ServiceAccounts, b.LinkToServiceAccount(ig)) - //labels, err := b.CloudTagsForInstanceGroup(ig) - //if err != nil { + // labels, err := b.CloudTagsForInstanceGroup(ig) + // if err != nil { // return fmt.Errorf("error building cloud tags: %v", err) - //} - //t.Labels = labels + // } + // t.Labels = labels t.GuestAccelerators = []gcetasks.AcceleratorConfig{} for _, accelerator := range ig.Spec.GuestAccelerators { @@ -342,8 +340,7 @@ func (b *AutoscalingGroupModelBuilder) Build(c *fi.CloudupModelBuilderContext) e } // Attach masters to load balancer if we're using one - switch ig.Spec.Role { - case kops.InstanceGroupRoleControlPlane: + if ig.Spec.Role == kops.InstanceGroupRoleControlPlane { if b.UseLoadBalancerForAPI() { lbSpec := b.Cluster.Spec.API.LoadBalancer if lbSpec != nil { diff --git a/pkg/model/gcemodel/storageacl.go b/pkg/model/gcemodel/storageacl.go index b6947d8eab4cd..1d3c2d76b9ad0 100644 --- a/pkg/model/gcemodel/storageacl.go +++ b/pkg/model/gcemodel/storageacl.go @@ -61,8 +61,7 @@ func (b *StorageAclBuilder) Build(c *fi.CloudupModelBuilderContext) error { return fmt.Errorf("cannot parse cluster path %q: %w", clusterPath, err) } - switch p := p.(type) { - case *vfs.GSPath: + if p, ok := p.(*vfs.GSPath); ok { // It's not ideal that we have to do this at the bucket level, // but GCS doesn't seem to have a way to do subtrees (like AWS IAM does) // Note this permission only lets us list objects, not read them diff --git a/pkg/nodeidentity/aws/identify.go b/pkg/nodeidentity/aws/identify.go index 32273c7a9e3bf..2092f7f765888 100644 --- a/pkg/nodeidentity/aws/identify.go +++ b/pkg/nodeidentity/aws/identify.go @@ -58,7 +58,7 @@ type nodeIdentifier struct { } // New creates and returns a nodeidentity.Identifier for Nodes running on AWS -func New(ctx context.Context, CacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { +func New(ctx context.Context, cacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { config, err := awsconfig.LoadDefaultConfig(ctx, awslog.WithAWSLogger()) if err != nil { return nil, fmt.Errorf("error loading AWS config: %v", err) @@ -77,7 +77,7 @@ func New(ctx context.Context, CacheNodeidentityInfo bool) (nodeidentity.Identifi return &nodeIdentifier{ ec2Client: ec2Client, cache: expirationcache.NewTTLStore(stringKeyFunc, cacheTTL), - cacheEnabled: CacheNodeidentityInfo, + cacheEnabled: cacheNodeidentityInfo, }, nil } @@ -170,7 +170,7 @@ func (i *nodeIdentifier) getInstance(ctx context.Context, instanceID string) (*e } // @check we found some instances - if len(resp.Reservations) <= 0 || len(resp.Reservations[0].Instances) <= 0 { + if len(resp.Reservations) == 0 || len(resp.Reservations[0].Instances) == 0 { return nil, fmt.Errorf("missing instance id: %s", instanceID) } if len(resp.Reservations[0].Instances) > 1 { diff --git a/pkg/nodeidentity/hetzner/identify.go b/pkg/nodeidentity/hetzner/identify.go index dfd8789de7329..911a43bbe2f57 100644 --- a/pkg/nodeidentity/hetzner/identify.go +++ b/pkg/nodeidentity/hetzner/identify.go @@ -46,7 +46,7 @@ type nodeIdentifier struct { } // New creates and returns a nodeidentity.Identifier for Nodes running on Hetzner Cloud -func New(CacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { +func New(cacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { hcloudToken := os.Getenv("HCLOUD_TOKEN") if hcloudToken == "" { return nil, fmt.Errorf("%s is required", "HCLOUD_TOKEN") @@ -59,7 +59,7 @@ func New(CacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { return &nodeIdentifier{ client: hcloudClient, cache: expirationcache.NewTTLStore(stringKeyFunc, cacheTTL), - cacheEnabled: CacheNodeidentityInfo, + cacheEnabled: cacheNodeidentityInfo, }, nil } diff --git a/pkg/nodeidentity/openstack/identify.go b/pkg/nodeidentity/openstack/identify.go index 2ec978cc1a45d..41f8383740c80 100644 --- a/pkg/nodeidentity/openstack/identify.go +++ b/pkg/nodeidentity/openstack/identify.go @@ -48,7 +48,7 @@ type nodeIdentifier struct { } // New creates and returns a nodeidentity.Identifier for Nodes running on OpenStack -func New(CacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { +func New(cacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { env, err := openstack.AuthOptionsFromEnv() if err != nil { return nil, err @@ -87,7 +87,7 @@ func New(CacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { return &nodeIdentifier{ novaClient: novaClient, cache: expirationcache.NewTTLStore(stringKeyFunc, cacheTTL), - cacheEnabled: CacheNodeidentityInfo, + cacheEnabled: cacheNodeidentityInfo, }, nil } diff --git a/pkg/nodeidentity/scaleway/identify.go b/pkg/nodeidentity/scaleway/identify.go index b97db6ca746c2..538002fcfac4f 100644 --- a/pkg/nodeidentity/scaleway/identify.go +++ b/pkg/nodeidentity/scaleway/identify.go @@ -47,7 +47,7 @@ type nodeIdentifier struct { } // New creates and returns a nodeidentity.Identifier for Nodes running on Scaleway -func New(CacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { +func New(cacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { profile, err := scaleway.CreateValidScalewayProfile() if err != nil { return nil, err @@ -63,7 +63,7 @@ func New(CacheNodeidentityInfo bool) (nodeidentity.Identifier, error) { return &nodeIdentifier{ client: scwClient, cache: expirationcache.NewTTLStore(stringKeyFunc, cacheTTL), - cacheEnabled: CacheNodeidentityInfo, + cacheEnabled: cacheNodeidentityInfo, }, nil } diff --git a/pkg/nodemodel/nodeupconfigbuilder.go b/pkg/nodemodel/nodeupconfigbuilder.go index 6c630f9af3db7..1f04ef7ee85d8 100644 --- a/pkg/nodemodel/nodeupconfigbuilder.go +++ b/pkg/nodemodel/nodeupconfigbuilder.go @@ -489,7 +489,7 @@ func (n *nodeUpConfigBuilder) buildWarmPoolImages(ig *kops.InstanceGroup) []stri // TODO: Exclude images that only run on control-plane nodes in a generic way desiredImagePrefixes := []string{ // Ignore images hosted in private ECR repositories as containerd cannot actually pull these - //"602401143452.dkr.ecr.us-west-2.amazonaws.com/", // Amazon VPC CNI + // "602401143452.dkr.ecr.us-west-2.amazonaws.com/", // Amazon VPC CNI // Ignore images hosted on docker.io until a solution for rate limiting is implemented //"docker.io/calico/", //"docker.io/cilium/", diff --git a/pkg/resources/scaleway/resources.go b/pkg/resources/scaleway/resources.go index bff7d23a83ad1..decf4418d37a2 100644 --- a/pkg/resources/scaleway/resources.go +++ b/pkg/resources/scaleway/resources.go @@ -104,13 +104,11 @@ func listLoadBalancers(cloud fi.Cloud, clusterName string) ([]*resources.Resourc resourceTrackers := []*resources.Resource(nil) for _, loadBalancer := range lbs { resourceTracker := &resources.Resource{ - Name: loadBalancer.Name, - ID: loadBalancer.ID, - Type: resourceTypeLoadBalancer, - Deleter: func(cloud fi.Cloud, tracker *resources.Resource) error { - return deleteLoadBalancer(cloud, tracker) - }, - Obj: loadBalancer, + Name: loadBalancer.Name, + ID: loadBalancer.ID, + Type: resourceTypeLoadBalancer, + Deleter: deleteLoadBalancer, + Obj: loadBalancer, } resourceTrackers = append(resourceTrackers, resourceTracker) } @@ -128,13 +126,11 @@ func listServers(cloud fi.Cloud, clusterName string) ([]*resources.Resource, err resourceTrackers := []*resources.Resource(nil) for _, server := range servers { resourceTracker := &resources.Resource{ - Name: server.Name, - ID: server.ID, - Type: resourceTypeServer, - Deleter: func(cloud fi.Cloud, tracker *resources.Resource) error { - return deleteServer(cloud, tracker) - }, - Obj: server, + Name: server.Name, + ID: server.ID, + Type: resourceTypeServer, + Deleter: deleteServer, + Obj: server, } resourceTrackers = append(resourceTrackers, resourceTracker) } @@ -156,13 +152,11 @@ func listServerIPs(cloud fi.Cloud, clusterName string) ([]*resources.Resource, e resourceTrackers := []*resources.Resource(nil) for _, ip := range ips.IPs { resourceTracker := &resources.Resource{ - Name: ip.Address.String(), - ID: ip.ID, - Type: resourceTypeServerIP, - Deleter: func(cloud fi.Cloud, tracker *resources.Resource) error { - return deleteServerIP(cloud, tracker) - }, - Obj: ip, + Name: ip.Address.String(), + ID: ip.ID, + Type: resourceTypeServerIP, + Deleter: deleteServerIP, + Obj: ip, } resourceTrackers = append(resourceTrackers, resourceTracker) } @@ -180,13 +174,11 @@ func listSSHKeys(cloud fi.Cloud, clusterName string) ([]*resources.Resource, err resourceTrackers := []*resources.Resource(nil) for _, sshkey := range sshkeys { resourceTracker := &resources.Resource{ - Name: sshkey.Name, - ID: sshkey.ID, - Type: resourceTypeSSHKey, - Deleter: func(cloud fi.Cloud, tracker *resources.Resource) error { - return deleteSSHKey(cloud, tracker) - }, - Obj: sshkey, + Name: sshkey.Name, + ID: sshkey.ID, + Type: resourceTypeSSHKey, + Deleter: deleteSSHKey, + Obj: sshkey, } resourceTrackers = append(resourceTrackers, resourceTracker) } @@ -204,13 +196,11 @@ func listVolumes(cloud fi.Cloud, clusterName string) ([]*resources.Resource, err resourceTrackers := []*resources.Resource(nil) for _, volume := range volumes { resourceTracker := &resources.Resource{ - Name: volume.Name, - ID: volume.ID, - Type: resourceTypeVolume, - Deleter: func(cloud fi.Cloud, tracker *resources.Resource) error { - return deleteVolume(cloud, tracker) - }, - Obj: volume, + Name: volume.Name, + ID: volume.ID, + Type: resourceTypeVolume, + Deleter: deleteVolume, + Obj: volume, } if volume.Server != nil { resourceTracker.Blocked = []string{resourceTypeServer + ":" + volume.Server.ID} diff --git a/pkg/templates/templates.go b/pkg/templates/templates.go index ee016c1480d8e..85a9f80be2e89 100644 --- a/pkg/templates/templates.go +++ b/pkg/templates/templates.go @@ -100,7 +100,7 @@ func (l *Templates) executeTemplate(key string, d string) (string, error) { t := template.New(key) funcMap := make(template.FuncMap) - //funcMap["Args"] = func() []string { + // funcMap["Args"] = func() []string { // return args //} //funcMap["RenderResource"] = func(resourceName string, args []string) (string, error) { diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go index 47e7e0f45eabc..742d45fa4cb26 100644 --- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go +++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder/bootstrapchannelbuilder.go @@ -221,8 +221,7 @@ func (b *BootstrapChannelBuilder) Build(c *fi.CloudupModelBuilderContext) error for _, addon := range b.ClusterAddons { applyToCluster := true - switch addon.GroupVersionKind().GroupKind() { - case schema.GroupKind{Group: "kubescheduler.config.k8s.io", Kind: "KubeSchedulerConfiguration"}: + if addon.GroupVersionKind().GroupKind() == (schema.GroupKind{Group: "kubescheduler.config.k8s.io", Kind: "KubeSchedulerConfiguration"}) { applyToCluster = false } diff --git a/upup/pkg/fi/cloudup/do/cloud.go b/upup/pkg/fi/cloudup/do/cloud.go index b06887fa7274d..9c0388960cf8c 100644 --- a/upup/pkg/fi/cloudup/do/cloud.go +++ b/upup/pkg/fi/cloudup/do/cloud.go @@ -400,11 +400,12 @@ func findEtcdStatus(c *doCloudImplementation, cluster *kops.Cluster) ([]kops.Etc func (c *doCloudImplementation) getEtcdClusterSpec(volumeName string, dropletName string) (*etcd.EtcdClusterSpec, error) { var clusterKey string - if strings.Contains(volumeName, "etcd-main") { + switch { + case strings.Contains(volumeName, "etcd-main"): clusterKey = "main" - } else if strings.Contains(volumeName, "etcd-events") { + case strings.Contains(volumeName, "etcd-events"): clusterKey = "events" - } else { + default: return nil, fmt.Errorf("could not determine etcd cluster type for volume: %s", volumeName) } diff --git a/upup/pkg/fi/cloudup/gce/gce_url.go b/upup/pkg/fi/cloudup/gce/gce_url.go index fe9b8e9278a78..dc184c398f45b 100644 --- a/upup/pkg/fi/cloudup/gce/gce_url.go +++ b/upup/pkg/fi/cloudup/gce/gce_url.go @@ -80,27 +80,28 @@ func ParseGoogleCloudURL(u string) (*GoogleCloudURL, error) { return nil, fmt.Errorf("invalid google cloud URL (unexpected end): %q", u) } t := tokens[pos] - if t == "projects" { + switch { + case t == "projects": pos++ if pos >= len(tokens) { return nil, fmt.Errorf("invalid google cloud URL (unexpected projects): %q", u) } parsed.Project = tokens[pos] - } else if t == "zones" { + case t == "zones": pos++ if pos >= len(tokens) { return nil, fmt.Errorf("invalid google cloud URL (unexpected zones): %q", u) } parsed.Zone = tokens[pos] - } else if t == "regions" && ((pos + 2) < len(tokens)) { + case t == "regions" && ((pos + 2) < len(tokens)): pos++ if pos >= len(tokens) { return nil, fmt.Errorf("invalid google cloud URL (unexpected regions): %q", u) } parsed.Region = tokens[pos] - } else if t == "global" { + case t == "global": parsed.Global = true - } else { + default: parsed.Type = tokens[pos] pos++ if pos >= len(tokens) { diff --git a/upup/pkg/fi/cloudup/gce/utils.go b/upup/pkg/fi/cloudup/gce/utils.go index a889fc02d25c2..b155dc3496199 100644 --- a/upup/pkg/fi/cloudup/gce/utils.go +++ b/upup/pkg/fi/cloudup/gce/utils.go @@ -92,7 +92,7 @@ func ClusterSuffixedName(objectName string, clusterName string, maxLength int) s } // SafeClusterName returns a safe cluster name -// deprecated: prefer ClusterSuffixedName +// Deprecated: prefer ClusterSuffixedName func SafeClusterName(clusterName string) string { // GCE does not support . in tags / names safeClusterName := strings.ReplaceAll(clusterName, ".", "-") diff --git a/upup/pkg/fi/cloudup/spotinsttasks/launch_spec.go b/upup/pkg/fi/cloudup/spotinsttasks/launch_spec.go index 775b4728f2610..106fd01893ee9 100644 --- a/upup/pkg/fi/cloudup/spotinsttasks/launch_spec.go +++ b/upup/pkg/fi/cloudup/spotinsttasks/launch_spec.go @@ -411,7 +411,7 @@ func (_ *LaunchSpec) create(cloud awsup.AWSCloud, a, e, changes *LaunchSpec) err // Image. { - if e.ImageID != nil && len(e.OtherArchitectureImages) == 0 { //old api + if e.ImageID != nil && len(e.OtherArchitectureImages) == 0 { // old api image, err := resolveImage(cloud, fi.ValueOf(e.ImageID)) if err != nil { return err @@ -635,7 +635,7 @@ func (_ *LaunchSpec) update(cloud awsup.AWSCloud, a, e, changes *LaunchSpec) err // Image. { - if changes.ImageID != nil { //old api + if changes.ImageID != nil { // old api image, err := resolveImage(cloud, fi.ValueOf(e.ImageID)) if err != nil { return err @@ -1175,11 +1175,11 @@ func (o *LaunchSpec) convertBlockDeviceMapping(in *awstasks.BlockDeviceMapping) return out } -func buildImages(cloud awsup.AWSCloud, ImageID *string, OtherArchitectureImages []string) ([]*aws.Images, error) { +func buildImages(cloud awsup.AWSCloud, imageID *string, OtherArchitectureImages []string) ([]*aws.Images, error) { var imagesSlice []*aws.Images var imageIndex = 0 - if ImageID != nil { - image, err := resolveImage(cloud, fi.ValueOf(ImageID)) + if imageID != nil { + image, err := resolveImage(cloud, fi.ValueOf(imageID)) if err != nil { return nil, err } diff --git a/upup/pkg/fi/cloudup/spotinsttasks/ocean.go b/upup/pkg/fi/cloudup/spotinsttasks/ocean.go index e2da2cb5a63eb..1b6f7ab5c833b 100644 --- a/upup/pkg/fi/cloudup/spotinsttasks/ocean.go +++ b/upup/pkg/fi/cloudup/spotinsttasks/ocean.go @@ -721,7 +721,7 @@ func (_ *Ocean) update(cloud awsup.AWSCloud, a, e, changes *Ocean) error { changed = true } - //Spread nodes by. + // Spread nodes by. if changes.SpreadNodesBy != nil { if ocean.Strategy == nil { ocean.Strategy = new(aws.Strategy) diff --git a/upup/pkg/fi/nodeup/command.go b/upup/pkg/fi/nodeup/command.go index 5c56b5059ecaf..40aa2e99c7496 100644 --- a/upup/pkg/fi/nodeup/command.go +++ b/upup/pkg/fi/nodeup/command.go @@ -133,13 +133,14 @@ func (c *NodeUpCommand) Run(out io.Writer) error { var nodeupConfig nodeup.Config var nodeupConfigHash [32]byte - if nodeConfig != nil { + switch { + case nodeConfig != nil: if err := utils.YamlUnmarshal([]byte(nodeConfig.NodeupConfig), &nodeupConfig); err != nil { return fmt.Errorf("error parsing BootConfig config response: %v", err) } nodeupConfigHash = sha256.Sum256([]byte(nodeConfig.NodeupConfig)) nodeupConfig.CAs[fi.CertificateIDCA] = bootConfig.ConfigServer.CACertificates - } else if bootConfig.InstanceGroupName != "" { + case bootConfig.InstanceGroupName != "": nodeupConfigLocation := configBase.Join("igconfig", bootConfig.InstanceGroupRole.ToLowerString(), bootConfig.InstanceGroupName, "nodeupconfig.yaml") b, err := nodeupConfigLocation.ReadFile(ctx) @@ -151,7 +152,7 @@ func (c *NodeUpCommand) Run(out io.Writer) error { return fmt.Errorf("error parsing NodeupConfig %q: %v", nodeupConfigLocation, err) } nodeupConfigHash = sha256.Sum256(b) - } else { + default: return fmt.Errorf("no instance group defined in nodeup config") } @@ -207,9 +208,10 @@ func (c *NodeUpCommand) Run(out io.Writer) error { var secretStore fi.SecretStoreReader var keyStore fi.KeystoreReader - if nodeConfig != nil { + switch { + case nodeConfig != nil: modelContext.SecretStore = configserver.NewSecretStore(nodeConfig.NodeSecrets) - } else if nodeupConfig.ConfigStore != nil && nodeupConfig.ConfigStore.Secrets != "" { + case nodeupConfig.ConfigStore != nil && nodeupConfig.ConfigStore.Secrets != "": klog.Infof("Building SecretStore at %q", nodeupConfig.ConfigStore.Secrets) p, err := vfs.Context.BuildVfsPath(nodeupConfig.ConfigStore.Secrets) if err != nil { @@ -218,7 +220,7 @@ func (c *NodeUpCommand) Run(out io.Writer) error { secretStore = secrets.NewVFSSecretStoreReader(p) modelContext.SecretStore = secretStore - } else { + default: return fmt.Errorf("SecretStore not set") } diff --git a/upup/pkg/fi/secrets/clientset_secretstore.go b/upup/pkg/fi/secrets/clientset_secretstore.go index c4e8d73f9b275..043800d920769 100644 --- a/upup/pkg/fi/secrets/clientset_secretstore.go +++ b/upup/pkg/fi/secrets/clientset_secretstore.go @@ -123,8 +123,7 @@ func (c *ClientsetSecretStore) ListSecrets() ([]string, error) { for i := range list.Items { keyset := &list.Items[i] - switch keyset.Spec.Type { - case kops.SecretTypeSecret: + if keyset.Spec.Type == kops.SecretTypeSecret { name := strings.TrimPrefix(keyset.Name, NamePrefix) names = append(names, name) } diff --git a/util/pkg/tables/format.go b/util/pkg/tables/format.go index 8c1908404b191..c5bce6d2872b1 100644 --- a/util/pkg/tables/format.go +++ b/util/pkg/tables/format.go @@ -121,9 +121,7 @@ func (t *Table) Render(items interface{}, out io.Writer, columnNames ...string) } SortByFunction(n, func(i, j int) { - row := rows[i] - rows[i] = rows[j] - rows[j] = row + rows[i], rows[j] = rows[j], rows[i] }, func(i, j int) bool { l := rows[i] r := rows[j] diff --git a/util/pkg/ui/user.go b/util/pkg/ui/user.go index 5d06dc2fc3ab4..a2913b13cdd43 100644 --- a/util/pkg/ui/user.go +++ b/util/pkg/ui/user.go @@ -79,11 +79,12 @@ func GetConfirm(c *ConfirmArgs) (bool, error) { responseLower := strings.ToLower(response) // make sure the response is valid - if okayResponses.Has(responseLower) { + switch { + case okayResponses.Has(responseLower): return true, nil - } else if nokayResponses.Has(responseLower) { + case nokayResponses.Has(responseLower): return false, nil - } else if c.Default != "" && response == "" { + case c.Default != "" && response == "": if string(c.Default[0]) == "y" { return true, nil }