k8s_pb/api/extensions/v1beta1/mod.rs
1// This file is @generated by prost-build.
2/// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for
3/// more information.
4/// DaemonSet represents the configuration of a daemon set.
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct DaemonSet {
7 /// Standard object's metadata.
8 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
9 /// +optional
10 #[prost(message, optional, tag = "1")]
11 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
12 /// The desired behavior of this daemon set.
13 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
14 /// +optional
15 #[prost(message, optional, tag = "2")]
16 pub spec: ::core::option::Option<DaemonSetSpec>,
17 /// The current status of this daemon set. This data may be
18 /// out of date by some window of time.
19 /// Populated by the system.
20 /// Read-only.
21 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
22 /// +optional
23 #[prost(message, optional, tag = "3")]
24 pub status: ::core::option::Option<DaemonSetStatus>,
25}
26/// DaemonSetCondition describes the state of a DaemonSet at a certain point.
27#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
28pub struct DaemonSetCondition {
29 /// Type of DaemonSet condition.
30 #[prost(string, optional, tag = "1")]
31 pub r#type: ::core::option::Option<::prost::alloc::string::String>,
32 /// Status of the condition, one of True, False, Unknown.
33 #[prost(string, optional, tag = "2")]
34 pub status: ::core::option::Option<::prost::alloc::string::String>,
35 /// Last time the condition transitioned from one status to another.
36 /// +optional
37 #[prost(message, optional, tag = "3")]
38 pub last_transition_time:
39 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
40 /// The reason for the condition's last transition.
41 /// +optional
42 #[prost(string, optional, tag = "4")]
43 pub reason: ::core::option::Option<::prost::alloc::string::String>,
44 /// A human readable message indicating details about the transition.
45 /// +optional
46 #[prost(string, optional, tag = "5")]
47 pub message: ::core::option::Option<::prost::alloc::string::String>,
48}
49/// DaemonSetList is a collection of daemon sets.
50#[derive(Clone, PartialEq, ::prost::Message)]
51pub struct DaemonSetList {
52 /// Standard list metadata.
53 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
54 /// +optional
55 #[prost(message, optional, tag = "1")]
56 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
57 /// A list of daemon sets.
58 #[prost(message, repeated, tag = "2")]
59 pub items: ::prost::alloc::vec::Vec<DaemonSet>,
60}
61/// DaemonSetSpec is the specification of a daemon set.
62#[derive(Clone, PartialEq, ::prost::Message)]
63pub struct DaemonSetSpec {
64 /// A label query over pods that are managed by the daemon set.
65 /// Must match in order to be controlled.
66 /// If empty, defaulted to labels on Pod template.
67 /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
68 /// +optional
69 #[prost(message, optional, tag = "1")]
70 pub selector:
71 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
72 /// An object that describes the pod that will be created.
73 /// The DaemonSet will create exactly one copy of this pod on every node
74 /// that matches the template's node selector (or on every node if no node
75 /// selector is specified).
76 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template>
77 #[prost(message, optional, tag = "2")]
78 pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
79 /// An update strategy to replace existing DaemonSet pods with new pods.
80 /// +optional
81 #[prost(message, optional, tag = "3")]
82 pub update_strategy: ::core::option::Option<DaemonSetUpdateStrategy>,
83 /// The minimum number of seconds for which a newly created DaemonSet pod should
84 /// be ready without any of its container crashing, for it to be considered
85 /// available. Defaults to 0 (pod will be considered available as soon as it
86 /// is ready).
87 /// +optional
88 #[prost(int32, optional, tag = "4")]
89 pub min_ready_seconds: ::core::option::Option<i32>,
90 /// DEPRECATED.
91 /// A sequence number representing a specific generation of the template.
92 /// Populated by the system. It can be set only during the creation.
93 /// +optional
94 #[prost(int64, optional, tag = "5")]
95 pub template_generation: ::core::option::Option<i64>,
96 /// The number of old history to retain to allow rollback.
97 /// This is a pointer to distinguish between explicit zero and not specified.
98 /// Defaults to 10.
99 /// +optional
100 #[prost(int32, optional, tag = "6")]
101 pub revision_history_limit: ::core::option::Option<i32>,
102}
103/// DaemonSetStatus represents the current status of a daemon set.
104#[derive(Clone, PartialEq, ::prost::Message)]
105pub struct DaemonSetStatus {
106 /// The number of nodes that are running at least 1
107 /// daemon pod and are supposed to run the daemon pod.
108 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/>
109 #[prost(int32, optional, tag = "1")]
110 pub current_number_scheduled: ::core::option::Option<i32>,
111 /// The number of nodes that are running the daemon pod, but are
112 /// not supposed to run the daemon pod.
113 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/>
114 #[prost(int32, optional, tag = "2")]
115 pub number_misscheduled: ::core::option::Option<i32>,
116 /// The total number of nodes that should be running the daemon
117 /// pod (including nodes correctly running the daemon pod).
118 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/>
119 #[prost(int32, optional, tag = "3")]
120 pub desired_number_scheduled: ::core::option::Option<i32>,
121 /// The number of nodes that should be running the daemon pod and have one
122 /// or more of the daemon pod running and ready.
123 #[prost(int32, optional, tag = "4")]
124 pub number_ready: ::core::option::Option<i32>,
125 /// The most recent generation observed by the daemon set controller.
126 /// +optional
127 #[prost(int64, optional, tag = "5")]
128 pub observed_generation: ::core::option::Option<i64>,
129 /// The total number of nodes that are running updated daemon pod
130 /// +optional
131 #[prost(int32, optional, tag = "6")]
132 pub updated_number_scheduled: ::core::option::Option<i32>,
133 /// The number of nodes that should be running the
134 /// daemon pod and have one or more of the daemon pod running and
135 /// available (ready for at least spec.minReadySeconds)
136 /// +optional
137 #[prost(int32, optional, tag = "7")]
138 pub number_available: ::core::option::Option<i32>,
139 /// The number of nodes that should be running the
140 /// daemon pod and have none of the daemon pod running and available
141 /// (ready for at least spec.minReadySeconds)
142 /// +optional
143 #[prost(int32, optional, tag = "8")]
144 pub number_unavailable: ::core::option::Option<i32>,
145 /// Count of hash collisions for the DaemonSet. The DaemonSet controller
146 /// uses this field as a collision avoidance mechanism when it needs to
147 /// create the name for the newest ControllerRevision.
148 /// +optional
149 #[prost(int32, optional, tag = "9")]
150 pub collision_count: ::core::option::Option<i32>,
151 /// Represents the latest available observations of a DaemonSet's current state.
152 /// +optional
153 /// +patchMergeKey=type
154 /// +patchStrategy=merge
155 /// +listType=map
156 /// +listMapKey=type
157 #[prost(message, repeated, tag = "10")]
158 pub conditions: ::prost::alloc::vec::Vec<DaemonSetCondition>,
159}
160/// DaemonSetUpdateStrategy indicates the strategy that the DaemonSet
161/// controller will use to perform updates. It includes any additional parameters
162/// necessary to perform the update for the indicated strategy.
163#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
164pub struct DaemonSetUpdateStrategy {
165 /// Type of daemon set update. Can be "RollingUpdate" or "OnDelete".
166 /// Default is OnDelete.
167 /// +optional
168 #[prost(string, optional, tag = "1")]
169 pub r#type: ::core::option::Option<::prost::alloc::string::String>,
170 /// Rolling update config params. Present only if type = "RollingUpdate".
171 /// ---
172 /// TODO: Update this to follow our convention for oneOf, whatever we decide it
173 /// to be. Same as Deployment `strategy.rollingUpdate`.
174 /// See <https://github.com/kubernetes/kubernetes/issues/35345>
175 /// +optional
176 #[prost(message, optional, tag = "2")]
177 pub rolling_update: ::core::option::Option<RollingUpdateDaemonSet>,
178}
179/// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for
180/// more information.
181/// Deployment enables declarative updates for Pods and ReplicaSets.
182#[derive(Clone, PartialEq, ::prost::Message)]
183pub struct Deployment {
184 /// Standard object metadata.
185 /// +optional
186 #[prost(message, optional, tag = "1")]
187 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
188 /// Specification of the desired behavior of the Deployment.
189 /// +optional
190 #[prost(message, optional, tag = "2")]
191 pub spec: ::core::option::Option<DeploymentSpec>,
192 /// Most recently observed status of the Deployment.
193 /// +optional
194 #[prost(message, optional, tag = "3")]
195 pub status: ::core::option::Option<DeploymentStatus>,
196}
197/// DeploymentCondition describes the state of a deployment at a certain point.
198#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
199pub struct DeploymentCondition {
200 /// Type of deployment condition.
201 #[prost(string, optional, tag = "1")]
202 pub r#type: ::core::option::Option<::prost::alloc::string::String>,
203 /// Status of the condition, one of True, False, Unknown.
204 #[prost(string, optional, tag = "2")]
205 pub status: ::core::option::Option<::prost::alloc::string::String>,
206 /// The last time this condition was updated.
207 #[prost(message, optional, tag = "6")]
208 pub last_update_time:
209 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
210 /// Last time the condition transitioned from one status to another.
211 #[prost(message, optional, tag = "7")]
212 pub last_transition_time:
213 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
214 /// The reason for the condition's last transition.
215 #[prost(string, optional, tag = "4")]
216 pub reason: ::core::option::Option<::prost::alloc::string::String>,
217 /// A human readable message indicating details about the transition.
218 #[prost(string, optional, tag = "5")]
219 pub message: ::core::option::Option<::prost::alloc::string::String>,
220}
221/// DeploymentList is a list of Deployments.
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct DeploymentList {
224 /// Standard list metadata.
225 /// +optional
226 #[prost(message, optional, tag = "1")]
227 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
228 /// Items is the list of Deployments.
229 #[prost(message, repeated, tag = "2")]
230 pub items: ::prost::alloc::vec::Vec<Deployment>,
231}
232/// DEPRECATED.
233/// DeploymentRollback stores the information required to rollback a deployment.
234#[derive(Clone, PartialEq, ::prost::Message)]
235pub struct DeploymentRollback {
236 /// Required: This must match the Name of a deployment.
237 #[prost(string, optional, tag = "1")]
238 pub name: ::core::option::Option<::prost::alloc::string::String>,
239 /// The annotations to be updated to a deployment
240 /// +optional
241 #[prost(btree_map = "string, string", tag = "2")]
242 pub updated_annotations:
243 ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
244 /// The config of this deployment rollback.
245 #[prost(message, optional, tag = "3")]
246 pub rollback_to: ::core::option::Option<RollbackConfig>,
247}
248/// DeploymentSpec is the specification of the desired behavior of the Deployment.
249#[derive(Clone, PartialEq, ::prost::Message)]
250pub struct DeploymentSpec {
251 /// Number of desired pods. This is a pointer to distinguish between explicit
252 /// zero and not specified. Defaults to 1.
253 /// +optional
254 #[prost(int32, optional, tag = "1")]
255 pub replicas: ::core::option::Option<i32>,
256 /// Label selector for pods. Existing ReplicaSets whose pods are
257 /// selected by this will be the ones affected by this deployment.
258 /// +optional
259 #[prost(message, optional, tag = "2")]
260 pub selector:
261 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
262 /// Template describes the pods that will be created.
263 #[prost(message, optional, tag = "3")]
264 pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
265 /// The deployment strategy to use to replace existing pods with new ones.
266 /// +optional
267 /// +patchStrategy=retainKeys
268 #[prost(message, optional, tag = "4")]
269 pub strategy: ::core::option::Option<DeploymentStrategy>,
270 /// Minimum number of seconds for which a newly created pod should be ready
271 /// without any of its container crashing, for it to be considered available.
272 /// Defaults to 0 (pod will be considered available as soon as it is ready)
273 /// +optional
274 #[prost(int32, optional, tag = "5")]
275 pub min_ready_seconds: ::core::option::Option<i32>,
276 /// The number of old ReplicaSets to retain to allow rollback.
277 /// This is a pointer to distinguish between explicit zero and not specified.
278 /// This is set to the max value of int32 (i.e. 2147483647) by default, which
279 /// means "retaining all old ReplicaSets".
280 /// +optional
281 #[prost(int32, optional, tag = "6")]
282 pub revision_history_limit: ::core::option::Option<i32>,
283 /// Indicates that the deployment is paused and will not be processed by the
284 /// deployment controller.
285 /// +optional
286 #[prost(bool, optional, tag = "7")]
287 pub paused: ::core::option::Option<bool>,
288 /// DEPRECATED.
289 /// The config this deployment is rolling back to. Will be cleared after rollback is done.
290 /// +optional
291 #[prost(message, optional, tag = "8")]
292 pub rollback_to: ::core::option::Option<RollbackConfig>,
293 /// The maximum time in seconds for a deployment to make progress before it
294 /// is considered to be failed. The deployment controller will continue to
295 /// process failed deployments and a condition with a ProgressDeadlineExceeded
296 /// reason will be surfaced in the deployment status. Note that progress will
297 /// not be estimated during the time a deployment is paused. This is set to
298 /// the max value of int32 (i.e. 2147483647) by default, which means "no deadline".
299 /// +optional
300 #[prost(int32, optional, tag = "9")]
301 pub progress_deadline_seconds: ::core::option::Option<i32>,
302}
303/// DeploymentStatus is the most recently observed status of the Deployment.
304#[derive(Clone, PartialEq, ::prost::Message)]
305pub struct DeploymentStatus {
306 /// The generation observed by the deployment controller.
307 /// +optional
308 #[prost(int64, optional, tag = "1")]
309 pub observed_generation: ::core::option::Option<i64>,
310 /// Total number of non-terminating pods targeted by this deployment (their labels match the selector).
311 /// +optional
312 #[prost(int32, optional, tag = "2")]
313 pub replicas: ::core::option::Option<i32>,
314 /// Total number of non-terminating pods targeted by this deployment that have the desired template spec.
315 /// +optional
316 #[prost(int32, optional, tag = "3")]
317 pub updated_replicas: ::core::option::Option<i32>,
318 /// Total number of non-terminating pods targeted by this Deployment with a Ready Condition.
319 /// +optional
320 #[prost(int32, optional, tag = "7")]
321 pub ready_replicas: ::core::option::Option<i32>,
322 /// Total number of available non-terminating pods (ready for at least minReadySeconds) targeted by this deployment.
323 /// +optional
324 #[prost(int32, optional, tag = "4")]
325 pub available_replicas: ::core::option::Option<i32>,
326 /// Total number of unavailable pods targeted by this deployment. This is the total number of
327 /// pods that are still required for the deployment to have 100% available capacity. They may
328 /// either be pods that are running but not yet available or pods that still have not been created.
329 /// +optional
330 #[prost(int32, optional, tag = "5")]
331 pub unavailable_replicas: ::core::option::Option<i32>,
332 /// Total number of terminating pods targeted by this deployment. Terminating pods have a non-null
333 /// .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase.
334 ///
335 /// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).
336 /// +optional
337 #[prost(int32, optional, tag = "9")]
338 pub terminating_replicas: ::core::option::Option<i32>,
339 /// Represents the latest available observations of a deployment's current state.
340 /// +patchMergeKey=type
341 /// +patchStrategy=merge
342 /// +listType=map
343 /// +listMapKey=type
344 #[prost(message, repeated, tag = "6")]
345 pub conditions: ::prost::alloc::vec::Vec<DeploymentCondition>,
346 /// Count of hash collisions for the Deployment. The Deployment controller uses this
347 /// field as a collision avoidance mechanism when it needs to create the name for the
348 /// newest ReplicaSet.
349 /// +optional
350 #[prost(int32, optional, tag = "8")]
351 pub collision_count: ::core::option::Option<i32>,
352}
353/// DeploymentStrategy describes how to replace existing pods with new ones.
354#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
355pub struct DeploymentStrategy {
356 /// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
357 /// +optional
358 #[prost(string, optional, tag = "1")]
359 pub r#type: ::core::option::Option<::prost::alloc::string::String>,
360 /// Rolling update config params. Present only if DeploymentStrategyType =
361 /// RollingUpdate.
362 /// ---
363 /// TODO: Update this to follow our convention for oneOf, whatever we decide it
364 /// to be.
365 /// +optional
366 #[prost(message, optional, tag = "2")]
367 pub rolling_update: ::core::option::Option<RollingUpdateDeployment>,
368}
369/// HTTPIngressPath associates a path with a backend. Incoming urls matching the
370/// path are forwarded to the backend.
371#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
372pub struct HttpIngressPath {
373 /// Path is matched against the path of an incoming request. Currently it can
374 /// contain characters disallowed from the conventional "path" part of a URL
375 /// as defined by RFC 3986. Paths must begin with a '/'. When unspecified,
376 /// all paths from incoming requests are matched.
377 /// +optional
378 #[prost(string, optional, tag = "1")]
379 pub path: ::core::option::Option<::prost::alloc::string::String>,
380 /// PathType determines the interpretation of the Path matching. PathType can
381 /// be one of the following values:
382 /// * Exact: Matches the URL path exactly.
383 /// * Prefix: Matches based on a URL path prefix split by '/'. Matching is
384 /// done on a path element by element basis. A path element refers is the
385 /// list of labels in the path split by the '/' separator. A request is a
386 /// match for path p if every p is an element-wise prefix of p of the
387 /// request path. Note that if the last element of the path is a substring
388 /// of the last element in request path, it is not a match (e.g. /foo/bar
389 /// matches /foo/bar/baz, but does not match /foo/barbaz).
390 /// * ImplementationSpecific: Interpretation of the Path matching is up to
391 /// the IngressClass. Implementations can treat this as a separate PathType
392 /// or treat it identically to Prefix or Exact path types.
393 /// Implementations are required to support all path types.
394 /// Defaults to ImplementationSpecific.
395 #[prost(string, optional, tag = "3")]
396 pub path_type: ::core::option::Option<::prost::alloc::string::String>,
397 /// Backend defines the referenced service endpoint to which the traffic
398 /// will be forwarded to.
399 #[prost(message, optional, tag = "2")]
400 pub backend: ::core::option::Option<IngressBackend>,
401}
402/// HTTPIngressRuleValue is a list of http selectors pointing to backends.
403/// In the example: <http://<host>/<path>?<searchpart>> -> backend where
404/// where parts of the url correspond to RFC 3986, this resource will be used
405/// to match against everything after the last '/' and before the first '?'
406/// or '#'.
407#[derive(Clone, PartialEq, ::prost::Message)]
408pub struct HttpIngressRuleValue {
409 /// A collection of paths that map requests to backends.
410 /// +listType=atomic
411 #[prost(message, repeated, tag = "1")]
412 pub paths: ::prost::alloc::vec::Vec<HttpIngressPath>,
413}
414/// DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock.
415/// IPBlock describes a particular CIDR (Ex. "192.168.1.0/24","2001:db8::/64") that is allowed
416/// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs
417/// that should not be included within this rule.
418#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
419pub struct IpBlock {
420 /// CIDR is a string representing the IP Block
421 /// Valid examples are "192.168.1.0/24" or "2001:db8::/64"
422 #[prost(string, optional, tag = "1")]
423 pub cidr: ::core::option::Option<::prost::alloc::string::String>,
424 /// Except is a slice of CIDRs that should not be included within an IP Block
425 /// Valid examples are "192.168.1.0/24" or "2001:db8::/64"
426 /// Except values will be rejected if they are outside the CIDR range
427 /// +optional
428 /// +listType=atomic
429 #[prost(string, repeated, tag = "2")]
430 pub except: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
431}
432/// Ingress is a collection of rules that allow inbound connections to reach the
433/// endpoints defined by a backend. An Ingress can be configured to give services
434/// externally-reachable urls, load balance traffic, terminate SSL, offer name
435/// based virtual hosting etc.
436/// DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.
437#[derive(Clone, PartialEq, ::prost::Message)]
438pub struct Ingress {
439 /// Standard object's metadata.
440 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
441 /// +optional
442 #[prost(message, optional, tag = "1")]
443 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
444 /// Spec is the desired state of the Ingress.
445 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
446 /// +optional
447 #[prost(message, optional, tag = "2")]
448 pub spec: ::core::option::Option<IngressSpec>,
449 /// Status is the current state of the Ingress.
450 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
451 /// +optional
452 #[prost(message, optional, tag = "3")]
453 pub status: ::core::option::Option<IngressStatus>,
454}
455/// IngressBackend describes all endpoints for a given service and port.
456#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
457pub struct IngressBackend {
458 /// Specifies the name of the referenced service.
459 /// +optional
460 #[prost(string, optional, tag = "1")]
461 pub service_name: ::core::option::Option<::prost::alloc::string::String>,
462 /// Specifies the port of the referenced service.
463 /// +optional
464 #[prost(message, optional, tag = "2")]
465 pub service_port:
466 ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
467 /// Resource is an ObjectRef to another Kubernetes resource in the namespace
468 /// of the Ingress object. If resource is specified, serviceName and servicePort
469 /// must not be specified.
470 /// +optional
471 #[prost(message, optional, tag = "3")]
472 pub resource: ::core::option::Option<super::super::core::v1::TypedLocalObjectReference>,
473}
474/// IngressList is a collection of Ingress.
475#[derive(Clone, PartialEq, ::prost::Message)]
476pub struct IngressList {
477 /// Standard object's metadata.
478 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
479 /// +optional
480 #[prost(message, optional, tag = "1")]
481 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
482 /// Items is the list of Ingress.
483 #[prost(message, repeated, tag = "2")]
484 pub items: ::prost::alloc::vec::Vec<Ingress>,
485}
486/// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.
487#[derive(Clone, PartialEq, ::prost::Message)]
488pub struct IngressLoadBalancerIngress {
489 /// IP is set for load-balancer ingress points that are IP based.
490 /// +optional
491 #[prost(string, optional, tag = "1")]
492 pub ip: ::core::option::Option<::prost::alloc::string::String>,
493 /// Hostname is set for load-balancer ingress points that are DNS based.
494 /// +optional
495 #[prost(string, optional, tag = "2")]
496 pub hostname: ::core::option::Option<::prost::alloc::string::String>,
497 /// Ports provides information about the ports exposed by this LoadBalancer.
498 /// +listType=atomic
499 /// +optional
500 #[prost(message, repeated, tag = "4")]
501 pub ports: ::prost::alloc::vec::Vec<IngressPortStatus>,
502}
503/// LoadBalancerStatus represents the status of a load-balancer.
504#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct IngressLoadBalancerStatus {
506 /// Ingress is a list containing ingress points for the load-balancer.
507 /// +optional
508 /// +listType=atomic
509 #[prost(message, repeated, tag = "1")]
510 pub ingress: ::prost::alloc::vec::Vec<IngressLoadBalancerIngress>,
511}
512/// IngressPortStatus represents the error condition of a service port
513#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
514pub struct IngressPortStatus {
515 /// Port is the port number of the ingress port.
516 #[prost(int32, optional, tag = "1")]
517 pub port: ::core::option::Option<i32>,
518 /// Protocol is the protocol of the ingress port.
519 /// The supported values are: "TCP", "UDP", "SCTP"
520 #[prost(string, optional, tag = "2")]
521 pub protocol: ::core::option::Option<::prost::alloc::string::String>,
522 /// Error is to record the problem with the service port
523 /// The format of the error shall comply with the following rules:
524 /// - built-in error values shall be specified in this file and those shall use
525 /// CamelCase names
526 /// - cloud provider specific error values must have names that comply with the
527 /// format foo.example.com/CamelCase.
528 /// ---
529 /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
530 /// +optional
531 /// +kubebuilder:validation:Required
532 /// +kubebuilder:validation:Pattern=`^([a-z0-9](\[-a-z0-9\]*[a-z0-9])?(\.[a-z0-9](\[-a-z0-9\]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?\[A-Za-z0-9\])$`
533 /// +kubebuilder:validation:MaxLength=316
534 #[prost(string, optional, tag = "3")]
535 pub error: ::core::option::Option<::prost::alloc::string::String>,
536}
537/// IngressRule represents the rules mapping the paths under a specified host to
538/// the related backend services. Incoming requests are first evaluated for a host
539/// match, then routed to the backend associated with the matching IngressRuleValue.
540#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct IngressRule {
542 /// Host is the fully qualified domain name of a network host, as defined by RFC 3986.
543 /// Note the following deviations from the "host" part of the
544 /// URI as defined in RFC 3986:
545 /// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to
546 /// the IP in the Spec of the parent Ingress.
547 /// 2. The `:` delimiter is not respected because ports are not allowed.
548 /// Currently the port of an Ingress is implicitly :80 for http and
549 /// :443 for https.
550 /// Both these may change in the future.
551 /// Incoming requests are matched against the host before the
552 /// IngressRuleValue. If the host is unspecified, the Ingress routes all
553 /// traffic based on the specified IngressRuleValue.
554 ///
555 /// Host can be "precise" which is a domain name without the terminating dot of
556 /// a network host (e.g. "foo.bar.com") or "wildcard", which is a domain name
557 /// prefixed with a single wildcard label (e.g. "*.foo.com").
558 /// The wildcard character '*' must appear by itself as the first DNS label and
559 /// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == "*").
560 /// Requests will be matched against the Host field in the following way:
561 /// 1. If Host is precise, the request matches this rule if the http host header is equal to Host.
562 /// 2. If Host is a wildcard, then the request matches this rule if the http host header
563 /// is to equal to the suffix (removing the first label) of the wildcard rule.
564 /// +optional
565 #[prost(string, optional, tag = "1")]
566 pub host: ::core::option::Option<::prost::alloc::string::String>,
567 /// IngressRuleValue represents a rule to route requests for this IngressRule.
568 /// If unspecified, the rule defaults to a http catch-all. Whether that sends
569 /// just traffic matching the host to the default backend or all traffic to the
570 /// default backend, is left to the controller fulfilling the Ingress. Http is
571 /// currently the only supported IngressRuleValue.
572 /// +optional
573 #[prost(message, optional, tag = "2")]
574 pub ingress_rule_value: ::core::option::Option<IngressRuleValue>,
575}
576/// IngressRuleValue represents a rule to apply against incoming requests. If the
577/// rule is satisfied, the request is routed to the specified backend. Currently
578/// mixing different types of rules in a single Ingress is disallowed, so exactly
579/// one of the following must be set.
580#[derive(Clone, PartialEq, ::prost::Message)]
581pub struct IngressRuleValue {
582 /// http is a list of http selectors pointing to backends.
583 /// A path is matched against the path of an incoming request. Currently it can
584 /// contain characters disallowed from the conventional "path" part of a URL
585 /// as defined by RFC 3986. Paths must begin with a '/'.
586 /// A backend defines the referenced service endpoint to which the traffic
587 /// will be forwarded to.
588 #[prost(message, optional, tag = "1")]
589 pub http: ::core::option::Option<HttpIngressRuleValue>,
590}
591/// IngressSpec describes the Ingress the user wishes to exist.
592#[derive(Clone, PartialEq, ::prost::Message)]
593pub struct IngressSpec {
594 /// IngressClassName is the name of the IngressClass cluster resource. The
595 /// associated IngressClass defines which controller will implement the
596 /// resource. This replaces the deprecated `kubernetes.io/ingress.class`
597 /// annotation. For backwards compatibility, when that annotation is set, it
598 /// must be given precedence over this field. The controller may emit a
599 /// warning if the field and annotation have different values.
600 /// Implementations of this API should ignore Ingresses without a class
601 /// specified. An IngressClass resource may be marked as default, which can
602 /// be used to set a default value for this field. For more information,
603 /// refer to the IngressClass documentation.
604 /// +optional
605 #[prost(string, optional, tag = "4")]
606 pub ingress_class_name: ::core::option::Option<::prost::alloc::string::String>,
607 /// A default backend capable of servicing requests that don't match any
608 /// rule. At least one of 'backend' or 'rules' must be specified. This field
609 /// is optional to allow the loadbalancer controller or defaulting logic to
610 /// specify a global default.
611 /// +optional
612 #[prost(message, optional, tag = "1")]
613 pub backend: ::core::option::Option<IngressBackend>,
614 /// TLS configuration. Currently the Ingress only supports a single TLS
615 /// port, 443. If multiple members of this list specify different hosts, they
616 /// will be multiplexed on the same port according to the hostname specified
617 /// through the SNI TLS extension, if the ingress controller fulfilling the
618 /// ingress supports SNI.
619 /// +optional
620 /// +listType=atomic
621 #[prost(message, repeated, tag = "2")]
622 pub tls: ::prost::alloc::vec::Vec<IngressTls>,
623 /// A list of host rules used to configure the Ingress. If unspecified, or
624 /// no rule matches, all traffic is sent to the default backend.
625 /// +optional
626 /// +listType=atomic
627 #[prost(message, repeated, tag = "3")]
628 pub rules: ::prost::alloc::vec::Vec<IngressRule>,
629}
630/// IngressStatus describe the current state of the Ingress.
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct IngressStatus {
633 /// LoadBalancer contains the current status of the load-balancer.
634 /// +optional
635 #[prost(message, optional, tag = "1")]
636 pub load_balancer: ::core::option::Option<IngressLoadBalancerStatus>,
637}
638/// IngressTLS describes the transport layer security associated with an Ingress.
639#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
640pub struct IngressTls {
641 /// Hosts are a list of hosts included in the TLS certificate. The values in
642 /// this list must match the name/s used in the tlsSecret. Defaults to the
643 /// wildcard host setting for the loadbalancer controller fulfilling this
644 /// Ingress, if left unspecified.
645 /// +optional
646 /// +listType=atomic
647 #[prost(string, repeated, tag = "1")]
648 pub hosts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
649 /// SecretName is the name of the secret used to terminate SSL traffic on 443.
650 /// Field is left optional to allow SSL routing based on SNI hostname alone.
651 /// If the SNI host in a listener conflicts with the "Host" header field used
652 /// by an IngressRule, the SNI host is used for termination and value of the
653 /// Host header is used for routing.
654 /// +optional
655 #[prost(string, optional, tag = "2")]
656 pub secret_name: ::core::option::Option<::prost::alloc::string::String>,
657}
658/// DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy.
659/// NetworkPolicy describes what network traffic is allowed for a set of Pods
660#[derive(Clone, PartialEq, ::prost::Message)]
661pub struct NetworkPolicy {
662 /// Standard object's metadata.
663 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
664 /// +optional
665 #[prost(message, optional, tag = "1")]
666 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
667 /// Specification of the desired behavior for this NetworkPolicy.
668 /// +optional
669 #[prost(message, optional, tag = "2")]
670 pub spec: ::core::option::Option<NetworkPolicySpec>,
671}
672/// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule.
673/// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods
674/// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.
675/// This type is beta-level in 1.8
676#[derive(Clone, PartialEq, ::prost::Message)]
677pub struct NetworkPolicyEgressRule {
678 /// List of destination ports for outgoing traffic.
679 /// Each item in this list is combined using a logical OR. If this field is
680 /// empty or missing, this rule matches all ports (traffic not restricted by port).
681 /// If this field is present and contains at least one item, then this rule allows
682 /// traffic only if the traffic matches at least one port in the list.
683 /// +optional
684 /// +listType=atomic
685 #[prost(message, repeated, tag = "1")]
686 pub ports: ::prost::alloc::vec::Vec<NetworkPolicyPort>,
687 /// List of destinations for outgoing traffic of pods selected for this rule.
688 /// Items in this list are combined using a logical OR operation. If this field is
689 /// empty or missing, this rule matches all destinations (traffic not restricted by
690 /// destination). If this field is present and contains at least one item, this rule
691 /// allows traffic only if the traffic matches at least one item in the to list.
692 /// +optional
693 /// +listType=atomic
694 #[prost(message, repeated, tag = "2")]
695 pub to: ::prost::alloc::vec::Vec<NetworkPolicyPeer>,
696}
697/// DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule.
698/// This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.
699#[derive(Clone, PartialEq, ::prost::Message)]
700pub struct NetworkPolicyIngressRule {
701 /// List of ports which should be made accessible on the pods selected for this rule.
702 /// Each item in this list is combined using a logical OR.
703 /// If this field is empty or missing, this rule matches all ports (traffic not restricted by port).
704 /// If this field is present and contains at least one item, then this rule allows traffic
705 /// only if the traffic matches at least one port in the list.
706 /// +optional
707 /// +listType=atomic
708 #[prost(message, repeated, tag = "1")]
709 pub ports: ::prost::alloc::vec::Vec<NetworkPolicyPort>,
710 /// List of sources which should be able to access the pods selected for this rule.
711 /// Items in this list are combined using a logical OR operation.
712 /// If this field is empty or missing, this rule matches all sources (traffic not restricted by source).
713 /// If this field is present and contains at least one item, this rule allows traffic only if the
714 /// traffic matches at least one item in the from list.
715 /// +optional
716 /// +listType=atomic
717 #[prost(message, repeated, tag = "2")]
718 pub from: ::prost::alloc::vec::Vec<NetworkPolicyPeer>,
719}
720/// DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList.
721/// Network Policy List is a list of NetworkPolicy objects.
722#[derive(Clone, PartialEq, ::prost::Message)]
723pub struct NetworkPolicyList {
724 /// Standard list metadata.
725 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
726 /// +optional
727 #[prost(message, optional, tag = "1")]
728 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
729 /// Items is a list of schema objects.
730 #[prost(message, repeated, tag = "2")]
731 pub items: ::prost::alloc::vec::Vec<NetworkPolicy>,
732}
733/// DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.
734#[derive(Clone, PartialEq, ::prost::Message)]
735pub struct NetworkPolicyPeer {
736 /// This is a label selector which selects Pods. This field follows standard label
737 /// selector semantics; if present but empty, it selects all pods.
738 ///
739 /// If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects
740 /// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.
741 /// Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.
742 /// +optional
743 #[prost(message, optional, tag = "1")]
744 pub pod_selector:
745 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
746 /// Selects Namespaces using cluster-scoped labels. This field follows standard label
747 /// selector semantics; if present but empty, it selects all namespaces.
748 ///
749 /// If PodSelector is also set, then the NetworkPolicyPeer as a whole selects
750 /// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.
751 /// Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.
752 /// +optional
753 #[prost(message, optional, tag = "2")]
754 pub namespace_selector:
755 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
756 /// IPBlock defines policy on a particular IPBlock. If this field is set then
757 /// neither of the other fields can be.
758 /// +optional
759 #[prost(message, optional, tag = "3")]
760 pub ip_block: ::core::option::Option<IpBlock>,
761}
762/// DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.
763#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
764pub struct NetworkPolicyPort {
765 /// Optional. The protocol (TCP, UDP, or SCTP) which traffic must match.
766 /// If not specified, this field defaults to TCP.
767 /// +optional
768 #[prost(string, optional, tag = "1")]
769 pub protocol: ::core::option::Option<::prost::alloc::string::String>,
770 /// The port on the given protocol. This can either be a numerical or named
771 /// port on a pod. If this field is not provided, this matches all port names and
772 /// numbers.
773 /// If present, only traffic on the specified protocol AND port will be matched.
774 /// +optional
775 #[prost(message, optional, tag = "2")]
776 pub port: ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
777 /// If set, indicates that the range of ports from port to endPort, inclusive,
778 /// should be allowed by the policy. This field cannot be defined if the port field
779 /// is not defined or if the port field is defined as a named (string) port.
780 /// The endPort must be equal or greater than port.
781 /// +optional
782 #[prost(int32, optional, tag = "3")]
783 pub end_port: ::core::option::Option<i32>,
784}
785/// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct NetworkPolicySpec {
788 /// Selects the pods to which this NetworkPolicy object applies. The array of ingress rules
789 /// is applied to any pods selected by this field. Multiple network policies can select the
790 /// same set of pods. In this case, the ingress rules for each are combined additively.
791 /// This field is NOT optional and follows standard label selector semantics.
792 /// An empty podSelector matches all pods in this namespace.
793 #[prost(message, optional, tag = "1")]
794 pub pod_selector:
795 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
796 /// List of ingress rules to be applied to the selected pods.
797 /// Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod
798 /// OR if the traffic source is the pod's local node,
799 /// OR if the traffic matches at least one ingress rule across all of the NetworkPolicy
800 /// objects whose podSelector matches the pod.
801 /// If this field is empty then this NetworkPolicy does not allow any traffic
802 /// (and serves solely to ensure that the pods it selects are isolated by default).
803 /// +optional
804 /// +listType=atomic
805 #[prost(message, repeated, tag = "2")]
806 pub ingress: ::prost::alloc::vec::Vec<NetworkPolicyIngressRule>,
807 /// List of egress rules to be applied to the selected pods. Outgoing traffic is
808 /// allowed if there are no NetworkPolicies selecting the pod (and cluster policy
809 /// otherwise allows the traffic), OR if the traffic matches at least one egress rule
810 /// across all of the NetworkPolicy objects whose podSelector matches the pod. If
811 /// this field is empty then this NetworkPolicy limits all outgoing traffic (and serves
812 /// solely to ensure that the pods it selects are isolated by default).
813 /// This field is beta-level in 1.8
814 /// +optional
815 /// +listType=atomic
816 #[prost(message, repeated, tag = "3")]
817 pub egress: ::prost::alloc::vec::Vec<NetworkPolicyEgressRule>,
818 /// List of rule types that the NetworkPolicy relates to.
819 /// Valid options are \["Ingress"\], \["Egress"\], or \["Ingress", "Egress"\].
820 /// If this field is not specified, it will default based on the existence of Ingress or Egress rules;
821 /// policies that contain an Egress section are assumed to affect Egress, and all policies
822 /// (whether or not they contain an Ingress section) are assumed to affect Ingress.
823 /// If you want to write an egress-only policy, you must explicitly specify policyTypes \[ "Egress" \].
824 /// Likewise, if you want to write a policy that specifies that no egress is allowed,
825 /// you must specify a policyTypes value that include "Egress" (since such a policy would not include
826 /// an Egress section and would otherwise default to just \[ "Ingress" \]).
827 /// This field is beta-level in 1.8
828 /// +optional
829 /// +listType=atomic
830 #[prost(string, repeated, tag = "4")]
831 pub policy_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
832}
833/// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for
834/// more information.
835/// ReplicaSet ensures that a specified number of pod replicas are running at any given time.
836#[derive(Clone, PartialEq, ::prost::Message)]
837pub struct ReplicaSet {
838 /// If the Labels of a ReplicaSet are empty, they are defaulted to
839 /// be the same as the Pod(s) that the ReplicaSet manages.
840 /// Standard object's metadata. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata>
841 /// +optional
842 #[prost(message, optional, tag = "1")]
843 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
844 /// Spec defines the specification of the desired behavior of the ReplicaSet.
845 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
846 /// +optional
847 #[prost(message, optional, tag = "2")]
848 pub spec: ::core::option::Option<ReplicaSetSpec>,
849 /// Status is the most recently observed status of the ReplicaSet.
850 /// This data may be out of date by some window of time.
851 /// Populated by the system.
852 /// Read-only.
853 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status>
854 /// +optional
855 #[prost(message, optional, tag = "3")]
856 pub status: ::core::option::Option<ReplicaSetStatus>,
857}
858/// ReplicaSetCondition describes the state of a replica set at a certain point.
859#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
860pub struct ReplicaSetCondition {
861 /// Type of replica set condition.
862 #[prost(string, optional, tag = "1")]
863 pub r#type: ::core::option::Option<::prost::alloc::string::String>,
864 /// Status of the condition, one of True, False, Unknown.
865 #[prost(string, optional, tag = "2")]
866 pub status: ::core::option::Option<::prost::alloc::string::String>,
867 /// The last time the condition transitioned from one status to another.
868 /// +optional
869 #[prost(message, optional, tag = "3")]
870 pub last_transition_time:
871 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::Time>,
872 /// The reason for the condition's last transition.
873 /// +optional
874 #[prost(string, optional, tag = "4")]
875 pub reason: ::core::option::Option<::prost::alloc::string::String>,
876 /// A human readable message indicating details about the transition.
877 /// +optional
878 #[prost(string, optional, tag = "5")]
879 pub message: ::core::option::Option<::prost::alloc::string::String>,
880}
881/// ReplicaSetList is a collection of ReplicaSets.
882#[derive(Clone, PartialEq, ::prost::Message)]
883pub struct ReplicaSetList {
884 /// Standard list metadata.
885 /// More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds>
886 /// +optional
887 #[prost(message, optional, tag = "1")]
888 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ListMeta>,
889 /// List of ReplicaSets.
890 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset>
891 #[prost(message, repeated, tag = "2")]
892 pub items: ::prost::alloc::vec::Vec<ReplicaSet>,
893}
894/// ReplicaSetSpec is the specification of a ReplicaSet.
895#[derive(Clone, PartialEq, ::prost::Message)]
896pub struct ReplicaSetSpec {
897 /// Replicas is the number of desired pods.
898 /// This is a pointer to distinguish between explicit zero and unspecified.
899 /// Defaults to 1.
900 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset>
901 /// +optional
902 #[prost(int32, optional, tag = "1")]
903 pub replicas: ::core::option::Option<i32>,
904 /// Minimum number of seconds for which a newly created pod should be ready
905 /// without any of its container crashing, for it to be considered available.
906 /// Defaults to 0 (pod will be considered available as soon as it is ready)
907 /// +optional
908 #[prost(int32, optional, tag = "4")]
909 pub min_ready_seconds: ::core::option::Option<i32>,
910 /// Selector is a label query over pods that should match the replica count.
911 /// If the selector is empty, it is defaulted to the labels present on the pod template.
912 /// Label keys and values that must match in order to be controlled by this replica set.
913 /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
914 /// +optional
915 #[prost(message, optional, tag = "2")]
916 pub selector:
917 ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::LabelSelector>,
918 /// Template is the object that describes the pod that will be created if
919 /// insufficient replicas are detected.
920 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#pod-template>
921 /// +optional
922 #[prost(message, optional, tag = "3")]
923 pub template: ::core::option::Option<super::super::core::v1::PodTemplateSpec>,
924}
925/// ReplicaSetStatus represents the current status of a ReplicaSet.
926#[derive(Clone, PartialEq, ::prost::Message)]
927pub struct ReplicaSetStatus {
928 /// Replicas is the most recently observed number of non-terminating pods.
929 /// More info: <https://kubernetes.io/docs/concepts/workloads/controllers/replicaset>
930 #[prost(int32, optional, tag = "1")]
931 pub replicas: ::core::option::Option<i32>,
932 /// The number of non-terminating pods that have labels matching the labels of the pod template of the replicaset.
933 /// +optional
934 #[prost(int32, optional, tag = "2")]
935 pub fully_labeled_replicas: ::core::option::Option<i32>,
936 /// The number of non-terminating pods targeted by this ReplicaSet with a Ready Condition.
937 /// +optional
938 #[prost(int32, optional, tag = "4")]
939 pub ready_replicas: ::core::option::Option<i32>,
940 /// The number of available non-terminating pods (ready for at least minReadySeconds) for this replica set.
941 /// +optional
942 #[prost(int32, optional, tag = "5")]
943 pub available_replicas: ::core::option::Option<i32>,
944 /// The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp
945 /// and have not yet reached the Failed or Succeeded .status.phase.
946 ///
947 /// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default).
948 /// +optional
949 #[prost(int32, optional, tag = "7")]
950 pub terminating_replicas: ::core::option::Option<i32>,
951 /// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.
952 /// +optional
953 #[prost(int64, optional, tag = "3")]
954 pub observed_generation: ::core::option::Option<i64>,
955 /// Represents the latest available observations of a replica set's current state.
956 /// +optional
957 /// +patchMergeKey=type
958 /// +patchStrategy=merge
959 /// +listType=map
960 /// +listMapKey=type
961 #[prost(message, repeated, tag = "6")]
962 pub conditions: ::prost::alloc::vec::Vec<ReplicaSetCondition>,
963}
964/// DEPRECATED.
965#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
966pub struct RollbackConfig {
967 /// The revision to rollback to. If set to 0, rollback to the last revision.
968 /// +optional
969 #[prost(int64, optional, tag = "1")]
970 pub revision: ::core::option::Option<i64>,
971}
972/// Spec to control the desired behavior of daemon set rolling update.
973#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
974pub struct RollingUpdateDaemonSet {
975 /// The maximum number of DaemonSet pods that can be unavailable during the
976 /// update. Value can be an absolute number (ex: 5) or a percentage of total
977 /// number of DaemonSet pods at the start of the update (ex: 10%). Absolute
978 /// number is calculated from percentage by rounding up.
979 /// This cannot be 0 if MaxSurge is 0
980 /// Default value is 1.
981 /// Example: when this is set to 30%, at most 30% of the total number of nodes
982 /// that should be running the daemon pod (i.e. status.desiredNumberScheduled)
983 /// can have their pods stopped for an update at any given time. The update
984 /// starts by stopping at most 30% of those DaemonSet pods and then brings
985 /// up new DaemonSet pods in their place. Once the new pods are available,
986 /// it then proceeds onto other DaemonSet pods, thus ensuring that at least
987 /// 70% of original number of DaemonSet pods are available at all times during
988 /// the update.
989 /// +optional
990 #[prost(message, optional, tag = "1")]
991 pub max_unavailable:
992 ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
993 /// The maximum number of nodes with an existing available DaemonSet pod that
994 /// can have an updated DaemonSet pod during during an update.
995 /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
996 /// This can not be 0 if MaxUnavailable is 0.
997 /// Absolute number is calculated from percentage by rounding up to a minimum of 1.
998 /// Default value is 0.
999 /// Example: when this is set to 30%, at most 30% of the total number of nodes
1000 /// that should be running the daemon pod (i.e. status.desiredNumberScheduled)
1001 /// can have their a new pod created before the old pod is marked as deleted.
1002 /// The update starts by launching new pods on 30% of nodes. Once an updated
1003 /// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod
1004 /// on that node is marked deleted. If the old pod becomes unavailable for any
1005 /// reason (Ready transitions to false, is evicted, or is drained) an updated
1006 /// pod is immediately created on that node without considering surge limits.
1007 /// Allowing surge implies the possibility that the resources consumed by the
1008 /// daemonset on any given node can double if the readiness check fails, and
1009 /// so resource intensive daemonsets should take into account that they may
1010 /// cause evictions during disruption.
1011 /// This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.
1012 /// +optional
1013 #[prost(message, optional, tag = "2")]
1014 pub max_surge: ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
1015}
1016/// Spec to control the desired behavior of rolling update.
1017#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1018pub struct RollingUpdateDeployment {
1019 /// The maximum number of pods that can be unavailable during the update.
1020 /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
1021 /// Absolute number is calculated from percentage by rounding down.
1022 /// This can not be 0 if MaxSurge is 0.
1023 /// By default, a fixed value of 1 is used.
1024 /// Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods
1025 /// immediately when the rolling update starts. Once new pods are ready, old RC
1026 /// can be scaled down further, followed by scaling up the new RC, ensuring
1027 /// that the total number of pods available at all times during the update is at
1028 /// least 70% of desired pods.
1029 /// +optional
1030 #[prost(message, optional, tag = "1")]
1031 pub max_unavailable:
1032 ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
1033 /// The maximum number of pods that can be scheduled above the desired number of
1034 /// pods.
1035 /// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
1036 /// This can not be 0 if MaxUnavailable is 0.
1037 /// Absolute number is calculated from percentage by rounding up.
1038 /// By default, a value of 1 is used.
1039 /// Example: when this is set to 30%, the new RC can be scaled up immediately when
1040 /// the rolling update starts, such that the total number of old and new pods do not exceed
1041 /// 130% of desired pods. Once old pods have been killed,
1042 /// new RC can be scaled up further, ensuring that total number of pods running
1043 /// at any time during the update is at most 130% of desired pods.
1044 /// +optional
1045 #[prost(message, optional, tag = "2")]
1046 pub max_surge: ::core::option::Option<super::super::super::apimachinery::pkg::util::intstr::IntOrString>,
1047}
1048/// represents a scaling request for a resource.
1049#[derive(Clone, PartialEq, ::prost::Message)]
1050pub struct Scale {
1051 /// Standard object metadata; More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.>
1052 /// +optional
1053 #[prost(message, optional, tag = "1")]
1054 pub metadata: ::core::option::Option<super::super::super::apimachinery::pkg::apis::meta::v1::ObjectMeta>,
1055 /// defines the behavior of the scale. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.>
1056 /// +optional
1057 #[prost(message, optional, tag = "2")]
1058 pub spec: ::core::option::Option<ScaleSpec>,
1059 /// current status of the scale. More info: <https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.> Read-only.
1060 /// +optional
1061 #[prost(message, optional, tag = "3")]
1062 pub status: ::core::option::Option<ScaleStatus>,
1063}
1064/// describes the attributes of a scale subresource
1065#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1066pub struct ScaleSpec {
1067 /// desired number of instances for the scaled object.
1068 /// +optional
1069 /// +k8s:optional
1070 /// +default=0
1071 /// +k8s:minimum=0
1072 #[prost(int32, optional, tag = "1")]
1073 pub replicas: ::core::option::Option<i32>,
1074}
1075/// represents the current status of a scale subresource.
1076#[derive(Clone, PartialEq, ::prost::Message)]
1077pub struct ScaleStatus {
1078 /// actual number of observed instances of the scaled object.
1079 #[prost(int32, optional, tag = "1")]
1080 pub replicas: ::core::option::Option<i32>,
1081 /// 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/>
1082 /// +optional
1083 /// +mapType=atomic
1084 #[prost(btree_map = "string, string", tag = "2")]
1085 pub selector:
1086 ::prost::alloc::collections::BTreeMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1087 /// label selector for pods that should match the replicas count. This is a serializated
1088 /// version of both map-based and more expressive set-based selectors. This is done to
1089 /// avoid introspection in the clients. The string will be in the same format as the
1090 /// query-param syntax. If the target type only supports map-based selectors, both this
1091 /// field and map-based selector field are populated.
1092 /// More info: <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors>
1093 /// +optional
1094 #[prost(string, optional, tag = "3")]
1095 pub target_selector: ::core::option::Option<::prost::alloc::string::String>,
1096}