github.com/giantswarm/apiextensions/v6@v6.6.0/pkg/conditions/clusterapi.go (about) 1 package conditions 2 3 import ( 4 "encoding/json" 5 6 "github.com/giantswarm/microerror" 7 capi "sigs.k8s.io/cluster-api/api/v1beta1" 8 ) 9 10 // Cluster conditions 11 const ( 12 // CreatingCondition tells if the cluster is being created. 13 CreatingCondition capi.ConditionType = "Creating" 14 15 // UpgradingCondition tells if the cluster is being upgraded to a newer 16 // release version. 17 UpgradingCondition capi.ConditionType = "Upgrading" 18 19 // ProviderInfrastructureReadyCondition tells if the provider 20 // infrastructure defined by the related provider-specific CR is Ready. For 21 // example, in Cluster CR it tells if Azure infrastructure defined by the 22 // AzureCluster is ready. 23 ProviderInfrastructureReadyCondition capi.ConditionType = "ProviderInfrastructureReady" 24 25 // NodePoolsReadyCondition tells if all node pools are ready. 26 NodePoolsReadyCondition capi.ConditionType = "NodePoolsReady" 27 ) 28 29 // Creating reasons 30 const ( 31 CreationCompletedReason = "CreationCompleted" 32 ExistingClusterReason = "ExistingCluster" 33 ) 34 35 // Upgrading reasons 36 const ( 37 UpgradeCompletedReason = "UpgradeCompleted" 38 UpgradeNotStartedReason = "UpgradeNotStarted" 39 ) 40 41 type UpgradingConditionMessage struct { 42 Message string `json:"message"` 43 ReleaseVersion string `json:"release_version"` 44 } 45 46 // SerializeUpgradingConditionMessage converts specified message object into a 47 // JSON string. 48 func SerializeUpgradingConditionMessage(message UpgradingConditionMessage) (string, error) { 49 messageJson, err := json.Marshal(message) 50 if err != nil { 51 return "", microerror.Mask(err) 52 } 53 54 return string(messageJson), nil 55 } 56 57 // DeserializeUpgradingConditionMessage parses specified JSON string and 58 // returns message UpgradingConditionMessage struct. 59 func DeserializeUpgradingConditionMessage(messageJson string) (UpgradingConditionMessage, error) { 60 var message UpgradingConditionMessage 61 62 err := json.Unmarshal([]byte(messageJson), &message) 63 if err != nil { 64 return UpgradingConditionMessage{}, microerror.Mask(err) 65 } 66 67 return message, nil 68 }