Documentation ¶
Overview ¶
+k8s:openapi-gen=true +k8s:deepcopy-gen=package +k8s:defaulter-gen=TypeMeta +groupName=apps.k8s.appscode.com
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func RegisterDefaults(scheme *runtime.Scheme) error
- func Resource(resource string) schema.GroupResource
- func SetObjectDefaults_PetSet(in *PetSet)
- func SetObjectDefaults_PetSetList(in *PetSetList)
- type Affinity
- type NodeAffinityRule
- type NodeSpreadConstraint
- type PetSet
- func (_ PetSet) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
- func (in *PetSet) DeepCopy() *PetSet
- func (in *PetSet) DeepCopyInto(out *PetSet)
- func (in *PetSet) DeepCopyObject() runtime.Object
- func (obj *PetSet) Default()
- func (r *PetSet) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *PetSet) ValidateCreate() (admission.Warnings, error)
- func (r *PetSet) ValidateDelete() (admission.Warnings, error)
- func (r *PetSet) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type PetSetList
- type PetSetSpec
- type PlacementPolicy
- type PlacementPolicyList
- type PlacementPolicySpec
- type PodTemplateSpec
- type TopologyDomain
- type ZoneSpreadConstraint
Constants ¶
const ( ResourceKindPetSet = "PetSet" ResourcePetSet = "petset" ResourcePetSets = "petsets" )
const ( ResourceKindPlacementPolicy = "PlacementPolicy" ResourcePlacementPolicy = "placementpolicy" ResourcePlacementPolicies = "placementpolicies" )
const GroupName = "apps.k8s.appscode.com"
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} // 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 RegisterDefaults ¶
RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
func SetObjectDefaults_PetSet ¶
func SetObjectDefaults_PetSet(in *PetSet)
func SetObjectDefaults_PetSetList ¶
func SetObjectDefaults_PetSetList(in *PetSetList)
Types ¶
type Affinity ¶ added in v0.0.2
type Affinity struct { // Describes node affinity scheduling rules for the pod. // +optional NodeAffinity []NodeAffinityRule `json:"nodeAffinity,omitempty"` }
Affinity is a group of affinity scheduling rules.
func (*Affinity) DeepCopy ¶ added in v0.0.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Affinity.
func (*Affinity) DeepCopyInto ¶ added in v0.0.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeAffinityRule ¶
type NodeAffinityRule struct { TopologyKey string `json:"topologyKey"` Domains []TopologyDomain `json:"domains"` // +kubebuilder:default=DoNotSchedule WhenUnsatisfiable v1.UnsatisfiableConstraintAction `json:"whenUnsatisfiable"` // Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. // +kubebuilder:default=50 Weight int32 `json:"weight"` }
func (*NodeAffinityRule) DeepCopy ¶
func (in *NodeAffinityRule) DeepCopy() *NodeAffinityRule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAffinityRule.
func (*NodeAffinityRule) DeepCopyInto ¶
func (in *NodeAffinityRule) DeepCopyInto(out *NodeAffinityRule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSpreadConstraint ¶
type NodeSpreadConstraint struct { // +kubebuilder:default=1 MaxSkew int32 `json:"maxSkew"` // +kubebuilder:default=DoNotSchedule WhenUnsatisfiable v1.UnsatisfiableConstraintAction `json:"whenUnsatisfiable"` }
func (*NodeSpreadConstraint) DeepCopy ¶
func (in *NodeSpreadConstraint) DeepCopy() *NodeSpreadConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSpreadConstraint.
func (*NodeSpreadConstraint) DeepCopyInto ¶
func (in *NodeSpreadConstraint) DeepCopyInto(out *NodeSpreadConstraint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PetSet ¶
type PetSet struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Spec defines the desired identities of pods in this set. // +optional Spec PetSetSpec `json:"spec,omitempty"` // Status is the current status of Pods in this PetSet. This data // may be out of date by some window of time. // +optional Status apps.StatefulSetStatus `json:"status,omitempty"` }
PetSet represents a set of pods with consistent identities. Identities are defined as:
- Network: A single stable DNS and hostname.
- Storage: As many VolumeClaims as requested.
The PetSet guarantees that a given network identity will always map to the same storage identity.
func (PetSet) CustomResourceDefinition ¶ added in v0.0.3
func (_ PetSet) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
func (*PetSet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PetSet.
func (*PetSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PetSet) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*PetSet) Default ¶
func (obj *PetSet) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*PetSet) SetupWebhookWithManager ¶
SetupWebhookWithManager will setup the manager to manage the webhooks
func (*PetSet) ValidateCreate ¶
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*PetSet) ValidateDelete ¶
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
type PetSetList ¶
type PetSetList struct { metav1.TypeMeta `json:",inline"` // Standard list's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional metav1.ListMeta `json:"metadata,omitempty"` // Items is the list of stateful sets. Items []PetSet `json:"items"` }
PetSetList is a collection of PetSets.
func (*PetSetList) DeepCopy ¶
func (in *PetSetList) DeepCopy() *PetSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PetSetList.
func (*PetSetList) DeepCopyInto ¶
func (in *PetSetList) DeepCopyInto(out *PetSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PetSetList) DeepCopyObject ¶
func (in *PetSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PetSetSpec ¶
type PetSetSpec struct { // replicas is the desired number of replicas of the given Template. // These are replicas in the sense that they are instantiations of the // same Template, but individual replicas also have a consistent identity. // If unspecified, defaults to 1. // TODO: Consider a rename of this field. // +optional Replicas *int32 `json:"replicas,omitempty"` // selector is a label query over pods that should match the replica count. // It must match the pod template's labels. // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors Selector *metav1.LabelSelector `json:"selector"` // template is the object that describes the pod that will be created if // insufficient replicas are detected. Each pod stamped out by the PetSet // will fulfill this Template, but have a unique identity from the rest // of the PetSet. Each pod will be named with the format // <petsetname>-<podindex>. For example, a pod in a PetSet named // "web" with index number "3" would be named "web-3". // The only allowed template.spec.restartPolicy value is "Always". Template PodTemplateSpec `json:"template"` // volumeClaimTemplates is a list of claims that pods are allowed to reference. // The PetSet controller is responsible for mapping network identities to // claims in a way that maintains the identity of a pod. Every claim in // this list must have at least one matching (by name) volumeMount in one // container in the template. A claim in this list takes precedence over // any volumes in the template, with the same name. // TODO: Define the behavior if a claim already exists with the same name. // +optional // +listType=atomic VolumeClaimTemplates []v1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` // serviceName is the name of the service that governs this PetSet. // This service must exist before the PetSet, and is responsible for // the network identity of the set. Pods get DNS/hostnames that follow the // pattern: pod-specific-string.serviceName.default.svc.cluster.local // where "pod-specific-string" is managed by the PetSet controller. ServiceName string `json:"serviceName"` // podManagementPolicy controls how pods are created during initial scale up, // when replacing pods on nodes, or when scaling down. The default policy is // `OrderedReady`, where pods are created in increasing order (pod-0, then // pod-1, etc) and the controller will wait until each pod is ready before // continuing. When scaling down, the pods are removed in the opposite order. // The alternative policy is `Parallel` which will create pods in parallel // to match the desired scale without waiting, and on scale down will delete // all pods at once. // +optional PodManagementPolicy apps.PodManagementPolicyType `json:"podManagementPolicy,omitempty"` // updateStrategy indicates the PetSetUpdateStrategy that will be // employed to update Pods in the PetSet when a revision is made to // Template. UpdateStrategy apps.StatefulSetUpdateStrategy `json:"updateStrategy,omitempty"` // revisionHistoryLimit is the maximum number of revisions that will // be maintained in the PetSet's revision history. The revision history // consists of all revisions not represented by a currently applied // PetSetSpec version. The default value is 10. RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing for it to be considered available. // Defaults to 0 (pod will be considered available as soon as it is ready) // +optional MinReadySeconds int32 `json:"minReadySeconds,omitempty"` // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent // volume claims created from volumeClaimTemplates. By default, all persistent // volume claims are created as needed and retained until manually deleted. This // policy allows the lifecycle to be altered, for example by deleting persistent // volume claims when their stateful set is deleted, or when their pod is scaled // down. This requires the PetSetAutoDeletePVC feature gate to be enabled, // which is alpha. +optional PersistentVolumeClaimRetentionPolicy *apps.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty"` // ordinals controls the numbering of replica indices in a PetSet. The // default ordinals behavior assigns a "0" index to the first replica and // increments the index by one for each additional replica requested. Using // the ordinals field requires the PetSetStartOrdinal feature gate to be // enabled, which is beta. // +optional Ordinals *apps.StatefulSetOrdinals `json:"ordinals,omitempty"` // +optional PodPlacementPolicy *v1.LocalObjectReference `json:"podPlacementPolicy,omitempty"` }
A PetSetSpec is the specification of a PetSet.
func (*PetSetSpec) DeepCopy ¶
func (in *PetSetSpec) DeepCopy() *PetSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PetSetSpec.
func (*PetSetSpec) DeepCopyInto ¶
func (in *PetSetSpec) DeepCopyInto(out *PetSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlacementPolicy ¶
type PlacementPolicy struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Spec defines the desired identities of pods in this set. // +optional Spec PlacementPolicySpec `json:"spec,omitempty"` }
PlacementPolicy represents a set of pods with consistent identities. Identities are defined as:
- Network: A single stable DNS and hostname.
- Storage: As many VolumeClaims as requested.
The PlacementPolicy guarantees that a given network identity will always map to the same storage identity.
func (PlacementPolicy) CustomResourceDefinition ¶ added in v0.0.3
func (_ PlacementPolicy) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
func (*PlacementPolicy) DeepCopy ¶
func (in *PlacementPolicy) DeepCopy() *PlacementPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementPolicy.
func (*PlacementPolicy) DeepCopyInto ¶
func (in *PlacementPolicy) DeepCopyInto(out *PlacementPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PlacementPolicy) DeepCopyObject ¶
func (in *PlacementPolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PlacementPolicyList ¶
type PlacementPolicyList struct { metav1.TypeMeta `json:",inline"` // Standard list's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional metav1.ListMeta `json:"metadata,omitempty"` // Items is the list of stateful sets. Items []PlacementPolicy `json:"items"` }
PlacementPolicyList is a collection of PlacementPolicys.
func (*PlacementPolicyList) DeepCopy ¶
func (in *PlacementPolicyList) DeepCopy() *PlacementPolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementPolicyList.
func (*PlacementPolicyList) DeepCopyInto ¶
func (in *PlacementPolicyList) DeepCopyInto(out *PlacementPolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PlacementPolicyList) DeepCopyObject ¶
func (in *PlacementPolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type PlacementPolicySpec ¶
type PlacementPolicySpec struct { // +optional ZoneSpreadConstraint *ZoneSpreadConstraint `json:"zoneSpreadConstraint,omitempty"` // +optional NodeSpreadConstraint *NodeSpreadConstraint `json:"nodeSpreadConstraint,omitempty"` // If specified, the pod's scheduling constraints // +optional Affinity *Affinity `json:"affinity,omitempty"` }
A PlacementPolicySpec is the specification of a PlacementPolicy.
func (*PlacementPolicySpec) DeepCopy ¶
func (in *PlacementPolicySpec) DeepCopy() *PlacementPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementPolicySpec.
func (*PlacementPolicySpec) DeepCopyInto ¶
func (in *PlacementPolicySpec) DeepCopyInto(out *PlacementPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodTemplateSpec ¶
type PodTemplateSpec struct { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // 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"` }
PodTemplateSpec describes the data a pod should have when created from a template
func (*PodTemplateSpec) DeepCopy ¶
func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.
func (*PodTemplateSpec) DeepCopyInto ¶
func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TopologyDomain ¶
func (*TopologyDomain) DeepCopy ¶
func (in *TopologyDomain) DeepCopy() *TopologyDomain
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyDomain.
func (*TopologyDomain) DeepCopyInto ¶
func (in *TopologyDomain) DeepCopyInto(out *TopologyDomain)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ZoneSpreadConstraint ¶
type ZoneSpreadConstraint struct { // +kubebuilder:default=1 MaxSkew int32 `json:"maxSkew"` // +kubebuilder:default=DoNotSchedule WhenUnsatisfiable v1.UnsatisfiableConstraintAction `json:"whenUnsatisfiable"` }
func (*ZoneSpreadConstraint) DeepCopy ¶
func (in *ZoneSpreadConstraint) DeepCopy() *ZoneSpreadConstraint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoneSpreadConstraint.
func (*ZoneSpreadConstraint) DeepCopyInto ¶
func (in *ZoneSpreadConstraint) DeepCopyInto(out *ZoneSpreadConstraint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.