From 5a79402a7363fed28631ad1272d199ca8327ff33 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Tue, 27 Nov 2018 15:29:06 +0200 Subject: [PATCH] Add canary status state constants --- pkg/apis/flagger/v1alpha1/types.go | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/pkg/apis/flagger/v1alpha1/types.go b/pkg/apis/flagger/v1alpha1/types.go index 5ed75d45..0e6251cd 100755 --- a/pkg/apis/flagger/v1alpha1/types.go +++ b/pkg/apis/flagger/v1alpha1/types.go @@ -21,7 +21,10 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -const CanaryKind = "Canary" +const ( + CanaryKind = "Canary" + ProgressDeadlineSeconds = 60 +) // +genclient // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -64,11 +67,21 @@ type CanaryList struct { Items []Canary `json:"items"` } +// CanaryState used for status state op +type CanaryState string + +const ( + CanaryRunning CanaryState = "running" + CanaryFinished CanaryState = "finished" + CanaryFailed CanaryState = "failed" + CanaryInitialized CanaryState = "initialized" +) + // CanaryStatus is used for state persistence (read-only) type CanaryStatus struct { - State string `json:"state"` - CanaryRevision string `json:"canaryRevision"` - FailedChecks int `json:"failedChecks"` + State CanaryState `json:"state"` + CanaryRevision string `json:"canaryRevision"` + FailedChecks int `json:"failedChecks"` // +optional LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` } @@ -95,3 +108,11 @@ type CanaryMetric struct { Interval string `json:"interval"` Threshold int `json:"threshold"` } + +func (c *Canary) GetProgressDeadlineSeconds() int { + if c.Spec.ProgressDeadlineSeconds != nil { + return int(*c.Spec.ProgressDeadlineSeconds) + } + + return ProgressDeadlineSeconds +}