@@ -23,42 +23,33 @@ import (
2323
2424 "k8s.io/apimachinery/pkg/api/meta"
2525 v1 "k8s.io/autoscaler/cluster-autoscaler/apis/capacitybuffer/autoscaling.x-k8s.io/v1beta1"
26+ "k8s.io/autoscaler/cluster-autoscaler/capacitybuffer"
2627
2728 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2829)
2930
30- // Constants to use in Capacity Buffers objects
31- const (
32- ActiveProvisioningStrategy = "buffer.x-k8s.io/active-capacity"
33- CapacityBufferKind = "CapacityBuffer"
34- CapacityBufferApiVersion = "autoscaling.x-k8s.io/v1beta1"
35- ReadyForProvisioningCondition = "ReadyForProvisioning"
36- ProvisioningCondition = "Provisioning"
37- LimitedByQuotasCondition = "LimitedByQuotas"
38- LimitedByQuotasReason = "ResourceQuotasAllocated"
39- ConditionTrue = "True"
40- ConditionFalse = "False"
41- )
42-
4331// SetBufferAsReadyForProvisioning updates the passed buffer object with the rest of the attributes and sets its condition to ready
4432func SetBufferAsReadyForProvisioning (buffer * v1.CapacityBuffer , PodTemplateRef * v1.LocalObjectRef , podTemplateGeneration * int64 , replicas * int32 , provStrategy * string ) {
4533 buffer .Status .PodTemplateRef = PodTemplateRef
4634 buffer .Status .Replicas = replicas
4735 buffer .Status .PodTemplateGeneration = podTemplateGeneration
4836 buffer .Status .ProvisioningStrategy = mapEmptyProvStrategyToDefault (provStrategy )
4937 readyCondition := metav1.Condition {
50- Type : ReadyForProvisioningCondition ,
51- Status : ConditionTrue ,
38+ Type : capacitybuffer . ReadyForProvisioningCondition ,
39+ Status : metav1 . ConditionTrue ,
5240 Message : "ready" ,
53- Reason : "atrtibutesSetSuccessfully" ,
41+ Reason : capacitybuffer . AttributesSetSuccessfullyReason ,
5442 LastTransitionTime : metav1.Time {Time : time .Now ()},
5543 }
56- buffer .Status .Conditions = []metav1.Condition {readyCondition }
44+ if buffer .Status .Conditions == nil {
45+ buffer .Status .Conditions = make ([]metav1.Condition , 0 )
46+ }
47+ meta .SetStatusCondition (& buffer .Status .Conditions , readyCondition )
5748}
5849
5950// SetBufferAsNotReadyForProvisioning updates the passed buffer object with the rest of the attributes and sets its condition to not ready with the passed error
6051func SetBufferAsNotReadyForProvisioning (buffer * v1.CapacityBuffer , PodTemplateRef * v1.LocalObjectRef , podTemplateGeneration * int64 , replicas * int32 , provStrategy * string , err error ) {
61- errorMessage := "Buffer not ready for provisioing "
52+ errorMessage := "Buffer not ready for provisioning "
6253 if err != nil {
6354 errorMessage = err .Error ()
6455 }
@@ -68,42 +59,53 @@ func SetBufferAsNotReadyForProvisioning(buffer *v1.CapacityBuffer, PodTemplateRe
6859 buffer .Status .PodTemplateGeneration = podTemplateGeneration
6960 buffer .Status .ProvisioningStrategy = mapEmptyProvStrategyToDefault (provStrategy )
7061 notReadyCondition := metav1.Condition {
71- Type : ReadyForProvisioningCondition ,
72- Status : ConditionFalse ,
62+ Type : capacitybuffer . ReadyForProvisioningCondition ,
63+ Status : metav1 . ConditionFalse ,
7364 Message : errorMessage ,
7465 Reason : "error" ,
7566 LastTransitionTime : metav1.Time {Time : time .Now ()},
7667 }
77- buffer .Status .Conditions = []metav1.Condition {notReadyCondition }
68+ if buffer .Status .Conditions == nil {
69+ buffer .Status .Conditions = make ([]metav1.Condition , 0 )
70+ }
71+ meta .SetStatusCondition (& buffer .Status .Conditions , notReadyCondition )
7872}
7973
8074func mapEmptyProvStrategyToDefault (ps * string ) * string {
8175 if ps != nil && * ps == "" {
82- defaultProvStrategy := ActiveProvisioningStrategy
76+ defaultProvStrategy := capacitybuffer . ActiveProvisioningStrategy
8377 ps = & defaultProvStrategy
8478 }
8579 return ps
8680}
8781
88- // UpdateBufferStatusToFailedProvisioing updates the status of the passed buffer and set Provisioning to false with the passes reason and message
89- func UpdateBufferStatusToFailedProvisioing (buffer * v1.CapacityBuffer , reason , errorMessage string ) {
90- buffer . Status . Conditions = [] metav1.Condition { {
91- Type : ProvisioningCondition ,
92- Status : ConditionFalse ,
82+ // UpdateBufferStatusToFailedProvisioning updates the status of the passed buffer and set Provisioning to false with the passes reason and message
83+ func UpdateBufferStatusToFailedProvisioning (buffer * v1.CapacityBuffer , reason , errorMessage string ) bool {
84+ newCondition := metav1.Condition {
85+ Type : capacitybuffer . ProvisioningCondition ,
86+ Status : metav1 . ConditionFalse ,
9387 Message : errorMessage ,
9488 Reason : reason ,
9589 LastTransitionTime : metav1.Time {Time : time .Now ()},
96- }}
90+ }
91+ if buffer .Status .Conditions == nil {
92+ buffer .Status .Conditions = make ([]metav1.Condition , 0 )
93+ }
94+ return meta .SetStatusCondition (& buffer .Status .Conditions , newCondition )
9795}
9896
99- // UpdateBufferStatusToSuccessfullyProvisioing updates the status of the passed buffer and set Provisioning to true with the passes reason
100- func UpdateBufferStatusToSuccessfullyProvisioing (buffer * v1.CapacityBuffer , reason string ) {
101- buffer . Status . Conditions = [] metav1.Condition { {
102- Type : ProvisioningCondition ,
103- Status : ConditionTrue ,
97+ // UpdateBufferStatusToSuccessfullyProvisioning updates the status of the passed buffer and set Provisioning to true with the passes reason
98+ func UpdateBufferStatusToSuccessfullyProvisioning (buffer * v1.CapacityBuffer , reason string ) {
99+ newCondition := metav1.Condition {
100+ Type : capacitybuffer . ProvisioningCondition ,
101+ Status : metav1 . ConditionTrue ,
104102 Reason : reason ,
105103 LastTransitionTime : metav1.Time {Time : time .Now ()},
106- }}
104+ }
105+ if buffer .Status .Conditions == nil {
106+ buffer .Status .Conditions = make ([]metav1.Condition , 0 )
107+ }
108+ meta .SetStatusCondition (& buffer .Status .Conditions , newCondition )
107109}
108110
109111// MarkBufferAsLimitedByQuota adds or updates the LimitedByQuotas condition with True
@@ -118,16 +120,16 @@ func MarkBufferAsLimitedByQuota(buffer *v1.CapacityBuffer, desiredReplicas, allo
118120
119121// UpdateBufferStatusLimitedByQuotas adds or updates the LimitedByQuotas condition
120122func UpdateBufferStatusLimitedByQuotas (buffer * v1.CapacityBuffer , isLimited bool , message string ) {
121- status := ConditionFalse
123+ status := metav1 . ConditionFalse
122124 if isLimited {
123- status = ConditionTrue
125+ status = metav1 . ConditionTrue
124126 }
125127
126128 newCondition := metav1.Condition {
127- Type : LimitedByQuotasCondition ,
128- Status : metav1 . ConditionStatus ( status ) ,
129+ Type : capacitybuffer . LimitedByQuotasCondition ,
130+ Status : status ,
129131 Message : message ,
130- Reason : LimitedByQuotasReason ,
132+ Reason : capacitybuffer . LimitedByQuotasReason ,
131133 LastTransitionTime : metav1.Time {Time : time .Now ()},
132134 ObservedGeneration : buffer .Generation ,
133135 }
0 commit comments