@@ -13,6 +13,7 @@ import (
13
13
"github.com/go-logr/logr"
14
14
v1 "k8s.io/api/core/v1"
15
15
k8serrors "k8s.io/apimachinery/pkg/api/errors"
16
+ "k8s.io/apimachinery/pkg/api/meta"
16
17
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
17
18
"k8s.io/apimachinery/pkg/runtime/schema"
18
19
capa "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2"
@@ -37,12 +38,9 @@ import (
37
38
38
39
const (
39
40
BootstrapDataHashAnnotation = "giantswarm.io/userdata-hash"
41
+ EC2NodeClassAPIGroup = "karpenter.k8s.aws"
40
42
KarpenterFinalizer = "capa-operator.finalizers.giantswarm.io/karpenter-controller"
41
43
S3ObjectPrefix = "karpenter-machine-pool"
42
- // KarpenterNodePoolReadyCondition reports on current status of the autoscaling group. Ready indicates the group is provisioned.
43
- KarpenterNodePoolReadyCondition capi.ConditionType = "KarpenterNodePoolReadyCondition"
44
- // WaitingForBootstrapDataReason used when machine is waiting for bootstrap data to be ready before proceeding.
45
- WaitingForBootstrapDataReason = "WaitingForBootstrapData"
46
44
// NodePoolCreationFailedReason indicates that the NodePool creation failed
47
45
NodePoolCreationFailedReason = "NodePoolCreationFailed"
48
46
// EC2NodeClassCreationFailedReason indicates that the EC2NodeClass creation failed
@@ -380,7 +378,7 @@ func (r *KarpenterMachinePoolReconciler) createOrUpdateKarpenterResources(ctx co
380
378
// createOrUpdateEC2NodeClass creates or updates the EC2NodeClass resource in the workload cluster
381
379
func (r * KarpenterMachinePoolReconciler ) createOrUpdateEC2NodeClass (ctx context.Context , logger logr.Logger , workloadClusterClient client.Client , cluster * capi.Cluster , awsCluster * capa.AWSCluster , karpenterMachinePool * v1alpha1.KarpenterMachinePool , bootstrapSecretValue []byte ) error {
382
380
ec2NodeClassGVR := schema.GroupVersionResource {
383
- Group : "karpenter.k8s.aws" ,
381
+ Group : EC2NodeClassAPIGroup ,
384
382
Version : "v1" ,
385
383
Resource : "ec2nodeclasses" ,
386
384
}
@@ -396,10 +394,6 @@ func (r *KarpenterMachinePoolReconciler) createOrUpdateEC2NodeClass(ctx context.
396
394
397
395
// Add security groups tag selector if specified
398
396
securityGroupTagsSelector := map [string ]string {}
399
- // securityGroupTagsSelector := map[string]string{
400
- // fmt.Sprintf("sigs.k8s.io/cluster-api-provider-aws/cluster/%s", cluster.Name): "owned",
401
- // "sigs.k8s.io/cluster-api-provider-aws/role": "node",
402
- // }
403
397
if karpenterMachinePool .Spec .EC2NodeClass != nil && len (karpenterMachinePool .Spec .EC2NodeClass .SecurityGroups ) > 0 {
404
398
for securityGroupTagKey , securityGroupTagValue := range karpenterMachinePool .Spec .EC2NodeClass .SecurityGroups {
405
399
securityGroupTagsSelector [securityGroupTagKey ] = securityGroupTagValue
@@ -408,10 +402,6 @@ func (r *KarpenterMachinePoolReconciler) createOrUpdateEC2NodeClass(ctx context.
408
402
409
403
// Add subnet tag selector if specified
410
404
subnetTagsSelector := map [string ]string {}
411
- // subnetTagsSelector := map[string]string{
412
- // fmt.Sprintf("sigs.k8s.io/cluster-api-provider-aws/cluster/%s", cluster.Name): "owned",
413
- // "giantswarm.io/role": "nodes",
414
- // }
415
405
if karpenterMachinePool .Spec .EC2NodeClass != nil && len (karpenterMachinePool .Spec .EC2NodeClass .Subnets ) > 0 {
416
406
for subnetTagKey , subnetTagValue := range karpenterMachinePool .Spec .EC2NodeClass .Subnets {
417
407
subnetTagsSelector [subnetTagKey ] = subnetTagValue
@@ -527,7 +517,7 @@ func (r *KarpenterMachinePoolReconciler) createOrUpdateNodePool(ctx context.Cont
527
517
},
528
518
},
529
519
"nodeClassRef" : map [string ]interface {}{
530
- "group" : "karpenter.k8s.aws" ,
520
+ "group" : EC2NodeClassAPIGroup ,
531
521
"kind" : "EC2NodeClass" ,
532
522
"name" : karpenterMachinePool .Name ,
533
523
},
@@ -602,14 +592,14 @@ func (r *KarpenterMachinePoolReconciler) deleteKarpenterResources(ctx context.Co
602
592
nodePool .SetName (karpenterMachinePool .Name )
603
593
nodePool .SetNamespace ("default" )
604
594
605
- if err := workloadClusterClient .Delete (ctx , nodePool ); err != nil && ! k8serrors .IsNotFound (err ) {
595
+ if err := workloadClusterClient .Delete (ctx , nodePool ); err != nil && ! k8serrors .IsNotFound (err ) && ! meta . IsNoMatchError ( err ) {
606
596
logger .Error (err , "failed to delete NodePool" , "name" , karpenterMachinePool .Name )
607
597
return fmt .Errorf ("failed to delete NodePool: %w" , err )
608
598
}
609
599
610
600
// Delete EC2NodeClass
611
601
ec2NodeClassGVR := schema.GroupVersionResource {
612
- Group : "karpenter.k8s.aws" ,
602
+ Group : EC2NodeClassAPIGroup ,
613
603
Version : "v1" ,
614
604
Resource : "ec2nodeclasses" ,
615
605
}
@@ -619,7 +609,7 @@ func (r *KarpenterMachinePoolReconciler) deleteKarpenterResources(ctx context.Co
619
609
ec2NodeClass .SetName (karpenterMachinePool .Name )
620
610
ec2NodeClass .SetNamespace ("default" )
621
611
622
- if err := workloadClusterClient .Delete (ctx , ec2NodeClass ); err != nil && ! k8serrors .IsNotFound (err ) {
612
+ if err := workloadClusterClient .Delete (ctx , ec2NodeClass ); err != nil && ! k8serrors .IsNotFound (err ) && ! meta . IsNoMatchError ( err ) {
623
613
logger .Error (err , "failed to delete EC2NodeClass" , "name" , karpenterMachinePool .Name )
624
614
return fmt .Errorf ("failed to delete EC2NodeClass: %w" , err )
625
615
}
0 commit comments