k8s_pb/api/apps/v1beta1/
mod.rs

1// This file is @generated by prost-build.
2/// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the
3/// release notes for more information.
4/// ControllerRevision implements an immutable snapshot of state data. Clients
5/// are responsible for serializing and deserializing the objects that contain
6/// their internal state.
7/// Once a ControllerRevision has been successfully created, it can not be updated.
8/// The API Server will fail validation of all requests that attempt to mutate
9/// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both
10/// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,
11/// it may be subject to name and representation changes in future releases, and clients should not
12/// depend on its stability. It is primarily for internal use by controllers.
13#[derive(Clone, PartialEq, ::prost::Message)]
14pub struct ControllerRevision {
15    /// Standard object's metadata.
16    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
17    /// +optional
18    #[prost(message, optional, tag = "1")]
19    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
20    /// data is the serialized representation of the state.
21    #[prost(message, optional, tag = "2")]
22    pub data: ::core::option::Option<super::super::super::apimachinery::pkg::runtime::RawExtension>,
23    /// revision indicates the revision of the state represented by Data.
24    #[prost(int64, optional, tag = "3")]
25    pub revision: ::core::option::Option<i64>,
26}
27/// ControllerRevisionList is a resource containing a list of ControllerRevision objects.
28#[derive(Clone, PartialEq, ::prost::Message)]
29pub struct ControllerRevisionList {
30    /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
31    /// +optional
32    #[prost(message, optional, tag = "1")]
33    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
34    /// Items is the list of ControllerRevisions
35    #[prost(message, repeated, tag = "2")]
36    pub items: ::prost::alloc::vec::Vec<ControllerRevision>,
37}
38/// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for
39/// more information.
40/// Deployment enables declarative updates for Pods and ReplicaSets.
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct Deployment {
43    /// Standard object metadata.
44    /// +optional
45    #[prost(message, optional, tag = "1")]
46    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
47    /// Specification of the desired behavior of the Deployment.
48    /// +optional
49    #[prost(message, optional, tag = "2")]
50    pub spec: ::core::option::Option<DeploymentSpec>,
51    /// Most recently observed status of the Deployment.
52    /// +optional
53    #[prost(message, optional, tag = "3")]
54    pub status: ::core::option::Option<DeploymentStatus>,
55}
56/// DeploymentCondition describes the state of a deployment at a certain point.
57#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
58pub struct DeploymentCondition {
59    /// Type of deployment condition.
60    #[prost(string, optional, tag = "1")]
61    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
62    /// Status of the condition, one of True, False, Unknown.
63    #[prost(string, optional, tag = "2")]
64    pub status: ::core::option::Option<::prost::alloc::string::String>,
65    /// The last time this condition was updated.
66    #[prost(message, optional, tag = "6")]
67    pub last_update_time:
68        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
69    /// Last time the condition transitioned from one status to another.
70    #[prost(message, optional, tag = "7")]
71    pub last_transition_time:
72        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
73    /// The reason for the condition's last transition.
74    #[prost(string, optional, tag = "4")]
75    pub reason: ::core::option::Option<::prost::alloc::string::String>,
76    /// A human readable message indicating details about the transition.
77    #[prost(string, optional, tag = "5")]
78    pub message: ::core::option::Option<::prost::alloc::string::String>,
79}
80/// DeploymentList is a list of Deployments.
81#[derive(Clone, PartialEq, ::prost::Message)]
82pub struct DeploymentList {
83    /// Standard list metadata.
84    /// +optional
85    #[prost(message, optional, tag = "1")]
86    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
87    /// Items is the list of Deployments.
88    #[prost(message, repeated, tag = "2")]
89    pub items: ::prost::alloc::vec::Vec<Deployment>,
90}
91/// DEPRECATED.
92/// DeploymentRollback stores the information required to rollback a deployment.
93#[derive(Clone, PartialEq, ::prost::Message)]
94pub struct DeploymentRollback {
95    /// Required: This must match the Name of a deployment.
96    #[prost(string, optional, tag = "1")]
97    pub name: ::core::option::Option<::prost::alloc::string::String>,
98    /// The annotations to be updated to a deployment
99    /// +optional
100    #[prost(btree_map = "string, string", tag = "2")]
101    pub updated_annotations:
102        ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
103    /// The config of this deployment rollback.
104    #[prost(message, optional, tag = "3")]
105    pub rollback_to: ::core::option::Option<RollbackConfig>,
106}
107/// DeploymentSpec is the specification of the desired behavior of the Deployment.
108#[derive(Clone, PartialEq, ::prost::Message)]
109pub struct DeploymentSpec {
110    /// replicas is the number of desired pods. This is a pointer to distinguish between explicit
111    /// zero and not specified. Defaults to 1.
112    /// +optional
113    #[prost(int32, optional, tag = "1")]
114    pub replicas: ::core::option::Option<i32>,
115    /// selector is the label selector for pods. Existing ReplicaSets whose pods are
116    /// selected by this will be the ones affected by this deployment.
117    /// +optional
118    #[prost(message, optional, tag = "2")]
119    pub selector:
120        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
121    /// Template describes the pods that will be created.
122    /// The only allowed template.spec.restartPolicy value is "Always".
123    #[prost(message, optional, tag = "3")]
124    pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
125    /// The deployment strategy to use to replace existing pods with new ones.
126    /// +optional
127    /// +patchStrategy=retainKeys
128    #[prost(message, optional, tag = "4")]
129    pub strategy: ::core::option::Option<DeploymentStrategy>,
130    /// minReadySeconds is the minimum number of seconds for which a newly created pod should be ready
131    /// without any of its container crashing, for it to be considered available.
132    /// Defaults to 0 (pod will be considered available as soon as it is ready)
133    /// +optional
134    #[prost(int32, optional, tag = "5")]
135    pub min_ready_seconds: ::core::option::Option<i32>,
136    /// revisionHistoryLimit is the number of old ReplicaSets to retain to allow rollback.
137    /// This is a pointer to distinguish between explicit zero and not specified.
138    /// Defaults to 2.
139    /// +optional
140    #[prost(int32, optional, tag = "6")]
141    pub revision_history_limit: ::core::option::Option<i32>,
142    /// paused indicates that the deployment is paused.
143    /// +optional
144    #[prost(bool, optional, tag = "7")]
145    pub paused: ::core::option::Option<bool>,
146    /// DEPRECATED.
147    /// rollbackTo is the config this deployment is rolling back to. Will be cleared after rollback is done.
148    /// +optional
149    #[prost(message, optional, tag = "8")]
150    pub rollback_to: ::core::option::Option<RollbackConfig>,
151    /// progressDeadlineSeconds is the maximum time in seconds for a deployment to make progress before it
152    /// is considered to be failed. The deployment controller will continue to
153    /// process failed deployments and a condition with a ProgressDeadlineExceeded
154    /// reason will be surfaced in the deployment status. Note that progress will
155    /// not be estimated during the time a deployment is paused. Defaults to 600s.
156    /// +optional
157    #[prost(int32, optional, tag = "9")]
158    pub progress_deadline_seconds: ::core::option::Option<i32>,
159}
160/// DeploymentStatus is the most recently observed status of the Deployment.
161#[derive(Clone, PartialEq, ::prost::Message)]
162pub struct DeploymentStatus {
163    /// The generation observed by the deployment controller.
164    /// +optional
165    #[prost(int64, optional, tag = "1")]
166    pub observed_generation: ::core::option::Option<i64>,
167    /// Total number of non-terminating pods targeted by this deployment (their labels match the selector).
168    /// +optional
169    #[prost(int32, optional, tag = "2")]
170    pub replicas: ::core::option::Option<i32>,
171    /// Total number of non-terminating pods targeted by this deployment that have the desired template spec.
172    /// +optional
173    #[prost(int32, optional, tag = "3")]
174    pub updated_replicas: ::core::option::Option<i32>,
175    /// Total number of non-terminating pods targeted by this Deployment with a Ready Condition.
176    /// +optional
177    #[prost(int32, optional, tag = "7")]
178    pub ready_replicas: ::core::option::Option<i32>,
179    /// Total number of available non-terminating pods (ready for at least minReadySeconds) targeted by this deployment.
180    /// +optional
181    #[prost(int32, optional, tag = "4")]
182    pub available_replicas: ::core::option::Option<i32>,
183    /// Total number of unavailable pods targeted by this deployment. This is the total number of
184    /// pods that are still required for the deployment to have 100% available capacity. They may
185    /// either be pods that are running but not yet available or pods that still have not been created.
186    /// +optional
187    #[prost(int32, optional, tag = "5")]
188    pub unavailable_replicas: ::core::option::Option<i32>,
189    /// Total number of terminating pods targeted by this deployment. Terminating pods have a non-null
190    /// .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase.
191    ///
192    /// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).
193    /// +optional
194    #[prost(int32, optional, tag = "9")]
195    pub terminating_replicas: ::core::option::Option<i32>,
196    /// Represents the latest available observations of a deployment's current state.
197    /// +patchMergeKey=type
198    /// +patchStrategy=merge
199    /// +listType=map
200    /// +listMapKey=type
201    #[prost(message, repeated, tag = "6")]
202    pub conditions: ::prost::alloc::vec::Vec<DeploymentCondition>,
203    /// collisionCount is the count of hash collisions for the Deployment. The Deployment controller uses this
204    /// field as a collision avoidance mechanism when it needs to create the name for the
205    /// newest ReplicaSet.
206    /// +optional
207    #[prost(int32, optional, tag = "8")]
208    pub collision_count: ::core::option::Option<i32>,
209}
210/// DeploymentStrategy describes how to replace existing pods with new ones.
211#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
212pub struct DeploymentStrategy {
213    /// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
214    /// +optional
215    #[prost(string, optional, tag = "1")]
216    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
217    /// Rolling update config params. Present only if DeploymentStrategyType =
218    /// RollingUpdate.
219    /// ---
220    /// TODO: Update this to follow our convention for oneOf, whatever we decide it
221    /// to be.
222    /// +optional
223    #[prost(message, optional, tag = "2")]
224    pub rolling_update: ::core::option::Option<RollingUpdateDeployment>,
225}
226/// DEPRECATED.
227#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
228pub struct RollbackConfig {
229    /// The revision to rollback to. If set to 0, rollback to the last revision.
230    /// +optional
231    #[prost(int64, optional, tag = "1")]
232    pub revision: ::core::option::Option<i64>,
233}
234/// Spec to control the desired behavior of rolling update.
235#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
236pub struct RollingUpdateDeployment {
237    /// The maximum number of pods that can be unavailable during the update.
238    /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
239    /// Absolute number is calculated from percentage by rounding down.
240    /// This can not be 0 if MaxSurge is 0.
241    /// Defaults to 25%.
242    /// Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
243    /// immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
244    /// can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
245    /// that the total number of pods available at all times during the update is at
246    /// least 70% of desired pods.
247    /// +optional
248    #[prost(message, optional, tag = "1")]
249    pub max_unavailable:
250        ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
251    /// The maximum number of pods that can be scheduled above the desired number of
252    /// pods.
253    /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
254    /// This can not be 0 if MaxUnavailable is 0.
255    /// Absolute number is calculated from percentage by rounding up.
256    /// Defaults to 25%.
257    /// Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
258    /// the rolling update starts, such that the total number of old and new pods do not exceed
259    /// 130% of desired pods. Once old pods have been killed,
260    /// new ReplicaSet can be scaled up further, ensuring that total number of pods running
261    /// at any time during the update is at most 130% of desired pods.
262    /// +optional
263    #[prost(message, optional, tag = "2")]
264    pub max_surge: ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
265}
266/// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.
267#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
268pub struct RollingUpdateStatefulSetStrategy {
269    /// Partition indicates the ordinal at which the StatefulSet should be partitioned
270    /// for updates. During a rolling update, all pods from ordinal Replicas-1 to
271    /// Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.
272    /// This is helpful in being able to do a canary based deployment. The default value is 0.
273    #[prost(int32, optional, tag = "1")]
274    pub partition: ::core::option::Option<i32>,
275    /// maxUnavailable is the maximum number of pods that can be unavailable during the update.
276    /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
277    /// Absolute number is calculated from percentage by rounding up. This can not be 0.
278    /// Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to
279    /// Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it
280    /// will be counted towards MaxUnavailable.
281    /// This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time.
282    ///
283    /// +featureGate=MaxUnavailableStatefulSet
284    /// +optional
285    #[prost(message, optional, tag = "2")]
286    pub max_unavailable:
287        ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
288}
289/// Scale represents a scaling request for a resource.
290#[derive(Clone, PartialEq, ::prost::Message)]
291pub struct Scale {
292    /// Standard object metadata; More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.>
293    /// +optional
294    #[prost(message, optional, tag = "1")]
295    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
296    /// spec defines the behavior of the scale. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.>
297    /// +optional
298    #[prost(message, optional, tag = "2")]
299    pub spec: ::core::option::Option<ScaleSpec>,
300    /// status defines current status of the scale. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.> Read-only.
301    /// +optional
302    #[prost(message, optional, tag = "3")]
303    pub status: ::core::option::Option<ScaleStatus>,
304}
305/// ScaleSpec describes the attributes of a scale subresource
306#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
307pub struct ScaleSpec {
308    /// replicas is the number of observed instances of the scaled object.
309    /// +optional
310    /// +k8s:optional
311    /// +default=0
312    /// +k8s:minimum=0
313    #[prost(int32, optional, tag = "1")]
314    pub replicas: ::core::option::Option<i32>,
315}
316/// ScaleStatus represents the current status of a scale subresource.
317#[derive(Clone, PartialEq, ::prost::Message)]
318pub struct ScaleStatus {
319    /// replias is the actual number of observed instances of the scaled object.
320    #[prost(int32, optional, tag = "1")]
321    pub replicas: ::core::option::Option<i32>,
322    /// selector is a label query over pods that should match the replicas count. More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>
323    /// +optional
324    #[prost(btree_map = "string, string", tag = "2")]
325    pub selector:
326        ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
327    /// targetSelector is the label selector for pods that should match the replicas count. This is a serializated
328    /// version of both map-based and more expressive set-based selectors. This is done to
329    /// avoid introspection in the clients. The string will be in the same format as the
330    /// query-param syntax. If the target type only supports map-based selectors, both this
331    /// field and map-based selector field are populated.
332    /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
333    /// +optional
334    #[prost(string, optional, tag = "3")]
335    pub target_selector: ::core::option::Option<::prost::alloc::string::String>,
336}
337/// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for
338/// more information.
339/// StatefulSet represents a set of pods with consistent identities.
340/// Identities are defined as:
341///    - Network: A single stable DNS and hostname.
342///    - Storage: As many VolumeClaims as requested.
343///
344/// The StatefulSet guarantees that a given network identity will always
345/// map to the same storage identity.
346#[derive(Clone, PartialEq, ::prost::Message)]
347pub struct StatefulSet {
348    /// +optional
349    #[prost(message, optional, tag = "1")]
350    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
351    /// Spec defines the desired identities of pods in this set.
352    /// +optional
353    #[prost(message, optional, tag = "2")]
354    pub spec: ::core::option::Option<StatefulSetSpec>,
355    /// Status is the current status of Pods in this StatefulSet. This data
356    /// may be out of date by some window of time.
357    /// +optional
358    #[prost(message, optional, tag = "3")]
359    pub status: ::core::option::Option<StatefulSetStatus>,
360}
361/// StatefulSetCondition describes the state of a statefulset at a certain point.
362#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
363pub struct StatefulSetCondition {
364    /// Type of statefulset condition.
365    #[prost(string, optional, tag = "1")]
366    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
367    /// Status of the condition, one of True, False, Unknown.
368    #[prost(string, optional, tag = "2")]
369    pub status: ::core::option::Option<::prost::alloc::string::String>,
370    /// Last time the condition transitioned from one status to another.
371    /// +optional
372    #[prost(message, optional, tag = "3")]
373    pub last_transition_time:
374        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
375    /// The reason for the condition's last transition.
376    /// +optional
377    #[prost(string, optional, tag = "4")]
378    pub reason: ::core::option::Option<::prost::alloc::string::String>,
379    /// A human readable message indicating details about the transition.
380    /// +optional
381    #[prost(string, optional, tag = "5")]
382    pub message: ::core::option::Option<::prost::alloc::string::String>,
383}
384/// StatefulSetList is a collection of StatefulSets.
385#[derive(Clone, PartialEq, ::prost::Message)]
386pub struct StatefulSetList {
387    /// +optional
388    #[prost(message, optional, tag = "1")]
389    pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
390    #[prost(message, repeated, tag = "2")]
391    pub items: ::prost::alloc::vec::Vec<StatefulSet>,
392}
393/// StatefulSetOrdinals describes the policy used for replica ordinal assignment
394/// in this StatefulSet.
395#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
396pub struct StatefulSetOrdinals {
397    /// start is the number representing the first replica's index. It may be used
398    /// to number replicas from an alternate index (eg: 1-indexed) over the default
399    /// 0-indexed names, or to orchestrate progressive movement of replicas from
400    /// one StatefulSet to another.
401    /// If set, replica indices will be in the range:
402    ///    [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).
403    /// If unset, defaults to 0. Replica indices will be in the range:
404    ///    [0, .spec.replicas).
405    /// +optional
406    #[prost(int32, optional, tag = "1")]
407    pub start: ::core::option::Option<i32>,
408}
409/// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs
410/// created from the StatefulSet VolumeClaimTemplates.
411#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
412pub struct StatefulSetPersistentVolumeClaimRetentionPolicy {
413    /// whenDeleted specifies what happens to PVCs created from StatefulSet
414    /// VolumeClaimTemplates when the StatefulSet is deleted. The default policy
415    /// of `Retain` causes PVCs to not be affected by StatefulSet deletion. The
416    /// `Delete` policy causes those PVCs to be deleted.
417    #[prost(string, optional, tag = "1")]
418    pub when_deleted: ::core::option::Option<::prost::alloc::string::String>,
419    /// whenScaled specifies what happens to PVCs created from StatefulSet
420    /// VolumeClaimTemplates when the StatefulSet is scaled down. The default
421    /// policy of `Retain` causes PVCs to not be affected by a scaledown. The
422    /// `Delete` policy causes the associated PVCs for any excess pods above
423    /// the replica count to be deleted.
424    #[prost(string, optional, tag = "2")]
425    pub when_scaled: ::core::option::Option<::prost::alloc::string::String>,
426}
427/// A StatefulSetSpec is the specification of a StatefulSet.
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct StatefulSetSpec {
430    /// replicas is the desired number of replicas of the given Template.
431    /// These are replicas in the sense that they are instantiations of the
432    /// same Template, but individual replicas also have a consistent identity.
433    /// If unspecified, defaults to 1.
434    /// TODO: Consider a rename of this field.
435    /// +optional
436    #[prost(int32, optional, tag = "1")]
437    pub replicas: ::core::option::Option<i32>,
438    /// selector is a label query over pods that should match the replica count.
439    /// If empty, defaulted to labels on the pod template.
440    /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
441    /// +optional
442    #[prost(message, optional, tag = "2")]
443    pub selector:
444        ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
445    /// template is the object that describes the pod that will be created if
446    /// insufficient replicas are detected. Each pod stamped out by the StatefulSet
447    /// will fulfill this Template, but have a unique identity from the rest
448    /// of the StatefulSet. Each pod will be named with the format
449    /// <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named
450    /// "web" with index number "3" would be named "web-3".
451    #[prost(message, optional, tag = "3")]
452    pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
453    /// volumeClaimTemplates is a list of claims that pods are allowed to reference.
454    /// The StatefulSet controller is responsible for mapping network identities to
455    /// claims in a way that maintains the identity of a pod. Every claim in
456    /// this list must have at least one matching (by name) volumeMount in one
457    /// container in the template. A claim in this list takes precedence over
458    /// any volumes in the template, with the same name.
459    /// TODO: Define the behavior if a claim already exists with the same name.
460    /// +optional
461    /// +listType=atomic
462    #[prost(message, repeated, tag = "4")]
463    pub volume_claim_templates: ::prost::alloc::vec::Vec<super::super::core::v1::PersistentVolumeClaim>,
464    /// serviceName is the name of the service that governs this StatefulSet.
465    /// This service must exist before the StatefulSet, and is responsible for
466    /// the network identity of the set. Pods get DNS/hostnames that follow the
467    /// pattern: pod-specific-string.serviceName.default.svc.cluster.local
468    /// where "pod-specific-string" is managed by the StatefulSet controller.
469    /// +optional
470    #[prost(string, optional, tag = "5")]
471    pub service_name: ::core::option::Option<::prost::alloc::string::String>,
472    /// podManagementPolicy controls how pods are created during initial scale up,
473    /// when replacing pods on nodes, or when scaling down. The default policy is
474    /// `OrderedReady`, where pods are created in increasing order (pod-0, then
475    /// pod-1, etc) and the controller will wait until each pod is ready before
476    /// continuing. When scaling down, the pods are removed in the opposite order.
477    /// The alternative policy is `Parallel` which will create pods in parallel
478    /// to match the desired scale without waiting, and on scale down will delete
479    /// all pods at once.
480    /// +optional
481    #[prost(string, optional, tag = "6")]
482    pub pod_management_policy: ::core::option::Option<::prost::alloc::string::String>,
483    /// updateStrategy indicates the StatefulSetUpdateStrategy that will be
484    /// employed to update Pods in the StatefulSet when a revision is made to
485    /// Template.
486    #[prost(message, optional, tag = "7")]
487    pub update_strategy: ::core::option::Option<StatefulSetUpdateStrategy>,
488    /// revisionHistoryLimit is the maximum number of revisions that will
489    /// be maintained in the StatefulSet's revision history. The revision history
490    /// consists of all revisions not represented by a currently applied
491    /// StatefulSetSpec version. The default value is 10.
492    #[prost(int32, optional, tag = "8")]
493    pub revision_history_limit: ::core::option::Option<i32>,
494    /// minReadySeconds is the minimum number of seconds for which a newly created pod should be ready
495    /// without any of its container crashing for it to be considered available.
496    /// Defaults to 0 (pod will be considered available as soon as it is ready)
497    /// +optional
498    #[prost(int32, optional, tag = "9")]
499    pub min_ready_seconds: ::core::option::Option<i32>,
500    /// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent
501    /// volume claims created from volumeClaimTemplates. By default, all persistent
502    /// volume claims are created as needed and retained until manually deleted. This
503    /// policy allows the lifecycle to be altered, for example by deleting persistent
504    /// volume claims when their stateful set is deleted, or when their pod is scaled
505    /// down.
506    /// +optional
507    #[prost(message, optional, tag = "10")]
508    pub persistent_volume_claim_retention_policy:
509        ::core::option::Option<StatefulSetPersistentVolumeClaimRetentionPolicy>,
510    /// ordinals controls the numbering of replica indices in a StatefulSet. The
511    /// default ordinals behavior assigns a "0" index to the first replica and
512    /// increments the index by one for each additional replica requested.
513    /// +optional
514    #[prost(message, optional, tag = "11")]
515    pub ordinals: ::core::option::Option<StatefulSetOrdinals>,
516}
517/// StatefulSetStatus represents the current state of a StatefulSet.
518#[derive(Clone, PartialEq, ::prost::Message)]
519pub struct StatefulSetStatus {
520    /// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the
521    /// StatefulSet's generation, which is updated on mutation by the API Server.
522    /// +optional
523    #[prost(int64, optional, tag = "1")]
524    pub observed_generation: ::core::option::Option<i64>,
525    /// replicas is the number of Pods created by the StatefulSet controller.
526    #[prost(int32, optional, tag = "2")]
527    pub replicas: ::core::option::Option<i32>,
528    /// readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.
529    #[prost(int32, optional, tag = "3")]
530    pub ready_replicas: ::core::option::Option<i32>,
531    /// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version
532    /// indicated by currentRevision.
533    #[prost(int32, optional, tag = "4")]
534    pub current_replicas: ::core::option::Option<i32>,
535    /// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version
536    /// indicated by updateRevision.
537    #[prost(int32, optional, tag = "5")]
538    pub updated_replicas: ::core::option::Option<i32>,
539    /// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the
540    /// sequence [0,currentReplicas).
541    #[prost(string, optional, tag = "6")]
542    pub current_revision: ::core::option::Option<::prost::alloc::string::String>,
543    /// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence
544    /// [replicas-updatedReplicas,replicas)
545    #[prost(string, optional, tag = "7")]
546    pub update_revision: ::core::option::Option<::prost::alloc::string::String>,
547    /// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller
548    /// uses this field as a collision avoidance mechanism when it needs to create the name for the
549    /// newest ControllerRevision.
550    /// +optional
551    #[prost(int32, optional, tag = "9")]
552    pub collision_count: ::core::option::Option<i32>,
553    /// conditions represent the latest available observations of a statefulset's current state.
554    /// +optional
555    /// +patchMergeKey=type
556    /// +patchStrategy=merge
557    /// +listType=map
558    /// +listMapKey=type
559    #[prost(message, repeated, tag = "10")]
560    pub conditions: ::prost::alloc::vec::Vec<StatefulSetCondition>,
561    /// availableReplicas is the total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.
562    /// +optional
563    #[prost(int32, optional, tag = "11")]
564    pub available_replicas: ::core::option::Option<i32>,
565}
566/// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet
567/// controller will use to perform updates. It includes any additional parameters
568/// necessary to perform the update for the indicated strategy.
569#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
570pub struct StatefulSetUpdateStrategy {
571    /// Type indicates the type of the StatefulSetUpdateStrategy.
572    #[prost(string, optional, tag = "1")]
573    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
574    /// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.
575    #[prost(message, optional, tag = "2")]
576    pub rolling_update: ::core::option::Option<RollingUpdateStatefulSetStrategy>,
577}