@@ -26,6 +26,7 @@ const (
2626 // ClusterFinalizer allows ReconcileLinodeCluster to clean up Linode resources associated
2727 // with LinodeCluster before removing it from the apiserver.
2828 ClusterFinalizer = "linodecluster.infrastructure.cluster.x-k8s.io"
29+ ConditionPaused = "Paused"
2930)
3031
3132// LinodeClusterSpec defines the desired state of LinodeCluster
@@ -121,26 +122,36 @@ type LinodeCluster struct {
121122 Status LinodeClusterStatus `json:"status,omitempty"`
122123}
123124
124- func (lc * LinodeCluster ) GetConditions () []metav1.Condition {
125+ func (lc * LinodeCluster ) SetCondition (cond metav1.Condition ) {
126+ if cond .LastTransitionTime .IsZero () {
127+ cond .LastTransitionTime = metav1 .Now ()
128+ }
125129 for i := range lc .Status .Conditions {
126- if lc .Status .Conditions [i ].Reason == "" {
127- lc .Status .Conditions [i ].Reason = DefaultConditionReason
130+ if lc .Status .Conditions [i ].Type == cond .Type {
131+ lc .Status .Conditions [i ] = cond
132+ return
128133 }
129134 }
130- return lc .Status .Conditions
135+ lc . Status . Conditions = append ( lc .Status .Conditions , cond )
131136}
132137
133- func (lc * LinodeCluster ) SetConditions (conditions []metav1.Condition ) {
134- lc .Status .Conditions = conditions
135- }
138+ func (lc * LinodeCluster ) GetCondition (condType string ) * metav1.Condition {
139+ for i := range lc .Status .Conditions {
140+ if lc .Status .Conditions [i ].Type == condType {
141+ return & lc .Status .Conditions [i ]
142+ }
143+ }
136144
137- // We need V1Beta2Conditions helpers to be able to use the conditions package from cluster-api
138- func (lc * LinodeCluster ) GetV1Beta2Conditions () []metav1.Condition {
139- return lc .GetConditions ()
145+ return nil
140146}
141147
142- func (lc * LinodeCluster ) SetV1Beta2Conditions (conditions []metav1.Condition ) {
143- lc .SetConditions (conditions )
148+ func (lc * LinodeCluster ) IsPaused () bool {
149+ for i := range lc .Status .Conditions {
150+ if lc .Status .Conditions [i ].Type == ConditionPaused {
151+ return lc .Status .Conditions [i ].Status == metav1 .ConditionTrue
152+ }
153+ }
154+ return false
144155}
145156
146157// NetworkSpec encapsulates Linode networking resources.
0 commit comments