v1alpha1

package
v0.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2020 License: Apache-2.0 Imports: 10 Imported by: 44

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API.

Index

Constants

View Source
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

View Source
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"
)
View Source
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

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: rollouts.Group, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

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 +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
	Metrics []Metric `json:"metrics"`
	// Args are the list of arguments used in this run
	// +optional
	Args []Argument `json:"args,omitempty"`
	// 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"`
}

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

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

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
	Metrics []Metric `json:"metrics"`
	// Args are the list of arguments to the template
	// +optional
	Args []Argument `json:"args,omitempty"`
}

AnalysisTemplateSpec is the specification for a AnalysisTemplate resource

func (*AnalysisTemplateSpec) DeepCopy added in v0.6.0

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

func (in *Argument) DeepCopy() *Argument

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Argument.

func (*Argument) DeepCopyInto added in v0.6.0

func (in *Argument) DeepCopyInto(out *Argument)

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"`
	// MaxUnavailable The maximum number of pods that can be unavailable during the update.
	// 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 *RolloutAnalysisStep `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)

func (DurationString) Duration added in v0.6.0

func (d DurationString) Duration() (time.Duration, error)

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentAnalysisRunStatus.

func (*ExperimentAnalysisRunStatus) DeepCopyInto added in v0.6.0

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
	Args []Argument `json:"args,omitempty"`
}

func (*ExperimentAnalysisTemplateRef) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentAnalysisTemplateRef.

func (*ExperimentAnalysisTemplateRef) DeepCopyInto added in v0.6.0

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.
	Templates []TemplateSpec `json:"templates"`
	// 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
	Analyses []ExperimentAnalysisTemplateRef `json:"analyses,omitempty"`
}

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 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

func (in *JobMetric) DeepCopy() *JobMetric

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobMetric.

func (*JobMetric) DeepCopyInto added in v0.6.0

func (in *JobMetric) DeepCopyInto(out *JobMetric)

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

type KayentaThreshold struct {
	Pass     int `json:"pass"`
	Marginal int `json:"marginal"`
}

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"`
	// 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

func (in *Metric) DeepCopy() *Metric

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metric.

func (*Metric) DeepCopyInto added in v0.6.0

func (in *Metric) DeepCopyInto(out *Metric)

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

func (m *Metric) EffectiveCount() *int32

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"`
	// 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

func (in *Rollout) DeepCopy() *Rollout

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rollout.

func (*Rollout) DeepCopyInto

func (in *Rollout) DeepCopyInto(out *Rollout)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Rollout) DeepCopyObject

func (in *Rollout) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

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
	Args []AnalysisRunArgument `json:"args,omitempty"`
}

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
	Templates []RolloutExperimentTemplate `json:"templates"`
	// 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
	Analyses []RolloutExperimentStepAnalysisTemplateRef `json:"analyses,omitempty"`
}

RolloutExperimentStep defines a template that is used to create a experiment for a step

func (*RolloutExperimentStep) DeepCopy added in v0.6.0

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
	Args []AnalysisRunArgument `json:"args,omitempty"`
}

func (*RolloutExperimentStepAnalysisTemplateRef) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutExperimentStepAnalysisTemplateRef.

func (*RolloutExperimentStepAnalysisTemplateRef) DeepCopyInto added in v0.6.0

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

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolloutExperimentTemplate.

func (*RolloutExperimentTemplate) DeepCopyInto added in v0.6.0

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"`
	// PauseStartTime this field is set when the rollout is in a pause step and indicates the time the wait started at
	// +optional
	PauseStartTime *metav1.Time `json:"pauseStartTime,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 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"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL