@@ -424,7 +424,7 @@ func setRemediatingCondition(ctx context.Context, kcp *controlplanev1.KubeadmCon
424
424
})
425
425
}
426
426
427
- func setAvailableCondition (_ context.Context , kcp * controlplanev1.KubeadmControlPlane , etcdIsManaged bool , etcdMembers []* etcd.Member , etcdMembersAgreeOnMemberList bool , etcdMembersAgreeOnClusterID bool , etcdMembersAndMachinesAreMatching bool , machines collections.Machines ) {
427
+ func setAvailableCondition (_ context.Context , kcp * controlplanev1.KubeadmControlPlane , etcdIsManaged bool , etcdMembers []* etcd.Member , etcdMembersAgreeOnMemberList , etcdMembersAgreeOnClusterID , etcdMembersAndMachinesAreMatching bool , machines collections.Machines ) {
428
428
if ! kcp .Status .Initialized {
429
429
v1beta2conditions .Set (kcp , metav1.Condition {
430
430
Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
@@ -435,50 +435,52 @@ func setAvailableCondition(_ context.Context, kcp *controlplanev1.KubeadmControl
435
435
return
436
436
}
437
437
438
- if etcdIsManaged && etcdMembers == nil {
439
- v1beta2conditions .Set (kcp , metav1.Condition {
440
- Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
441
- Status : metav1 .ConditionUnknown ,
442
- Reason : controlplanev1 .KubeadmControlPlaneAvailableInspectionFailedV1Beta2Reason ,
443
- Message : "Failed to get etcd members" ,
444
- })
445
- return
446
- }
438
+ if etcdIsManaged {
439
+ if etcdMembers == nil {
440
+ v1beta2conditions .Set (kcp , metav1.Condition {
441
+ Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
442
+ Status : metav1 .ConditionUnknown ,
443
+ Reason : controlplanev1 .KubeadmControlPlaneAvailableInspectionFailedV1Beta2Reason ,
444
+ Message : "Failed to get etcd members" ,
445
+ })
446
+ return
447
+ }
447
448
448
- if etcdIsManaged && ! etcdMembersAgreeOnMemberList {
449
- v1beta2conditions .Set (kcp , metav1.Condition {
450
- Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
451
- Status : metav1 .ConditionFalse ,
452
- Reason : controlplanev1 .KubeadmControlPlaneNotAvailableV1Beta2Reason ,
453
- Message : "At least one etcd member reports a list of etcd members different than the list reported by other members" ,
454
- })
455
- return
456
- }
449
+ if ! etcdMembersAgreeOnMemberList {
450
+ v1beta2conditions .Set (kcp , metav1.Condition {
451
+ Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
452
+ Status : metav1 .ConditionFalse ,
453
+ Reason : controlplanev1 .KubeadmControlPlaneNotAvailableV1Beta2Reason ,
454
+ Message : "At least one etcd member reports a list of etcd members different than the list reported by other members" ,
455
+ })
456
+ return
457
+ }
457
458
458
- if etcdIsManaged && ! etcdMembersAgreeOnClusterID {
459
- v1beta2conditions .Set (kcp , metav1.Condition {
460
- Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
461
- Status : metav1 .ConditionFalse ,
462
- Reason : controlplanev1 .KubeadmControlPlaneNotAvailableV1Beta2Reason ,
463
- Message : "At least one etcd member reports a cluster ID different than the cluster ID reported by other members" ,
464
- })
465
- return
466
- }
459
+ if ! etcdMembersAgreeOnClusterID {
460
+ v1beta2conditions .Set (kcp , metav1.Condition {
461
+ Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
462
+ Status : metav1 .ConditionFalse ,
463
+ Reason : controlplanev1 .KubeadmControlPlaneNotAvailableV1Beta2Reason ,
464
+ Message : "At least one etcd member reports a cluster ID different than the cluster ID reported by other members" ,
465
+ })
466
+ return
467
+ }
467
468
468
- if etcdIsManaged && ! etcdMembersAndMachinesAreMatching {
469
- v1beta2conditions .Set (kcp , metav1.Condition {
470
- Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
471
- Status : metav1 .ConditionFalse ,
472
- Reason : controlplanev1 .KubeadmControlPlaneNotAvailableV1Beta2Reason ,
473
- Message : "The list of etcd members does not match the list of Machines and Nodes" ,
474
- })
475
- return
469
+ if ! etcdMembersAndMachinesAreMatching {
470
+ v1beta2conditions .Set (kcp , metav1.Condition {
471
+ Type : controlplanev1 .KubeadmControlPlaneAvailableV1Beta2Condition ,
472
+ Status : metav1 .ConditionFalse ,
473
+ Reason : controlplanev1 .KubeadmControlPlaneNotAvailableV1Beta2Reason ,
474
+ Message : "The list of etcd members does not match the list of Machines and Nodes" ,
475
+ })
476
+ return
477
+ }
476
478
}
477
479
478
480
// Determine control plane availability looking at machines conditions, which at this stage are
479
481
// already surfacing status from etcd member and all control plane pods hosted on every machine.
480
- // Note: we intentionally use the number of etcd members for determine the etcd quorum because
481
- // etcd members could not match with machines, e.g. while provisioning a new machine.
482
+ // Note: we intentionally use the number of etcd members to determine the etcd quorum because
483
+ // etcd members might not match with machines, e.g. while provisioning a new machine.
482
484
etcdQuorum := (len (etcdMembers ) / 2.0 ) + 1
483
485
k8sControlPlaneHealthy := 0
484
486
etcdMembersHealthy := 0
@@ -537,16 +539,16 @@ func setAvailableCondition(_ context.Context, kcp *controlplanev1.KubeadmControl
537
539
if etcdIsManaged && etcdMembersHealthy < etcdQuorum {
538
540
switch etcdMembersHealthy {
539
541
case 0 :
540
- messages = append (messages , fmt .Sprintf ("There are no healthy etcd member, at least %d required" , etcdQuorum ))
542
+ messages = append (messages , fmt .Sprintf ("There are no healthy etcd member, at least %d required for etcd quorum " , etcdQuorum ))
541
543
case 1 :
542
- messages = append (messages , fmt .Sprintf ("There is 1 healthy etcd member, at least %d required" , etcdQuorum ))
544
+ messages = append (messages , fmt .Sprintf ("There is 1 healthy etcd member, at least %d required for etcd quorum " , etcdQuorum ))
543
545
default :
544
- messages = append (messages , fmt .Sprintf ("There are %d healthy etcd members, at least %d required" , etcdMembersHealthy , etcdQuorum ))
546
+ messages = append (messages , fmt .Sprintf ("There are %d healthy etcd members, at least %d required for etcd quorum " , etcdMembersHealthy , etcdQuorum ))
545
547
}
546
548
}
547
549
548
550
if k8sControlPlaneHealthy < 1 {
549
- messages = append (messages , "There are no healthy control plane instances , at least 1 required" )
551
+ messages = append (messages , "There are no Machines with healthy control plane components , at least 1 required" )
550
552
}
551
553
552
554
v1beta2conditions .Set (kcp , metav1.Condition {
0 commit comments