v1alpha1

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2023 License: Apache-2.0 Imports: 12 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 (
	// DeploymentStrategyAnnotation is annotation for deployment,
	// which is strategy fields of Advanced Deployment.
	DeploymentStrategyAnnotation = "rollouts.kruise.io/deployment-strategy"

	// DeploymentExtraStatusAnnotation is annotation for deployment,
	// which is extra status field of Advanced Deployment.
	DeploymentExtraStatusAnnotation = "rollouts.kruise.io/deployment-extra-status"

	// DeploymentStableRevisionLabel is label for deployment,
	// which record the stable revision during the current rolling process.
	DeploymentStableRevisionLabel = "rollouts.kruise.io/stable-revision"

	// AdvancedDeploymentControlLabel is label for deployment,
	// which labels whether the deployment is controlled by advanced-deployment-controller.
	AdvancedDeploymentControlLabel = "rollouts.kruise.io/controlled-by-advanced-deployment-controller"
)
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"

	// RolloutStyleAnnotation define the rolling behavior for Deployment.
	// must be "partition" or "canary":
	// * "partition" means rolling in batches just like CloneSet, and will NOT create any extra Workload;
	// * "canary" means rolling in canary way, and will create a canary Workload.
	// Currently, only Deployment support both "partition" and "canary" rolling styles.
	// For other workload types, they only support "partition" styles.
	// Defaults to "canary" to Deployment.
	// Defaults to "partition" to the others.
	RolloutStyleAnnotation = "rollouts.kruise.io/rolling-style"

	// TrafficRoutingAnnotation is the TrafficRouting Name, and it is the Rollout's TrafficRouting.
	// The Rollout release will trigger the TrafficRouting release. For example:
	// A microservice consists of three applications, and the invocation relationship is as follows: a -> b -> c,
	// and application(a, b, c)'s gateway is trafficRouting. Any application(a, b or b) release will trigger TrafficRouting release.
	TrafficRoutingAnnotation = "rollouts.kruise.io/trafficrouting"
)
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

View Source
const (
	ProgressingRolloutFinalizerPrefix = "progressing.rollouts.kruise.io"
)

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 ConversionToV1beta1TrafficRoutingRef added in v0.5.0

func ConversionToV1beta1TrafficRoutingRef(src TrafficRoutingRef) (dst v1beta1.TrafficRoutingRef)

func ConversionToV1beta1TrafficRoutingStrategy added in v0.5.0

func ConversionToV1beta1TrafficRoutingStrategy(src TrafficRoutingStrategy) (dst v1beta1.TrafficRoutingStrategy)

func Resource

func Resource(resource string) schema.GroupResource

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

func SetDefaultDeploymentStrategy added in v0.3.0

func SetDefaultDeploymentStrategy(strategy *DeploymentStrategy)

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) ConvertFrom added in v0.5.0

func (dst *BatchRelease) ConvertFrom(src conversion.Hub) error

func (*BatchRelease) ConvertTo added in v0.5.0

func (src *BatchRelease) ConvertTo(dst conversion.Hub) error

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 {
	TrafficRoutingStrategy `json:",inline"`
	// 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"`
}

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
	// and current only support one TrafficRouting
	TrafficRoutings []TrafficRoutingRef `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"`
	// PatchPodTemplateMetadata indicates patch configuration(e.g. labels, annotations) to the canary deployment podTemplateSpec.metadata
	// only support for canary deployment
	// +optional
	PatchPodTemplateMetadata *PatchPodTemplateMetadata `json:"patchPodTemplateMetadata,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 CustomNetworkRef added in v0.5.0

type CustomNetworkRef struct {
	APIVersion string `json:"apiVersion"`
	Kind       string `json:"kind"`
	Name       string `json:"name"`
}

func (*CustomNetworkRef) DeepCopy added in v0.5.0

func (in *CustomNetworkRef) DeepCopy() *CustomNetworkRef

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

func (*CustomNetworkRef) DeepCopyInto added in v0.5.0

func (in *CustomNetworkRef) DeepCopyInto(out *CustomNetworkRef)

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

type DeploymentExtraStatus added in v0.3.0

type DeploymentExtraStatus struct {
	// UpdatedReadyReplicas the number of pods that has been updated and ready.
	UpdatedReadyReplicas int32 `json:"updatedReadyReplicas,omitempty"`
	// ExpectedUpdatedReplicas is an absolute number calculated based on Partition
	// and Deployment.Spec.Replicas, means how many pods are expected be updated under
	// current strategy.
	// This field is designed to avoid users to fall into the details of algorithm
	// for Partition calculation.
	ExpectedUpdatedReplicas int32 `json:"expectedUpdatedReplicas,omitempty"`
}

DeploymentExtraStatus is extra status field for Advanced Deployment

func (*DeploymentExtraStatus) DeepCopy added in v0.3.0

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

func (*DeploymentExtraStatus) DeepCopyInto added in v0.3.0

func (in *DeploymentExtraStatus) DeepCopyInto(out *DeploymentExtraStatus)

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

type DeploymentStrategy added in v0.3.0

type DeploymentStrategy struct {
	// RollingStyle define the behavior of rolling for deployment.
	RollingStyle RollingStyleType `json:"rollingStyle,omitempty"`
	// original deployment strategy rolling update fields
	RollingUpdate *apps.RollingUpdateDeployment `json:"rollingUpdate,omitempty"`
	// Paused = true will block the upgrade of Pods
	Paused bool `json:"paused,omitempty"`
	// Partition describe how many Pods should be updated during rollout.
	// We use this field to implement partition-style rolling update.
	Partition intstr.IntOrString `json:"partition,omitempty"`
}

DeploymentStrategy is strategy field for Advanced Deployment

func (*DeploymentStrategy) DeepCopy added in v0.3.0

func (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy

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

func (*DeploymentStrategy) DeepCopyInto added in v0.3.0

func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy)

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 []gatewayv1beta1.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 PatchPodTemplateMetadata added in v0.4.0

type PatchPodTemplateMetadata struct {
	// annotations
	Annotations map[string]string `json:"annotations,omitempty"`
	// labels
	Labels map[string]string `json:"labels,omitempty"`
}

func (*PatchPodTemplateMetadata) DeepCopy added in v0.4.0

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

func (*PatchPodTemplateMetadata) DeepCopyInto added in v0.4.0

func (in *PatchPodTemplateMetadata) DeepCopyInto(out *PatchPodTemplateMetadata)

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

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"`
	// PatchPodTemplateMetadata indicates patch configuration(e.g. labels, annotations) to the canary deployment podTemplateSpec.metadata
	// only support for canary deployment
	// +optional
	PatchPodTemplateMetadata *PatchPodTemplateMetadata `json:"patchPodTemplateMetadata,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 RollingStyleType added in v0.3.0

type RollingStyleType string
const (
	// PartitionRollingStyle means rolling in batches just like CloneSet, and will NOT create any extra Deployment;
	PartitionRollingStyle RollingStyleType = "Partition"
	// CanaryRollingStyle means rolling in canary way, and will create a canary Deployment.
	CanaryRollingStyle RollingStyleType = "Canary"
)

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) ConvertFrom added in v0.5.0

func (dst *Rollout) ConvertFrom(src conversion.Hub) error

func (*Rollout) ConvertTo added in v0.5.0

func (src *Rollout) ConvertTo(dst conversion.Hub) error

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"
	// RolloutPhaseDisabled indicates a rollout is disabled
	RolloutPhaseDisabled RolloutPhase = "Disabled"
	// RolloutPhaseDisabling indicates a rollout is disabling and releasing resources
	RolloutPhaseDisabling RolloutPhase = "Disabling"
)

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"`
	// if a rollout disabled, then the rollout would not watch changes of workload
	//+kubebuilder:validation:Optional
	//+kubebuilder:default=false
	Disabled bool `json:"disabled"`
}

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 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 {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TrafficRoutingSpec   `json:"spec,omitempty"`
	Status TrafficRoutingStatus `json:"status,omitempty"`
}

TrafficRouting is the Schema for the TrafficRoutings API

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.

func (*TrafficRouting) DeepCopyObject added in v0.4.0

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

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

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 TrafficRoutingList added in v0.4.0

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

TrafficRoutingList contains a list of TrafficRouting

func (*TrafficRoutingList) DeepCopy added in v0.4.0

func (in *TrafficRoutingList) DeepCopy() *TrafficRoutingList

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

func (*TrafficRoutingList) DeepCopyInto added in v0.4.0

func (in *TrafficRoutingList) DeepCopyInto(out *TrafficRoutingList)

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

func (*TrafficRoutingList) DeepCopyObject added in v0.4.0

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

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

type TrafficRoutingPhase added in v0.4.0

type TrafficRoutingPhase string

TrafficRoutingPhase are a set of phases that this rollout

const (
	// TrafficRoutingPhaseInitial indicates a traffic routing is Initial
	TrafficRoutingPhaseInitial TrafficRoutingPhase = "Initial"
	// TrafficRoutingPhaseHealthy indicates a traffic routing is healthy.
	// This means that Ingress and Service Resources exist.
	TrafficRoutingPhaseHealthy TrafficRoutingPhase = "Healthy"
	// TrafficRoutingPhaseProgressing indicates a traffic routing is not yet healthy but still making progress towards a healthy state
	TrafficRoutingPhaseProgressing TrafficRoutingPhase = "Progressing"
	// TrafficRoutingPhaseFinalizing indicates the trafficRouting progress is complete, and is running recycle operations.
	TrafficRoutingPhaseFinalizing TrafficRoutingPhase = "Finalizing"
	// TrafficRoutingPhaseTerminating indicates a traffic routing is terminated
	TrafficRoutingPhaseTerminating TrafficRoutingPhase = "Terminating"
)

type TrafficRoutingRef added in v0.4.0

type TrafficRoutingRef 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"`
	// CustomNetworkRefs hold a list of custom providers to route traffic
	CustomNetworkRefs []CustomNetworkRef `json:"customNetworkRefs,omitempty"`
}

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

func ConversionToV1alpha1TrafficRoutingRef added in v0.5.0

func ConversionToV1alpha1TrafficRoutingRef(src v1beta1.TrafficRoutingRef) (dst TrafficRoutingRef)

func (*TrafficRoutingRef) DeepCopy added in v0.4.0

func (in *TrafficRoutingRef) DeepCopy() *TrafficRoutingRef

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

func (*TrafficRoutingRef) DeepCopyInto added in v0.4.0

func (in *TrafficRoutingRef) DeepCopyInto(out *TrafficRoutingRef)

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

type TrafficRoutingSpec added in v0.4.0

type TrafficRoutingSpec struct {

	// ObjectRef indicates trafficRouting ref
	ObjectRef []TrafficRoutingRef `json:"objectRef"`
	// trafficrouting strategy
	Strategy TrafficRoutingStrategy `json:"strategy"`
}

func (*TrafficRoutingSpec) DeepCopy added in v0.4.0

func (in *TrafficRoutingSpec) DeepCopy() *TrafficRoutingSpec

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

func (*TrafficRoutingSpec) DeepCopyInto added in v0.4.0

func (in *TrafficRoutingSpec) DeepCopyInto(out *TrafficRoutingSpec)

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

type TrafficRoutingStatus added in v0.4.0

type TrafficRoutingStatus struct {

	// observedGeneration is the most recent generation observed for this Rollout.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// Phase is the trafficRouting phase.
	Phase TrafficRoutingPhase `json:"phase,omitempty"`
	// Message provides details on why the rollout is in its current phase
	Message string `json:"message,omitempty"`
}

func (*TrafficRoutingStatus) DeepCopy added in v0.4.0

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

func (*TrafficRoutingStatus) DeepCopyInto added in v0.4.0

func (in *TrafficRoutingStatus) DeepCopyInto(out *TrafficRoutingStatus)

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

type TrafficRoutingStrategy added in v0.4.0

type TrafficRoutingStrategy struct {
	// Weight indicate how many percentage of traffic the canary pods should receive
	// +optional
	Weight *int32 `json:"weight,omitempty"`
	// Set overwrites the request with the given header (name, value)
	// before the action.
	//
	// Input:
	//   GET /foo HTTP/1.1
	//   my-header: foo
	//
	// requestHeaderModifier:
	//   set:
	//   - name: "my-header"
	//     value: "bar"
	//
	// Output:
	//   GET /foo HTTP/1.1
	//   my-header: bar
	//
	// +optional
	RequestHeaderModifier *gatewayv1beta1.HTTPRequestHeaderFilter `json:"requestHeaderModifier,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"`
}

func ConversionToV1alpha1TrafficRoutingStrategy added in v0.5.0

func ConversionToV1alpha1TrafficRoutingStrategy(src v1beta1.TrafficRoutingStrategy) (dst TrafficRoutingStrategy)

func (*TrafficRoutingStrategy) DeepCopy added in v0.4.0

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

func (*TrafficRoutingStrategy) DeepCopyInto added in v0.4.0

func (in *TrafficRoutingStrategy) DeepCopyInto(out *TrafficRoutingStrategy)

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