v1alpha1

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the standard v1alpha1 API group +kubebuilder:object:generate=true +groupName=standard.oam.dev

Index

Constants

View Source
const (
	// GroupName of the CRDs
	GroupName = "standard.oam.dev"
	// Version of the group of CRDs
	Version = "v1alpha1"
)
View Source
const (
	// RolloutSpecVerifying indicates that the rollout just started with verification
	RolloutSpecVerifying runtimev1alpha1.ConditionType = "RolloutSpecVerifying"
	// RolloutInitializing means we start to initialize the cluster
	RolloutInitializing runtimev1alpha1.ConditionType = "RolloutInitializing"
	// RolloutInProgress means we are upgrading resources.
	RolloutInProgress runtimev1alpha1.ConditionType = "RolloutInProgress"
	// RolloutFinalizing means the rollout is finalizing
	RolloutFinalizing runtimev1alpha1.ConditionType = "RolloutFinalizing"
	// RolloutFailing means the rollout is failing
	RolloutFailing runtimev1alpha1.ConditionType = "RolloutFailing"
	// RolloutAbandoning means that the rollout is being abandoned.
	RolloutAbandoning runtimev1alpha1.ConditionType = "RolloutAbandoning"
	// RolloutDeleting means that the rollout is being deleted.
	RolloutDeleting runtimev1alpha1.ConditionType = "RolloutDeleting"
	// RolloutFailed means that the rollout failed.
	RolloutFailed runtimev1alpha1.ConditionType = "RolloutFailed"
	// RolloutSucceed means that the rollout is done.
	RolloutSucceed runtimev1alpha1.ConditionType = "RolloutSucceed"
	// BatchInitializing
	BatchInitializing runtimev1alpha1.ConditionType = "BatchInitializing"
	// BatchPaused
	BatchPaused runtimev1alpha1.ConditionType = "BatchPaused"
	// BatchVerifying
	BatchVerifying runtimev1alpha1.ConditionType = "BatchVerifying"
	// BatchRolloutFailed
	BatchRolloutFailed runtimev1alpha1.ConditionType = "BatchRolloutFailed"
	// BatchFinalizing
	BatchFinalizing runtimev1alpha1.ConditionType = "BatchFinalizing"
	// BatchReady
	BatchReady runtimev1alpha1.ConditionType = "BatchReady"
)

These are valid conditions of the rollout.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: Version}

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

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

Functions

func NewNegativeCondition added in v0.3.3

func NewNegativeCondition(condType runtimev1alpha1.ConditionType, message string) runtimev1alpha1.Condition

NewNegativeCondition creates a false condition type

func NewPositiveCondition added in v0.3.3

func NewPositiveCondition(condType runtimev1alpha1.ConditionType) runtimev1alpha1.Condition

NewPositiveCondition creates a positive condition type

Types

type BatchRollingState added in v0.3.1

type BatchRollingState string

BatchRollingState is the sub state when the rollout is on the fly

const (
	// BatchInitializingState still rolling the batch, the batch rolling is not completed yet
	BatchInitializingState BatchRollingState = "batchInitializing"
	// BatchInRollingState still rolling the batch, the batch rolling is not completed yet
	BatchInRollingState BatchRollingState = "batchInRolling"
	// BatchVerifyingState verifying if the application is ready to roll.
	BatchVerifyingState BatchRollingState = "batchVerifying"
	// BatchRolloutFailedState indicates that the batch didn't get the manual or automatic approval
	BatchRolloutFailedState BatchRollingState = "batchVerifyFailed"
	// BatchFinalizingState indicates that all the pods in the are available, we can move on to the next batch
	BatchFinalizingState BatchRollingState = "batchFinalizing"
	// BatchReadyState indicates that all the pods in the are upgraded and its state is ready
	BatchReadyState BatchRollingState = "batchReady"
)

type CanaryMetric added in v0.3.1

type CanaryMetric struct {
	// Name of the metric
	Name string `json:"name"`

	// Interval represents the windows size
	Interval string `json:"interval,omitempty"`

	// Range value accepted for this metric
	// +optional
	MetricsRange *MetricsExpectedRange `json:"metricsRange,omitempty"`

	// TemplateRef references a metric template object
	// +optional
	TemplateRef *runtimev1alpha1.TypedReference `json:"templateRef,omitempty"`
}

CanaryMetric holds the reference to metrics used for canary analysis

func (*CanaryMetric) DeepCopy added in v0.3.1

func (in *CanaryMetric) DeepCopy() *CanaryMetric

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

func (*CanaryMetric) DeepCopyInto added in v0.3.1

func (in *CanaryMetric) DeepCopyInto(out *CanaryMetric)

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

type HookType added in v0.3.1

type HookType string

HookType can be pre, post or during rollout

const (
	// InitializeRolloutHook execute webhook during the rollout initializing phase
	InitializeRolloutHook HookType = "initialize-rollout"
	// PreBatchRolloutHook execute webhook before each batch rollout
	PreBatchRolloutHook HookType = "pre-batch-rollout"
	// PostBatchRolloutHook execute webhook after each batch rollout
	PostBatchRolloutHook HookType = "post-batch-rollout"
	// FinalizeRolloutHook execute the webhook during the rollout finalizing phase
	FinalizeRolloutHook HookType = "finalize-rollout"
)

type MetricsExpectedRange added in v0.3.1

type MetricsExpectedRange struct {
	// Minimum value
	// +optional
	Min *intstr.IntOrString `json:"min,omitempty"`

	// Maximum value
	// +optional
	Max *intstr.IntOrString `json:"max,omitempty"`
}

MetricsExpectedRange defines the range used for metrics validation

func (*MetricsExpectedRange) DeepCopy added in v0.3.1

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

func (*MetricsExpectedRange) DeepCopyInto added in v0.3.1

func (in *MetricsExpectedRange) DeepCopyInto(out *MetricsExpectedRange)

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

type PodSpecWorkload

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

	Spec   PodSpecWorkloadSpec   `json:"spec,omitempty"`
	Status PodSpecWorkloadStatus `json:"status,omitempty"`
}

PodSpecWorkload is the Schema for the PodSpec API +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale +kubebuilder:resource:categories={oam} +kubebuilder:subresource:status

func (*PodSpecWorkload) DeepCopy

func (in *PodSpecWorkload) DeepCopy() *PodSpecWorkload

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

func (*PodSpecWorkload) DeepCopyInto

func (in *PodSpecWorkload) DeepCopyInto(out *PodSpecWorkload)

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

func (*PodSpecWorkload) DeepCopyObject

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

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

func (*PodSpecWorkload) GetCondition

GetCondition set condition for this CR

func (*PodSpecWorkload) SetConditions

func (in *PodSpecWorkload) SetConditions(c ...cpv1alpha1.Condition)

SetConditions set condition for this CR

type PodSpecWorkloadList

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

PodSpecWorkloadList contains a list of PodSpecWorkload

func (*PodSpecWorkloadList) DeepCopy

func (in *PodSpecWorkloadList) DeepCopy() *PodSpecWorkloadList

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

func (*PodSpecWorkloadList) DeepCopyInto

func (in *PodSpecWorkloadList) DeepCopyInto(out *PodSpecWorkloadList)

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

func (*PodSpecWorkloadList) DeepCopyObject

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

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

type PodSpecWorkloadSpec

type PodSpecWorkloadSpec struct {
	// Replicas is the desired number of replicas of the given podSpec.
	// These are replicas in the sense that they are instantiations of the same podSpec.
	// If unspecified, defaults to 1.
	Replicas *int32 `json:"replicas,omitempty"`

	// PodSpec describes the pods that will be created,
	// we omit the meta part as it will be exactly the same as the PodSpecWorkload
	PodSpec v1.PodSpec `json:"podSpec"`
}

PodSpecWorkloadSpec defines the desired state of PodSpecWorkload

func (*PodSpecWorkloadSpec) DeepCopy

func (in *PodSpecWorkloadSpec) DeepCopy() *PodSpecWorkloadSpec

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

func (*PodSpecWorkloadSpec) DeepCopyInto

func (in *PodSpecWorkloadSpec) DeepCopyInto(out *PodSpecWorkloadSpec)

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

type PodSpecWorkloadStatus

type PodSpecWorkloadStatus struct {
	cpv1alpha1.ConditionedStatus `json:",inline"`

	// Resources managed by this workload.
	Resources []cpv1alpha1.TypedReference `json:"resources,omitempty"`
}

PodSpecWorkloadStatus defines the observed state of PodSpecWorkload

func (*PodSpecWorkloadStatus) DeepCopy

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

func (*PodSpecWorkloadStatus) DeepCopyInto

func (in *PodSpecWorkloadStatus) DeepCopyInto(out *PodSpecWorkloadStatus)

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

type RollingState added in v0.3.1

type RollingState string

RollingState is the overall rollout state

const (
	// LocatingTargetAppState indicates that the rollout is in the stage of locating target app
	// we use this state to make sure we special handle the target app successfully only once
	LocatingTargetAppState RollingState = "locatingTargetApp"
	// VerifyingSpecState indicates that the rollout is in the stage of verifying the rollout settings
	// and the controller can locate both the target and the source
	VerifyingSpecState RollingState = "verifyingSpec"
	// InitializingState indicates that the rollout is initializing all the new resources
	InitializingState RollingState = "initializing"
	// RollingInBatchesState indicates that the rollout starts rolling
	RollingInBatchesState RollingState = "rollingInBatches"
	// FinalisingState indicates that the rollout is finalizing, possibly clean up the old resources, adjust traffic
	FinalisingState RollingState = "finalising"
	// RolloutFailingState indicates that the rollout is failing
	// one needs to finalize it before mark it as failed by cleaning up the old resources, adjust traffic
	RolloutFailingState RollingState = "rolloutFailing"
	// RolloutSucceedState indicates that rollout successfully completed to match the desired target state
	RolloutSucceedState RollingState = "rolloutSucceed"
	// RolloutAbandoningState indicates that the rollout is being abandoned
	// we need to finalize it by cleaning up the old resources, adjust traffic and return control back to its owner
	RolloutAbandoningState RollingState = "rolloutAbandoning"
	// RolloutDeletingState indicates that the rollout is being deleted
	// we need to finalize it by cleaning up the old resources, adjust traffic and return control back to its owner
	RolloutDeletingState RollingState = "RolloutDeletingState"
	// RolloutFailedState indicates that rollout is failed, the target replica is not reached
	// we can not move forward anymore, we will let the client to decide when or whether to revert.
	RolloutFailedState RollingState = "rolloutFailed"
)

type RolloutBatch added in v0.3.1

type RolloutBatch struct {
	// Replicas is the number of pods to upgrade in this batch
	// it can be an absolute number (ex: 5) or a percentage of total pods
	// we will ignore the percentage of the last batch to just fill the gap
	// +optional
	// it is mutually exclusive with the PodList field
	Replicas intstr.IntOrString `json:"replicas,omitempty"`

	// The list of Pods to get upgraded
	// +optional
	// it is mutually exclusive with the Replicas field
	PodList []string `json:"podList,omitempty"`

	// MaxUnavailable is the max allowed number of pods that is unavailable
	// during the upgrade. We will mark the batch as ready as long as there are less
	// or equal number of pods unavailable than this number.
	// default = 0
	// +optional
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`

	// The wait time, in seconds, between instances upgrades, default = 0
	// +optional
	InstanceInterval *int32 `json:"instanceInterval,omitempty"`

	// RolloutWebhooks provides a way for the batch rollout to interact with an external process
	// +optional
	BatchRolloutWebhooks []RolloutWebhook `json:"batchRolloutWebhooks,omitempty"`

	// CanaryMetric provides a way for the batch rollout process to automatically check certain metrics
	// before moving to the next batch
	// +optional
	CanaryMetric []CanaryMetric `json:"canaryMetric,omitempty"`
}

RolloutBatch is used to describe how the each batch rollout should be

func (*RolloutBatch) DeepCopy added in v0.3.1

func (in *RolloutBatch) DeepCopy() *RolloutBatch

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

func (*RolloutBatch) DeepCopyInto added in v0.3.1

func (in *RolloutBatch) DeepCopyInto(out *RolloutBatch)

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

type RolloutEvent added in v0.3.3

type RolloutEvent string

RolloutEvent is used to describe the events during rollout

const (
	// RollingFailedEvent indicates that we encountered an unexpected error during upgrading and can't be retried
	RollingFailedEvent RolloutEvent = "RollingFailedEvent"

	// RollingRetriableFailureEvent indicates that we encountered an unexpected but retriable error
	RollingRetriableFailureEvent RolloutEvent = "RollingRetriableFailureEvent"

	// AppLocatedEvent indicates that apps are located successfully
	AppLocatedEvent RolloutEvent = "AppLocatedEvent"

	// RollingModifiedEvent indicates that the rolling target or source has changed
	RollingModifiedEvent RolloutEvent = "RollingModifiedEvent"

	// RollingDeletedEvent indicates that the rolling is being deleted
	RollingDeletedEvent RolloutEvent = "RollingDeletedEvent"

	// RollingSpecVerifiedEvent indicates that we have successfully verified that the rollout spec
	RollingSpecVerifiedEvent RolloutEvent = "RollingSpecVerifiedEvent"

	// RollingInitializedEvent indicates that we have finished initializing all the workload resources
	RollingInitializedEvent RolloutEvent = "RollingInitializedEvent"

	// AllBatchFinishedEvent indicates that all batches are upgraded
	AllBatchFinishedEvent RolloutEvent = "AllBatchFinishedEvent"

	// RollingFinalizedEvent indicates that we have finalized the rollout which includes but not
	// limited to the resource garbage collection
	RollingFinalizedEvent RolloutEvent = "AllBatchFinishedEvent"

	// InitializedOneBatchEvent indicates that we have successfully rolled out one batch
	InitializedOneBatchEvent RolloutEvent = "InitializedOneBatchEvent"

	// FinishedOneBatchEvent indicates that we have successfully rolled out one batch
	FinishedOneBatchEvent RolloutEvent = "FinishedOneBatchEvent"

	// RolloutOneBatchEvent indicates that we have rollout one batch
	RolloutOneBatchEvent RolloutEvent = "RolloutOneBatchEvent"

	// OneBatchAvailableEvent indicates that the batch resource is considered available
	// this events comes after we have examine the pod readiness check and traffic shifting if needed
	OneBatchAvailableEvent RolloutEvent = "OneBatchAvailable"

	// BatchRolloutApprovedEvent indicates that we got the approval manually
	BatchRolloutApprovedEvent RolloutEvent = "BatchRolloutApprovedEvent"

	// BatchRolloutFailedEvent indicates that we are waiting for the approval of the
	BatchRolloutFailedEvent RolloutEvent = "BatchRolloutFailedEvent"
)

type RolloutPlan added in v0.3.1

type RolloutPlan struct {

	// RolloutStrategy defines strategies for the rollout plan
	// The default is IncreaseFirstRolloutStrategyType
	// +optional
	RolloutStrategy RolloutStrategyType `json:"rolloutStrategy,omitempty"`

	// The size of the target resource. The default is the same
	// as the size of the source resource.
	// +optional
	TargetSize *int32 `json:"targetSize,omitempty"`

	// The number of batches, default = 1
	// +optional
	NumBatches *int32 `json:"numBatches,omitempty"`

	// The exact distribution among batches.
	// its size has to be exactly the same as the NumBatches (if set)
	// The total number cannot exceed the targetSize or the size of the source resource
	// We will IGNORE the last batch's replica field if it's a percentage since round errors can lead to inaccurate sum
	// We highly recommend to leave the last batch's replica field empty
	// +optional
	RolloutBatches []RolloutBatch `json:"rolloutBatches,omitempty"`

	// All pods in the batches up to the batchPartition (included) will have
	// the target resource specification while the rest still have the source resource
	// This is designed for the operators to manually rollout
	// Default is the the number of batches which will rollout all the batches
	// +optional
	BatchPartition *int32 `json:"batchPartition,omitempty"`

	// Paused the rollout, default is false
	// +optional
	Paused bool `json:"paused,omitempty"`

	// RolloutWebhooks provide a way for the rollout to interact with an external process
	// +optional
	RolloutWebhooks []RolloutWebhook `json:"rolloutWebhooks,omitempty"`

	// CanaryMetric provides a way for the rollout process to automatically check certain metrics
	// before complete the process
	// +optional
	CanaryMetric []CanaryMetric `json:"canaryMetric,omitempty"`
}

RolloutPlan fines the details of the rollout plan

func (*RolloutPlan) DeepCopy added in v0.3.1

func (in *RolloutPlan) DeepCopy() *RolloutPlan

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

func (*RolloutPlan) DeepCopyInto added in v0.3.1

func (in *RolloutPlan) DeepCopyInto(out *RolloutPlan)

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

type RolloutStatus added in v0.3.1

type RolloutStatus struct {
	// Conditions represents the latest available observations of a CloneSet's current state.
	runtimev1alpha1.ConditionedStatus `json:",inline"`

	// RolloutTargetSize is the size of the target resources. This is determined once the initial spec verification
	// and does not change until the rollout is restarted
	RolloutOriginalSize int32 `json:"rolloutOriginalSize,omitempty"`

	// RolloutTargetSize is the size of the target resources. This is determined once the initial spec verification
	// and does not change until the rollout is restarted
	RolloutTargetSize int32 `json:"rolloutTargetSize,omitempty"`

	// NewPodTemplateIdentifier is a string that uniquely represent the new pod template
	// each workload type could use different ways to identify that so we cannot compare between resources
	NewPodTemplateIdentifier string `json:"targetGeneration,omitempty"`

	// lastAppliedPodTemplateIdentifier is a string that uniquely represent the last pod template
	// each workload type could use different ways to identify that so we cannot compare between resources
	// We update this field only after a successful rollout
	LastAppliedPodTemplateIdentifier string `json:"lastAppliedPodTemplateIdentifier,omitempty"`

	// RollingState is the Rollout State
	RollingState RollingState `json:"rollingState"`

	// BatchRollingState only meaningful when the Status is rolling
	// +optional
	BatchRollingState BatchRollingState `json:"batchRollingState"`

	// The current batch the rollout is working on/blocked
	// it starts from 0
	CurrentBatch int32 `json:"currentBatch"`

	// UpgradedReplicas is the number of Pods upgraded by the rollout controller
	UpgradedReplicas int32 `json:"upgradedReplicas"`

	// UpgradedReadyReplicas is the number of Pods upgraded by the rollout controller that have a Ready Condition.
	UpgradedReadyReplicas int32 `json:"upgradedReadyReplicas"`
}

RolloutStatus defines the observed state of a rollout plan

func (*RolloutStatus) DeepCopy added in v0.3.1

func (in *RolloutStatus) DeepCopy() *RolloutStatus

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

func (*RolloutStatus) DeepCopyInto added in v0.3.1

func (in *RolloutStatus) DeepCopyInto(out *RolloutStatus)

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

func (*RolloutStatus) ResetStatus added in v1.0.0

func (r *RolloutStatus) ResetStatus()

ResetStatus resets the status of the rollout to start from beginning

func (*RolloutStatus) RolloutFailed added in v0.3.3

func (r *RolloutStatus) RolloutFailed(reason string)

RolloutFailed is a special state transition since we need an error message

func (*RolloutStatus) RolloutFailing added in v1.0.0

func (r *RolloutStatus) RolloutFailing(reason string)

RolloutFailing is a special state transition that always moves the rollout state to the failing state

func (*RolloutStatus) RolloutRetry added in v0.3.3

func (r *RolloutStatus) RolloutRetry(reason string)

RolloutRetry is a special state transition since we need an error message

func (*RolloutStatus) SetRolloutCondition added in v1.0.0

func (r *RolloutStatus) SetRolloutCondition(new runtimev1alpha1.Condition)

SetRolloutCondition sets the supplied condition, replacing any existing condition of the same type unless they are identical.

func (*RolloutStatus) StateTransition added in v0.3.3

func (r *RolloutStatus) StateTransition(event RolloutEvent)

StateTransition is the center place to do rollout state transition it returns an error if the transition is invalid it changes the coming rollout state if it's valid

type RolloutStrategyType added in v0.3.1

type RolloutStrategyType string

RolloutStrategyType defines strategies for pods rollout

const (
	// IncreaseFirstRolloutStrategyType indicates that we increase the target resources first
	IncreaseFirstRolloutStrategyType RolloutStrategyType = "IncreaseFirst"

	// DecreaseFirstRolloutStrategyType indicates that we decrease the source resources first
	DecreaseFirstRolloutStrategyType RolloutStrategyType = "DecreaseFirst"
)

type RolloutTrait added in v0.3.1

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

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

RolloutTrait is the Schema for the RolloutTrait API +kubebuilder:object:root=true +genclient +kubebuilder:resource:categories={oam} +kubebuilder:subresource:status

func (*RolloutTrait) DeepCopy added in v0.3.1

func (in *RolloutTrait) DeepCopy() *RolloutTrait

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

func (*RolloutTrait) DeepCopyInto added in v0.3.1

func (in *RolloutTrait) DeepCopyInto(out *RolloutTrait)

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

func (*RolloutTrait) DeepCopyObject added in v0.3.1

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

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

func (*RolloutTrait) GetCondition added in v0.3.1

GetCondition for get CR condition

func (*RolloutTrait) GetWorkloadReference added in v0.3.1

func (tr *RolloutTrait) GetWorkloadReference() runtimev1alpha1.TypedReference

GetWorkloadReference of this MetricsTrait.

func (*RolloutTrait) SetConditions added in v0.3.1

func (tr *RolloutTrait) SetConditions(c ...runtimev1alpha1.Condition)

SetConditions for set CR condition

func (*RolloutTrait) SetWorkloadReference added in v0.3.1

func (tr *RolloutTrait) SetWorkloadReference(r runtimev1alpha1.TypedReference)

SetWorkloadReference of this MetricsTrait.

type RolloutTraitList added in v0.3.1

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

RolloutTraitList contains a list of RolloutTrait +kubebuilder:object:root=true +genclient

func (*RolloutTraitList) DeepCopy added in v0.3.1

func (in *RolloutTraitList) DeepCopy() *RolloutTraitList

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

func (*RolloutTraitList) DeepCopyInto added in v0.3.1

func (in *RolloutTraitList) DeepCopyInto(out *RolloutTraitList)

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

func (*RolloutTraitList) DeepCopyObject added in v0.3.1

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

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

type RolloutTraitSpec added in v0.3.1

type RolloutTraitSpec struct {
	// TargetRef references a target resource that contains the newer version
	// of the software. We assumed that new resource already exists.
	// This is the only resource we work on if the resource is a stateful resource (cloneset/statefulset)
	TargetRef runtimev1alpha1.TypedReference `json:"targetRef"`

	// SourceRef references the list of resources that contains the older version
	// of the software. We assume that it's the first time to deploy when we cannot find any source.
	// +optional
	SourceRef []runtimev1alpha1.TypedReference `json:"sourceRef,omitempty"`

	// RolloutPlan is the details on how to rollout the resources
	RolloutPlan RolloutPlan `json:"rolloutPlan"`
}

RolloutTraitSpec defines the desired state of RolloutTrait

func (*RolloutTraitSpec) DeepCopy added in v0.3.1

func (in *RolloutTraitSpec) DeepCopy() *RolloutTraitSpec

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

func (*RolloutTraitSpec) DeepCopyInto added in v0.3.1

func (in *RolloutTraitSpec) DeepCopyInto(out *RolloutTraitSpec)

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

type RolloutWebhook added in v0.3.1

type RolloutWebhook struct {
	// Type of this webhook
	Type HookType `json:"type"`

	// Name of this webhook
	Name string `json:"name"`

	// URL address of this webhook
	URL string `json:"url"`

	// Method the HTTP call method, default is POST
	Method string `json:"method,omitempty"`

	// ExpectedStatus contains all the expected http status code that we will accept as success
	ExpectedStatus []int `json:"expectedStatus,omitempty"`

	// Metadata (key-value pairs) for this webhook
	// +optional
	Metadata *map[string]string `json:"metadata,omitempty"`
}

RolloutWebhook holds the reference to external checks used for canary analysis

func (*RolloutWebhook) DeepCopy added in v0.3.1

func (in *RolloutWebhook) DeepCopy() *RolloutWebhook

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

func (*RolloutWebhook) DeepCopyInto added in v0.3.1

func (in *RolloutWebhook) DeepCopyInto(out *RolloutWebhook)

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

type RolloutWebhookPayload added in v0.3.1

type RolloutWebhookPayload struct {
	// Name of the upgrading resource
	Name string `json:"name"`

	// Namespace of the upgrading resource
	Namespace string `json:"namespace"`

	// Phase of the rollout
	Phase string `json:"phase"`

	// Metadata (key-value pairs) are the extra data send to this webhook
	Metadata map[string]string `json:"metadata,omitempty"`
}

RolloutWebhookPayload holds the info and metadata sent to webhooks

func (*RolloutWebhookPayload) DeepCopy added in v0.3.1

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

func (*RolloutWebhookPayload) DeepCopyInto added in v0.3.1

func (in *RolloutWebhookPayload) DeepCopyInto(out *RolloutWebhookPayload)

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