package v1 import ( "cue.dev/x/k8s.io/apimachinery/pkg/runtime" "cue.dev/x/k8s.io/apimachinery/pkg/apis/meta/v1" v1_9 "cue.dev/x/k8s.io/api/core/v1" "cue.dev/x/k8s.io/apimachinery/pkg/util/intstr" ) // ControllerRevision implements an immutable snapshot of state // data. Clients are responsible for serializing and // deserializing the objects that contain their internal state. // Once a ControllerRevision has been successfully created, it // can not be updated. The API Server will fail validation of all // requests that attempt to mutate the Data field. // ControllerRevisions may, however, be deleted. Note that, due // to its use by both the DaemonSet and StatefulSet controllers // for update and rollback, this object is beta. However, it may // be subject to name and representation changes in future // releases, and clients should not depend on its stability. It // is primarily for internal use by controllers. #ControllerRevision: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Data is the serialized representation of the state. "data"?: runtime.#RawExtension // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ControllerRevision" // Standard object's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ObjectMeta // Revision indicates the revision of the state represented by // Data. "revision"!: int64 & int } // ControllerRevisionList is a resource containing a list of // ControllerRevision objects. #ControllerRevisionList: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Items is the list of ControllerRevisions "items"!: [...#ControllerRevision] // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ControllerRevisionList" // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ListMeta } // DaemonSet represents the configuration of a daemon set. #DaemonSet: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "DaemonSet" // Standard object's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ObjectMeta // The desired behavior of this daemon set. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status "spec"?: #DaemonSetSpec // The current status of this daemon set. This data may be out of // date by some window of time. Populated by the system. // Read-only. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status "status"?: #DaemonSetStatus } // DaemonSetCondition describes the state of a DaemonSet at a // certain point. #DaemonSetCondition: { // Last time the condition transitioned from one status to // another. "lastTransitionTime"?: v1.#Time // A human readable message indicating details about the // transition. "message"?: string // The reason for the condition's last transition. "reason"?: string // Status of the condition, one of True, False, Unknown. "status"!: string // Type of DaemonSet condition. "type"!: string } // DaemonSetList is a collection of daemon sets. #DaemonSetList: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // A list of daemon sets. "items"!: [...#DaemonSet] // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "DaemonSetList" // Standard list metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ListMeta } // DaemonSetSpec is the specification of a daemon set. #DaemonSetSpec: { // The minimum number of seconds for which a newly created // DaemonSet 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). "minReadySeconds"?: int32 & int // The number of old history to retain to allow rollback. This is // a pointer to distinguish between explicit zero and not // specified. Defaults to 10. "revisionHistoryLimit"?: int32 & int // A label query over pods that are managed by the daemon set. // Must match in order to be controlled. It must match the pod // template's labels. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors "selector"!: v1.#LabelSelector // An object that describes the pod that will be created. The // DaemonSet will create exactly one copy of this pod on every // node that matches the template's node selector (or on every // node if no node selector is specified). The only allowed // template.spec.restartPolicy value is "Always". More info: // https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template "template"!: v1_9.#PodTemplateSpec // An update strategy to replace existing DaemonSet pods with new // pods. "updateStrategy"?: #DaemonSetUpdateStrategy } // DaemonSetStatus represents the current status of a daemon set. #DaemonSetStatus: { // Count of hash collisions for the DaemonSet. The DaemonSet // controller uses this field as a collision avoidance mechanism // when it needs to create the name for the newest // ControllerRevision. "collisionCount"?: int32 & int // Represents the latest available observations of a DaemonSet's // current state. "conditions"?: [...#DaemonSetCondition] // The number of nodes that are running at least 1 daemon pod and // are supposed to run the daemon pod. More info: // https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ "currentNumberScheduled"!: int32 & int // The total number of nodes that should be running the daemon pod // (including nodes correctly running the daemon pod). More info: // https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ "desiredNumberScheduled"!: int32 & int // The number of nodes that should be running the daemon pod and // have one or more of the daemon pod running and available // (ready for at least spec.minReadySeconds) "numberAvailable"?: int32 & int // The number of nodes that are running the daemon pod, but are // not supposed to run the daemon pod. More info: // https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ "numberMisscheduled"!: int32 & int // numberReady is the number of nodes that should be running the // daemon pod and have one or more of the daemon pod running with // a Ready Condition. "numberReady"!: int32 & int // The number of nodes that should be running the daemon pod and // have none of the daemon pod running and available (ready for // at least spec.minReadySeconds) "numberUnavailable"?: int32 & int // The most recent generation observed by the daemon set // controller. "observedGeneration"?: int64 & int // The total number of nodes that are running updated daemon pod "updatedNumberScheduled"?: int32 & int } // DaemonSetUpdateStrategy is a struct used to control the update // strategy for a DaemonSet. #DaemonSetUpdateStrategy: { // Rolling update config params. Present only if type = // "RollingUpdate". "rollingUpdate"?: #RollingUpdateDaemonSet // Type of daemon set update. Can be "RollingUpdate" or // "OnDelete". Default is RollingUpdate. "type"?: string } // Deployment enables declarative updates for Pods and // ReplicaSets. #Deployment: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "Deployment" // Standard object's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ObjectMeta // Specification of the desired behavior of the Deployment. "spec"?: #DeploymentSpec // Most recently observed status of the Deployment. "status"?: #DeploymentStatus } // DeploymentCondition describes the state of a deployment at a // certain point. #DeploymentCondition: { // Last time the condition transitioned from one status to // another. "lastTransitionTime"?: v1.#Time // The last time this condition was updated. "lastUpdateTime"?: v1.#Time // A human readable message indicating details about the // transition. "message"?: string // The reason for the condition's last transition. "reason"?: string // Status of the condition, one of True, False, Unknown. "status"!: string // Type of deployment condition. "type"!: string } // DeploymentList is a list of Deployments. #DeploymentList: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Items is the list of Deployments. "items"!: [...#Deployment] // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "DeploymentList" // Standard list metadata. "metadata"?: v1.#ListMeta } // DeploymentSpec is the specification of the desired behavior of // the Deployment. #DeploymentSpec: { // 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) "minReadySeconds"?: int32 & int // Indicates that the deployment is paused. "paused"?: bool // The maximum time in seconds for a deployment to make progress // before it is considered to be failed. The deployment // controller will continue to process failed deployments and a // condition with a ProgressDeadlineExceeded reason will be // surfaced in the deployment status. Note that progress will not // be estimated during the time a deployment is paused. Defaults // to 600s. "progressDeadlineSeconds"?: int32 & int // Number of desired pods. This is a pointer to distinguish // between explicit zero and not specified. Defaults to 1. "replicas"?: int32 & int // The number of old ReplicaSets to retain to allow rollback. This // is a pointer to distinguish between explicit zero and not // specified. Defaults to 10. "revisionHistoryLimit"?: int32 & int // Label selector for pods. Existing ReplicaSets whose pods are // selected by this will be the ones affected by this deployment. // It must match the pod template's labels. "selector"!: v1.#LabelSelector // The deployment strategy to use to replace existing pods with // new ones. "strategy"?: #DeploymentStrategy // Template describes the pods that will be created. The only // allowed template.spec.restartPolicy value is "Always". "template"!: v1_9.#PodTemplateSpec } // DeploymentStatus is the most recently observed status of the // Deployment. #DeploymentStatus: { // Total number of available non-terminating pods (ready for at // least minReadySeconds) targeted by this deployment. "availableReplicas"?: int32 & int // Count of hash collisions for the Deployment. The Deployment // controller uses this field as a collision avoidance mechanism // when it needs to create the name for the newest ReplicaSet. "collisionCount"?: int32 & int // Represents the latest available observations of a deployment's // current state. "conditions"?: [...#DeploymentCondition] // The generation observed by the deployment controller. "observedGeneration"?: int64 & int // Total number of non-terminating pods targeted by this // Deployment with a Ready Condition. "readyReplicas"?: int32 & int // Total number of non-terminating pods targeted by this // deployment (their labels match the selector). "replicas"?: int32 & int // Total number of terminating pods targeted by this deployment. // Terminating pods have a non-null .metadata.deletionTimestamp // and have not yet reached the Failed or Succeeded // .status.phase. // // This is a beta field and requires enabling // DeploymentReplicaSetTerminatingReplicas feature (enabled by // default). "terminatingReplicas"?: int32 & int // Total number of unavailable pods targeted by this deployment. // This is the total number of pods that are still required for // the deployment to have 100% available capacity. They may // either be pods that are running but not yet available or pods // that still have not been created. "unavailableReplicas"?: int32 & int // Total number of non-terminating pods targeted by this // deployment that have the desired template spec. "updatedReplicas"?: int32 & int } // DeploymentStrategy describes how to replace existing pods with // new ones. #DeploymentStrategy: { // Rolling update config params. Present only if // DeploymentStrategyType = RollingUpdate. "rollingUpdate"?: #RollingUpdateDeployment // Type of deployment. Can be "Recreate" or "RollingUpdate". // Default is RollingUpdate. "type"?: string } // ReplicaSet ensures that a specified number of pod replicas are // running at any given time. #ReplicaSet: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ReplicaSet" // If the Labels of a ReplicaSet are empty, they are defaulted to // be the same as the Pod(s) that the ReplicaSet manages. // Standard object's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ObjectMeta // Spec defines the specification of the desired behavior of the // ReplicaSet. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status "spec"?: #ReplicaSetSpec // Status is the most recently observed status of the ReplicaSet. // This data may be out of date by some window of time. Populated // by the system. Read-only. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status "status"?: #ReplicaSetStatus } // ReplicaSetCondition describes the state of a replica set at a // certain point. #ReplicaSetCondition: { // The last time the condition transitioned from one status to // another. "lastTransitionTime"?: v1.#Time // A human readable message indicating details about the // transition. "message"?: string // The reason for the condition's last transition. "reason"?: string // Status of the condition, one of True, False, Unknown. "status"!: string // Type of replica set condition. "type"!: string } // ReplicaSetList is a collection of ReplicaSets. #ReplicaSetList: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // List of ReplicaSets. More info: // https://kubernetes.io/docs/concepts/workloads/controllers/replicaset "items"!: [...#ReplicaSet] // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "ReplicaSetList" // Standard list metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "metadata"?: v1.#ListMeta } // ReplicaSetSpec is the specification of a ReplicaSet. #ReplicaSetSpec: { // 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) "minReadySeconds"?: int32 & int // Replicas is the number of desired pods. This is a pointer to // distinguish between explicit zero and unspecified. Defaults to // 1. More info: // https://kubernetes.io/docs/concepts/workloads/controllers/replicaset "replicas"?: int32 & int // Selector is a label query over pods that should match the // replica count. Label keys and values that must match in order // to be controlled by this replica set. It must match the pod // template's labels. More info: // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors "selector"!: v1.#LabelSelector // Template is the object that describes the pod that will be // created if insufficient replicas are detected. More info: // https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#pod-template "template"?: v1_9.#PodTemplateSpec } // ReplicaSetStatus represents the current status of a ReplicaSet. #ReplicaSetStatus: { // The number of available non-terminating pods (ready for at // least minReadySeconds) for this replica set. "availableReplicas"?: int32 & int // Represents the latest available observations of a replica set's // current state. "conditions"?: [...#ReplicaSetCondition] // The number of non-terminating pods that have labels matching // the labels of the pod template of the replicaset. "fullyLabeledReplicas"?: int32 & int // ObservedGeneration reflects the generation of the most recently // observed ReplicaSet. "observedGeneration"?: int64 & int // The number of non-terminating pods targeted by this ReplicaSet // with a Ready Condition. "readyReplicas"?: int32 & int // Replicas is the most recently observed number of // non-terminating pods. More info: // https://kubernetes.io/docs/concepts/workloads/controllers/replicaset "replicas"!: int32 & int // The number of terminating pods for this replica set. // Terminating pods have a non-null .metadata.deletionTimestamp // and have not yet reached the Failed or Succeeded // .status.phase. // // This is a beta field and requires enabling // DeploymentReplicaSetTerminatingReplicas feature (enabled by // default). "terminatingReplicas"?: int32 & int } // Spec to control the desired behavior of daemon set rolling // update. #RollingUpdateDaemonSet: { // The maximum number of nodes with an existing available // DaemonSet pod that can have an updated DaemonSet pod during // during an update. Value can be an absolute number (ex: 5) or a // percentage of desired pods (ex: 10%). This can not be 0 if // MaxUnavailable is 0. Absolute number is calculated from // percentage by rounding up to a minimum of 1. Default value is // 0. Example: when this is set to 30%, at most 30% of the total // number of nodes that should be running the daemon pod (i.e. // status.desiredNumberScheduled) can have their a new pod // created before the old pod is marked as deleted. The update // starts by launching new pods on 30% of nodes. Once an updated // pod is available (Ready for at least minReadySeconds) the old // DaemonSet pod on that node is marked deleted. If the old pod // becomes unavailable for any reason (Ready transitions to // false, is evicted, or is drained) an updated pod is // immediately created on that node without considering surge // limits. Allowing surge implies the possibility that the // resources consumed by the daemonset on any given node can // double if the readiness check fails, and so resource intensive // daemonsets should take into account that they may cause // evictions during disruption. "maxSurge"?: intstr.#IntOrString // The maximum number of DaemonSet pods that can be unavailable // during the update. Value can be an absolute number (ex: 5) or // a percentage of total number of DaemonSet pods at the start of // the update (ex: 10%). Absolute number is calculated from // percentage by rounding up. This cannot be 0 if MaxSurge is 0 // Default value is 1. Example: when this is set to 30%, at most // 30% of the total number of nodes that should be running the // daemon pod (i.e. status.desiredNumberScheduled) can have their // pods stopped for an update at any given time. The update // starts by stopping at most 30% of those DaemonSet pods and // then brings up new DaemonSet pods in their place. Once the new // pods are available, it then proceeds onto other DaemonSet // pods, thus ensuring that at least 70% of original number of // DaemonSet pods are available at all times during the update. "maxUnavailable"?: intstr.#IntOrString } // Spec to control the desired behavior of rolling update. #RollingUpdateDeployment: { // The maximum number of pods that can be scheduled above the // desired number of pods. Value can be an absolute number (ex: // 5) or a percentage of desired pods (ex: 10%). This can not be // 0 if MaxUnavailable is 0. Absolute number is calculated from // percentage by rounding up. Defaults to 25%. Example: when this // is set to 30%, the new ReplicaSet can be scaled up immediately // when the rolling update starts, such that the total number of // old and new pods do not exceed 130% of desired pods. Once old // pods have been killed, new ReplicaSet can be scaled up // further, ensuring that total number of pods running at any // time during the update is at most 130% of desired pods. "maxSurge"?: intstr.#IntOrString // The maximum number of pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a // percentage of desired pods (ex: 10%). Absolute number is // calculated from percentage by rounding down. This can not be 0 // if MaxSurge is 0. Defaults to 25%. Example: when this is set // to 30%, the old ReplicaSet can be scaled down to 70% of // desired pods immediately when the rolling update starts. Once // new pods are ready, old ReplicaSet can be scaled down further, // followed by scaling up the new ReplicaSet, ensuring that the // total number of pods available at all times during the update // is at least 70% of desired pods. "maxUnavailable"?: intstr.#IntOrString } // RollingUpdateStatefulSetStrategy is used to communicate // parameter for RollingUpdateStatefulSetStrategyType. #RollingUpdateStatefulSetStrategy: { // The maximum number of pods that can be unavailable during the // update. Value can be an absolute number (ex: 5) or a // percentage of desired pods (ex: 10%). Absolute number is // calculated from percentage by rounding up. This can not be 0. // Defaults to 1. This field is beta-level and is enabled by // default. The field applies to all pods in the range 0 to // Replicas-1. That means if there is any unavailable pod in the // range 0 to Replicas-1, it will be counted towards // MaxUnavailable. This setting might not be effective for the // OrderedReady podManagementPolicy. That policy ensures pods are // created and become ready one at a time. "maxUnavailable"?: intstr.#IntOrString // Partition indicates the ordinal at which the StatefulSet should // be partitioned for updates. During a rolling update, all pods // from ordinal Replicas-1 to Partition are updated. All pods // from ordinal Partition-1 to 0 remain untouched. This is // helpful in being able to do a canary based deployment. The // default value is 0. "partition"?: int32 & int } // StatefulSet 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 StatefulSet guarantees that a given network identity will // always map to the same storage identity. #StatefulSet: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "StatefulSet" // Standard object's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ObjectMeta // Spec defines the desired identities of pods in this set. "spec"?: #StatefulSetSpec // Status is the current status of Pods in this StatefulSet. This // data may be out of date by some window of time. "status"?: #StatefulSetStatus } // StatefulSetCondition describes the state of a statefulset at a // certain point. #StatefulSetCondition: { // Last time the condition transitioned from one status to // another. "lastTransitionTime"?: v1.#Time // A human readable message indicating details about the // transition. "message"?: string // The reason for the condition's last transition. "reason"?: string // Status of the condition, one of True, False, Unknown. "status"!: string // Type of statefulset condition. "type"!: string } // StatefulSetList is a collection of StatefulSets. #StatefulSetList: { // APIVersion defines the versioned schema of this representation // of an object. Servers should convert recognized schemas to the // latest internal value, and may reject unrecognized values. // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "apps/v1" // Items is the list of stateful sets. "items"!: [...#StatefulSet] // Kind is a string value representing the REST resource this // object represents. Servers may infer this from the endpoint // the client submits requests to. Cannot be updated. In // CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "StatefulSetList" // Standard list's metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ListMeta } // StatefulSetOrdinals describes the policy used for replica // ordinal assignment in this StatefulSet. #StatefulSetOrdinals: { // start is the number representing the first replica's index. It // may be used to number replicas from an alternate index (eg: // 1-indexed) over the default 0-indexed names, or to orchestrate // progressive movement of replicas from one StatefulSet to // another. If set, replica indices will be in the range: // [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas). // If unset, defaults to 0. Replica indices will be in the range: // [0, .spec.replicas). "start"?: int32 & int } // StatefulSetPersistentVolumeClaimRetentionPolicy describes the // policy used for PVCs created from the StatefulSet // VolumeClaimTemplates. #StatefulSetPersistentVolumeClaimRetentionPolicy: { // WhenDeleted specifies what happens to PVCs created from // StatefulSet VolumeClaimTemplates when the StatefulSet is // deleted. The default policy of `Retain` causes PVCs to not be // affected by StatefulSet deletion. The `Delete` policy causes // those PVCs to be deleted. "whenDeleted"?: string // WhenScaled specifies what happens to PVCs created from // StatefulSet VolumeClaimTemplates when the StatefulSet is // scaled down. The default policy of `Retain` causes PVCs to not // be affected by a scaledown. The `Delete` policy causes the // associated PVCs for any excess pods above the replica count to // be deleted. "whenScaled"?: string } // A StatefulSetSpec is the specification of a StatefulSet. #StatefulSetSpec: { // 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) "minReadySeconds"?: int32 & int // ordinals controls the numbering of replica indices in a // StatefulSet. The default ordinals behavior assigns a "0" index // to the first replica and increments the index by one for each // additional replica requested. "ordinals"?: #StatefulSetOrdinals // 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. "persistentVolumeClaimRetentionPolicy"?: #StatefulSetPersistentVolumeClaimRetentionPolicy // 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. "podManagementPolicy"?: string // 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. "replicas"?: int32 & int // revisionHistoryLimit is the maximum number of revisions that // will be maintained in the StatefulSet's revision history. The // revision history consists of all revisions not represented by // a currently applied StatefulSetSpec version. The default value // is 10. "revisionHistoryLimit"?: int32 & int // 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"!: v1.#LabelSelector // serviceName is the name of the service that governs this // StatefulSet. This service must exist before the StatefulSet, // 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 StatefulSet // controller. "serviceName"?: string // template is the object that describes the pod that will be // created if insufficient replicas are detected. Each pod // stamped out by the StatefulSet will fulfill this Template, but // have a unique identity from the rest of the StatefulSet. Each // pod will be named with the format // -. For example, a pod in a // StatefulSet named "web" with index number "3" would be named // "web-3". The only allowed template.spec.restartPolicy value is // "Always". "template"!: v1_9.#PodTemplateSpec // updateStrategy indicates the StatefulSetUpdateStrategy that // will be employed to update Pods in the StatefulSet when a // revision is made to Template. "updateStrategy"?: #StatefulSetUpdateStrategy // volumeClaimTemplates is a list of claims that pods are allowed // to reference. The StatefulSet 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. "volumeClaimTemplates"?: [...v1_9.#PersistentVolumeClaim] } // StatefulSetStatus represents the current state of a // StatefulSet. #StatefulSetStatus: { // Total number of available pods (ready for at least // minReadySeconds) targeted by this statefulset. "availableReplicas"?: int32 & int // collisionCount is the count of hash collisions for the // StatefulSet. The StatefulSet controller uses this field as a // collision avoidance mechanism when it needs to create the name // for the newest ControllerRevision. "collisionCount"?: int32 & int // Represents the latest available observations of a statefulset's // current state. "conditions"?: [...#StatefulSetCondition] // currentReplicas is the number of Pods created by the // StatefulSet controller from the StatefulSet version indicated // by currentRevision. "currentReplicas"?: int32 & int // currentRevision, if not empty, indicates the version of the // StatefulSet used to generate Pods in the sequence // [0,currentReplicas). "currentRevision"?: string // observedGeneration is the most recent generation observed for // this StatefulSet. It corresponds to the StatefulSet's // generation, which is updated on mutation by the API Server. "observedGeneration"?: int64 & int // readyReplicas is the number of pods created for this // StatefulSet with a Ready Condition. "readyReplicas"?: int32 & int // replicas is the number of Pods created by the StatefulSet // controller. "replicas"!: int32 & int // updateRevision, if not empty, indicates the version of the // StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) "updateRevision"?: string // updatedReplicas is the number of Pods created by the // StatefulSet controller from the StatefulSet version indicated // by updateRevision. "updatedReplicas"?: int32 & int } // StatefulSetUpdateStrategy indicates the strategy that the // StatefulSet controller will use to perform updates. It // includes any additional parameters necessary to perform the // update for the indicated strategy. #StatefulSetUpdateStrategy: { // RollingUpdate is used to communicate parameters when Type is // RollingUpdateStatefulSetStrategyType. "rollingUpdate"?: #RollingUpdateStatefulSetStrategy // Type indicates the type of the StatefulSetUpdateStrategy. // Default is RollingUpdate. "type"?: string }