v1

package
v1.3.10 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2020 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the zalando v1 API group +kubebuilder:object:generate=true +groupName=zalando.org

Index

Constants

This section is empty.

Variables

View Source
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
)
View Source
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

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

func (*EmbeddedObjectMetaWithAnnotations) DeepCopyInto added in v1.3.3

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

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

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

func (*HorizontalPodAutoscalerBehavior) DeepCopyInto added in v1.3.3

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

type MetricsQueue struct {
	Name   string `json:"name"`
	Region string `json:"region"`
}

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 {
	// Hosts is the list of hostnames to add to the routegroup.
	Hosts []string `json:"hosts,omitempty"`
	// 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,omitempty"`
	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

func (in *Stack) DeepCopy() *Stack

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

func (*Stack) DeepCopyInto

func (in *Stack) DeepCopyInto(out *Stack)

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

func (*Stack) DeepCopyObject

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

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

func (in *StackList) DeepCopy() *StackList

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

func (*StackList) DeepCopyInto

func (in *StackList) DeepCopyInto(out *StackList)

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

func (*StackList) DeepCopyObject

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

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

func (in *StackSet) DeepCopy() *StackSet

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

func (*StackSet) DeepCopyInto

func (in *StackSet) DeepCopyInto(out *StackSet)

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

func (*StackSet) DeepCopyObject

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

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

func (in *StackSpec) DeepCopy() *StackSpec

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

func (*StackSpec) DeepCopyInto

func (in *StackSpec) DeepCopyInto(out *StackSpec)

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.

Jump to

Keyboard shortcuts

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