Skip to content

Commit df1ec55

Browse files
Merge pull request #1252 from hongkailiu/ClusterStatusConditionType
NO-JIRA: Move constants of ClusterStatusConditionType into one place
2 parents b581f71 + d5212c0 commit df1ec55

File tree

11 files changed

+309
-277
lines changed

11 files changed

+309
-277
lines changed

pkg/cvo/cvo_scenarios_test.go

Lines changed: 75 additions & 74 deletions
Large diffs are not rendered by default.

pkg/cvo/cvo_test.go

Lines changed: 113 additions & 112 deletions
Large diffs are not rendered by default.

pkg/cvo/metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,7 @@ func (m *operatorMetrics) Collect(ch chan<- prometheus.Metric) {
518518
}
519519

520520
// answers "if we are failing, are we updating or reconciling"
521-
failing := resourcemerge.FindOperatorStatusCondition(cv.Status.Conditions, ClusterStatusFailing)
521+
failing := resourcemerge.FindOperatorStatusCondition(cv.Status.Conditions, internal.ClusterStatusFailing)
522522
if failing != nil && failing.Status == configv1.ConditionTrue {
523523
if update := cv.Spec.DesiredUpdate; update != nil && update.Image != current.Image {
524524
g = m.version.WithLabelValues("failure", update.Version, update.Image, completed.Version)

pkg/cvo/metrics_test.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import (
2222
"k8s.io/client-go/tools/record"
2323

2424
configv1 "github.com/openshift/api/config/v1"
25+
26+
"github.com/openshift/cluster-version-operator/pkg/internal"
2527
)
2628

2729
func Test_operatorMetrics_Collect(t *testing.T) {
@@ -329,8 +331,8 @@ func Test_operatorMetrics_Collect(t *testing.T) {
329331
Status: configv1.ClusterOperatorStatus{
330332
Conditions: []configv1.ClusterOperatorStatusCondition{
331333
{Type: configv1.OperatorAvailable, Status: configv1.ConditionTrue},
332-
{Type: configv1.ClusterStatusConditionType("Custom"), Status: configv1.ConditionFalse, Reason: "CustomReason"},
333-
{Type: configv1.ClusterStatusConditionType("Unknown"), Status: configv1.ConditionUnknown},
334+
{Type: "Custom", Status: configv1.ConditionFalse, Reason: "CustomReason"},
335+
{Type: "Unknown", Status: configv1.ConditionUnknown},
334336
},
335337
},
336338
},
@@ -479,7 +481,7 @@ func Test_operatorMetrics_Collect(t *testing.T) {
479481
{State: configv1.CompletedUpdate, Version: "0.0.2", Image: "test/image:1", CompletionTime: &([]metav1.Time{{Time: time.Unix(2, 0)}}[0])},
480482
},
481483
Conditions: []configv1.ClusterOperatorStatusCondition{
482-
{Type: ClusterStatusFailing, Status: configv1.ConditionTrue, LastTransitionTime: metav1.Time{Time: time.Unix(4, 0)}, Reason: "Because stuff"},
484+
{Type: internal.ClusterStatusFailing, Status: configv1.ConditionTrue, LastTransitionTime: metav1.Time{Time: time.Unix(4, 0)}, Reason: "Because stuff"},
483485
},
484486
},
485487
},
@@ -517,7 +519,7 @@ func Test_operatorMetrics_Collect(t *testing.T) {
517519
},
518520
Status: configv1.ClusterVersionStatus{
519521
Conditions: []configv1.ClusterOperatorStatusCondition{
520-
{Type: ClusterStatusFailing, Status: configv1.ConditionTrue, Reason: "Because stuff"},
522+
{Type: internal.ClusterStatusFailing, Status: configv1.ConditionTrue, Reason: "Because stuff"},
521523
},
522524
},
523525
},
@@ -717,7 +719,7 @@ func Test_operatorMetrics_CollectTransitions(t *testing.T) {
717719
Status: configv1.ClusterOperatorStatus{
718720
Conditions: []configv1.ClusterOperatorStatusCondition{
719721
{Type: configv1.OperatorAvailable, Status: configv1.ConditionTrue},
720-
{Type: configv1.ClusterStatusConditionType("Custom"), Status: configv1.ConditionFalse},
722+
{Type: "Custom", Status: configv1.ConditionFalse},
721723
},
722724
},
723725
},
@@ -726,17 +728,17 @@ func Test_operatorMetrics_CollectTransitions(t *testing.T) {
726728
Status: configv1.ClusterOperatorStatus{
727729
Conditions: []configv1.ClusterOperatorStatusCondition{
728730
{Type: configv1.OperatorAvailable, Status: configv1.ConditionFalse},
729-
{Type: configv1.ClusterStatusConditionType("Custom"), Status: configv1.ConditionFalse},
730-
{Type: configv1.ClusterStatusConditionType("Unknown"), Status: configv1.ConditionUnknown},
731+
{Type: "Custom", Status: configv1.ConditionFalse},
732+
{Type: "Unknown", Status: configv1.ConditionUnknown},
731733
},
732734
},
733735
},
734736
&configv1.ClusterOperator{
735737
ObjectMeta: metav1.ObjectMeta{Name: "test"},
736738
Status: configv1.ClusterOperatorStatus{
737739
Conditions: []configv1.ClusterOperatorStatusCondition{
738-
{Type: configv1.ClusterStatusConditionType("Custom"), Status: configv1.ConditionTrue},
739-
{Type: configv1.ClusterStatusConditionType("Unknown"), Status: configv1.ConditionTrue},
740+
{Type: "Custom", Status: configv1.ConditionTrue},
741+
{Type: "Unknown", Status: configv1.ConditionTrue},
740742
},
741743
},
742744
},

pkg/cvo/status.go

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,11 @@ import (
2424

2525
"github.com/openshift/cluster-version-operator/lib/resourcemerge"
2626
"github.com/openshift/cluster-version-operator/pkg/featuregates"
27+
"github.com/openshift/cluster-version-operator/pkg/internal"
2728
"github.com/openshift/cluster-version-operator/pkg/payload"
2829
)
2930

3031
const (
31-
// ClusterStatusFailing is set on the ClusterVersion status when a cluster
32-
// cannot reach the desired state. It is considered more serious than Degraded
33-
// and indicates the cluster is not healthy.
34-
ClusterStatusFailing = configv1.ClusterStatusConditionType("Failing")
35-
3632
// ConditionalUpdateConditionTypeRecommended is a type of the condition present on a conditional update
3733
// that indicates whether the conditional update is recommended or not
3834
ConditionalUpdateConditionTypeRecommended = "Recommended"
@@ -159,21 +155,6 @@ func mergeOperatorHistory(cvStatus *configv1.ClusterVersionStatus, desired confi
159155
cvStatus.Desired = desired
160156
}
161157

162-
// ClusterVersionInvalid indicates that the cluster version has an error that prevents the server from
163-
// taking action. The cluster version operator will only reconcile the current state as long as this
164-
// condition is set.
165-
const ClusterVersionInvalid configv1.ClusterStatusConditionType = "Invalid"
166-
167-
// DesiredReleaseAccepted indicates whether the requested (desired) release payload was successfully loaded
168-
// and no failures occurred during image verification and precondition checking.
169-
const DesiredReleaseAccepted configv1.ClusterStatusConditionType = "ReleaseAccepted"
170-
171-
// ImplicitlyEnabledCapabilities is True if there are enabled capabilities which the user is not currently
172-
// requesting via spec.capabilities, because the cluster version operator does not support uninstalling
173-
// capabilities if any associated resources were previously managed by the CVO or disabling previously
174-
// enabled capabilities.
175-
const ImplicitlyEnabledCapabilities configv1.ClusterStatusConditionType = "ImplicitlyEnabledCapabilities"
176-
177158
// syncStatus calculates the new status of the ClusterVersion based on the current sync state and any
178159
// validation errors found. We allow the caller to pass the original object to avoid DeepCopying twice.
179160
func (optr *Operator) syncStatus(ctx context.Context, original, config *configv1.ClusterVersion, status *SyncWorkerStatus, validationErrs field.ErrorList) error {
@@ -265,21 +246,21 @@ func updateClusterVersionStatus(cvStatus *configv1.ClusterVersionStatus, status
265246
reason = "InvalidClusterVersion"
266247

267248
resourcemerge.SetOperatorStatusCondition(&cvStatus.Conditions, configv1.ClusterOperatorStatusCondition{
268-
Type: ClusterVersionInvalid,
249+
Type: internal.ClusterVersionInvalid,
269250
Status: configv1.ConditionTrue,
270251
Reason: reason,
271252
Message: buf.String(),
272253
LastTransitionTime: now,
273254
})
274255
} else {
275-
resourcemerge.RemoveOperatorStatusCondition(&cvStatus.Conditions, ClusterVersionInvalid)
256+
resourcemerge.RemoveOperatorStatusCondition(&cvStatus.Conditions, internal.ClusterVersionInvalid)
276257
}
277258

278259
// set the implicitly enabled capabilities condition
279260
setImplicitlyEnabledCapabilitiesCondition(cvStatus, status.CapabilitiesStatus.ImplicitlyEnabledCaps, now)
280261

281-
// set the desired release accepted condition
282-
setDesiredReleaseAcceptedCondition(cvStatus, status.loadPayloadStatus, now)
262+
// set the release accepted condition
263+
setReleaseAcceptedCondition(cvStatus, status.loadPayloadStatus, now)
283264

284265
// set the available condition
285266
if status.Completed > 0 {
@@ -318,7 +299,7 @@ func updateClusterVersionStatus(cvStatus *configv1.ClusterVersionStatus, status
318299

319300
// set the failing condition
320301
failingCondition := configv1.ClusterOperatorStatusCondition{
321-
Type: ClusterStatusFailing,
302+
Type: internal.ClusterStatusFailing,
322303
Status: configv1.ConditionFalse,
323304
LastTransitionTime: now,
324305
}
@@ -482,15 +463,15 @@ func setImplicitlyEnabledCapabilitiesCondition(cvStatus *configv1.ClusterVersion
482463
message = message + strings.Join([]string(caps), ", ")
483464

484465
resourcemerge.SetOperatorStatusCondition(&cvStatus.Conditions, configv1.ClusterOperatorStatusCondition{
485-
Type: ImplicitlyEnabledCapabilities,
466+
Type: internal.ImplicitlyEnabledCapabilities,
486467
Status: configv1.ConditionTrue,
487468
Reason: "CapabilitiesImplicitlyEnabled",
488469
Message: message,
489470
LastTransitionTime: now,
490471
})
491472
} else {
492473
resourcemerge.SetOperatorStatusCondition(&cvStatus.Conditions, configv1.ClusterOperatorStatusCondition{
493-
Type: ImplicitlyEnabledCapabilities,
474+
Type: internal.ImplicitlyEnabledCapabilities,
494475
Status: configv1.ConditionFalse,
495476
Reason: "AsExpected",
496477
Message: "Capabilities match configured spec",
@@ -499,10 +480,10 @@ func setImplicitlyEnabledCapabilitiesCondition(cvStatus *configv1.ClusterVersion
499480
}
500481
}
501482

502-
func setDesiredReleaseAcceptedCondition(cvStatus *configv1.ClusterVersionStatus, status LoadPayloadStatus, now metav1.Time) {
483+
func setReleaseAcceptedCondition(cvStatus *configv1.ClusterVersionStatus, status LoadPayloadStatus, now metav1.Time) {
503484
if status.Step == "PayloadLoaded" {
504485
resourcemerge.SetOperatorStatusCondition(&cvStatus.Conditions, configv1.ClusterOperatorStatusCondition{
505-
Type: DesiredReleaseAccepted,
486+
Type: internal.ReleaseAccepted,
506487
Status: configv1.ConditionTrue,
507488
Reason: status.Step,
508489
Message: status.Message,
@@ -511,15 +492,15 @@ func setDesiredReleaseAcceptedCondition(cvStatus *configv1.ClusterVersionStatus,
511492
} else if status.Step != "" {
512493
if status.Failure != nil {
513494
resourcemerge.SetOperatorStatusCondition(&cvStatus.Conditions, configv1.ClusterOperatorStatusCondition{
514-
Type: DesiredReleaseAccepted,
495+
Type: internal.ReleaseAccepted,
515496
Status: configv1.ConditionFalse,
516497
Reason: status.Step,
517498
Message: status.Message,
518499
LastTransitionTime: now,
519500
})
520501
} else {
521502
resourcemerge.SetOperatorStatusCondition(&cvStatus.Conditions, configv1.ClusterOperatorStatusCondition{
522-
Type: DesiredReleaseAccepted,
503+
Type: internal.ReleaseAccepted,
523504
Status: configv1.ConditionUnknown,
524505
Reason: status.Step,
525506
Message: status.Message,
@@ -644,7 +625,7 @@ func (optr *Operator) syncFailingStatus(ctx context.Context, original *configv1.
644625

645626
// reset the failing message
646627
resourcemerge.SetOperatorStatusCondition(&config.Status.Conditions, configv1.ClusterOperatorStatusCondition{
647-
Type: ClusterStatusFailing,
628+
Type: internal.ClusterStatusFailing,
648629
Status: configv1.ConditionTrue,
649630
Message: ierr.Error(),
650631
LastTransitionTime: now,

0 commit comments

Comments
 (0)