@@ -196,7 +196,7 @@ func (r *KarpenterMachinePoolReconciler) Reconcile(ctx context.Context, req reco
196
196
karpenterMachinePool .Status .Replicas = numberOfNodeClaims
197
197
karpenterMachinePool .Status .Ready = true
198
198
199
- logger .Info ("Found NodeClaims in workload cluster, patching KarpenterMachinePool" , "numberOfNodeClaims" , numberOfNodeClaims )
199
+ logger .Info ("Found NodeClaims in workload cluster, patching KarpenterMachinePool" , "numberOfNodeClaims" , numberOfNodeClaims , "providerIDList" , providerIDList )
200
200
201
201
if err := r .client .Status ().Patch (ctx , karpenterMachinePool , client .MergeFrom (karpenterMachinePoolCopy ), client .FieldOwner ("karpentermachinepool-controller" )); err != nil {
202
202
logger .Error (err , "failed to patch karpenterMachinePool.status.Replicas" )
@@ -293,6 +293,7 @@ func (r *KarpenterMachinePoolReconciler) computeProviderIDListFromNodeClaimsInWo
293
293
logger .Error (err , "error retrieving nodeClaim.status.providerID" , "nodeClaim" , nc .GetName ())
294
294
continue
295
295
}
296
+ logger .Info ("nodeClaim.status.providerID" , "nodeClaimName" , nc .GetName (), "statusFieldFound" , found , "nodeClaim" , nc .Object )
296
297
if found && providerID != "" {
297
298
providerIDList = append (providerIDList , providerID )
298
299
}
@@ -413,46 +414,66 @@ func (r *KarpenterMachinePoolReconciler) createOrUpdateEC2NodeClass(ctx context.
413
414
ec2NodeClass .SetNamespace ("" )
414
415
415
416
// Generate user data for Ignition
416
- userData := r .generateUserData (awsCluster .Spec .Region , cluster .Name , karpenterMachinePool .Name )
417
+ userData := r .generateUserData (awsCluster .Spec .S3Bucket . Name , cluster .Name , karpenterMachinePool .Name )
417
418
418
419
operation , err := controllerutil .CreateOrUpdate (ctx , workloadClusterClient , ec2NodeClass , func () error {
419
420
// Build the EC2NodeClass spec
420
421
spec := map [string ]interface {}{
421
422
"amiFamily" : "AL2" ,
422
- "role" : karpenterMachinePool .Spec .IamInstanceProfile ,
423
- "userData" : userData ,
424
- }
425
-
426
- // Add AMI ID if specified
427
- if karpenterMachinePool .Spec .EC2NodeClass != nil && karpenterMachinePool .Spec .EC2NodeClass .AMIID != nil {
428
- spec ["amiSelectorTerms" ] = []map [string ]interface {}{
423
+ "amiSelectorTerms" : []map [string ]interface {}{
429
424
{
430
- "id" : * karpenterMachinePool .Spec .EC2NodeClass .AMIID ,
425
+ "name" : karpenterMachinePool .Spec .EC2NodeClass .AMIName ,
426
+ "owner" : karpenterMachinePool .Spec .EC2NodeClass .AMIOwner ,
431
427
},
432
- }
433
- }
434
-
435
- // Add security groups if specified
436
- if karpenterMachinePool .Spec .EC2NodeClass != nil && len (karpenterMachinePool .Spec .EC2NodeClass .SecurityGroups ) > 0 {
437
- spec ["securityGroupSelectorTerms" ] = []map [string ]interface {}{
428
+ },
429
+ "instanceProfile" : karpenterMachinePool .Spec .IamInstanceProfile ,
430
+ "securityGroupSelectorTerms" : []map [string ]interface {}{
438
431
{
439
432
"tags" : map [string ]string {
440
433
"Name" : karpenterMachinePool .Spec .EC2NodeClass .SecurityGroups [0 ], // Using first security group for now
441
434
},
442
435
},
443
- }
436
+ },
437
+ "subnetSelectorTerms" : []map [string ]interface {}{
438
+ {
439
+ "tags" : map [string ]string {
440
+ "Name" : karpenterMachinePool .Spec .EC2NodeClass .Subnets [0 ], // Using first security group for now
441
+ },
442
+ },
443
+ },
444
+ "userData" : userData ,
444
445
}
445
446
447
+ // Add AMI ID if specified
448
+ // if karpenterMachinePool.Spec.EC2NodeClass != nil && karpenterMachinePool.Spec.EC2NodeClass.AMIID != nil {
449
+ // spec["amiSelectorTerms"] = []map[string]interface{}{
450
+ // {
451
+ // "id": *karpenterMachinePool.Spec.EC2NodeClass.AMIID,
452
+ // },
453
+ // }
454
+ // }
455
+
456
+ // Add security groups if specified
457
+ // if karpenterMachinePool.Spec.EC2NodeClass != nil && len(karpenterMachinePool.Spec.EC2NodeClass.SecurityGroups) > 0 {
458
+ // spec["securityGroupSelectorTerms"] = []map[string]interface{}{
459
+ // {
460
+ // "tags": map[string]string{
461
+ // "Name": karpenterMachinePool.Spec.EC2NodeClass.SecurityGroups[0], // Using first security group for now
462
+ // },
463
+ // },
464
+ // }
465
+ // }
466
+
446
467
// Add subnets if specified
447
- if karpenterMachinePool .Spec .EC2NodeClass != nil && len (karpenterMachinePool .Spec .EC2NodeClass .Subnets ) > 0 {
448
- subnetSelectorTerms := []map [string ]interface {}{}
449
- for _ , subnet := range karpenterMachinePool .Spec .EC2NodeClass .Subnets {
450
- subnetSelectorTerms = append (subnetSelectorTerms , map [string ]interface {}{
451
- "id" : subnet ,
452
- })
453
- }
454
- spec ["subnetSelectorTerms" ] = subnetSelectorTerms
455
- }
468
+ // if karpenterMachinePool.Spec.EC2NodeClass != nil && len(karpenterMachinePool.Spec.EC2NodeClass.Subnets) > 0 {
469
+ // subnetSelectorTerms := []map[string]interface{}{}
470
+ // for _, subnet := range karpenterMachinePool.Spec.EC2NodeClass.Subnets {
471
+ // subnetSelectorTerms = append(subnetSelectorTerms, map[string]interface{}{
472
+ // "id": subnet,
473
+ // })
474
+ // }
475
+ // spec["subnetSelectorTerms"] = subnetSelectorTerms
476
+ // }
456
477
457
478
// Add tags if specified
458
479
if karpenterMachinePool .Spec .EC2NodeClass != nil && len (karpenterMachinePool .Spec .EC2NodeClass .Tags ) > 0 {
@@ -636,13 +657,13 @@ func (r *KarpenterMachinePoolReconciler) deleteKarpenterResources(ctx context.Co
636
657
}
637
658
638
659
// generateUserData generates the user data for Ignition configuration
639
- func (r * KarpenterMachinePoolReconciler ) generateUserData (region , clusterName , karpenterMachinePoolName string ) string {
660
+ func (r * KarpenterMachinePoolReconciler ) generateUserData (s3bucketName , clusterName , karpenterMachinePoolName string ) string {
640
661
userData := map [string ]interface {}{
641
662
"ignition" : map [string ]interface {}{
642
663
"config" : map [string ]interface {}{
643
664
"merge" : []map [string ]interface {}{
644
665
{
645
- "source" : fmt .Sprintf ("s3://%s-capa- %s/%s/ %s" , region , clusterName , S3ObjectPrefix , karpenterMachinePoolName ),
666
+ "source" : fmt .Sprintf ("s3://%s/ %s/%s- %s" , s3bucketName , S3ObjectPrefix , clusterName , karpenterMachinePoolName ),
646
667
"verification" : map [string ]interface {}{},
647
668
},
648
669
},
0 commit comments