Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=rollouts.kruise.io
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- func SetDefaultDeploymentStrategy(strategy *DeploymentStrategy)
- type BatchRelease
- type BatchReleaseBatchStateType
- type BatchReleaseCanaryStatus
- type BatchReleaseList
- type BatchReleaseSpec
- type BatchReleaseStatus
- type CanaryStatus
- type CanaryStep
- type CanaryStepInfo
- type CanaryStepState
- type CanaryStrategy
- type DeploymentExtraStatus
- type DeploymentStrategy
- type FinalizingPolicyType
- type GatewayTrafficRouting
- type HTTPRouteInfo
- type HttpRouteMatch
- type IngressInfo
- type IngressTrafficRouting
- type NameAndSpecData
- type ObjectRef
- type PatchPodTemplateMetadata
- type Pod
- type ReleaseBatch
- type ReleasePlan
- type RollingStyleType
- type Rollout
- type RolloutCondition
- type RolloutConditionType
- type RolloutHistory
- type RolloutHistoryList
- type RolloutHistorySpec
- type RolloutHistoryStatus
- type RolloutInfo
- type RolloutList
- type RolloutPause
- type RolloutPhase
- type RolloutSpec
- type RolloutStatus
- type RolloutStrategy
- type ServiceInfo
- type TrafficRouting
- type TrafficRoutingInfo
- type TrafficRoutingList
- type TrafficRoutingPhase
- type TrafficRoutingRef
- type TrafficRoutingSpec
- type TrafficRoutingStatus
- type TrafficRoutingStrategy
- type WorkloadInfo
- type WorkloadRef
Constants ¶
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" )
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" )
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.
const (
PhaseCompleted string = "completed"
)
Phase indicates rollouthistory phase
const (
ProgressingRolloutFinalizerPrefix = "progressing.rollouts.kruise.io"
)
Variables ¶
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/...
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) 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 ¶
func (in *BatchReleaseCanaryStatus) DeepCopy() *BatchReleaseCanaryStatus
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 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
func (in *DeploymentExtraStatus) DeepCopy() *DeploymentExtraStatus
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
func (in *GatewayTrafficRouting) DeepCopy() *GatewayTrafficRouting
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 ¶
func (in *IngressTrafficRouting) DeepCopy() *IngressTrafficRouting
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectRef.
func (*ObjectRef) DeepCopyInto ¶
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
func (in *PatchPodTemplateMetadata) DeepCopy() *PatchPodTemplateMetadata
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pod.
func (*Pod) DeepCopyInto ¶ added in v0.3.0
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) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rollout.
func (*Rollout) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Rollout) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type 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
func (in *RolloutHistoryStatus) DeepCopy() *RolloutHistoryStatus
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"`
}
TrafficRoutingRef hosts all the different configuration for supported service meshes to enable more fine-grained traffic routing
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
func (in *TrafficRoutingStatus) DeepCopy() *TrafficRoutingStatus
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 *gatewayv1alpha2.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 (*TrafficRoutingStrategy) DeepCopy ¶ added in v0.4.0
func (in *TrafficRoutingStrategy) DeepCopy() *TrafficRoutingStrategy
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.