Documentation ¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the API.
Index ¶
- Constants
- Variables
- func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type AnalysisPhase
- type AnalysisRun
- type AnalysisRunArgument
- type AnalysisRunList
- type AnalysisRunSpec
- type AnalysisRunStatus
- type AnalysisTemplate
- type AnalysisTemplateList
- type AnalysisTemplateSpec
- type Argument
- type ArgumentValueFrom
- type BlueGreenStatus
- type BlueGreenStrategy
- type CanaryStatus
- type CanaryStep
- type CanaryStrategy
- type DurationString
- type Experiment
- type ExperimentAnalysisRunStatus
- type ExperimentAnalysisTemplateRef
- type ExperimentCondition
- type ExperimentConditionType
- type ExperimentList
- type ExperimentSpec
- type ExperimentStatus
- type IstioTrafficRouting
- type IstioVirtualService
- type JobMetric
- type KayentaMetric
- type KayentaScope
- type KayentaThreshold
- type Measurement
- type Metric
- type MetricProvider
- type MetricResult
- type PauseCondition
- type PauseReason
- type PodTemplateMetadata
- type PrometheusMetric
- type ReplicaSetSpecRef
- type Rollout
- type RolloutAnalysisBackground
- type RolloutAnalysisStep
- type RolloutCondition
- type RolloutConditionType
- type RolloutExperimentStep
- type RolloutExperimentStepAnalysisTemplateRef
- type RolloutExperimentTemplate
- type RolloutList
- type RolloutPause
- type RolloutSpec
- type RolloutStatus
- type RolloutStrategy
- type RolloutTrafficRouting
- type ScopeDetail
- type TemplateSpec
- type TemplateStatus
- type TemplateStatusCode
- type ValueFromPodTemplateHash
- type WavefrontMetric
- type WebMetric
- type WebMetricHeader
Constants ¶
const ( ExperimentNameAnnotationKey = "experiment.argoproj.io/name" ExperimentTemplateNameAnnotationKey = "experiment.argoproj.io/template-name" )
Annotations that are labeled into the ReplicaSets that are part of an experiment
const ( // DefaultRolloutUniqueLabelKey is the default key of the selector that is added // to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets // to select new pods (and old pods being select by new ReplicaSet). DefaultRolloutUniqueLabelKey string = "rollouts-pod-template-hash" // DefaultReplicaSetScaleDownDeadlineAnnotationKey is the default key attached to an old stable ReplicaSet after // the rollout transitioned to a new version. It contains the time when the controller can scale down the RS. DefaultReplicaSetScaleDownDeadlineAnnotationKey = "scale-down-deadline" // LabelKeyControllerInstanceID is the label the controller uses for the rollout, experiment, analysis segregation // between controllers. Controllers will only operate on objects with the same instanceID as the controller. LabelKeyControllerInstanceID = "argo-rollouts.argoproj.io/controller-instance-id" )
const ( // RolloutTypeLabel indicates how the rollout created the analysisRun RolloutTypeLabel = "rollout-type" // RolloutTypeStepLabel indicates that the analysisRun was created as a canary step RolloutTypeStepLabel = "Step" // RolloutTypeBackgroundRunLabel indicates that the analysisRun was created in Background to an execution RolloutTypeBackgroundRunLabel = "Background" // RolloutCanaryStepIndexLabel indicates which step created this analysisRun RolloutCanaryStepIndexLabel = "step-index" )
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: rollouts.Group, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects
Functions ¶
func GetOpenAPIDefinitions ¶
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type AnalysisPhase ¶ added in v0.6.0
type AnalysisPhase string
AnalysisPhase is the overall phase of an AnalysisRun, MetricResult, or Measurement
const ( AnalysisPhasePending AnalysisPhase = "Pending" AnalysisPhaseRunning AnalysisPhase = "Running" AnalysisPhaseSuccessful AnalysisPhase = "Successful" AnalysisPhaseFailed AnalysisPhase = "Failed" AnalysisPhaseError AnalysisPhase = "Error" AnalysisPhaseInconclusive AnalysisPhase = "Inconclusive" )
Possible AnalysisPhase values
func (AnalysisPhase) Completed ¶ added in v0.6.0
func (as AnalysisPhase) Completed() bool
Completed returns whether or not the analysis status is considered completed
type AnalysisRun ¶ added in v0.6.0
type AnalysisRun struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AnalysisRunSpec `json:"spec"` Status AnalysisRunStatus `json:"status,omitempty"` }
AnalysisRun is an instantiation of an AnalysisTemplate +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:path=analysisruns, shortName=ar +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="AnalysisRun status"
func (*AnalysisRun) DeepCopy ¶ added in v0.6.0
func (in *AnalysisRun) DeepCopy() *AnalysisRun
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRun.
func (*AnalysisRun) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisRun) DeepCopyInto(out *AnalysisRun)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AnalysisRun) DeepCopyObject ¶ added in v0.6.0
func (in *AnalysisRun) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AnalysisRunArgument ¶ added in v0.6.0
type AnalysisRunArgument struct { // Name argument name Name string `json:"name"` // Value a hardcoded value for the argument. This field is a one of field with valueFrom Value string `json:"value,omitempty"` // ValueFrom A reference to where the value is stored. This field is a one of field with valueFrom ValueFrom *ArgumentValueFrom `json:"valueFrom,omitempty"` }
AnalysisRunArgument argument to add to analysisRun
func (*AnalysisRunArgument) DeepCopy ¶ added in v0.6.0
func (in *AnalysisRunArgument) DeepCopy() *AnalysisRunArgument
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunArgument.
func (*AnalysisRunArgument) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisRunArgument) DeepCopyInto(out *AnalysisRunArgument)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AnalysisRunList ¶ added in v0.6.0
type AnalysisRunList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []AnalysisRun `json:"items"` }
AnalysisRunList is a list of AnalysisTemplate resources +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*AnalysisRunList) DeepCopy ¶ added in v0.6.0
func (in *AnalysisRunList) DeepCopy() *AnalysisRunList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunList.
func (*AnalysisRunList) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisRunList) DeepCopyInto(out *AnalysisRunList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AnalysisRunList) DeepCopyObject ¶ added in v0.6.0
func (in *AnalysisRunList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AnalysisRunSpec ¶ added in v0.6.0
type AnalysisRunSpec struct { // Metrics contains the list of metrics to query as part of an analysis run // +patchMergeKey=name // +patchStrategy=merge Metrics []Metric `json:"metrics" patchStrategy:"merge" patchMergeKey:"name"` // Args are the list of arguments used in this run // +optional // +patchMergeKey=name // +patchStrategy=merge Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // Terminate is used to prematurely stop the run (e.g. rollout completed and analysis is no longer desired) Terminate bool `json:"terminate,omitempty"` }
AnalysisRunSpec is the spec for a AnalysisRun resource
func (*AnalysisRunSpec) DeepCopy ¶ added in v0.6.0
func (in *AnalysisRunSpec) DeepCopy() *AnalysisRunSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunSpec.
func (*AnalysisRunSpec) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisRunSpec) DeepCopyInto(out *AnalysisRunSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AnalysisRunStatus ¶ added in v0.6.0
type AnalysisRunStatus struct { // Phase is the status of the analysis run Phase AnalysisPhase `json:"phase"` // Message is a message explaining current status Message string `json:"message,omitempty"` // MetricResults contains the metrics collected during the run MetricResults []MetricResult `json:"metricResults,omitempty"` // StartedAt indicates when the analysisRun first started StartedAt *metav1.Time `json:"startedAt,omitempty"` }
AnalysisRunStatus is the status for a AnalysisRun resource
func (*AnalysisRunStatus) DeepCopy ¶ added in v0.6.0
func (in *AnalysisRunStatus) DeepCopy() *AnalysisRunStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisRunStatus.
func (*AnalysisRunStatus) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisRunStatus) DeepCopyInto(out *AnalysisRunStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AnalysisTemplate ¶ added in v0.6.0
type AnalysisTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AnalysisTemplateSpec `json:"spec"` }
AnalysisTemplate holds the template for performing canary analysis +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:path=analysistemplates,shortName=at
func (*AnalysisTemplate) DeepCopy ¶ added in v0.6.0
func (in *AnalysisTemplate) DeepCopy() *AnalysisTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisTemplate.
func (*AnalysisTemplate) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisTemplate) DeepCopyInto(out *AnalysisTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AnalysisTemplate) DeepCopyObject ¶ added in v0.6.0
func (in *AnalysisTemplate) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AnalysisTemplateList ¶ added in v0.6.0
type AnalysisTemplateList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []AnalysisTemplate `json:"items"` }
AnalysisTemplateList is a list of AnalysisTemplate resources +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*AnalysisTemplateList) DeepCopy ¶ added in v0.6.0
func (in *AnalysisTemplateList) DeepCopy() *AnalysisTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisTemplateList.
func (*AnalysisTemplateList) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisTemplateList) DeepCopyInto(out *AnalysisTemplateList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AnalysisTemplateList) DeepCopyObject ¶ added in v0.6.0
func (in *AnalysisTemplateList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AnalysisTemplateSpec ¶ added in v0.6.0
type AnalysisTemplateSpec struct { // Metrics contains the list of metrics to query as part of an analysis run // +patchMergeKey=name // +patchStrategy=merge Metrics []Metric `json:"metrics" patchStrategy:"merge" patchMergeKey:"name"` // Args are the list of arguments to the template // +patchMergeKey=name // +patchStrategy=merge // +optional Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
AnalysisTemplateSpec is the specification for a AnalysisTemplate resource
func (*AnalysisTemplateSpec) DeepCopy ¶ added in v0.6.0
func (in *AnalysisTemplateSpec) DeepCopy() *AnalysisTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnalysisTemplateSpec.
func (*AnalysisTemplateSpec) DeepCopyInto ¶ added in v0.6.0
func (in *AnalysisTemplateSpec) DeepCopyInto(out *AnalysisTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Argument ¶ added in v0.6.0
type Argument struct { // Name is the name of the argument Name string `json:"name"` // Value is the value of the argument // +optional Value *string `json:"value,omitempty"` }
Argument is an argument to an AnalysisRun
func (*Argument) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Argument.
func (*Argument) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ArgumentValueFrom ¶ added in v0.6.0
type ArgumentValueFrom struct { // PodTemplateHashValue gets the value from one of the children ReplicaSet's Pod Template Hash PodTemplateHashValue *ValueFromPodTemplateHash `json:"podTemplateHashValue,omitempty"` }
ArgumentValueFrom defines references to fields within resources to grab for the value (i.e. Pod Template Hash)
func (*ArgumentValueFrom) DeepCopy ¶ added in v0.6.0
func (in *ArgumentValueFrom) DeepCopy() *ArgumentValueFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArgumentValueFrom.
func (*ArgumentValueFrom) DeepCopyInto ¶ added in v0.6.0
func (in *ArgumentValueFrom) DeepCopyInto(out *ArgumentValueFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlueGreenStatus ¶ added in v0.2.0
type BlueGreenStatus struct { // PreviewSelector indicates which replicas set the preview service is serving traffic to // +optional PreviewSelector string `json:"previewSelector,omitempty"` // ActiveSelector indicates which replicas set the active service is serving traffic to // +optional ActiveSelector string `json:"activeSelector,omitempty"` // PreviousActiveSelector indicates the last selector that the active service used. This is used to know which replicaset // to avoid scaling down for the scale down delay // Deprecated: PreviousActiveSelector is tracked with the replicaset now instead of the rollout. will remove in v0.6 // +optional PreviousActiveSelector string `json:"previousActiveSelector,omitempty"` // ScaleDownDelayStartTime indicates the start of the scaleDownDelay // Deprecated: ScaleDownDelay is now tracked at the replicaset now instead of the rollout. will remove in v0.6 // +optional ScaleDownDelayStartTime *metav1.Time `json:"scaleDownDelayStartTime,omitempty"` // ScaleUpPreviewCheckPoint indicates that the Replicaset receiving traffic from the preview service is ready to be scaled up after the rollout is unpaused // +optional ScaleUpPreviewCheckPoint bool `json:"scaleUpPreviewCheckPoint,omitempty"` }
BlueGreenStatus status fields that only pertain to the blueGreen rollout
func (*BlueGreenStatus) DeepCopy ¶ added in v0.2.0
func (in *BlueGreenStatus) DeepCopy() *BlueGreenStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueGreenStatus.
func (*BlueGreenStatus) DeepCopyInto ¶ added in v0.2.0
func (in *BlueGreenStatus) DeepCopyInto(out *BlueGreenStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BlueGreenStrategy ¶
type BlueGreenStrategy struct { // Name of the service that the rollout modifies as the active service. ActiveService string `json:"activeService"` // Name of the service that the rollout modifies as the preview service. // +optional PreviewService string `json:"previewService,omitempty"` // PreviewReplica the number of replicas to run under the preview service before the switchover. Once the rollout is // resumed the new replicaset will be full scaled up before the switch occurs // +optional PreviewReplicaCount *int32 `json:"previewReplicaCount,omitempty"` // AutoPromotionEnabled indicates if the rollout should automatically promote the new ReplicaSet // to the active service or enter a paused state. If not specified, the default value is true. // +optional AutoPromotionEnabled *bool `json:"autoPromotionEnabled,omitempty"` // AutoPromotionSeconds automatically promotes the current ReplicaSet to active after the // specified pause delay in seconds after the ReplicaSet becomes ready. // If omitted, the Rollout enters and remains in a paused state until manually resumed by // resetting spec.Paused to false. // +optional AutoPromotionSeconds *int32 `json:"autoPromotionSeconds,omitempty"` // ScaleDownDelaySeconds adds a delay before scaling down the previous replicaset. // If omitted, the Rollout waits 30 seconds before scaling down the previous ReplicaSet. // A minimum of 30 seconds is recommended to ensure IP table propagation across the nodes in // a cluster. See https://github.com/argoproj/argo-rollouts/issues/19#issuecomment-476329960 for // more information // +optional ScaleDownDelaySeconds *int32 `json:"scaleDownDelaySeconds,omitempty"` // ScaleDownDelayRevisionLimit limits the number of old RS that can run at one time before getting scaled down // +optional ScaleDownDelayRevisionLimit *int32 `json:"scaleDownDelayRevisionLimit,omitempty"` }
BlueGreenStrategy defines parameters for Blue Green deployment
func (*BlueGreenStrategy) DeepCopy ¶
func (in *BlueGreenStrategy) DeepCopy() *BlueGreenStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueGreenStrategy.
func (*BlueGreenStrategy) DeepCopyInto ¶
func (in *BlueGreenStrategy) DeepCopyInto(out *BlueGreenStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CanaryStatus ¶ added in v0.2.0
type CanaryStatus struct { // StableRS indicates the last replicaset that walked through all the canary steps or was the only replicaset // +optional StableRS string `json:"stableRS,omitempty"` // CurrentStepAnalysisRun indicates the analysisRun for the current step index CurrentStepAnalysisRun string `json:"currentStepAnalysisRun,omitempty"` // CurrentBackgroundAnalysisRun indicates the analysisRun for the Background step CurrentBackgroundAnalysisRun string `json:"currentBackgroundAnalysisRun,omitempty"` // CurrentExperiment indicates the running experiment CurrentExperiment string `json:"currentExperiment,omitempty"` }
CanaryStatus status fields that only pertain to the canary rollout
func (*CanaryStatus) DeepCopy ¶ added in v0.2.0
func (in *CanaryStatus) DeepCopy() *CanaryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanaryStatus.
func (*CanaryStatus) DeepCopyInto ¶ added in v0.2.0
func (in *CanaryStatus) DeepCopyInto(out *CanaryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CanaryStep ¶ added in v0.2.0
type CanaryStep struct { // SetWeight sets what percentage of the newRS should receive SetWeight *int32 `json:"setWeight,omitempty"` // Pause freezes the rollout by setting spec.Paused to true. // A Rollout will resume when spec.Paused is reset to false. // +optional Pause *RolloutPause `json:"pause,omitempty"` // Experiment defines the experiment object that should be created Experiment *RolloutExperimentStep `json:"experiment,omitempty"` // Analysis defines the AnalysisRun that will run for a step Analysis *RolloutAnalysisStep `json:"analysis,omitempty"` }
CanaryStep defines a step of a canary deployment.
func (*CanaryStep) DeepCopy ¶ added in v0.2.0
func (in *CanaryStep) DeepCopy() *CanaryStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanaryStep.
func (*CanaryStep) DeepCopyInto ¶ added in v0.2.0
func (in *CanaryStep) DeepCopyInto(out *CanaryStep)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CanaryStrategy ¶ added in v0.2.0
type CanaryStrategy struct { // CanaryService holds the name of a service which selects pods with canary version and don't select any pods with stable version. // +optional CanaryService string `json:"canaryService,omitempty"` // StableService holds the name of a service which selects pods with stable version and don't select any pods with canary version. // +optional StableService string `json:"stableService,omitempty"` // Steps define the order of phases to execute the canary deployment // +optional Steps []CanaryStep `json:"steps,omitempty"` // TrafficRouting hosts all the supported service meshes supported to enable more fine-grained traffic routing TrafficRouting *RolloutTrafficRouting `json:"trafficRouting,omitempty"` // Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%). // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // By default, a fixed value of 1 is used. // Example: when this is set to 30%, the old RC can be scaled down by 30% // immediately when the rolling update starts. Once new pods are ready, old RC // can be scaled down further, followed by scaling up the new RC, ensuring // that at least 70% of original number of pods are available at all times // during the update. // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` // MaxSurge The maximum number of pods that can be scheduled above the original number of // pods. // Value can be an absolute number (ex: 5) or a percentage of total pods at // the start of the update (ex: 10%). This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // By default, a value of 1 is used. // Example: when this is set to 30%, the new RC can be scaled up by 30% // immediately when the rolling update starts. Once old pods have been killed, // new RC can be scaled up further, ensuring that total number of pods running // at any time during the update is atmost 130% of original pods. // +optional MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` // Analysis runs a separate analysisRun while all the steps execute. This is intended to be a continuous validation of the new ReplicaSet Analysis *RolloutAnalysisBackground `json:"analysis,omitempty"` }
CanaryStrategy defines parameters for a Replica Based Canary
func (*CanaryStrategy) DeepCopy ¶ added in v0.2.0
func (in *CanaryStrategy) DeepCopy() *CanaryStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanaryStrategy.
func (*CanaryStrategy) DeepCopyInto ¶ added in v0.2.0
func (in *CanaryStrategy) DeepCopyInto(out *CanaryStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DurationString ¶ added in v0.6.0
type DurationString string
DurationString is a string representing a duration (e.g. 30s, 5m, 1h)
type Experiment ¶ added in v0.5.0
type Experiment struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ExperimentSpec `json:"spec"` Status ExperimentStatus `json:"status,omitempty"` }
Experiment is a specification for an Experiment resource +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:path=experiments,shortName=exp +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="Experiment status"
func (*Experiment) DeepCopy ¶ added in v0.5.0
func (in *Experiment) DeepCopy() *Experiment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Experiment.
func (*Experiment) DeepCopyInto ¶ added in v0.5.0
func (in *Experiment) DeepCopyInto(out *Experiment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Experiment) DeepCopyObject ¶ added in v0.5.0
func (in *Experiment) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ExperimentAnalysisRunStatus ¶ added in v0.6.0
type ExperimentAnalysisRunStatus struct { // Name is the name of the analysis Name string `json:"name"` // AnalysisRun is the name of the AnalysisRun AnalysisRun string `json:"analysisRun"` // Phase is the status of the AnalysisRun Phase AnalysisPhase `json:"phase"` // Message is a message explaining the current status Message string `json:"message,omitempty"` }
func (*ExperimentAnalysisRunStatus) DeepCopy ¶ added in v0.6.0
func (in *ExperimentAnalysisRunStatus) DeepCopy() *ExperimentAnalysisRunStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentAnalysisRunStatus.
func (*ExperimentAnalysisRunStatus) DeepCopyInto ¶ added in v0.6.0
func (in *ExperimentAnalysisRunStatus) DeepCopyInto(out *ExperimentAnalysisRunStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExperimentAnalysisTemplateRef ¶ added in v0.6.0
type ExperimentAnalysisTemplateRef struct { // Name is the name of the analysis Name string `json:"name"` // TemplateName reference of the AnalysisTemplate name used by the Experiment to create the run TemplateName string `json:"templateName"` // Args are the arguments that will be added to the AnalysisRuns // +optional // +patchMergeKey=name // +patchStrategy=merge Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` // RequiredForCompletion indicates that experiment should complete after analysis finishes RequiredForCompletion bool `json:"requiredForCompletion,omitempty"` }
func (*ExperimentAnalysisTemplateRef) DeepCopy ¶ added in v0.6.0
func (in *ExperimentAnalysisTemplateRef) DeepCopy() *ExperimentAnalysisTemplateRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentAnalysisTemplateRef.
func (*ExperimentAnalysisTemplateRef) DeepCopyInto ¶ added in v0.6.0
func (in *ExperimentAnalysisTemplateRef) DeepCopyInto(out *ExperimentAnalysisTemplateRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExperimentCondition ¶ added in v0.5.0
type ExperimentCondition struct { // Type of deployment condition. Type ExperimentConditionType `json:"type"` // Phase of the condition, one of True, False, Unknown. Status corev1.ConditionStatus `json:"status"` // The last time this condition was updated. LastUpdateTime metav1.Time `json:"lastUpdateTime"` // Last time the condition transitioned from one status to another. LastTransitionTime metav1.Time `json:"lastTransitionTime"` // The reason for the condition's last transition. Reason string `json:"reason"` // A human readable message indicating details about the transition. Message string `json:"message"` }
ExperimentCondition describes the state of a experiment at a certain point.
func (*ExperimentCondition) DeepCopy ¶ added in v0.5.0
func (in *ExperimentCondition) DeepCopy() *ExperimentCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentCondition.
func (*ExperimentCondition) DeepCopyInto ¶ added in v0.5.0
func (in *ExperimentCondition) DeepCopyInto(out *ExperimentCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExperimentConditionType ¶ added in v0.5.0
type ExperimentConditionType string
ExperimentConditionType defines the conditions of Experiment
const ( // InvalidExperimentSpec means the experiment has an invalid spec and will not progress until // the spec is fixed. InvalidExperimentSpec ExperimentConditionType = "InvalidSpec" // ExperimentConcluded means the experiment is available, ie. the active service is pointing at a // replicaset with the required replicas up and running for at least minReadySeconds. ExperimentCompleted ExperimentConditionType = "Completed" // ExperimentProgressing means the experiment is progressing. Progress for a experiment is // considered when a new replica set is created or adopted, when pods scale // up or old pods scale down, or when the services are updated. Progress is not estimated // for paused experiment. ExperimentProgressing ExperimentConditionType = "Progressing" // ExperimentRunning means that an experiment has reached the desired state and is running for the duration // specified in the spec ExperimentRunning ExperimentConditionType = "Running" // ExperimentReplicaFailure ReplicaFailure is added in a experiment when one of its pods // fails to be created or deleted. ExperimentReplicaFailure ExperimentConditionType = "ReplicaFailure" )
These are valid conditions of a experiment.
type ExperimentList ¶ added in v0.5.0
type ExperimentList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []Experiment `json:"items"` }
ExperimentList is a list of Experiment resources
func (*ExperimentList) DeepCopy ¶ added in v0.5.0
func (in *ExperimentList) DeepCopy() *ExperimentList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentList.
func (*ExperimentList) DeepCopyInto ¶ added in v0.5.0
func (in *ExperimentList) DeepCopyInto(out *ExperimentList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ExperimentList) DeepCopyObject ¶ added in v0.5.0
func (in *ExperimentList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ExperimentSpec ¶ added in v0.5.0
type ExperimentSpec struct { // Templates are a list of PodSpecs that define the ReplicaSets that should be run during an experiment. // +patchMergeKey=name // +patchStrategy=merge Templates []TemplateSpec `json:"templates" patchStrategy:"merge" patchMergeKey:"name"` // Duration the amount of time for the experiment to run as a duration string (e.g. 30s, 5m, 1h). // If omitted, the experiment will run indefinitely, stopped either via termination, or a failed analysis run. // +optional Duration DurationString `json:"duration,omitempty"` // ProgressDeadlineSeconds The maximum time in seconds for a experiment to // make progress before it is considered to be failed. Argo Rollouts will // continue to process failed experiments and a condition with a // ProgressDeadlineExceeded reason will be surfaced in the experiment status. // Defaults to 600s. // +optional ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` // Terminate is used to prematurely stop the experiment Terminate bool `json:"terminate,omitempty"` // Analyses references AnalysisTemplates to run during the experiment // +patchMergeKey=name // +patchStrategy=merge Analyses []ExperimentAnalysisTemplateRef `json:"analyses,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
ExperimentSpec is the spec for a Experiment resource
func (*ExperimentSpec) DeepCopy ¶ added in v0.5.0
func (in *ExperimentSpec) DeepCopy() *ExperimentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentSpec.
func (*ExperimentSpec) DeepCopyInto ¶ added in v0.5.0
func (in *ExperimentSpec) DeepCopyInto(out *ExperimentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExperimentStatus ¶ added in v0.5.0
type ExperimentStatus struct { // Phase is the status of the experiment. Takes into consideration ReplicaSet degradations and // AnalysisRun statuses Phase AnalysisPhase `json:"phase,omitempty"` // Message is an explanation for the current status // +optional Message string `json:"message,omitempty"` // TemplateStatuses holds the ReplicaSet related statuses for individual templates // +optional TemplateStatuses []TemplateStatus `json:"templateStatuses,omitempty"` // AvailableAt the time when all the templates become healthy and the experiment should start tracking the time to // run for the duration of specificed in the spec. // +optional AvailableAt *metav1.Time `json:"availableAt,omitempty"` // Conditions a list of conditions a experiment can have. // +optional Conditions []ExperimentCondition `json:"conditions,omitempty"` // AnalysisRuns tracks the status of AnalysisRuns associated with this Experiment // +optional AnalysisRuns []ExperimentAnalysisRunStatus `json:"analysisRuns,omitempty"` }
ExperimentStatus is the status for a Experiment resource
func (*ExperimentStatus) DeepCopy ¶ added in v0.5.0
func (in *ExperimentStatus) DeepCopy() *ExperimentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentStatus.
func (*ExperimentStatus) DeepCopyInto ¶ added in v0.5.0
func (in *ExperimentStatus) DeepCopyInto(out *ExperimentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IstioTrafficRouting ¶ added in v0.7.0
type IstioTrafficRouting struct { // VirtualService reference to a Virtual Service that modified to shape traffic VirtualService IstioVirtualService `json:"virtualService"` }
IstioTrafficRouting configuration for Istio service mesh to enable fine grain configuration
func (*IstioTrafficRouting) DeepCopy ¶ added in v0.7.0
func (in *IstioTrafficRouting) DeepCopy() *IstioTrafficRouting
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioTrafficRouting.
func (*IstioTrafficRouting) DeepCopyInto ¶ added in v0.7.0
func (in *IstioTrafficRouting) DeepCopyInto(out *IstioTrafficRouting)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IstioVirtualService ¶ added in v0.7.0
type IstioVirtualService struct { // Name holds the name of the VirtualService Name string `json:"name"` // Routes list of routes within VirtualService to edit Routes []string `json:"routes"` }
IstioVirtualService holds information on the virtual service the rollout needs to modify
func (*IstioVirtualService) DeepCopy ¶ added in v0.7.0
func (in *IstioVirtualService) DeepCopy() *IstioVirtualService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioVirtualService.
func (*IstioVirtualService) DeepCopyInto ¶ added in v0.7.0
func (in *IstioVirtualService) DeepCopyInto(out *IstioVirtualService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobMetric ¶ added in v0.6.0
type JobMetric struct { Metadata metav1.ObjectMeta `json:"metadata,omitempty"` Spec batchv1.JobSpec `json:"spec"` }
JobMetric defines a job to run which acts as a metric
func (*JobMetric) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobMetric.
func (*JobMetric) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KayentaMetric ¶ added in v0.6.0
type KayentaMetric struct { Address string `json:"address"` Application string `json:"application"` CanaryConfigName string `json:"canaryConfigName"` MetricsAccountName string `json:"metricsAccountName"` ConfigurationAccountName string `json:"configurationAccountName"` StorageAccountName string `json:"storageAccountName"` Threshold KayentaThreshold `json:"threshold"` Scopes []KayentaScope `json:"scopes"` }
func (*KayentaMetric) DeepCopy ¶ added in v0.6.0
func (in *KayentaMetric) DeepCopy() *KayentaMetric
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KayentaMetric.
func (*KayentaMetric) DeepCopyInto ¶ added in v0.6.0
func (in *KayentaMetric) DeepCopyInto(out *KayentaMetric)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KayentaScope ¶ added in v0.6.0
type KayentaScope struct { Name string `json:"name"` ControlScope ScopeDetail `json:"controlScope"` ExperimentScope ScopeDetail `json:"experimentScope"` }
func (*KayentaScope) DeepCopy ¶ added in v0.6.0
func (in *KayentaScope) DeepCopy() *KayentaScope
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KayentaScope.
func (*KayentaScope) DeepCopyInto ¶ added in v0.6.0
func (in *KayentaScope) DeepCopyInto(out *KayentaScope)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KayentaThreshold ¶ added in v0.6.0
func (*KayentaThreshold) DeepCopy ¶ added in v0.6.0
func (in *KayentaThreshold) DeepCopy() *KayentaThreshold
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KayentaThreshold.
func (*KayentaThreshold) DeepCopyInto ¶ added in v0.6.0
func (in *KayentaThreshold) DeepCopyInto(out *KayentaThreshold)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Measurement ¶ added in v0.6.0
type Measurement struct { // Phase is the status of this single measurement Phase AnalysisPhase `json:"phase"` // Message contains a message describing current condition (e.g. error messages) Message string `json:"message,omitempty"` // StartedAt is the timestamp in which this measurement started to be measured StartedAt *metav1.Time `json:"startedAt,omitempty"` // FinishedAt is the timestamp in which this measurement completed and value was collected FinishedAt *metav1.Time `json:"finishedAt,omitempty"` // Value is the measured value of the metric Value string `json:"value,omitempty"` // Metadata stores additional metadata about this metric result, used by the different providers // (e.g. kayenta run ID, job name) Metadata map[string]string `json:"metadata,omitempty"` // ResumeAt is the timestamp when the analysisRun should try to resume the measurement ResumeAt *metav1.Time `json:"resumeAt,omitempty"` }
Measurement is a point in time result value of a single metric, and the time it was measured
func (*Measurement) DeepCopy ¶ added in v0.6.0
func (in *Measurement) DeepCopy() *Measurement
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Measurement.
func (*Measurement) DeepCopyInto ¶ added in v0.6.0
func (in *Measurement) DeepCopyInto(out *Measurement)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Metric ¶ added in v0.6.0
type Metric struct { // Name is the name of the metric Name string `json:"name"` // Interval defines an interval string (e.g. 30s, 5m, 1h) between each measurement. // If omitted, will perform a single measurement Interval DurationString `json:"interval,omitempty"` // InitialDelay how long the AnalysisRun should wait before starting this metric InitialDelay DurationString `json:"initialDelay,omitempty"` // Count is the number of times to run the measurement. If both interval and count are omitted, // the effective count is 1. If only interval is specified, metric runs indefinitely. // If count > 1, interval must be specified. Count int32 `json:"count,omitempty"` // SuccessCondition is an expression which determines if a measurement is considered successful // Expression is a goevaluate expression. The keyword `result` is a variable reference to the // value of measurement. Results can be both structured data or primitive. // Examples: // result > 10 // (result.requests_made * result.requests_succeeded / 100) >= 90 SuccessCondition string `json:"successCondition,omitempty"` // FailureCondition is an expression which determines if a measurement is considered failed // If both success and failure conditions are specified, and the measurement does not fall into // either condition, the measurement is considered Inconclusive FailureCondition string `json:"failureCondition,omitempty"` // FailureLimit is the maximum number of times the measurement is allowed to fail, before the // entire metric is considered Failed (default: 0) FailureLimit int32 `json:"failureLimit,omitempty"` // InconclusiveLimit is the maximum number of times the measurement is allowed to measure // Inconclusive, before the entire metric is considered Inconclusive (default: 0) InconclusiveLimit int32 `json:"inconclusiveLimit,omitempty"` // ConsecutiveErrorLimit is the maximum number of times the measurement is allowed to error in // succession, before the metric is considered error (default: 4) ConsecutiveErrorLimit *int32 `json:"consecutiveErrorLimit,omitempty"` // Provider configuration to the external system to use to verify the analysis Provider MetricProvider `json:"provider"` }
Metric defines a metric in which to perform analysis
func (*Metric) DeepCopy ¶ added in v0.6.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metric.
func (*Metric) DeepCopyInto ¶ added in v0.6.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Metric) EffectiveCount ¶ added in v0.6.0
EffectiveCount is the effective count based on whether or not count/interval is specified If neither count or interval is specified, the effective count is 1 If only interval is specified, metric runs indefinitely and there is no effective count (nil) Otherwise, it is the user specified value
type MetricProvider ¶ added in v0.6.0
type MetricProvider struct { // Prometheus specifies the prometheus metric to query Prometheus *PrometheusMetric `json:"prometheus,omitempty"` Kayenta *KayentaMetric `json:"kayenta,omitempty"` Web *WebMetric `json:"web,omitempty"` // Wavefront specifies the wavefront metric to query Wavefront *WavefrontMetric `json:"wavefront,omitempty"` // Job specifies the job metric run Job *JobMetric `json:"job,omitempty"` }
MetricProvider which external system to use to verify the analysis Only one of the fields in this struct should be non-nil
func (*MetricProvider) DeepCopy ¶ added in v0.6.0
func (in *MetricProvider) DeepCopy() *MetricProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricProvider.
func (*MetricProvider) DeepCopyInto ¶ added in v0.6.0
func (in *MetricProvider) DeepCopyInto(out *MetricProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricResult ¶ added in v0.6.0
type MetricResult struct { // Name is the name of the metric Name string `json:"name"` // Phase is the overall aggregate status of the metric Phase AnalysisPhase `json:"phase"` // Measurements holds the most recent measurements collected for the metric Measurements []Measurement `json:"measurements,omitempty"` // Message contains a message describing current condition (e.g. error messages) Message string `json:"message,omitempty"` // Count is the number of times the metric was measured without Error // This is equal to the sum of Successful, Failed, Inconclusive Count int32 `json:"count,omitempty"` // Successful is the number of times the metric was measured Successful Successful int32 `json:"successful,omitempty"` // Failed is the number of times the metric was measured Failed Failed int32 `json:"failed,omitempty"` // Inconclusive is the number of times the metric was measured Inconclusive Inconclusive int32 `json:"inconclusive,omitempty"` // Error is the number of times an error was encountered during measurement Error int32 `json:"error,omitempty"` // ConsecutiveError is the number of times an error was encountered during measurement in succession // Resets to zero when non-errors are encountered ConsecutiveError int32 `json:"consecutiveError,omitempty"` }
MetricResult contain a list of the most recent measurements for a single metric along with counters on how often the measurement
func (*MetricResult) DeepCopy ¶ added in v0.6.0
func (in *MetricResult) DeepCopy() *MetricResult
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricResult.
func (*MetricResult) DeepCopyInto ¶ added in v0.6.0
func (in *MetricResult) DeepCopyInto(out *MetricResult)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PauseCondition ¶ added in v0.6.0
type PauseCondition struct { Reason PauseReason `json:"reason"` StartTime metav1.Time `json:"startTime"` }
PauseCondition the reason for a pause and when it started
func (*PauseCondition) DeepCopy ¶ added in v0.6.0
func (in *PauseCondition) DeepCopy() *PauseCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PauseCondition.
func (*PauseCondition) DeepCopyInto ¶ added in v0.6.0
func (in *PauseCondition) DeepCopyInto(out *PauseCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PauseReason ¶ added in v0.6.0
type PauseReason string
PauseReason reasons that the rollout can pause
const ( // PauseReasonInconclusiveAnalysis pauses rollout when rollout has an inconclusive analysis run PauseReasonInconclusiveAnalysis PauseReason = "InconclusiveAnalysisRun" // PauseReasonInconclusiveExperiment pauses rollout when rollout has an inconclusive experiment PauseReasonInconclusiveExperiment PauseReason = "InconclusiveExperiment" // PauseReasonCanaryPauseStep pause rollout for canary pause step PauseReasonCanaryPauseStep PauseReason = "CanaryPauseStep" // PauseReasonBlueGreenPause pause rollout before promoting rollout PauseReasonBlueGreenPause PauseReason = "BlueGreenPause" )
type PodTemplateMetadata ¶ added in v0.6.0
type PodTemplateMetadata struct { // Labels Additional labels to add to the experiment // +optional Labels map[string]string `json:"labels,omitempty"` // Annotations additional annotations to add to the experiment // +optional Annotations map[string]string `json:"annotations,omitempty"` }
PodTemplateMetadata extra labels to add to the template
func (*PodTemplateMetadata) DeepCopy ¶ added in v0.6.0
func (in *PodTemplateMetadata) DeepCopy() *PodTemplateMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateMetadata.
func (*PodTemplateMetadata) DeepCopyInto ¶ added in v0.6.0
func (in *PodTemplateMetadata) DeepCopyInto(out *PodTemplateMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrometheusMetric ¶ added in v0.6.0
type PrometheusMetric struct { // Address is the HTTP address and port of the prometheus server Address string `json:"address,omitempty"` // Query is a raw prometheus query to perform Query string `json:"query,omitempty"` }
PrometheusMetric defines the prometheus query to perform canary analysis
func (*PrometheusMetric) DeepCopy ¶ added in v0.6.0
func (in *PrometheusMetric) DeepCopy() *PrometheusMetric
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusMetric.
func (*PrometheusMetric) DeepCopyInto ¶ added in v0.6.0
func (in *PrometheusMetric) DeepCopyInto(out *PrometheusMetric)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicaSetSpecRef ¶ added in v0.6.0
type ReplicaSetSpecRef string
ReplicaSetSpecRef defines which RS that the experiment's template will use.
const ( // CanarySpecRef indicates the RS template should be pulled from the newRS's template CanarySpecRef ReplicaSetSpecRef = "canary" // StableSpecRef indicates the RS template should be pulled from the stableRS's template StableSpecRef ReplicaSetSpecRef = "stable" )
type Rollout ¶
type Rollout struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec RolloutSpec `json:"spec"` Status RolloutStatus `json:"status,omitempty"` }
Rollout is a specification for a Rollout resource
func (*Rollout) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rollout.
func (*Rollout) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Rollout) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RolloutAnalysisBackground ¶ added in v0.7.0
type RolloutAnalysisBackground struct { RolloutAnalysisStep `json:",inline"` // StartingStep indicates which step the background analysis should start on // If not listed, controller defaults to 0 StartingStep *int32 `json:"startingStep,omitempty"` }
RolloutAnalysisBackground defines a template that is used to create a background analysisRun
func (*RolloutAnalysisBackground) DeepCopy ¶ added in v0.7.0
func (in *RolloutAnalysisBackground) DeepCopy() *RolloutAnalysisBackground
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutAnalysisBackground.
func (*RolloutAnalysisBackground) DeepCopyInto ¶ added in v0.7.0
func (in *RolloutAnalysisBackground) DeepCopyInto(out *RolloutAnalysisBackground)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutAnalysisStep ¶ added in v0.6.0
type RolloutAnalysisStep struct { // TemplateName reference of the AnalysisTemplate name used by the Rollout to create the run TemplateName string `json:"templateName"` // Args the arguments that will be added to the AnalysisRuns // +patchMergeKey=name // +patchStrategy=merge Args []AnalysisRunArgument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
RolloutAnalysisStep defines a template that is used to create a analysisRun
func (*RolloutAnalysisStep) DeepCopy ¶ added in v0.6.0
func (in *RolloutAnalysisStep) DeepCopy() *RolloutAnalysisStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutAnalysisStep.
func (*RolloutAnalysisStep) DeepCopyInto ¶ added in v0.6.0
func (in *RolloutAnalysisStep) DeepCopyInto(out *RolloutAnalysisStep)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutCondition ¶
type RolloutCondition struct { // Type of deployment condition. Type RolloutConditionType `json:"type"` // Phase of the condition, one of True, False, Unknown. Status corev1.ConditionStatus `json:"status"` // The last time this condition was updated. LastUpdateTime metav1.Time `json:"lastUpdateTime"` // Last time the condition transitioned from one status to another. LastTransitionTime metav1.Time `json:"lastTransitionTime"` // The reason for the condition's last transition. Reason string `json:"reason"` // A human readable message indicating details about the transition. Message string `json:"message"` }
RolloutCondition describes the state of a rollout at a certain point.
func (*RolloutCondition) DeepCopy ¶
func (in *RolloutCondition) DeepCopy() *RolloutCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutCondition.
func (*RolloutCondition) DeepCopyInto ¶
func (in *RolloutCondition) DeepCopyInto(out *RolloutCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutConditionType ¶
type RolloutConditionType string
RolloutConditionType defines the conditions of Rollout
const ( // InvalidSpec means the rollout has an invalid spec and will not progress until // the spec is fixed. InvalidSpec RolloutConditionType = "InvalidSpec" // RolloutAvailable means the rollout is available, ie. the active service is pointing at a // replicaset with the required replicas up and running for at least minReadySeconds. RolloutAvailable RolloutConditionType = "Available" // RolloutProgressing means the rollout is progressing. Progress for a rollout is // considered when a new replica set is created or adopted, when pods scale // up or old pods scale down, or when the services are updated. Progress is not estimated // for paused rollouts. RolloutProgressing RolloutConditionType = "Progressing" // RolloutReplicaFailure ReplicaFailure is added in a deployment when one of its pods // fails to be created or deleted. RolloutReplicaFailure RolloutConditionType = "ReplicaFailure" )
These are valid conditions of a rollout.
type RolloutExperimentStep ¶ added in v0.6.0
type RolloutExperimentStep struct { // Templates what templates that should be added to the experiment. Should be non-nil // +patchMergeKey=name // +patchStrategy=merge Templates []RolloutExperimentTemplate `json:"templates" patchStrategy:"merge" patchMergeKey:"name"` // Duration is a duration string (e.g. 30s, 5m, 1h) that the experiment should run for // +optional Duration DurationString `json:"duration,omitempty"` // Analyses reference which analysis templates to run with the experiment // +patchMergeKey=name // +patchStrategy=merge Analyses []RolloutExperimentStepAnalysisTemplateRef `json:"analyses,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
RolloutExperimentStep defines a template that is used to create a experiment for a step
func (*RolloutExperimentStep) DeepCopy ¶ added in v0.6.0
func (in *RolloutExperimentStep) DeepCopy() *RolloutExperimentStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutExperimentStep.
func (*RolloutExperimentStep) DeepCopyInto ¶ added in v0.6.0
func (in *RolloutExperimentStep) DeepCopyInto(out *RolloutExperimentStep)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutExperimentStepAnalysisTemplateRef ¶ added in v0.6.0
type RolloutExperimentStepAnalysisTemplateRef struct { // Name is a name for this analysis template invocation Name string `json:"name"` // TemplateName reference of the AnalysisTemplate name used by the Rollout to create the run TemplateName string `json:"templateName"` // Args the arguments that will be added to the AnalysisRuns // +patchMergeKey=name // +patchStrategy=merge Args []AnalysisRunArgument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` }
func (*RolloutExperimentStepAnalysisTemplateRef) DeepCopy ¶ added in v0.6.0
func (in *RolloutExperimentStepAnalysisTemplateRef) DeepCopy() *RolloutExperimentStepAnalysisTemplateRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutExperimentStepAnalysisTemplateRef.
func (*RolloutExperimentStepAnalysisTemplateRef) DeepCopyInto ¶ added in v0.6.0
func (in *RolloutExperimentStepAnalysisTemplateRef) DeepCopyInto(out *RolloutExperimentStepAnalysisTemplateRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutExperimentTemplate ¶ added in v0.6.0
type RolloutExperimentTemplate struct { // Name description of template that passed to the template Name string `json:"name"` // SpecRef indicates where the rollout should get the RS template from SpecRef ReplicaSetSpecRef `json:"specRef"` // Replicas replica count for the template // +optional Replicas *int32 `json:"replicas,omitempty"` // Metadata sets labels and annotations to use for the RS created from the template // +optional Metadata PodTemplateMetadata `json:"metadata,omitempty"` // Selector overrides the selector to be used for the template's ReplicaSet. If omitted, will // use the same selector as the Rollout // +optional Selector *metav1.LabelSelector `json:"selector,omitempty"` }
RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step
func (*RolloutExperimentTemplate) DeepCopy ¶ added in v0.6.0
func (in *RolloutExperimentTemplate) DeepCopy() *RolloutExperimentTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutExperimentTemplate.
func (*RolloutExperimentTemplate) DeepCopyInto ¶ added in v0.6.0
func (in *RolloutExperimentTemplate) DeepCopyInto(out *RolloutExperimentTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutList ¶
type RolloutList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata"` Items []Rollout `json:"items"` }
RolloutList is a list of Rollout resources
func (*RolloutList) DeepCopy ¶
func (in *RolloutList) DeepCopy() *RolloutList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutList.
func (*RolloutList) DeepCopyInto ¶
func (in *RolloutList) DeepCopyInto(out *RolloutList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RolloutList) DeepCopyObject ¶
func (in *RolloutList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RolloutPause ¶ added in v0.2.0
type RolloutPause struct { // Duration the amount of time to wait before moving to the next step. // +optional Duration *int32 `json:"duration,omitempty"` }
RolloutPause defines a pause stage for a rollout
func (*RolloutPause) DeepCopy ¶ added in v0.2.0
func (in *RolloutPause) DeepCopy() *RolloutPause
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutPause.
func (*RolloutPause) DeepCopyInto ¶ added in v0.2.0
func (in *RolloutPause) DeepCopyInto(out *RolloutPause)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutSpec ¶
type RolloutSpec struct { // Number of desired pods. This is a pointer to distinguish between explicit // zero and not specified. Defaults to 1. // +optional Replicas *int32 `json:"replicas,omitempty"` // Label selector for pods. Existing ReplicaSets whose pods are // selected by this will be the ones affected by this rollout. // It must match the pod template's labels. Selector *metav1.LabelSelector `json:"selector"` // Template describes the pods that will be created. Template corev1.PodTemplateSpec `json:"template"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing, for it to be considered available. // Defaults to 0 (pod will be considered available as soon as it is ready) // +optional MinReadySeconds int32 `json:"minReadySeconds,omitempty"` // The deployment strategy to use to replace existing pods with new ones. // +optional Strategy RolloutStrategy `json:"strategy"` // The number of old ReplicaSets to retain. If unspecified, will retain 10 old ReplicaSets RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` // Paused pauses the rollout at its current step. Paused bool `json:"paused,omitempty"` // ProgressDeadlineSeconds The maximum time in seconds for a rollout to // make progress before it is considered to be failed. Argo Rollouts will // continue to process failed rollouts and a condition with a // ProgressDeadlineExceeded reason will be surfaced in the rollout status. // Note that progress will not be estimated during the time a rollout is paused. // Defaults to 600s. ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` }
RolloutSpec is the spec for a Rollout resource
func (*RolloutSpec) DeepCopy ¶
func (in *RolloutSpec) DeepCopy() *RolloutSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutSpec.
func (*RolloutSpec) DeepCopyInto ¶
func (in *RolloutSpec) DeepCopyInto(out *RolloutSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutStatus ¶
type RolloutStatus struct { // Abort cancel the current rollout progression Abort bool `json:"abort,omitempty"` // PauseConditions indicates why the rollout is currently paused PauseConditions []PauseCondition `json:"pauseConditions,omitempty"` //ControllerPause indicates the controller has paused the rollout ControllerPause bool `json:"controllerPause,omitempty"` // CurrentPodHash the hash of the current pod template // +optional CurrentPodHash string `json:"currentPodHash,omitempty"` // CurrentStepHash the hash of the current list of steps for the current strategy. This is used to detect when the // list of current steps change // +optional CurrentStepHash string `json:"currentStepHash,omitempty"` // Total number of non-terminated pods targeted by this rollout (their labels match the selector). // +optional Replicas int32 `json:"replicas,omitempty"` // Total number of non-terminated pods targeted by this rollout that have the desired template spec. // +optional UpdatedReplicas int32 `json:"updatedReplicas,omitempty"` // Total number of ready pods targeted by this rollout. // +optional ReadyReplicas int32 `json:"readyReplicas,omitempty"` // Total number of available pods (ready for at least minReadySeconds) targeted by this rollout. // +optional AvailableReplicas int32 `json:"availableReplicas,omitempty"` // CurrentStepIndex defines the current step of the rollout is on. If the current step index is null, the // controller will execute the rollout. // +optional CurrentStepIndex *int32 `json:"currentStepIndex,omitempty"` // Count of hash collisions for the Rollout. The Rollout controller uses this // field as a collision avoidance mechanism when it needs to create the name for the // newest ReplicaSet. // +optional CollisionCount *int32 `json:"collisionCount,omitempty"` // The generation observed by the rollout controller by taking a hash of the spec. // +optional ObservedGeneration string `json:"observedGeneration,omitempty"` // Conditions a list of conditions a rollout can have. // +optional Conditions []RolloutCondition `json:"conditions,omitempty"` // Canary describes the state of the canary rollout // +optional Canary CanaryStatus `json:"canary,omitempty"` // BlueGreen describes the state of the bluegreen rollout // +optional BlueGreen BlueGreenStatus `json:"blueGreen,omitempty"` // HPAReplicas the number of non-terminated replicas that are receiving active traffic // +optional HPAReplicas int32 `json:"HPAReplicas,omitempty"` // Selector that identifies the pods that are receiving active traffic // +optional Selector string `json:"selector,omitempty"` }
RolloutStatus is the status for a Rollout resource
func (*RolloutStatus) DeepCopy ¶
func (in *RolloutStatus) DeepCopy() *RolloutStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutStatus.
func (*RolloutStatus) DeepCopyInto ¶
func (in *RolloutStatus) DeepCopyInto(out *RolloutStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutStrategy ¶
type RolloutStrategy struct { // +optional BlueGreen *BlueGreenStrategy `json:"blueGreen,omitempty"` // +optional Canary *CanaryStrategy `json:"canary,omitempty"` }
RolloutStrategy defines strategy to apply during next rollout
func (*RolloutStrategy) DeepCopy ¶
func (in *RolloutStrategy) DeepCopy() *RolloutStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutStrategy.
func (*RolloutStrategy) DeepCopyInto ¶
func (in *RolloutStrategy) DeepCopyInto(out *RolloutStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RolloutTrafficRouting ¶ added in v0.7.0
type RolloutTrafficRouting struct { // Istio holds Istio specific configuration to route traffic Istio *IstioTrafficRouting `json:"istio,omitempty"` }
RolloutTrafficRouting hosts all the different configuration for supported service meshes to enable more fine-grained traffic routing
func (*RolloutTrafficRouting) DeepCopy ¶ added in v0.7.0
func (in *RolloutTrafficRouting) DeepCopy() *RolloutTrafficRouting
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutTrafficRouting.
func (*RolloutTrafficRouting) DeepCopyInto ¶ added in v0.7.0
func (in *RolloutTrafficRouting) DeepCopyInto(out *RolloutTrafficRouting)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScopeDetail ¶ added in v0.6.0
type ScopeDetail struct { Scope string `json:"scope"` Region string `json:"region"` Step int `json:"step"` Start string `json:"start"` End string `json:"end"` }
func (*ScopeDetail) DeepCopy ¶ added in v0.6.0
func (in *ScopeDetail) DeepCopy() *ScopeDetail
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeDetail.
func (*ScopeDetail) DeepCopyInto ¶ added in v0.6.0
func (in *ScopeDetail) DeepCopyInto(out *ScopeDetail)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateSpec ¶ added in v0.5.0
type TemplateSpec struct { // Name of the template used to identity replicaset running for this experiment Name string `json:"name"` // Number of desired pods. This is a pointer to distinguish between explicit // zero and not specified. Defaults to 1. // +optional Replicas *int32 `json:"replicas,omitempty"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing, for it to be considered available. // Defaults to 0 (pod will be considered available as soon as it is ready) // +optional MinReadySeconds int32 `json:"minReadySeconds,omitempty"` // Label selector for pods. Existing ReplicaSets whose pods are // selected by this will be the ones affected by this experiment. // It must match the pod template's labels. Each selector must be unique to the other selectors in the other templates Selector *metav1.LabelSelector `json:"selector"` // Template describes the pods that will be created. Template corev1.PodTemplateSpec `json:"template"` }
func (*TemplateSpec) DeepCopy ¶ added in v0.5.0
func (in *TemplateSpec) DeepCopy() *TemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateSpec.
func (*TemplateSpec) DeepCopyInto ¶ added in v0.5.0
func (in *TemplateSpec) DeepCopyInto(out *TemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateStatus ¶ added in v0.5.0
type TemplateStatus struct { // Name of the template used to identity which hash to compare to the hash Name string `json:"name"` // Total number of non-terminated pods targeted by this experiment (their labels match the selector). Replicas int32 `json:"replicas"` // Total number of non-terminated pods targeted by this experiment that have the desired template spec. UpdatedReplicas int32 `json:"updatedReplicas"` // Total number of ready pods targeted by this experiment. ReadyReplicas int32 `json:"readyReplicas"` // Total number of available pods (ready for at least minReadySeconds) targeted by this experiment. AvailableReplicas int32 `json:"availableReplicas"` // CollisionCount count of hash collisions for the Experiment. The Experiment controller uses this // field as a collision avoidance mechanism when it needs to create the name for the // newest ReplicaSet. // +optional CollisionCount *int32 `json:"collisionCount,omitempty"` // Phase is the status of the ReplicaSet associated with the template Status TemplateStatusCode `json:"status,omitempty"` // Message is a message explaining the current status Message string `json:"message,omitempty"` // LastTransitionTime is the last time the replicaset transitioned, which resets the countdown // on the ProgressDeadlineSeconds check. LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` }
TemplateStatus is the status of a specific template of an Experiment
func (*TemplateStatus) DeepCopy ¶ added in v0.5.0
func (in *TemplateStatus) DeepCopy() *TemplateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateStatus.
func (*TemplateStatus) DeepCopyInto ¶ added in v0.5.0
func (in *TemplateStatus) DeepCopyInto(out *TemplateStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TemplateStatusCode ¶ added in v0.6.0
type TemplateStatusCode string
const ( TemplateStatusProgressing TemplateStatusCode = "Progressing" TemplateStatusRunning TemplateStatusCode = "Running" TemplateStatusSuccessful TemplateStatusCode = "Successful" TemplateStatusFailed TemplateStatusCode = "Failed" TemplateStatusError TemplateStatusCode = "Error" )
func (TemplateStatusCode) Completed ¶ added in v0.6.0
func (ts TemplateStatusCode) Completed() bool
type ValueFromPodTemplateHash ¶ added in v0.6.0
type ValueFromPodTemplateHash string
ValueFromPodTemplateHash indicates which ReplicaSet pod template pod hash to use
const ( // Stable tells the Rollout to get the pod template hash from the stable ReplicaSet Stable ValueFromPodTemplateHash = "Stable" // Latest tells the Rollout to get the pod template hash from the latest ReplicaSet Latest ValueFromPodTemplateHash = "Latest" )
type WavefrontMetric ¶ added in v0.7.0
type WavefrontMetric struct { // Address is the HTTP address and port of the wavefront server Address string `json:"address,omitempty"` // Query is a raw wavefront query to perform Query string `json:"query,omitempty"` }
WavefrontMetric defines the wavefront query to perform canary analysis
func (*WavefrontMetric) DeepCopy ¶ added in v0.7.0
func (in *WavefrontMetric) DeepCopy() *WavefrontMetric
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WavefrontMetric.
func (*WavefrontMetric) DeepCopyInto ¶ added in v0.7.0
func (in *WavefrontMetric) DeepCopyInto(out *WavefrontMetric)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebMetric ¶ added in v0.7.0
type WebMetric struct { URL string `json:"url"` // +patchMergeKey=key // +patchStrategy=merge Headers []WebMetricHeader `json:"headers,omitempty" patchStrategy:"merge" patchMergeKey:"key"` TimeoutSeconds int `json:"timeoutSeconds,omitempty"` JSONPath string `json:"jsonPath"` }
func (*WebMetric) DeepCopy ¶ added in v0.7.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebMetric.
func (*WebMetric) DeepCopyInto ¶ added in v0.7.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebMetricHeader ¶ added in v0.7.0
func (*WebMetricHeader) DeepCopy ¶ added in v0.7.0
func (in *WebMetricHeader) DeepCopy() *WebMetricHeader
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebMetricHeader.
func (*WebMetricHeader) DeepCopyInto ¶ added in v0.7.0
func (in *WebMetricHeader) DeepCopyInto(out *WebMetricHeader)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.