v1alpha1

package
v0.3.0-rc.0 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2022 License: Apache-2.0 Imports: 7 Imported by: 4

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=rollouts.kruise.io

Index

Constants

View Source
const (
	// RolloutIDLabel is set to workload labels.
	// RolloutIDLabel is designed to distinguish each workload revision publications.
	// The value of RolloutIDLabel corresponds Rollout.Spec.RolloutID.
	RolloutIDLabel = "rollouts.kruise.io/rollout-id"

	// RolloutBatchIDLabel is patched in pod labels.
	// RolloutBatchIDLabel is the label key of batch id that will be patched to pods during rollout.
	// Only when RolloutIDLabel is set, RolloutBatchIDLabel will be patched.
	// Users can use RolloutIDLabel and RolloutBatchIDLabel to select the pods that are upgraded in some certain batch and release.
	RolloutBatchIDLabel = "rollouts.kruise.io/rollout-batch-id"

	// RollbackInBatchAnnotation is set to rollout annotations.
	// RollbackInBatchAnnotation allow use disable quick rollback, and will roll back in batch style.
	RollbackInBatchAnnotation = "rollouts.kruise.io/rollback-in-batch"
)
View Source
const (
	WorkloadRefType = "workloadRef"
	RevisionRefType = "revisionRef"
)
View Source
const (
	// RolloutConditionProgressing 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.
	RolloutConditionProgressing RolloutConditionType = "Progressing"
	// Progressing Reason
	ProgressingReasonInitializing = "Initializing"
	ProgressingReasonInRolling    = "InRolling"
	ProgressingReasonFinalising   = "Finalising"
	ProgressingReasonCompleted    = "Completed"
	ProgressingReasonCancelling   = "Cancelling"
	ProgressingReasonPaused       = "Paused"

	// RolloutConditionSucceeded indicates whether rollout is succeeded or failed.
	RolloutConditionSucceeded RolloutConditionType = "Succeeded"

	// Terminating condition
	RolloutConditionTerminating RolloutConditionType = "Terminating"
	// Terminating Reason
	TerminatingReasonInTerminating = "InTerminating"
	TerminatingReasonCompleted     = "Completed"
)

These are valid conditions of a rollout.

View Source
const (
	PhaseCompleted string = "completed"
)

Phase indicates rollouthistory phase

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "rollouts.kruise.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme

	SchemeGroupVersion = GroupVersion
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type BatchRelease

type BatchRelease struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   BatchReleaseSpec   `json:"spec,omitempty"`
	Status BatchReleaseStatus `json:"status,omitempty"`
}

func (*BatchRelease) DeepCopy

func (in *BatchRelease) DeepCopy() *BatchRelease

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

func (*BatchRelease) DeepCopyInto

func (in *BatchRelease) DeepCopyInto(out *BatchRelease)

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

func (*BatchRelease) DeepCopyObject

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

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

type BatchReleaseBatchStateType

type BatchReleaseBatchStateType string
const (
	// UpgradingBatchState indicates that current batch is at upgrading pod state
	UpgradingBatchState BatchReleaseBatchStateType = "Upgrading"
	// VerifyingBatchState indicates that current batch is at verifying whether it's ready state
	VerifyingBatchState BatchReleaseBatchStateType = "Verifying"
	// ReadyBatchState indicates that current batch is at batch ready state
	ReadyBatchState BatchReleaseBatchStateType = "Ready"
)

type BatchReleaseCanaryStatus

type BatchReleaseCanaryStatus struct {
	// CurrentBatchState indicates the release state of the current batch.
	CurrentBatchState BatchReleaseBatchStateType `json:"batchState,omitempty"`
	// The current batch the rollout is working on/blocked, it starts from 0
	CurrentBatch int32 `json:"currentBatch"`
	// BatchReadyTime is the ready timestamp of the current batch or the last batch.
	// This field is updated once a batch ready, and the batches[x].pausedSeconds
	// relies on this field to calculate the real-time duration.
	BatchReadyTime *metav1.Time `json:"batchReadyTime,omitempty"`
	// UpdatedReplicas is the number of upgraded Pods.
	UpdatedReplicas int32 `json:"updatedReplicas,omitempty"`
	// UpdatedReadyReplicas is the number upgraded Pods that have a Ready Condition.
	UpdatedReadyReplicas int32 `json:"updatedReadyReplicas,omitempty"`
	// the number of pods that no need to rollback in rollback scene.
	NoNeedUpdateReplicas *int32 `json:"noNeedUpdateReplicas,omitempty"`
}

func (*BatchReleaseCanaryStatus) DeepCopy

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

func (*BatchReleaseCanaryStatus) DeepCopyInto

func (in *BatchReleaseCanaryStatus) DeepCopyInto(out *BatchReleaseCanaryStatus)

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

type BatchReleaseList

type BatchReleaseList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BatchRelease `json:"items"`
}

BatchReleaseList contains a list of BatchRelease +kubebuilder:object:root=true

func (*BatchReleaseList) DeepCopy

func (in *BatchReleaseList) DeepCopy() *BatchReleaseList

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

func (*BatchReleaseList) DeepCopyInto

func (in *BatchReleaseList) DeepCopyInto(out *BatchReleaseList)

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

func (*BatchReleaseList) DeepCopyObject

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

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

type BatchReleaseSpec

type BatchReleaseSpec struct {
	// TargetRef contains the GVK and name of the workload that we need to upgrade to.
	TargetRef ObjectRef `json:"targetReference"`
	// ReleasePlan is the details on how to rollout the resources
	ReleasePlan ReleasePlan `json:"releasePlan"`
}

BatchReleaseSpec defines how to describe an update between different compRevision

func (*BatchReleaseSpec) DeepCopy

func (in *BatchReleaseSpec) DeepCopy() *BatchReleaseSpec

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

func (*BatchReleaseSpec) DeepCopyInto

func (in *BatchReleaseSpec) DeepCopyInto(out *BatchReleaseSpec)

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

type BatchReleaseStatus

type BatchReleaseStatus struct {
	// Conditions represents the observed process state of each phase during executing the release plan.
	Conditions []RolloutCondition `json:"conditions,omitempty"`
	// CanaryStatus describes the state of the canary rollout.
	CanaryStatus BatchReleaseCanaryStatus `json:"canaryStatus,omitempty"`
	// StableRevision is the pod-template-hash of stable revision pod template.
	StableRevision string `json:"stableRevision,omitempty"`
	// UpdateRevision is the pod-template-hash of update revision pod template.
	UpdateRevision string `json:"updateRevision,omitempty"`
	// ObservedGeneration is the most recent generation observed for this BatchRelease.
	// It corresponds to this BatchRelease's generation, which is updated on mutation
	// by the API Server, and only if BatchRelease Spec was changed, its generation will increase 1.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// ObservedRolloutID is the most recent rollout-id observed for this BatchRelease.
	// If RolloutID was changed, we will restart to roll out from batch 0,
	// to ensure the batch-id and rollout-id labels of Pods are correct.
	ObservedRolloutID string `json:"observedRolloutID,omitempty"`
	// ObservedWorkloadReplicas is observed replicas of target referenced workload.
	// This field is designed to deal with scaling event during rollout, if this field changed,
	// it means that the workload is scaling during rollout.
	ObservedWorkloadReplicas int32 `json:"observedWorkloadReplicas,omitempty"`
	// Count of hash collisions for creating canary Deployment. The controller uses this
	// field as a collision avoidance mechanism when it needs to create the name for the
	// newest canary Deployment.
	// +optional
	CollisionCount *int32 `json:"collisionCount,omitempty"`
	// ObservedReleasePlanHash is a hash code of observed itself spec.releasePlan.
	ObservedReleasePlanHash string `json:"observedReleasePlanHash,omitempty"`
	// Phase is the release plan phase, which indicates the current state of release
	// plan state machine in BatchRelease controller.
	Phase RolloutPhase `json:"phase,omitempty"`
}

BatchReleaseStatus defines the observed state of a release plan

func (*BatchReleaseStatus) DeepCopy

func (in *BatchReleaseStatus) DeepCopy() *BatchReleaseStatus

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

func (*BatchReleaseStatus) DeepCopyInto

func (in *BatchReleaseStatus) DeepCopyInto(out *BatchReleaseStatus)

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

type CanaryStatus

type CanaryStatus struct {
	// observedWorkloadGeneration is the most recent generation observed for this Rollout ref workload generation.
	ObservedWorkloadGeneration int64 `json:"observedWorkloadGeneration,omitempty"`
	// ObservedRolloutID will record the newest spec.RolloutID if status.canaryRevision equals to workload.updateRevision
	ObservedRolloutID string `json:"observedRolloutID,omitempty"`
	// RolloutHash from rollout.spec object
	RolloutHash string `json:"rolloutHash,omitempty"`
	// StableRevision indicates the revision of stable pods
	StableRevision string `json:"stableRevision,omitempty"`
	// CanaryRevision is calculated by rollout based on podTemplateHash, and the internal logic flow uses
	// It may be different from rs podTemplateHash in different k8s versions, so it cannot be used as service selector label
	CanaryRevision string `json:"canaryRevision"`
	// pod template hash is used as service selector label
	PodTemplateHash string `json:"podTemplateHash"`
	// CanaryReplicas the numbers of canary revision pods
	CanaryReplicas int32 `json:"canaryReplicas"`
	// CanaryReadyReplicas the numbers of ready canary revision pods
	CanaryReadyReplicas int32 `json:"canaryReadyReplicas"`
	// 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"`
	CurrentStepState CanaryStepState `json:"currentStepState"`
	Message          string          `json:"message,omitempty"`
	LastUpdateTime   *metav1.Time    `json:"lastUpdateTime,omitempty"`
}

CanaryStatus status fields that only pertain to the canary rollout

func (*CanaryStatus) DeepCopy

func (in *CanaryStatus) DeepCopy() *CanaryStatus

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

func (*CanaryStatus) DeepCopyInto

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

type CanaryStep struct {
	// Weight indicate how many percentage of traffic the canary pods should receive
	// +optional
	Weight *int32 `json:"weight,omitempty"`
	// Replicas is the number of expected canary pods in this batch
	// it can be an absolute number (ex: 5) or a percentage of total pods.
	Replicas *intstr.IntOrString `json:"replicas,omitempty"`
	// Pause defines a pause stage for a rollout, manual or auto
	// +optional
	Pause RolloutPause `json:"pause,omitempty"`
	// Matches define conditions used for matching the incoming HTTP requests to canary service.
	// Each match is independent, i.e. this rule will be matched if **any** one of the matches is satisfied.
	// If Gateway API, current only support one match.
	// And cannot support both weight and matches, if both are configured, then matches takes precedence.
	Matches []HttpRouteMatch `json:"matches,omitempty"`
}

CanaryStep defines a step of a canary workload.

func (*CanaryStep) DeepCopy

func (in *CanaryStep) DeepCopy() *CanaryStep

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

func (*CanaryStep) DeepCopyInto

func (in *CanaryStep) DeepCopyInto(out *CanaryStep)

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

type CanaryStepInfo added in v0.3.0

type CanaryStepInfo struct {
	// CanaryStepIndex indicates step this revision
	CanaryStepIndex int32 `json:"canaryStepIndex,omitempty"`
	// Pods indicates the pods information
	Pods []Pod `json:"pods,omitempty"`
}

CanaryStepInfo indicates the pods for a revision

func (*CanaryStepInfo) DeepCopy added in v0.3.0

func (in *CanaryStepInfo) DeepCopy() *CanaryStepInfo

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

func (*CanaryStepInfo) DeepCopyInto added in v0.3.0

func (in *CanaryStepInfo) DeepCopyInto(out *CanaryStepInfo)

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

type CanaryStepState

type CanaryStepState string
const (
	CanaryStepStateUpgrade         CanaryStepState = "StepUpgrade"
	CanaryStepStateTrafficRouting  CanaryStepState = "StepTrafficRouting"
	CanaryStepStateMetricsAnalysis CanaryStepState = "StepMetricsAnalysis"
	CanaryStepStatePaused          CanaryStepState = "StepPaused"
	CanaryStepStateReady           CanaryStepState = "StepReady"
	CanaryStepStateCompleted       CanaryStepState = "Completed"
)

type CanaryStrategy

type CanaryStrategy struct {
	// Steps define the order of phases to execute release in batches(20%, 40%, 60%, 80%, 100%)
	// +optional
	Steps []CanaryStep `json:"steps,omitempty"`
	// TrafficRoutings hosts all the supported service meshes supported to enable more fine-grained traffic routing
	// todo current only support one TrafficRouting
	TrafficRoutings []*TrafficRouting `json:"trafficRoutings,omitempty"`
	// FailureThreshold indicates how many failed pods can be tolerated in all upgraded pods.
	// Only when FailureThreshold are satisfied, Rollout can enter ready state.
	// If FailureThreshold is nil, Rollout will use the MaxUnavailable of workload as its
	// FailureThreshold.
	// Defaults to nil.
	FailureThreshold *intstr.IntOrString `json:"failureThreshold,omitempty"`
}

CanaryStrategy defines parameters for a Replica Based Canary

func (*CanaryStrategy) DeepCopy

func (in *CanaryStrategy) DeepCopy() *CanaryStrategy

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

func (*CanaryStrategy) DeepCopyInto

func (in *CanaryStrategy) DeepCopyInto(out *CanaryStrategy)

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

type FinalizingPolicyType added in v0.3.0

type FinalizingPolicyType string
const (
	// WaitResumeFinalizingPolicyType will wait workload to be resumed, which means
	// controller will be hold at Finalizing phase util all pods of workload is upgraded.
	// WaitResumeFinalizingPolicyType only works in canary-style BatchRelease controller.
	WaitResumeFinalizingPolicyType FinalizingPolicyType = "WaitResume"
	// ImmediateFinalizingPolicyType will not to wait workload to be resumed.
	ImmediateFinalizingPolicyType FinalizingPolicyType = "Immediate"
)

type GatewayTrafficRouting added in v0.2.0

type GatewayTrafficRouting struct {
	// HTTPRouteName refers to the name of an `HTTPRoute` resource in the same namespace as the `Rollout`
	HTTPRouteName *string `json:"httpRouteName,omitempty"`
}

GatewayTrafficRouting configuration for gateway api

func (*GatewayTrafficRouting) DeepCopy added in v0.2.0

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

func (*GatewayTrafficRouting) DeepCopyInto added in v0.2.0

func (in *GatewayTrafficRouting) DeepCopyInto(out *GatewayTrafficRouting)

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

type HTTPRouteInfo added in v0.3.0

type HTTPRouteInfo struct {
	NameAndSpecData `json:",inline"`
}

HTTPRouteInfo indicates information of gateway API

func (*HTTPRouteInfo) DeepCopy added in v0.3.0

func (in *HTTPRouteInfo) DeepCopy() *HTTPRouteInfo

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

func (*HTTPRouteInfo) DeepCopyInto added in v0.3.0

func (in *HTTPRouteInfo) DeepCopyInto(out *HTTPRouteInfo)

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

type HttpRouteMatch added in v0.3.0

type HttpRouteMatch struct {
	// Headers specifies HTTP request header matchers. Multiple match values are
	// ANDed together, meaning, a request must match all the specified headers
	// to select the route.
	// +kubebuilder:validation:MaxItems=16
	Headers []gatewayv1alpha2.HTTPHeaderMatch `json:"headers,omitempty"`
}

func (*HttpRouteMatch) DeepCopy added in v0.3.0

func (in *HttpRouteMatch) DeepCopy() *HttpRouteMatch

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

func (*HttpRouteMatch) DeepCopyInto added in v0.3.0

func (in *HttpRouteMatch) DeepCopyInto(out *HttpRouteMatch)

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

type IngressInfo added in v0.3.0

type IngressInfo struct {
	NameAndSpecData `json:",inline"`
}

IngressInfo indicates information of the ingress related

func (*IngressInfo) DeepCopy added in v0.3.0

func (in *IngressInfo) DeepCopy() *IngressInfo

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

func (*IngressInfo) DeepCopyInto added in v0.3.0

func (in *IngressInfo) DeepCopyInto(out *IngressInfo)

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

type IngressTrafficRouting

type IngressTrafficRouting struct {
	// ClassType refers to the type of `Ingress`.
	// current support nginx, aliyun-alb. default is nginx.
	// +optional
	ClassType string `json:"classType,omitempty"`
	// Name refers to the name of an `Ingress` resource in the same namespace as the `Rollout`
	Name string `json:"name"`
}

IngressTrafficRouting configuration for ingress controller to control traffic routing

func (*IngressTrafficRouting) DeepCopy

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

func (*IngressTrafficRouting) DeepCopyInto

func (in *IngressTrafficRouting) DeepCopyInto(out *IngressTrafficRouting)

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

type NameAndSpecData added in v0.3.0

type NameAndSpecData struct {
	// Name indicates the name of object ref, such as rollout name, workload name, ingress name, etc.
	Name string `json:"name"`
	// Data indecates the spec of object ref
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	Data runtime.RawExtension `json:"data,omitempty"`
}

func (*NameAndSpecData) DeepCopy added in v0.3.0

func (in *NameAndSpecData) DeepCopy() *NameAndSpecData

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

func (*NameAndSpecData) DeepCopyInto added in v0.3.0

func (in *NameAndSpecData) DeepCopyInto(out *NameAndSpecData)

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

type ObjectRef

type ObjectRef struct {
	// WorkloadRef contains enough information to let you identify a workload for Rollout
	// Batch release of the bypass
	WorkloadRef *WorkloadRef `json:"workloadRef,omitempty"`
}

func (*ObjectRef) DeepCopy

func (in *ObjectRef) DeepCopy() *ObjectRef

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

func (*ObjectRef) DeepCopyInto

func (in *ObjectRef) DeepCopyInto(out *ObjectRef)

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

type ObjectRefType

type ObjectRefType string

type Pod added in v0.3.0

type Pod struct {
	// Name indicates the node name
	Name string `json:"name,omitempty"`
	// IP indicates the pod ip
	IP string `json:"ip,omitempty"`
	// NodeName indicates the node which pod is located at
	NodeName string `json:"nodeName,omitempty"`
}

Pod indicates the information of a pod, including name, ip, node_name.

func (*Pod) DeepCopy added in v0.3.0

func (in *Pod) DeepCopy() *Pod

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

func (*Pod) DeepCopyInto added in v0.3.0

func (in *Pod) DeepCopyInto(out *Pod)

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

type ReleaseBatch

type ReleaseBatch struct {
	// CanaryReplicas is the number of upgraded pods that should have in this batch.
	// it can be an absolute number (ex: 5) or a percentage of workload replicas.
	// batches[i].canaryReplicas should less than or equal to batches[j].canaryReplicas if i < j.
	CanaryReplicas intstr.IntOrString `json:"canaryReplicas"`
}

ReleaseBatch is used to describe how each batch release should be

func (*ReleaseBatch) DeepCopy

func (in *ReleaseBatch) DeepCopy() *ReleaseBatch

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

func (*ReleaseBatch) DeepCopyInto

func (in *ReleaseBatch) DeepCopyInto(out *ReleaseBatch)

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

type ReleasePlan

type ReleasePlan struct {
	// Batches is the details on each batch of the ReleasePlan.
	//Users can specify their batch plan in this field, such as:
	// batches:
	// - canaryReplicas: 1  # batches 0
	// - canaryReplicas: 2  # batches 1
	// - canaryReplicas: 5  # batches 2
	// Not that these canaryReplicas should be a non-decreasing sequence.
	// +optional
	Batches []ReleaseBatch `json:"batches"`
	// All pods in the batches up to the batchPartition (included) will have
	// the target resource specification while the rest still is the stable revision.
	// This is designed for the operators to manually rollout.
	// Default is nil, which means no partition and will release all batches.
	// BatchPartition start from 0.
	// +optional
	BatchPartition *int32 `json:"batchPartition,omitempty"`
	// RolloutID indicates an id for each rollout progress
	RolloutID string `json:"rolloutID,omitempty"`
	// FailureThreshold indicates how many failed pods can be tolerated in all upgraded pods.
	// Only when FailureThreshold are satisfied, Rollout can enter ready state.
	// If FailureThreshold is nil, Rollout will use the MaxUnavailable of workload as its
	// FailureThreshold.
	// Defaults to nil.
	FailureThreshold *intstr.IntOrString `json:"failureThreshold,omitempty"`
	// FinalizingPolicy define the behavior of controller when phase enter Finalizing
	// Defaults to "Immediate"
	FinalizingPolicy FinalizingPolicyType `json:"finalizingPolicy,omitempty"`
}

ReleasePlan fines the details of the release plan

func (*ReleasePlan) DeepCopy

func (in *ReleasePlan) DeepCopy() *ReleasePlan

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

func (*ReleasePlan) DeepCopyInto

func (in *ReleasePlan) DeepCopyInto(out *ReleasePlan)

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

type Rollout

type Rollout struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RolloutSpec   `json:"spec,omitempty"`
	Status RolloutStatus `json:"status,omitempty"`
}

Rollout is the Schema for the rollouts API

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 RolloutCondition

type RolloutCondition struct {
	// Type of rollout 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,omitempty"`
	// Last time the condition transitioned from one status to another.
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// 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

type RolloutHistory added in v0.3.0

type RolloutHistory struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RolloutHistorySpec   `json:"spec,omitempty"`
	Status RolloutHistoryStatus `json:"status,omitempty"`
}

RolloutHistory is the Schema for the rollouthistories API

func (*RolloutHistory) DeepCopy added in v0.3.0

func (in *RolloutHistory) DeepCopy() *RolloutHistory

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

func (*RolloutHistory) DeepCopyInto added in v0.3.0

func (in *RolloutHistory) DeepCopyInto(out *RolloutHistory)

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

func (*RolloutHistory) DeepCopyObject added in v0.3.0

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

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

type RolloutHistoryList added in v0.3.0

type RolloutHistoryList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RolloutHistory `json:"items"`
}

RolloutHistoryList contains a list of RolloutHistory

func (*RolloutHistoryList) DeepCopy added in v0.3.0

func (in *RolloutHistoryList) DeepCopy() *RolloutHistoryList

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

func (*RolloutHistoryList) DeepCopyInto added in v0.3.0

func (in *RolloutHistoryList) DeepCopyInto(out *RolloutHistoryList)

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

func (*RolloutHistoryList) DeepCopyObject added in v0.3.0

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

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

type RolloutHistorySpec added in v0.3.0

type RolloutHistorySpec struct {

	// Rollout indicates information of the rollout related with rollouthistory
	Rollout RolloutInfo `json:"rollout,omitempty"`
	// Workload indicates information of the workload, such as cloneset, deployment, advanced statefulset
	Workload WorkloadInfo `json:"workload,omitempty"`
	// Service indicates information of the service related with workload
	Service ServiceInfo `json:"service,omitempty"`
	// TrafficRouting indicates information of traffic route related with workload
	TrafficRouting TrafficRoutingInfo `json:"trafficRouting,omitempty"`
}

RolloutHistorySpec defines the desired state of RolloutHistory

func (*RolloutHistorySpec) DeepCopy added in v0.3.0

func (in *RolloutHistorySpec) DeepCopy() *RolloutHistorySpec

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

func (*RolloutHistorySpec) DeepCopyInto added in v0.3.0

func (in *RolloutHistorySpec) DeepCopyInto(out *RolloutHistorySpec)

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

type RolloutHistoryStatus added in v0.3.0

type RolloutHistoryStatus struct {

	// Phase indicates phase of RolloutHistory, just "" or "completed"
	Phase string `json:"phase,omitempty"`
	// CanarySteps indicates the pods released each step
	CanarySteps []CanaryStepInfo `json:"canarySteps,omitempty"`
}

RolloutHistoryStatus defines the observed state of RolloutHistory

func (*RolloutHistoryStatus) DeepCopy added in v0.3.0

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

func (*RolloutHistoryStatus) DeepCopyInto added in v0.3.0

func (in *RolloutHistoryStatus) DeepCopyInto(out *RolloutHistoryStatus)

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

type RolloutInfo added in v0.3.0

type RolloutInfo struct {
	// RolloutID indicates the new rollout
	// if there is no new RolloutID this time, ignore it and not execute RolloutHistory
	RolloutID       string `json:"rolloutID"`
	NameAndSpecData `json:",inline"`
}

RolloutInfo indicates information of the rollout related

func (*RolloutInfo) DeepCopy added in v0.3.0

func (in *RolloutInfo) DeepCopy() *RolloutInfo

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

func (*RolloutInfo) DeepCopyInto added in v0.3.0

func (in *RolloutInfo) DeepCopyInto(out *RolloutInfo)

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,omitempty"`
	Items           []Rollout `json:"items"`
}

RolloutList contains a list of Rollout

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

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

func (in *RolloutPause) DeepCopy() *RolloutPause

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

func (*RolloutPause) DeepCopyInto

func (in *RolloutPause) DeepCopyInto(out *RolloutPause)

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

type RolloutPhase

type RolloutPhase string

RolloutPhase are a set of phases that this rollout

const (
	// RolloutPhasePreparing indicates a rollout is preparing for next progress.
	RolloutPhasePreparing RolloutPhase = "Preparing"
	// RolloutPhaseFinalizing indicates a rollout is finalizing
	RolloutPhaseFinalizing RolloutPhase = "Finalizing"
	// RolloutPhaseCompleted indicates a rollout is completed/cancelled/terminated
	RolloutPhaseCompleted RolloutPhase = "Completed"
)
const (
	// RolloutPhaseInitial indicates a rollout is Initial
	RolloutPhaseInitial RolloutPhase = "Initial"
	// RolloutPhaseHealthy indicates a rollout is healthy
	RolloutPhaseHealthy RolloutPhase = "Healthy"
	// RolloutPhaseProgressing indicates a rollout is not yet healthy but still making progress towards a healthy state
	RolloutPhaseProgressing RolloutPhase = "Progressing"
	// RolloutPhaseTerminating indicates a rollout is terminated
	RolloutPhaseTerminating RolloutPhase = "Terminating"
)

type RolloutSpec

type RolloutSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	// ObjectRef indicates workload
	ObjectRef ObjectRef `json:"objectRef"`
	// rollout strategy
	Strategy RolloutStrategy `json:"strategy"`
	// DeprecatedRolloutID is the deprecated field.
	// It is recommended that configure RolloutId in workload.annotations[rollouts.kruise.io/rollout-id].
	// RolloutID should be changed before each workload revision publication.
	// It is to distinguish consecutive multiple workload publications and rollout progress.
	DeprecatedRolloutID string `json:"rolloutID,omitempty"`
}

RolloutSpec defines the desired state of Rollout

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 {

	// observedGeneration is the most recent generation observed for this Rollout.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// Canary describes the state of the canary rollout
	// +optional
	CanaryStatus *CanaryStatus `json:"canaryStatus,omitempty"`
	// Conditions a list of conditions a rollout can have.
	// +optional
	Conditions []RolloutCondition `json:"conditions,omitempty"`
	// +optional
	//BlueGreenStatus *BlueGreenStatus `json:"blueGreenStatus,omitempty"`
	// Phase is the rollout phase.
	Phase RolloutPhase `json:"phase,omitempty"`
	// Message provides details on why the rollout is in its current phase
	Message string `json:"message,omitempty"`
}

RolloutStatus defines the observed state of Rollout

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 {
	// Paused indicates that the Rollout is paused.
	// Default value is false
	Paused bool `json:"paused,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 RolloutStrategyType

type RolloutStrategyType string
const (
	RolloutStrategyCanary    RolloutStrategyType = "canary"
	RolloutStrategyBlueGreen RolloutStrategyType = "blueGreen"
)

type ServiceInfo added in v0.3.0

type ServiceInfo struct {
	NameAndSpecData `json:",inline"`
}

ServiceInfo indicates information of the service related

func (*ServiceInfo) DeepCopy added in v0.3.0

func (in *ServiceInfo) DeepCopy() *ServiceInfo

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

func (*ServiceInfo) DeepCopyInto added in v0.3.0

func (in *ServiceInfo) DeepCopyInto(out *ServiceInfo)

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

type TrafficRouting

type TrafficRouting struct {
	// Service holds the name of a service which selects pods with stable version and don't select any pods with canary version.
	Service string `json:"service"`
	// Optional duration in seconds the traffic provider(e.g. nginx ingress controller) consumes the service, ingress configuration changes gracefully.
	GracePeriodSeconds int32 `json:"gracePeriodSeconds,omitempty"`
	// Ingress holds Ingress specific configuration to route traffic, e.g. Nginx, Alb.
	Ingress *IngressTrafficRouting `json:"ingress,omitempty"`
	// Gateway holds Gateway specific configuration to route traffic
	// Gateway configuration only supports >= v0.4.0 (v1alpha2).
	Gateway *GatewayTrafficRouting `json:"gateway,omitempty"`
}

TrafficRouting hosts all the different configuration for supported service meshes to enable more fine-grained traffic routing

func (*TrafficRouting) DeepCopy

func (in *TrafficRouting) DeepCopy() *TrafficRouting

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

func (*TrafficRouting) DeepCopyInto

func (in *TrafficRouting) DeepCopyInto(out *TrafficRouting)

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

type TrafficRoutingInfo added in v0.3.0

type TrafficRoutingInfo struct {
	// IngressRef indicates information of ingress
	// +optional
	Ingress *IngressInfo `json:"ingress,omitempty"`
	// HTTPRouteRef indacates information of Gateway API
	// +optional
	HTTPRoute *HTTPRouteInfo `json:"httpRoute,omitempty"`
}

TrafficRoutingInfo indicates information of Gateway API or Ingress

func (*TrafficRoutingInfo) DeepCopy added in v0.3.0

func (in *TrafficRoutingInfo) DeepCopy() *TrafficRoutingInfo

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

func (*TrafficRoutingInfo) DeepCopyInto added in v0.3.0

func (in *TrafficRoutingInfo) DeepCopyInto(out *TrafficRoutingInfo)

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

type WorkloadInfo added in v0.3.0

type WorkloadInfo struct {
	metav1.TypeMeta `json:",inline"`
	NameAndSpecData `json:",inline"`
}

WorkloadInfo indicates information of the workload, such as cloneset, deployment, advanced statefulset

func (*WorkloadInfo) DeepCopy added in v0.3.0

func (in *WorkloadInfo) DeepCopy() *WorkloadInfo

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

func (*WorkloadInfo) DeepCopyInto added in v0.3.0

func (in *WorkloadInfo) DeepCopyInto(out *WorkloadInfo)

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

type WorkloadRef

type WorkloadRef struct {
	// API Version of the referent
	APIVersion string `json:"apiVersion"`
	// Kind of the referent
	Kind string `json:"kind"`
	// Name of the referent
	Name string `json:"name"`
}

WorkloadRef holds a references to the Kubernetes object

func (*WorkloadRef) DeepCopy

func (in *WorkloadRef) DeepCopy() *WorkloadRef

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

func (*WorkloadRef) DeepCopyInto

func (in *WorkloadRef) DeepCopyInto(out *WorkloadRef)

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

Jump to

Keyboard shortcuts

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