/
condition_types.go
165 lines (151 loc) · 7.05 KB
/
condition_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package v1beta1
import (
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
const (
// ReconcileErrorCondition indicates a transient or persistent reconciliation error.
ReconcileErrorCondition string = "ReconcileError"
// ReconcileSuccessCondition indicates a successful reconciliation.
ReconcileSuccessCondition string = "ReconcileSuccess"
// ReadyCondition indicates the cluster is ready to receive traffic.
ReadyCondition string = "Ready"
)
const (
// ProgressingReason signals a reconciliation has started.
ProgressingReason string = "Progressing"
// ReconcileErrorReason signals a unknown reconciliation error.
ReconcileErrorReason string = "LastReconcileCycleFailed"
// ReconcileSuccessReason signals a successful reconciliation.
ReconcileSuccessReason string = "LastReconcileCycleSucceded"
// ServicesReadyReason signals all temporal services for the cluster are in ready state.
ServicesReadyReason string = "ServicesReady"
// ServicesNotReadyReason signals that not all temporal services for the cluster are in ready state.
ServicesNotReadyReason string = "ServicesNotReady"
// PersistenceReconciliationFailedReason signals an error while reconciling persistence.
PersistenceReconciliationFailedReason string = "PersistenceReconciliationFailed"
// ResourcesReconciliationFailedReason signals an error while reconciling cluster resources.
ResourcesReconciliationFailedReason string = "ResoucesReconciliationFailed"
// TemporalClusterValidationFailedReason signals an error while validation desired cluster version.
TemporalClusterValidationFailedReason string = "TemporalClusterValidationFailed"
// TemporalNamespaceCreatedReason signals a successful namespace creation.
TemporalNamespaceCreatedReason string = "TemporalNamespaceCreated"
)
// SetTemporalClusterReconcileSuccess sets the ReconcileSuccessCondition status for a temporal cluster.
func SetTemporalClusterReconcileSuccess(c *TemporalCluster, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReconcileSuccessCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: c.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&c.Status.Conditions, condition)
}
// SetTemporalClusterReconcileError sets the ReconcileErrorCondition status for a temporal cluster.
func SetTemporalClusterReconcileError(c *TemporalCluster, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReconcileErrorCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: c.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&c.Status.Conditions, condition)
}
// GetTemporalClusterReadyCondition returns the ready condition for the provided cluster if found.
func GetTemporalClusterReadyCondition(c *TemporalCluster) (*metav1.Condition, bool) {
condition := apimeta.FindStatusCondition(c.Status.Conditions, ReadyCondition)
return condition, condition != nil
}
// SetTemporalClusterReady sets the ReadyCondition status for a temporal cluster.
func SetTemporalClusterReady(c *TemporalCluster, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReadyCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: c.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&c.Status.Conditions, condition)
}
// SetTemporalNamespaceReady sets the ReadyCondition status for a temporal namespace.
func SetTemporalNamespaceReady(c *TemporalNamespace, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReadyCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: c.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&c.Status.Conditions, condition)
}
// SetTemporalNamespaceReconcileSuccess sets the ReconcileSuccessCondition status for a temporal namespace.
func SetTemporalNamespaceReconcileSuccess(n *TemporalNamespace, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReconcileSuccessCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: n.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&n.Status.Conditions, condition)
}
// SetTemporalNamespaceReconcileError sets the ReconcileErrorCondition status for a temporal namespace.
func SetTemporalNamespaceReconcileError(n *TemporalNamespace, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReconcileErrorCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: n.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&n.Status.Conditions, condition)
}
// GetTemporalWorkerProcessReadyCondition returns the ready condition for the provided worker process if found.
func GetTemporalWorkerProcessReadyCondition(w *TemporalWorkerProcess) (*metav1.Condition, bool) {
condition := apimeta.FindStatusCondition(w.Status.Conditions, ReadyCondition)
return condition, condition != nil
}
// SetTemporalWorkerProcessReady sets the ReadyCondition status for a temporal worker process.
func SetTemporalWorkerProcessReady(w *TemporalWorkerProcess, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReadyCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: w.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&w.Status.Conditions, condition)
}
// SetTemporalWorkerProcessReconcileSuccess sets the ReconcileSuccessCondition status for a temporal worker process.
func SetTemporalWorkerProcessReconcileSuccess(w *TemporalWorkerProcess, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReconcileSuccessCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: w.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&w.Status.Conditions, condition)
}
// SetTemporalWorkerProcessReconcileError sets the ReconcileErrorCondition status for a temporal worker process.
func SetTemporalWorkerProcessReconcileError(w *TemporalWorkerProcess, status metav1.ConditionStatus, reason, message string) {
condition := metav1.Condition{
Type: ReconcileErrorCondition,
LastTransitionTime: metav1.Now(),
ObservedGeneration: w.GetGeneration(),
Reason: reason,
Status: status,
Message: message,
}
apimeta.SetStatusCondition(&w.Status.Conditions, condition)
}