Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the zalando v1 API group +kubebuilder:object:generate=true +groupName=zalando.org
Index ¶
- Variables
- func Resource(resource string) schema.GroupResource
- type ActualTraffic
- type Autoscaler
- type AutoscalerMetricType
- type AutoscalerMetrics
- type DesiredTraffic
- type EmbeddedObjectMeta
- type EmbeddedObjectMetaWithAnnotations
- type HPAScalingRules
- type HorizontalPodAutoscaler
- type HorizontalPodAutoscalerBehavior
- type MetricsEndpoint
- type MetricsQueue
- type PodTemplateSpec
- type PrescalingStatus
- type RouteGroupSpec
- type Stack
- type StackLifecycle
- type StackList
- type StackServiceSpec
- type StackSet
- type StackSetExternalIngressSpec
- type StackSetIngressSpec
- type StackSetList
- type StackSetSpec
- type StackSetStatus
- type StackSpec
- type StackSpecTemplate
- type StackStatus
- type StackTemplate
Constants ¶
This section is empty.
Variables ¶
var ( // AddToScheme applies all the stored functions to the scheme. A non-nil error // indicates that one function failed and the attempt was abandoned. AddToScheme = schemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: zalando.GroupName, Version: "v1"}
SchemeGroupVersion is the group version used to register these objects.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group-qualified GroupResource.
Types ¶
type ActualTraffic ¶ added in v1.1.0
type ActualTraffic struct { StackName string `json:"stackName"` ServiceName string `json:"serviceName"` ServicePort intstr.IntOrString `json:"servicePort"` // +kubebuilder:validation:Format=float // +kubebuilder:validation:Type=number Weight float64 `json:"weight"` }
Traffic is the actual traffic setting on services for this stackset, controllers interested in current traffic decision should read this.
type Autoscaler ¶
type Autoscaler struct { // minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. // It defaults to 1 pod. // +optional MinReplicas *int32 `json:"minReplicas,omitempty"` // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. // It cannot be less that minReplicas. MaxReplicas int32 `json:"maxReplicas"` Metrics []AutoscalerMetrics `json:"metrics"` // behavior configures the scaling behavior of the target // in both Up and Down directions (scaleUp and scaleDown fields respectively). // If not set, the default HPAScalingRules for scale up and scale down are used. // +optional Behavior *HorizontalPodAutoscalerBehavior `json:"behavior,omitempty" protobuf:"bytes,5,opt,name=behavior"` }
Autoscaler is the autoscaling definition for a stack +k8s:deepcopy-gen=true
func (*Autoscaler) DeepCopy ¶
func (in *Autoscaler) DeepCopy() *Autoscaler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Autoscaler.
func (*Autoscaler) DeepCopyInto ¶
func (in *Autoscaler) DeepCopyInto(out *Autoscaler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AutoscalerMetricType ¶ added in v1.3.3
type AutoscalerMetricType string
AutoscalerMetricType is the type of the metric used for scaling. +kubebuilder:validation:Enum=CPU;Memory;AmazonSQS;PodJSON;Ingress;ZMON
const ( CPUAutoscalerMetric AutoscalerMetricType = "CPU" MemoryAutoscalerMetric AutoscalerMetricType = "Memory" AmazonSQSAutoscalerMetric AutoscalerMetricType = "AmazonSQS" PodJSONAutoscalerMetric AutoscalerMetricType = "PodJSON" IngressAutoscalerMetric AutoscalerMetricType = "Ingress" ZMONAutoscalerMetric AutoscalerMetricType = "ZMON" )
type AutoscalerMetrics ¶
type AutoscalerMetrics struct { Type AutoscalerMetricType `json:"type"` Average *resource.Quantity `json:"average,omitempty"` Endpoint *MetricsEndpoint `json:"endpoint,omitempty"` AverageUtilization *int32 `json:"averageUtilization,omitempty"` Queue *MetricsQueue `json:"queue,omitempty"` }
AutoscalerMetrics is the type of metric to be be used for autoscaling. +k8s:deepcopy-gen=true
func (*AutoscalerMetrics) DeepCopy ¶
func (in *AutoscalerMetrics) DeepCopy() *AutoscalerMetrics
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoscalerMetrics.
func (*AutoscalerMetrics) DeepCopyInto ¶
func (in *AutoscalerMetrics) DeepCopyInto(out *AutoscalerMetrics)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DesiredTraffic ¶ added in v1.1.0
type DesiredTraffic struct { StackName string `json:"stackName"` // +kubebuilder:validation:Type=number // +kubebuilder:validation:Format=float Weight float64 `json:"weight"` }
DesiredTraffic is the desired traffic setting to direct traffic to a stack. This is meant to use by clients to orchestrate traffic switching.
type EmbeddedObjectMeta ¶ added in v1.3.3
type EmbeddedObjectMeta struct { // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. // More info: http://kubernetes.io/docs/user-guide/labels // +optional Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"` }
EmbeddedObject defines the metadata which can be attached to a resource. It's a slimmed down version of metav1.ObjectMeta only containing labels and annotations. +k8s:deepcopy-gen=true
func (*EmbeddedObjectMeta) DeepCopy ¶ added in v1.3.3
func (in *EmbeddedObjectMeta) DeepCopy() *EmbeddedObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedObjectMeta.
func (*EmbeddedObjectMeta) DeepCopyInto ¶ added in v1.3.3
func (in *EmbeddedObjectMeta) DeepCopyInto(out *EmbeddedObjectMeta)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedObjectMetaWithAnnotations ¶ added in v1.3.3
type EmbeddedObjectMetaWithAnnotations struct { // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"` }
EmbeddedObjectMetaWithAnnotations defines the metadata which can be attached to a resource. It's a slimmed down version of metav1.ObjectMeta only containing annotations. +k8s:deepcopy-gen=true
func (*EmbeddedObjectMetaWithAnnotations) DeepCopy ¶ added in v1.3.3
func (in *EmbeddedObjectMetaWithAnnotations) DeepCopy() *EmbeddedObjectMetaWithAnnotations
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedObjectMetaWithAnnotations.
func (*EmbeddedObjectMetaWithAnnotations) DeepCopyInto ¶ added in v1.3.3
func (in *EmbeddedObjectMetaWithAnnotations) DeepCopyInto(out *EmbeddedObjectMetaWithAnnotations)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HPAScalingRules ¶ added in v1.3.3
type HPAScalingRules struct { // StabilizationWindowSeconds is the number of seconds for which past recommendations should be // considered while scaling up or scaling down. // StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). // If not set, use the default values: // - For scale up: 0 (i.e. no stabilization is done). // - For scale down: 300 (i.e. the stabilization window is 300 seconds long). // +optional StabilizationWindowSeconds *int32 `json:"stabilizationWindowSeconds,omitempty" protobuf:"varint,3,opt,name=stabilizationWindowSeconds"` // selectPolicy is used to specify which policy should be used. // If not set, the default value MaxPolicySelect is used. // +optional SelectPolicy *autoscalingv2beta2.ScalingPolicySelect `json:"selectPolicy,omitempty" protobuf:"bytes,1,opt,name=selectPolicy"` // policies is a list of potential scaling polices which can be used during scaling. // At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid // +optional Policies []autoscalingv2beta2.HPAScalingPolicy `json:"policies,omitempty" protobuf:"bytes,2,rep,name=policies"` }
HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. +k8s:deepcopy-gen=true
func (*HPAScalingRules) DeepCopy ¶ added in v1.3.3
func (in *HPAScalingRules) DeepCopy() *HPAScalingRules
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingRules.
func (*HPAScalingRules) DeepCopyInto ¶ added in v1.3.3
func (in *HPAScalingRules) DeepCopyInto(out *HPAScalingRules)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HorizontalPodAutoscaler ¶
type HorizontalPodAutoscaler struct { // minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. // It defaults to 1 pod. // +optional MinReplicas *int32 `json:"minReplicas,omitempty"` // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. // It cannot be less that minReplicas. MaxReplicas int32 `json:"maxReplicas"` // metrics contains the specifications for which to use to calculate the // desired replica count (the maximum replica count across all metrics will // be used). The desired replica count is calculated multiplying the // ratio between the target value and the current value by the current // number of pods. Ergo, metrics used must decrease as the pod count is // increased, and vice-versa. See the individual metric source types for // more information about how each type of metric must respond. // +optional Metrics []autoscaling.MetricSpec `json:"metrics,omitempty"` // behavior configures the scaling behavior of the target // in both Up and Down directions (scaleUp and scaleDown fields respectively). // If not set, the default HPAScalingRules for scale up and scale down are used. // +optional Behavior *HorizontalPodAutoscalerBehavior `json:"behavior,omitempty" protobuf:"bytes,5,opt,name=behavior"` }
HorizontalPodAutoscaler is the Autoscaling configuration of a Stack. If defined an HPA will be created for the Stack. +k8s:deepcopy-gen=true
func (*HorizontalPodAutoscaler) DeepCopy ¶
func (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.
func (*HorizontalPodAutoscaler) DeepCopyInto ¶
func (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HorizontalPodAutoscalerBehavior ¶ added in v1.3.3
type HorizontalPodAutoscalerBehavior struct { // scaleUp is scaling policy for scaling Up. // If not set, the default value is the higher of: // * increase no more than 4 pods per 60 seconds // * double the number of pods per 60 seconds // No stabilization is used. // +optional ScaleUp *HPAScalingRules `json:"scaleUp,omitempty" protobuf:"bytes,1,opt,name=scaleUp"` // scaleDown is scaling policy for scaling Down. // If not set, the default value is to allow to scale down to minReplicas pods, with a // 300 second stabilization window (i.e., the highest recommendation for // the last 300sec is used). // +optional ScaleDown *HPAScalingRules `json:"scaleDown,omitempty" protobuf:"bytes,2,opt,name=scaleDown"` }
HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). +k8s:deepcopy-gen=true
func (*HorizontalPodAutoscalerBehavior) DeepCopy ¶ added in v1.3.3
func (in *HorizontalPodAutoscalerBehavior) DeepCopy() *HorizontalPodAutoscalerBehavior
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerBehavior.
func (*HorizontalPodAutoscalerBehavior) DeepCopyInto ¶ added in v1.3.3
func (in *HorizontalPodAutoscalerBehavior) DeepCopyInto(out *HorizontalPodAutoscalerBehavior)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricsEndpoint ¶
type MetricsEndpoint struct { Port int32 `json:"port"` Path string `json:"path"` Key string `json:"key"` Name string `json:"name"` }
MetricsEndpoint specified the endpoint where the custom endpoint where the metrics can be queried +k8s:deepcopy-gen=true
func (*MetricsEndpoint) DeepCopy ¶
func (in *MetricsEndpoint) DeepCopy() *MetricsEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsEndpoint.
func (*MetricsEndpoint) DeepCopyInto ¶
func (in *MetricsEndpoint) DeepCopyInto(out *MetricsEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricsQueue ¶
MetricsQueue specifies the SQS queue whose length should be used for scaling. +k8s:deepcopy-gen=true
func (*MetricsQueue) DeepCopy ¶
func (in *MetricsQueue) DeepCopy() *MetricsQueue
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsQueue.
func (*MetricsQueue) DeepCopyInto ¶
func (in *MetricsQueue) DeepCopyInto(out *MetricsQueue)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodTemplateSpec ¶ added in v1.3.3
type PodTemplateSpec struct { // Object's metadata. // +optional EmbeddedObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Specification of the desired behavior of the pod. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status // +optional Spec v1.PodSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` }
PodTemplateSpec describes the data a pod should have when created from a template +k8s:deepcopy-gen=true
func (*PodTemplateSpec) DeepCopy ¶ added in v1.3.3
func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.
func (*PodTemplateSpec) DeepCopyInto ¶ added in v1.3.3
func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrescalingStatus ¶
type PrescalingStatus struct { // Active indicates if prescaling is current active // +optional Active bool `json:"active"` // Replicas is the number of replicas required for prescaling // +optional Replicas int32 `json:"replicas,omitempty"` // DesiredTrafficWeight is the desired traffic weight that the stack was prescaled for // +optional // +kubebuilder:validation:Format=float // +kubebuilder:validation:Type=number DesiredTrafficWeight float64 `json:"desiredTrafficWeight,omitempty"` // LastTrafficIncrease is the timestamp when the traffic was last increased on the stack // +optional LastTrafficIncrease *metav1.Time `json:"lastTrafficIncrease,omitempty"` }
Prescaling hold prescaling information +k8s:deepcopy-gen=true
func (*PrescalingStatus) DeepCopy ¶
func (in *PrescalingStatus) DeepCopy() *PrescalingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrescalingStatus.
func (*PrescalingStatus) DeepCopyInto ¶
func (in *PrescalingStatus) DeepCopyInto(out *PrescalingStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RouteGroupSpec ¶ added in v1.3.5
type RouteGroupSpec struct { EmbeddedObjectMetaWithAnnotations `json:"metadata,omitempty"` // Hosts is the list of hostnames to add to the routegroup. Hosts []string `json:"hosts"` // AdditionalBackends is the list of additional backends to use for // routing. // +optional AdditionalBackends []rg.RouteGroupBackend `json:"additionalBackends,omitempty"` // Routes is the list of routes to be applied to the routegroup. // +kubebuilder:validation:MinItems=1 Routes []rg.RouteGroupRouteSpec `json:"routes"` BackendPort int `json:"backendPort"` }
RouteGroupSpec defines the specification for defining a RouteGroup attached to a StackSet. +k8s:deepcopy-gen=true
func (*RouteGroupSpec) DeepCopy ¶ added in v1.3.5
func (in *RouteGroupSpec) DeepCopy() *RouteGroupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteGroupSpec.
func (*RouteGroupSpec) DeepCopyInto ¶ added in v1.3.5
func (in *RouteGroupSpec) DeepCopyInto(out *RouteGroupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Stack ¶
type Stack struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec StackSpec `json:"spec"` // +optional Status StackStatus `json:"status"` }
Stack defines one version of an application. It is possible to switch traffic between multiple versions of an application. +k8s:deepcopy-gen=true +kubebuilder:printcolumn:name="Desired",type=integer,JSONPath=`.spec.replicas`,description="Number of desired replicas" +kubebuilder:printcolumn:name="Current",type=integer,JSONPath=`.status.replicas`,description="Number of current replicas" +kubebuilder:printcolumn:name="Up-To-Date",type=integer,JSONPath=`.status.updatedReplicas`,description="Number of up-to-date replicas" +kubebuilder:printcolumn:name="Ready",type=integer,JSONPath=`.status.readyReplicas`,description="Number of ready replicas" +kubebuilder:printcolumn:name="Traffic",type=number,JSONPath=`.status.actualTrafficWeight`,description="Current traffic weight for the stack" +kubebuilder:printcolumn:name="No-Traffic-Since",type=date,JSONPath=`.status.noTrafficSince`,description="Time since the stack didn't get any traffic" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Age of the stack" +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.labelSelector
func (*Stack) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Stack.
func (*Stack) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Stack) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackLifecycle ¶
type StackLifecycle struct { // ScaledownTTLSeconds is the ttl in seconds for when Stacks of a // StackSet should be scaled down to 0 replicas in case they are not // getting traffic. // Defaults to 300 seconds. // +optional ScaledownTTLSeconds *int64 `json:"scaledownTTLSeconds,omitempty"` // Limit defines the maximum number of Stacks to keep around. If the // number of Stacks exceeds the limit then the oldest stacks which are // not getting traffic are deleted. // +kubebuilder:validation:Minimum=1 Limit *int32 `json:"limit,omitempty"` }
StackLifecycle defines lifecycle of the Stacks of a StackSet. +k8s:deepcopy-gen=true
func (*StackLifecycle) DeepCopy ¶
func (in *StackLifecycle) DeepCopy() *StackLifecycle
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackLifecycle.
func (*StackLifecycle) DeepCopyInto ¶
func (in *StackLifecycle) DeepCopyInto(out *StackLifecycle)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackList ¶
type StackList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Stack `json:"items"` }
StackList is a list of Stacks. +k8s:deepcopy-gen=true
func (*StackList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackList.
func (*StackList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackServiceSpec ¶
type StackServiceSpec struct { EmbeddedObjectMetaWithAnnotations `json:"metadata,omitempty"` // The list of ports that are exposed by this service. // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies // +patchMergeKey=port // +patchStrategy=merge Ports []v1.ServicePort `json:"ports,omitempty" patchStrategy:"merge" patchMergeKey:"port"` }
StackServiceSpec makes it possible to customize the service generated for a stack. +k8s:deepcopy-gen=true
func (*StackServiceSpec) DeepCopy ¶
func (in *StackServiceSpec) DeepCopy() *StackServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackServiceSpec.
func (*StackServiceSpec) DeepCopyInto ¶
func (in *StackServiceSpec) DeepCopyInto(out *StackServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackSet ¶
type StackSet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec StackSetSpec `json:"spec"` // +optional Status StackSetStatus `json:"status"` }
StackSet describes an application resource. +k8s:deepcopy-gen=true +kubebuilder:printcolumn:name="Stacks",type=integer,JSONPath=`.status.stacks`,description="Number of Stacks belonging to the StackSet" +kubebuilder:printcolumn:name="Ready",type=integer,JSONPath=`.status.readyStacks`,description="Number of Ready Stacks" +kubebuilder:printcolumn:name="Traffic",type=integer,JSONPath=`.status.stacksWithTraffic`,description="Number of Ready Stacks with traffic" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Age of the stack" +kubebuilder:subresource:status
func (*StackSet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSet.
func (*StackSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackSet) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackSetExternalIngressSpec ¶ added in v1.1.0
type StackSetExternalIngressSpec struct {
BackendPort intstr.IntOrString `json:"backendPort"`
}
StackSetExternalIngressSpec defines the required service backendport for ingress managed outside of stackset.
type StackSetIngressSpec ¶
type StackSetIngressSpec struct { EmbeddedObjectMetaWithAnnotations `json:"metadata,omitempty"` Hosts []string `json:"hosts"` BackendPort intstr.IntOrString `json:"backendPort"` // +optional Path string `json:"path"` }
StackSetIngressSpec is the ingress defintion of an StackSet. This includes ingress annotations and a list of hostnames. +k8s:deepcopy-gen=true
func (*StackSetIngressSpec) DeepCopy ¶
func (in *StackSetIngressSpec) DeepCopy() *StackSetIngressSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSetIngressSpec.
func (*StackSetIngressSpec) DeepCopyInto ¶
func (in *StackSetIngressSpec) DeepCopyInto(out *StackSetIngressSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackSetList ¶
type StackSetList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []StackSet `json:"items"` }
+kubebuilder:object:root=true StackSetList is a list of StackSets. +k8s:deepcopy-gen=true
func (*StackSetList) DeepCopy ¶
func (in *StackSetList) DeepCopy() *StackSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSetList.
func (*StackSetList) DeepCopyInto ¶
func (in *StackSetList) DeepCopyInto(out *StackSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StackSetList) DeepCopyObject ¶
func (in *StackSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StackSetSpec ¶
type StackSetSpec struct { // Ingress is the information we need to create ingress and // service. Ingress is optional, because other controller // might create ingress objects, but stackset owns the traffic // switch. In this case we would only have a Traffic, but no // ingress. // +optional Ingress *StackSetIngressSpec `json:"ingress,omitempty"` // ExternalIngress is used to specify the backend port to // generate the services for the stacks. // +optional ExternalIngress *StackSetExternalIngressSpec `json:"externalIngress,omitempty"` // RouteGroup is an alternative to ingress allowing more advanced // routing configuration while still maintaining the ability to switch // traffic to stacks. Use this if you need skipper filters or // predicates. // +optional RouteGroup *RouteGroupSpec `json:"routegroup,omitempty"` // StackLifecycle defines the cleanup rules for old stacks. StackLifecycle StackLifecycle `json:"stackLifecycle"` // StackTemplate container for resources to be created that // belong to one stack. StackTemplate StackTemplate `json:"stackTemplate"` // Traffic is the mapping from a stackset to stack with // weights. It defines the desired traffic. Clients that // orchestrate traffic switching should write this part. Traffic []*DesiredTraffic `json:"traffic,omitempty"` }
StackSetSpec is the spec part of the StackSet. +k8s:deepcopy-gen=true
func (*StackSetSpec) DeepCopy ¶
func (in *StackSetSpec) DeepCopy() *StackSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSetSpec.
func (*StackSetSpec) DeepCopyInto ¶
func (in *StackSetSpec) DeepCopyInto(out *StackSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackSetStatus ¶
type StackSetStatus struct { // Stacks is the number of stacks managed by the StackSet. // +optional Stacks int32 `json:"stacks"` // ReadyStacks is the number of stacks managed by the StackSet which // are considered ready. a Stack is considered ready if: // replicas == readyReplicas == updatedReplicas. // +optional ReadyStacks int32 `json:"readyStacks"` // StacksWithTraffic is the number of stacks managed by the StackSet // which are getting traffic. // +optional StacksWithTraffic int32 `json:"stacksWithTraffic"` // ObservedStackVersion is the version of Stack generated from the current StackSet definition. // TODO: add a more detailed comment // +optional ObservedStackVersion string `json:"observedStackVersion,omitempty"` // Traffic is the actual traffic setting on services for this stackset // +optional Traffic []*ActualTraffic `json:"traffic,omitempty"` }
StackSetStatus is the status section of the StackSet resource. +k8s:deepcopy-gen=true
func (*StackSetStatus) DeepCopy ¶
func (in *StackSetStatus) DeepCopy() *StackSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSetStatus.
func (*StackSetStatus) DeepCopyInto ¶
func (in *StackSetStatus) DeepCopyInto(out *StackSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackSpec ¶
type StackSpec struct { // Number of desired pods. This is a pointer to distinguish between explicit // zero and not specified. Defaults to 1. // +optional Replicas *int32 `json:"replicas,omitempty"` HorizontalPodAutoscaler *HorizontalPodAutoscaler `json:"horizontalPodAutoscaler,omitempty"` // Service can be used to configure a custom service, if not // set stackset-controller will generate a service based on // container port and ingress backendport. Service *StackServiceSpec `json:"service,omitempty"` // PodTemplate describes the pods that will be created. PodTemplate PodTemplateSpec `json:"podTemplate"` Autoscaler *Autoscaler `json:"autoscaler,omitempty"` // Strategy describe the rollout strategy for the underlying deployment Strategy *appsv1.DeploymentStrategy `json:"strategy,omitempty"` }
StackSpec is the spec part of the Stack. +k8s:deepcopy-gen=true
func (*StackSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSpec.
func (*StackSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackSpecTemplate ¶
type StackSpecTemplate struct { StackSpec `json:",inline"` // +kubebuilder:validation:Pattern="^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$" Version string `json:"version"` }
StackSpecTemplate is the spec part of the Stack. +k8s:deepcopy-gen=true
func (*StackSpecTemplate) DeepCopy ¶
func (in *StackSpecTemplate) DeepCopy() *StackSpecTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSpecTemplate.
func (*StackSpecTemplate) DeepCopyInto ¶
func (in *StackSpecTemplate) DeepCopyInto(out *StackSpecTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackStatus ¶
type StackStatus struct { // ActualTrafficWeight is the actual amount of traffic currently // routed to the stack. // TODO: should we be using floats in the API? // +optional // +kubebuilder:validation:Format=float // +kubebuilder:validation:Type=number ActualTrafficWeight float64 `json:"actualTrafficWeight"` // DesiredTrafficWeight is desired amount of traffic to be routed to // the stack. // +optional // +kubebuilder:validation:Format=float // +kubebuilder:validation:Type=number DesiredTrafficWeight float64 `json:"desiredTrafficWeight"` // Replicas is the number of replicas in the Deployment managed by the // stack. // +optional Replicas int32 `json:"replicas"` // ReadyReplicas is the number of ready replicas in the Deployment // managed by the stack. // +optional ReadyReplicas int32 `json:"readyReplicas"` // UpdatedReplicas is the number of updated replicas in the Deployment // managed by the stack. // +optional UpdatedReplicas int32 `json:"updatedReplicas"` // DesiredReplicas is the number of desired replicas in the Deployment // +optional DesiredReplicas int32 `json:"desiredReplicas"` // Prescaling current prescaling information // +optional Prescaling PrescalingStatus `json:"prescalingStatus"` // NoTrafficSince is the timestamp defining the last time the stack was // observed getting traffic. NoTrafficSince *metav1.Time `json:"noTrafficSince,omitempty"` // LabelSelector is the label selector used to find all pods managed by // a stack. LabelSelector string `json:"labelSelector,omitempty"` }
StackStatus is the status part of the Stack. +k8s:deepcopy-gen=true
func (*StackStatus) DeepCopy ¶
func (in *StackStatus) DeepCopy() *StackStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackStatus.
func (*StackStatus) DeepCopyInto ¶
func (in *StackStatus) DeepCopyInto(out *StackStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StackTemplate ¶
type StackTemplate struct { EmbeddedObjectMetaWithAnnotations `json:"metadata,omitempty"` Spec StackSpecTemplate `json:"spec"` }
StackTemplate defines the template used for the Stack created from a StackSet definition. +k8s:deepcopy-gen=true
func (*StackTemplate) DeepCopy ¶
func (in *StackTemplate) DeepCopy() *StackTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackTemplate.
func (*StackTemplate) DeepCopyInto ¶
func (in *StackTemplate) DeepCopyInto(out *StackTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.