Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/production/operator/crds/monitoring.grafana.com_grafanaagents.yaml
4096 views
1
---
2
apiVersion: apiextensions.k8s.io/v1
3
kind: CustomResourceDefinition
4
metadata:
5
annotations:
6
controller-gen.kubebuilder.io/version: v0.9.2
7
creationTimestamp: null
8
name: grafanaagents.monitoring.grafana.com
9
spec:
10
group: monitoring.grafana.com
11
names:
12
categories:
13
- agent-operator
14
kind: GrafanaAgent
15
listKind: GrafanaAgentList
16
plural: grafanaagents
17
singular: grafanaagent
18
scope: Namespaced
19
versions:
20
- name: v1alpha1
21
schema:
22
openAPIV3Schema:
23
description: GrafanaAgent defines a Grafana Agent deployment.
24
properties:
25
apiVersion:
26
description: 'APIVersion defines the versioned schema of this representation
27
of an object. Servers should convert recognized schemas to the latest
28
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
29
type: string
30
kind:
31
description: 'Kind is a string value representing the REST resource this
32
object represents. Servers may infer this from the endpoint the client
33
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
34
type: string
35
metadata:
36
type: object
37
spec:
38
description: Spec holds the specification of the desired behavior for
39
the Grafana Agent cluster.
40
properties:
41
affinity:
42
description: Affinity, if specified, controls pod scheduling constraints.
43
properties:
44
nodeAffinity:
45
description: Describes node affinity scheduling rules for the
46
pod.
47
properties:
48
preferredDuringSchedulingIgnoredDuringExecution:
49
description: The scheduler will prefer to schedule pods to
50
nodes that satisfy the affinity expressions specified by
51
this field, but it may choose a node that violates one or
52
more of the expressions. The node that is most preferred
53
is the one with the greatest sum of weights, i.e. for each
54
node that meets all of the scheduling requirements (resource
55
request, requiredDuringScheduling affinity expressions,
56
etc.), compute a sum by iterating through the elements of
57
this field and adding "weight" to the sum if the node matches
58
the corresponding matchExpressions; the node(s) with the
59
highest sum are the most preferred.
60
items:
61
description: An empty preferred scheduling term matches
62
all objects with implicit weight 0 (i.e. it's a no-op).
63
A null preferred scheduling term matches no objects (i.e.
64
is also a no-op).
65
properties:
66
preference:
67
description: A node selector term, associated with the
68
corresponding weight.
69
properties:
70
matchExpressions:
71
description: A list of node selector requirements
72
by node's labels.
73
items:
74
description: A node selector requirement is a
75
selector that contains values, a key, and an
76
operator that relates the key and values.
77
properties:
78
key:
79
description: The label key that the selector
80
applies to.
81
type: string
82
operator:
83
description: Represents a key's relationship
84
to a set of values. Valid operators are
85
In, NotIn, Exists, DoesNotExist. Gt, and
86
Lt.
87
type: string
88
values:
89
description: An array of string values. If
90
the operator is In or NotIn, the values
91
array must be non-empty. If the operator
92
is Exists or DoesNotExist, the values array
93
must be empty. If the operator is Gt or
94
Lt, the values array must have a single
95
element, which will be interpreted as an
96
integer. This array is replaced during a
97
strategic merge patch.
98
items:
99
type: string
100
type: array
101
required:
102
- key
103
- operator
104
type: object
105
type: array
106
matchFields:
107
description: A list of node selector requirements
108
by node's fields.
109
items:
110
description: A node selector requirement is a
111
selector that contains values, a key, and an
112
operator that relates the key and values.
113
properties:
114
key:
115
description: The label key that the selector
116
applies to.
117
type: string
118
operator:
119
description: Represents a key's relationship
120
to a set of values. Valid operators are
121
In, NotIn, Exists, DoesNotExist. Gt, and
122
Lt.
123
type: string
124
values:
125
description: An array of string values. If
126
the operator is In or NotIn, the values
127
array must be non-empty. If the operator
128
is Exists or DoesNotExist, the values array
129
must be empty. If the operator is Gt or
130
Lt, the values array must have a single
131
element, which will be interpreted as an
132
integer. This array is replaced during a
133
strategic merge patch.
134
items:
135
type: string
136
type: array
137
required:
138
- key
139
- operator
140
type: object
141
type: array
142
type: object
143
x-kubernetes-map-type: atomic
144
weight:
145
description: Weight associated with matching the corresponding
146
nodeSelectorTerm, in the range 1-100.
147
format: int32
148
type: integer
149
required:
150
- preference
151
- weight
152
type: object
153
type: array
154
requiredDuringSchedulingIgnoredDuringExecution:
155
description: If the affinity requirements specified by this
156
field are not met at scheduling time, the pod will not be
157
scheduled onto the node. If the affinity requirements specified
158
by this field cease to be met at some point during pod execution
159
(e.g. due to an update), the system may or may not try to
160
eventually evict the pod from its node.
161
properties:
162
nodeSelectorTerms:
163
description: Required. A list of node selector terms.
164
The terms are ORed.
165
items:
166
description: A null or empty node selector term matches
167
no objects. The requirements of them are ANDed. The
168
TopologySelectorTerm type implements a subset of the
169
NodeSelectorTerm.
170
properties:
171
matchExpressions:
172
description: A list of node selector requirements
173
by node's labels.
174
items:
175
description: A node selector requirement is a
176
selector that contains values, a key, and an
177
operator that relates the key and values.
178
properties:
179
key:
180
description: The label key that the selector
181
applies to.
182
type: string
183
operator:
184
description: Represents a key's relationship
185
to a set of values. Valid operators are
186
In, NotIn, Exists, DoesNotExist. Gt, and
187
Lt.
188
type: string
189
values:
190
description: An array of string values. If
191
the operator is In or NotIn, the values
192
array must be non-empty. If the operator
193
is Exists or DoesNotExist, the values array
194
must be empty. If the operator is Gt or
195
Lt, the values array must have a single
196
element, which will be interpreted as an
197
integer. This array is replaced during a
198
strategic merge patch.
199
items:
200
type: string
201
type: array
202
required:
203
- key
204
- operator
205
type: object
206
type: array
207
matchFields:
208
description: A list of node selector requirements
209
by node's fields.
210
items:
211
description: A node selector requirement is a
212
selector that contains values, a key, and an
213
operator that relates the key and values.
214
properties:
215
key:
216
description: The label key that the selector
217
applies to.
218
type: string
219
operator:
220
description: Represents a key's relationship
221
to a set of values. Valid operators are
222
In, NotIn, Exists, DoesNotExist. Gt, and
223
Lt.
224
type: string
225
values:
226
description: An array of string values. If
227
the operator is In or NotIn, the values
228
array must be non-empty. If the operator
229
is Exists or DoesNotExist, the values array
230
must be empty. If the operator is Gt or
231
Lt, the values array must have a single
232
element, which will be interpreted as an
233
integer. This array is replaced during a
234
strategic merge patch.
235
items:
236
type: string
237
type: array
238
required:
239
- key
240
- operator
241
type: object
242
type: array
243
type: object
244
x-kubernetes-map-type: atomic
245
type: array
246
required:
247
- nodeSelectorTerms
248
type: object
249
x-kubernetes-map-type: atomic
250
type: object
251
podAffinity:
252
description: Describes pod affinity scheduling rules (e.g. co-locate
253
this pod in the same node, zone, etc. as some other pod(s)).
254
properties:
255
preferredDuringSchedulingIgnoredDuringExecution:
256
description: The scheduler will prefer to schedule pods to
257
nodes that satisfy the affinity expressions specified by
258
this field, but it may choose a node that violates one or
259
more of the expressions. The node that is most preferred
260
is the one with the greatest sum of weights, i.e. for each
261
node that meets all of the scheduling requirements (resource
262
request, requiredDuringScheduling affinity expressions,
263
etc.), compute a sum by iterating through the elements of
264
this field and adding "weight" to the sum if the node has
265
pods which matches the corresponding podAffinityTerm; the
266
node(s) with the highest sum are the most preferred.
267
items:
268
description: The weights of all of the matched WeightedPodAffinityTerm
269
fields are added per-node to find the most preferred node(s)
270
properties:
271
podAffinityTerm:
272
description: Required. A pod affinity term, associated
273
with the corresponding weight.
274
properties:
275
labelSelector:
276
description: A label query over a set of resources,
277
in this case pods.
278
properties:
279
matchExpressions:
280
description: matchExpressions is a list of label
281
selector requirements. The requirements are
282
ANDed.
283
items:
284
description: A label selector requirement
285
is a selector that contains values, a key,
286
and an operator that relates the key and
287
values.
288
properties:
289
key:
290
description: key is the label key that
291
the selector applies to.
292
type: string
293
operator:
294
description: operator represents a key's
295
relationship to a set of values. Valid
296
operators are In, NotIn, Exists and
297
DoesNotExist.
298
type: string
299
values:
300
description: values is an array of string
301
values. If the operator is In or NotIn,
302
the values array must be non-empty.
303
If the operator is Exists or DoesNotExist,
304
the values array must be empty. This
305
array is replaced during a strategic
306
merge patch.
307
items:
308
type: string
309
type: array
310
required:
311
- key
312
- operator
313
type: object
314
type: array
315
matchLabels:
316
additionalProperties:
317
type: string
318
description: matchLabels is a map of {key,value}
319
pairs. A single {key,value} in the matchLabels
320
map is equivalent to an element of matchExpressions,
321
whose key field is "key", the operator is
322
"In", and the values array contains only "value".
323
The requirements are ANDed.
324
type: object
325
type: object
326
x-kubernetes-map-type: atomic
327
namespaceSelector:
328
description: A label query over the set of namespaces
329
that the term applies to. The term is applied
330
to the union of the namespaces selected by this
331
field and the ones listed in the namespaces field.
332
null selector and null or empty namespaces list
333
means "this pod's namespace". An empty selector
334
({}) matches all namespaces.
335
properties:
336
matchExpressions:
337
description: matchExpressions is a list of label
338
selector requirements. The requirements are
339
ANDed.
340
items:
341
description: A label selector requirement
342
is a selector that contains values, a key,
343
and an operator that relates the key and
344
values.
345
properties:
346
key:
347
description: key is the label key that
348
the selector applies to.
349
type: string
350
operator:
351
description: operator represents a key's
352
relationship to a set of values. Valid
353
operators are In, NotIn, Exists and
354
DoesNotExist.
355
type: string
356
values:
357
description: values is an array of string
358
values. If the operator is In or NotIn,
359
the values array must be non-empty.
360
If the operator is Exists or DoesNotExist,
361
the values array must be empty. This
362
array is replaced during a strategic
363
merge patch.
364
items:
365
type: string
366
type: array
367
required:
368
- key
369
- operator
370
type: object
371
type: array
372
matchLabels:
373
additionalProperties:
374
type: string
375
description: matchLabels is a map of {key,value}
376
pairs. A single {key,value} in the matchLabels
377
map is equivalent to an element of matchExpressions,
378
whose key field is "key", the operator is
379
"In", and the values array contains only "value".
380
The requirements are ANDed.
381
type: object
382
type: object
383
x-kubernetes-map-type: atomic
384
namespaces:
385
description: namespaces specifies a static list
386
of namespace names that the term applies to. The
387
term is applied to the union of the namespaces
388
listed in this field and the ones selected by
389
namespaceSelector. null or empty namespaces list
390
and null namespaceSelector means "this pod's namespace".
391
items:
392
type: string
393
type: array
394
topologyKey:
395
description: This pod should be co-located (affinity)
396
or not co-located (anti-affinity) with the pods
397
matching the labelSelector in the specified namespaces,
398
where co-located is defined as running on a node
399
whose value of the label with key topologyKey
400
matches that of any node on which any of the selected
401
pods is running. Empty topologyKey is not allowed.
402
type: string
403
required:
404
- topologyKey
405
type: object
406
weight:
407
description: weight associated with matching the corresponding
408
podAffinityTerm, in the range 1-100.
409
format: int32
410
type: integer
411
required:
412
- podAffinityTerm
413
- weight
414
type: object
415
type: array
416
requiredDuringSchedulingIgnoredDuringExecution:
417
description: If the affinity requirements specified by this
418
field are not met at scheduling time, the pod will not be
419
scheduled onto the node. If the affinity requirements specified
420
by this field cease to be met at some point during pod execution
421
(e.g. due to a pod label update), the system may or may
422
not try to eventually evict the pod from its node. When
423
there are multiple elements, the lists of nodes corresponding
424
to each podAffinityTerm are intersected, i.e. all terms
425
must be satisfied.
426
items:
427
description: Defines a set of pods (namely those matching
428
the labelSelector relative to the given namespace(s))
429
that this pod should be co-located (affinity) or not co-located
430
(anti-affinity) with, where co-located is defined as running
431
on a node whose value of the label with key <topologyKey>
432
matches that of any node on which a pod of the set of
433
pods is running
434
properties:
435
labelSelector:
436
description: A label query over a set of resources,
437
in this case pods.
438
properties:
439
matchExpressions:
440
description: matchExpressions is a list of label
441
selector requirements. The requirements are ANDed.
442
items:
443
description: A label selector requirement is a
444
selector that contains values, a key, and an
445
operator that relates the key and values.
446
properties:
447
key:
448
description: key is the label key that the
449
selector applies to.
450
type: string
451
operator:
452
description: operator represents a key's relationship
453
to a set of values. Valid operators are
454
In, NotIn, Exists and DoesNotExist.
455
type: string
456
values:
457
description: values is an array of string
458
values. If the operator is In or NotIn,
459
the values array must be non-empty. If the
460
operator is Exists or DoesNotExist, the
461
values array must be empty. This array is
462
replaced during a strategic merge patch.
463
items:
464
type: string
465
type: array
466
required:
467
- key
468
- operator
469
type: object
470
type: array
471
matchLabels:
472
additionalProperties:
473
type: string
474
description: matchLabels is a map of {key,value}
475
pairs. A single {key,value} in the matchLabels
476
map is equivalent to an element of matchExpressions,
477
whose key field is "key", the operator is "In",
478
and the values array contains only "value". The
479
requirements are ANDed.
480
type: object
481
type: object
482
x-kubernetes-map-type: atomic
483
namespaceSelector:
484
description: A label query over the set of namespaces
485
that the term applies to. The term is applied to the
486
union of the namespaces selected by this field and
487
the ones listed in the namespaces field. null selector
488
and null or empty namespaces list means "this pod's
489
namespace". An empty selector ({}) matches all namespaces.
490
properties:
491
matchExpressions:
492
description: matchExpressions is a list of label
493
selector requirements. The requirements are ANDed.
494
items:
495
description: A label selector requirement is a
496
selector that contains values, a key, and an
497
operator that relates the key and values.
498
properties:
499
key:
500
description: key is the label key that the
501
selector applies to.
502
type: string
503
operator:
504
description: operator represents a key's relationship
505
to a set of values. Valid operators are
506
In, NotIn, Exists and DoesNotExist.
507
type: string
508
values:
509
description: values is an array of string
510
values. If the operator is In or NotIn,
511
the values array must be non-empty. If the
512
operator is Exists or DoesNotExist, the
513
values array must be empty. This array is
514
replaced during a strategic merge patch.
515
items:
516
type: string
517
type: array
518
required:
519
- key
520
- operator
521
type: object
522
type: array
523
matchLabels:
524
additionalProperties:
525
type: string
526
description: matchLabels is a map of {key,value}
527
pairs. A single {key,value} in the matchLabels
528
map is equivalent to an element of matchExpressions,
529
whose key field is "key", the operator is "In",
530
and the values array contains only "value". The
531
requirements are ANDed.
532
type: object
533
type: object
534
x-kubernetes-map-type: atomic
535
namespaces:
536
description: namespaces specifies a static list of namespace
537
names that the term applies to. The term is applied
538
to the union of the namespaces listed in this field
539
and the ones selected by namespaceSelector. null or
540
empty namespaces list and null namespaceSelector means
541
"this pod's namespace".
542
items:
543
type: string
544
type: array
545
topologyKey:
546
description: This pod should be co-located (affinity)
547
or not co-located (anti-affinity) with the pods matching
548
the labelSelector in the specified namespaces, where
549
co-located is defined as running on a node whose value
550
of the label with key topologyKey matches that of
551
any node on which any of the selected pods is running.
552
Empty topologyKey is not allowed.
553
type: string
554
required:
555
- topologyKey
556
type: object
557
type: array
558
type: object
559
podAntiAffinity:
560
description: Describes pod anti-affinity scheduling rules (e.g.
561
avoid putting this pod in the same node, zone, etc. as some
562
other pod(s)).
563
properties:
564
preferredDuringSchedulingIgnoredDuringExecution:
565
description: The scheduler will prefer to schedule pods to
566
nodes that satisfy the anti-affinity expressions specified
567
by this field, but it may choose a node that violates one
568
or more of the expressions. The node that is most preferred
569
is the one with the greatest sum of weights, i.e. for each
570
node that meets all of the scheduling requirements (resource
571
request, requiredDuringScheduling anti-affinity expressions,
572
etc.), compute a sum by iterating through the elements of
573
this field and adding "weight" to the sum if the node has
574
pods which matches the corresponding podAffinityTerm; the
575
node(s) with the highest sum are the most preferred.
576
items:
577
description: The weights of all of the matched WeightedPodAffinityTerm
578
fields are added per-node to find the most preferred node(s)
579
properties:
580
podAffinityTerm:
581
description: Required. A pod affinity term, associated
582
with the corresponding weight.
583
properties:
584
labelSelector:
585
description: A label query over a set of resources,
586
in this case pods.
587
properties:
588
matchExpressions:
589
description: matchExpressions is a list of label
590
selector requirements. The requirements are
591
ANDed.
592
items:
593
description: A label selector requirement
594
is a selector that contains values, a key,
595
and an operator that relates the key and
596
values.
597
properties:
598
key:
599
description: key is the label key that
600
the selector applies to.
601
type: string
602
operator:
603
description: operator represents a key's
604
relationship to a set of values. Valid
605
operators are In, NotIn, Exists and
606
DoesNotExist.
607
type: string
608
values:
609
description: values is an array of string
610
values. If the operator is In or NotIn,
611
the values array must be non-empty.
612
If the operator is Exists or DoesNotExist,
613
the values array must be empty. This
614
array is replaced during a strategic
615
merge patch.
616
items:
617
type: string
618
type: array
619
required:
620
- key
621
- operator
622
type: object
623
type: array
624
matchLabels:
625
additionalProperties:
626
type: string
627
description: matchLabels is a map of {key,value}
628
pairs. A single {key,value} in the matchLabels
629
map is equivalent to an element of matchExpressions,
630
whose key field is "key", the operator is
631
"In", and the values array contains only "value".
632
The requirements are ANDed.
633
type: object
634
type: object
635
x-kubernetes-map-type: atomic
636
namespaceSelector:
637
description: A label query over the set of namespaces
638
that the term applies to. The term is applied
639
to the union of the namespaces selected by this
640
field and the ones listed in the namespaces field.
641
null selector and null or empty namespaces list
642
means "this pod's namespace". An empty selector
643
({}) matches all namespaces.
644
properties:
645
matchExpressions:
646
description: matchExpressions is a list of label
647
selector requirements. The requirements are
648
ANDed.
649
items:
650
description: A label selector requirement
651
is a selector that contains values, a key,
652
and an operator that relates the key and
653
values.
654
properties:
655
key:
656
description: key is the label key that
657
the selector applies to.
658
type: string
659
operator:
660
description: operator represents a key's
661
relationship to a set of values. Valid
662
operators are In, NotIn, Exists and
663
DoesNotExist.
664
type: string
665
values:
666
description: values is an array of string
667
values. If the operator is In or NotIn,
668
the values array must be non-empty.
669
If the operator is Exists or DoesNotExist,
670
the values array must be empty. This
671
array is replaced during a strategic
672
merge patch.
673
items:
674
type: string
675
type: array
676
required:
677
- key
678
- operator
679
type: object
680
type: array
681
matchLabels:
682
additionalProperties:
683
type: string
684
description: matchLabels is a map of {key,value}
685
pairs. A single {key,value} in the matchLabels
686
map is equivalent to an element of matchExpressions,
687
whose key field is "key", the operator is
688
"In", and the values array contains only "value".
689
The requirements are ANDed.
690
type: object
691
type: object
692
x-kubernetes-map-type: atomic
693
namespaces:
694
description: namespaces specifies a static list
695
of namespace names that the term applies to. The
696
term is applied to the union of the namespaces
697
listed in this field and the ones selected by
698
namespaceSelector. null or empty namespaces list
699
and null namespaceSelector means "this pod's namespace".
700
items:
701
type: string
702
type: array
703
topologyKey:
704
description: This pod should be co-located (affinity)
705
or not co-located (anti-affinity) with the pods
706
matching the labelSelector in the specified namespaces,
707
where co-located is defined as running on a node
708
whose value of the label with key topologyKey
709
matches that of any node on which any of the selected
710
pods is running. Empty topologyKey is not allowed.
711
type: string
712
required:
713
- topologyKey
714
type: object
715
weight:
716
description: weight associated with matching the corresponding
717
podAffinityTerm, in the range 1-100.
718
format: int32
719
type: integer
720
required:
721
- podAffinityTerm
722
- weight
723
type: object
724
type: array
725
requiredDuringSchedulingIgnoredDuringExecution:
726
description: If the anti-affinity requirements specified by
727
this field are not met at scheduling time, the pod will
728
not be scheduled onto the node. If the anti-affinity requirements
729
specified by this field cease to be met at some point during
730
pod execution (e.g. due to a pod label update), the system
731
may or may not try to eventually evict the pod from its
732
node. When there are multiple elements, the lists of nodes
733
corresponding to each podAffinityTerm are intersected, i.e.
734
all terms must be satisfied.
735
items:
736
description: Defines a set of pods (namely those matching
737
the labelSelector relative to the given namespace(s))
738
that this pod should be co-located (affinity) or not co-located
739
(anti-affinity) with, where co-located is defined as running
740
on a node whose value of the label with key <topologyKey>
741
matches that of any node on which a pod of the set of
742
pods is running
743
properties:
744
labelSelector:
745
description: A label query over a set of resources,
746
in this case pods.
747
properties:
748
matchExpressions:
749
description: matchExpressions is a list of label
750
selector requirements. The requirements are ANDed.
751
items:
752
description: A label selector requirement is a
753
selector that contains values, a key, and an
754
operator that relates the key and values.
755
properties:
756
key:
757
description: key is the label key that the
758
selector applies to.
759
type: string
760
operator:
761
description: operator represents a key's relationship
762
to a set of values. Valid operators are
763
In, NotIn, Exists and DoesNotExist.
764
type: string
765
values:
766
description: values is an array of string
767
values. If the operator is In or NotIn,
768
the values array must be non-empty. If the
769
operator is Exists or DoesNotExist, the
770
values array must be empty. This array is
771
replaced during a strategic merge patch.
772
items:
773
type: string
774
type: array
775
required:
776
- key
777
- operator
778
type: object
779
type: array
780
matchLabels:
781
additionalProperties:
782
type: string
783
description: matchLabels is a map of {key,value}
784
pairs. A single {key,value} in the matchLabels
785
map is equivalent to an element of matchExpressions,
786
whose key field is "key", the operator is "In",
787
and the values array contains only "value". The
788
requirements are ANDed.
789
type: object
790
type: object
791
x-kubernetes-map-type: atomic
792
namespaceSelector:
793
description: A label query over the set of namespaces
794
that the term applies to. The term is applied to the
795
union of the namespaces selected by this field and
796
the ones listed in the namespaces field. null selector
797
and null or empty namespaces list means "this pod's
798
namespace". An empty selector ({}) matches all namespaces.
799
properties:
800
matchExpressions:
801
description: matchExpressions is a list of label
802
selector requirements. The requirements are ANDed.
803
items:
804
description: A label selector requirement is a
805
selector that contains values, a key, and an
806
operator that relates the key and values.
807
properties:
808
key:
809
description: key is the label key that the
810
selector applies to.
811
type: string
812
operator:
813
description: operator represents a key's relationship
814
to a set of values. Valid operators are
815
In, NotIn, Exists and DoesNotExist.
816
type: string
817
values:
818
description: values is an array of string
819
values. If the operator is In or NotIn,
820
the values array must be non-empty. If the
821
operator is Exists or DoesNotExist, the
822
values array must be empty. This array is
823
replaced during a strategic merge patch.
824
items:
825
type: string
826
type: array
827
required:
828
- key
829
- operator
830
type: object
831
type: array
832
matchLabels:
833
additionalProperties:
834
type: string
835
description: matchLabels is a map of {key,value}
836
pairs. A single {key,value} in the matchLabels
837
map is equivalent to an element of matchExpressions,
838
whose key field is "key", the operator is "In",
839
and the values array contains only "value". The
840
requirements are ANDed.
841
type: object
842
type: object
843
x-kubernetes-map-type: atomic
844
namespaces:
845
description: namespaces specifies a static list of namespace
846
names that the term applies to. The term is applied
847
to the union of the namespaces listed in this field
848
and the ones selected by namespaceSelector. null or
849
empty namespaces list and null namespaceSelector means
850
"this pod's namespace".
851
items:
852
type: string
853
type: array
854
topologyKey:
855
description: This pod should be co-located (affinity)
856
or not co-located (anti-affinity) with the pods matching
857
the labelSelector in the specified namespaces, where
858
co-located is defined as running on a node whose value
859
of the label with key topologyKey matches that of
860
any node on which any of the selected pods is running.
861
Empty topologyKey is not allowed.
862
type: string
863
required:
864
- topologyKey
865
type: object
866
type: array
867
type: object
868
type: object
869
apiServer:
870
description: APIServerConfig lets you specify a host and auth methods
871
to access the Kubernetes API server. If left empty, the Agent assumes
872
that it is running inside of the cluster and will discover API servers
873
automatically and use the pod's CA certificate and bearer token
874
file at /var/run/secrets/kubernetes.io/serviceaccount.
875
properties:
876
authorization:
877
description: Authorization section for accessing apiserver
878
properties:
879
credentials:
880
description: The secret's key that contains the credentials
881
of the request
882
properties:
883
key:
884
description: The key of the secret to select from. Must
885
be a valid secret key.
886
type: string
887
name:
888
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
889
TODO: Add other useful fields. apiVersion, kind, uid?'
890
type: string
891
optional:
892
description: Specify whether the Secret or its key must
893
be defined
894
type: boolean
895
required:
896
- key
897
type: object
898
x-kubernetes-map-type: atomic
899
credentialsFile:
900
description: File to read a secret from, mutually exclusive
901
with Credentials (from SafeAuthorization)
902
type: string
903
type:
904
description: Set the authentication type. Defaults to Bearer,
905
Basic will cause an error
906
type: string
907
type: object
908
basicAuth:
909
description: BasicAuth allow an endpoint to authenticate over
910
basic authentication
911
properties:
912
password:
913
description: The secret in the service monitor namespace that
914
contains the password for authentication.
915
properties:
916
key:
917
description: The key of the secret to select from. Must
918
be a valid secret key.
919
type: string
920
name:
921
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
922
TODO: Add other useful fields. apiVersion, kind, uid?'
923
type: string
924
optional:
925
description: Specify whether the Secret or its key must
926
be defined
927
type: boolean
928
required:
929
- key
930
type: object
931
x-kubernetes-map-type: atomic
932
username:
933
description: The secret in the service monitor namespace that
934
contains the username for authentication.
935
properties:
936
key:
937
description: The key of the secret to select from. Must
938
be a valid secret key.
939
type: string
940
name:
941
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
942
TODO: Add other useful fields. apiVersion, kind, uid?'
943
type: string
944
optional:
945
description: Specify whether the Secret or its key must
946
be defined
947
type: boolean
948
required:
949
- key
950
type: object
951
x-kubernetes-map-type: atomic
952
type: object
953
bearerToken:
954
description: Bearer token for accessing apiserver.
955
type: string
956
bearerTokenFile:
957
description: File to read bearer token for accessing apiserver.
958
type: string
959
host:
960
description: Host of apiserver. A valid string consisting of a
961
hostname or IP followed by an optional port number
962
type: string
963
tlsConfig:
964
description: TLS Config to use for accessing apiserver.
965
properties:
966
ca:
967
description: Certificate authority used when verifying server
968
certificates.
969
properties:
970
configMap:
971
description: ConfigMap containing data to use for the
972
targets.
973
properties:
974
key:
975
description: The key to select.
976
type: string
977
name:
978
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
979
TODO: Add other useful fields. apiVersion, kind,
980
uid?'
981
type: string
982
optional:
983
description: Specify whether the ConfigMap or its
984
key must be defined
985
type: boolean
986
required:
987
- key
988
type: object
989
x-kubernetes-map-type: atomic
990
secret:
991
description: Secret containing data to use for the targets.
992
properties:
993
key:
994
description: The key of the secret to select from. Must
995
be a valid secret key.
996
type: string
997
name:
998
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
999
TODO: Add other useful fields. apiVersion, kind,
1000
uid?'
1001
type: string
1002
optional:
1003
description: Specify whether the Secret or its key
1004
must be defined
1005
type: boolean
1006
required:
1007
- key
1008
type: object
1009
x-kubernetes-map-type: atomic
1010
type: object
1011
caFile:
1012
description: Path to the CA cert in the Prometheus container
1013
to use for the targets.
1014
type: string
1015
cert:
1016
description: Client certificate to present when doing client-authentication.
1017
properties:
1018
configMap:
1019
description: ConfigMap containing data to use for the
1020
targets.
1021
properties:
1022
key:
1023
description: The key to select.
1024
type: string
1025
name:
1026
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1027
TODO: Add other useful fields. apiVersion, kind,
1028
uid?'
1029
type: string
1030
optional:
1031
description: Specify whether the ConfigMap or its
1032
key must be defined
1033
type: boolean
1034
required:
1035
- key
1036
type: object
1037
x-kubernetes-map-type: atomic
1038
secret:
1039
description: Secret containing data to use for the targets.
1040
properties:
1041
key:
1042
description: The key of the secret to select from. Must
1043
be a valid secret key.
1044
type: string
1045
name:
1046
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1047
TODO: Add other useful fields. apiVersion, kind,
1048
uid?'
1049
type: string
1050
optional:
1051
description: Specify whether the Secret or its key
1052
must be defined
1053
type: boolean
1054
required:
1055
- key
1056
type: object
1057
x-kubernetes-map-type: atomic
1058
type: object
1059
certFile:
1060
description: Path to the client cert file in the Prometheus
1061
container for the targets.
1062
type: string
1063
insecureSkipVerify:
1064
description: Disable target certificate validation.
1065
type: boolean
1066
keyFile:
1067
description: Path to the client key file in the Prometheus
1068
container for the targets.
1069
type: string
1070
keySecret:
1071
description: Secret containing the client key file for the
1072
targets.
1073
properties:
1074
key:
1075
description: The key of the secret to select from. Must
1076
be a valid secret key.
1077
type: string
1078
name:
1079
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1080
TODO: Add other useful fields. apiVersion, kind, uid?'
1081
type: string
1082
optional:
1083
description: Specify whether the Secret or its key must
1084
be defined
1085
type: boolean
1086
required:
1087
- key
1088
type: object
1089
x-kubernetes-map-type: atomic
1090
serverName:
1091
description: Used to verify the hostname for the targets.
1092
type: string
1093
type: object
1094
required:
1095
- host
1096
type: object
1097
configMaps:
1098
description: ConfigMaps is a list of config maps in the same namespace
1099
as the GrafanaAgent object which will be mounted into each running
1100
Grafana Agent pod. The ConfigMaps are mounted into /etc/grafana-agent/extra-configmaps/<configmap-name>.
1101
items:
1102
type: string
1103
type: array
1104
containers:
1105
description: 'Containers lets you inject additional containers or
1106
modify operator-generated containers. This can be used to add an
1107
authentication proxy to a Grafana Agent pod or to change the behavior
1108
of an operator-generated container. Containers described here modify
1109
an operator-generated container if they share the same name and
1110
if modifications are done via a strategic merge patch. The current
1111
container names are: `grafana-agent` and `config-reloader`. Overriding
1112
containers is entirely outside the scope of what the Grafana Agent
1113
team supports and by doing so, you accept that this behavior may
1114
break at any time without notice.'
1115
items:
1116
description: A single application container that you want to run
1117
within a pod.
1118
properties:
1119
args:
1120
description: 'Arguments to the entrypoint. The container image''s
1121
CMD is used if this is not provided. Variable references $(VAR_NAME)
1122
are expanded using the container''s environment. If a variable
1123
cannot be resolved, the reference in the input string will
1124
be unchanged. Double $$ are reduced to a single $, which allows
1125
for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
1126
produce the string literal "$(VAR_NAME)". Escaped references
1127
will never be expanded, regardless of whether the variable
1128
exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#run-a-command-in-a-shell'
1129
items:
1130
type: string
1131
type: array
1132
command:
1133
description: 'Entrypoint array. Not executed within a shell.
1134
The container image''s ENTRYPOINT is used if this is not provided.
1135
Variable references $(VAR_NAME) are expanded using the container''s
1136
environment. If a variable cannot be resolved, the reference
1137
in the input string will be unchanged. Double $$ are reduced
1138
to a single $, which allows for escaping the $(VAR_NAME) syntax:
1139
i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
1140
Escaped references will never be expanded, regardless of whether
1141
the variable exists or not. Cannot be updated. More info:
1142
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#run-a-command-in-a-shell'
1143
items:
1144
type: string
1145
type: array
1146
env:
1147
description: List of environment variables to set in the container.
1148
Cannot be updated.
1149
items:
1150
description: EnvVar represents an environment variable present
1151
in a Container.
1152
properties:
1153
name:
1154
description: Name of the environment variable. Must be
1155
a C_IDENTIFIER.
1156
type: string
1157
value:
1158
description: 'Variable references $(VAR_NAME) are expanded
1159
using the previously defined environment variables in
1160
the container and any service environment variables.
1161
If a variable cannot be resolved, the reference in the
1162
input string will be unchanged. Double $$ are reduced
1163
to a single $, which allows for escaping the $(VAR_NAME)
1164
syntax: i.e. "$$(VAR_NAME)" will produce the string
1165
literal "$(VAR_NAME)". Escaped references will never
1166
be expanded, regardless of whether the variable exists
1167
or not. Defaults to "".'
1168
type: string
1169
valueFrom:
1170
description: Source for the environment variable's value.
1171
Cannot be used if value is not empty.
1172
properties:
1173
configMapKeyRef:
1174
description: Selects a key of a ConfigMap.
1175
properties:
1176
key:
1177
description: The key to select.
1178
type: string
1179
name:
1180
description: 'Name of the referent. More info:
1181
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1182
TODO: Add other useful fields. apiVersion, kind,
1183
uid?'
1184
type: string
1185
optional:
1186
description: Specify whether the ConfigMap or
1187
its key must be defined
1188
type: boolean
1189
required:
1190
- key
1191
type: object
1192
x-kubernetes-map-type: atomic
1193
fieldRef:
1194
description: 'Selects a field of the pod: supports
1195
metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`,
1196
`metadata.annotations[''<KEY>'']`, spec.nodeName,
1197
spec.serviceAccountName, status.hostIP, status.podIP,
1198
status.podIPs.'
1199
properties:
1200
apiVersion:
1201
description: Version of the schema the FieldPath
1202
is written in terms of, defaults to "v1".
1203
type: string
1204
fieldPath:
1205
description: Path of the field to select in the
1206
specified API version.
1207
type: string
1208
required:
1209
- fieldPath
1210
type: object
1211
x-kubernetes-map-type: atomic
1212
resourceFieldRef:
1213
description: 'Selects a resource of the container:
1214
only resources limits and requests (limits.cpu,
1215
limits.memory, limits.ephemeral-storage, requests.cpu,
1216
requests.memory and requests.ephemeral-storage)
1217
are currently supported.'
1218
properties:
1219
containerName:
1220
description: 'Container name: required for volumes,
1221
optional for env vars'
1222
type: string
1223
divisor:
1224
anyOf:
1225
- type: integer
1226
- type: string
1227
description: Specifies the output format of the
1228
exposed resources, defaults to "1"
1229
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1230
x-kubernetes-int-or-string: true
1231
resource:
1232
description: 'Required: resource to select'
1233
type: string
1234
required:
1235
- resource
1236
type: object
1237
x-kubernetes-map-type: atomic
1238
secretKeyRef:
1239
description: Selects a key of a secret in the pod's
1240
namespace
1241
properties:
1242
key:
1243
description: The key of the secret to select from. Must
1244
be a valid secret key.
1245
type: string
1246
name:
1247
description: 'Name of the referent. More info:
1248
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1249
TODO: Add other useful fields. apiVersion, kind,
1250
uid?'
1251
type: string
1252
optional:
1253
description: Specify whether the Secret or its
1254
key must be defined
1255
type: boolean
1256
required:
1257
- key
1258
type: object
1259
x-kubernetes-map-type: atomic
1260
type: object
1261
required:
1262
- name
1263
type: object
1264
type: array
1265
envFrom:
1266
description: List of sources to populate environment variables
1267
in the container. The keys defined within a source must be
1268
a C_IDENTIFIER. All invalid keys will be reported as an event
1269
when the container is starting. When a key exists in multiple
1270
sources, the value associated with the last source will take
1271
precedence. Values defined by an Env with a duplicate key
1272
will take precedence. Cannot be updated.
1273
items:
1274
description: EnvFromSource represents the source of a set
1275
of ConfigMaps
1276
properties:
1277
configMapRef:
1278
description: The ConfigMap to select from
1279
properties:
1280
name:
1281
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1282
TODO: Add other useful fields. apiVersion, kind,
1283
uid?'
1284
type: string
1285
optional:
1286
description: Specify whether the ConfigMap must be
1287
defined
1288
type: boolean
1289
type: object
1290
x-kubernetes-map-type: atomic
1291
prefix:
1292
description: An optional identifier to prepend to each
1293
key in the ConfigMap. Must be a C_IDENTIFIER.
1294
type: string
1295
secretRef:
1296
description: The Secret to select from
1297
properties:
1298
name:
1299
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1300
TODO: Add other useful fields. apiVersion, kind,
1301
uid?'
1302
type: string
1303
optional:
1304
description: Specify whether the Secret must be defined
1305
type: boolean
1306
type: object
1307
x-kubernetes-map-type: atomic
1308
type: object
1309
type: array
1310
image:
1311
description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images
1312
This field is optional to allow higher level config management
1313
to default or override container images in workload controllers
1314
like Deployments and StatefulSets.'
1315
type: string
1316
imagePullPolicy:
1317
description: 'Image pull policy. One of Always, Never, IfNotPresent.
1318
Defaults to Always if :latest tag is specified, or IfNotPresent
1319
otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
1320
type: string
1321
lifecycle:
1322
description: Actions that the management system should take
1323
in response to container lifecycle events. Cannot be updated.
1324
properties:
1325
postStart:
1326
description: 'PostStart is called immediately after a container
1327
is created. If the handler fails, the container is terminated
1328
and restarted according to its restart policy. Other management
1329
of the container blocks until the hook completes. More
1330
info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
1331
properties:
1332
exec:
1333
description: Exec specifies the action to take.
1334
properties:
1335
command:
1336
description: Command is the command line to execute
1337
inside the container, the working directory for
1338
the command is root ('/') in the container's
1339
filesystem. The command is simply exec'd, it is
1340
not run inside a shell, so traditional shell instructions
1341
('|', etc) won't work. To use a shell, you need
1342
to explicitly call out to that shell. Exit status
1343
of 0 is treated as live/healthy and non-zero is
1344
unhealthy.
1345
items:
1346
type: string
1347
type: array
1348
type: object
1349
httpGet:
1350
description: HTTPGet specifies the http request to perform.
1351
properties:
1352
host:
1353
description: Host name to connect to, defaults to
1354
the pod IP. You probably want to set "Host" in
1355
httpHeaders instead.
1356
type: string
1357
httpHeaders:
1358
description: Custom headers to set in the request.
1359
HTTP allows repeated headers.
1360
items:
1361
description: HTTPHeader describes a custom header
1362
to be used in HTTP probes
1363
properties:
1364
name:
1365
description: The header field name
1366
type: string
1367
value:
1368
description: The header field value
1369
type: string
1370
required:
1371
- name
1372
- value
1373
type: object
1374
type: array
1375
path:
1376
description: Path to access on the HTTP server.
1377
type: string
1378
port:
1379
anyOf:
1380
- type: integer
1381
- type: string
1382
description: Name or number of the port to access
1383
on the container. Number must be in the range
1384
1 to 65535. Name must be an IANA_SVC_NAME.
1385
x-kubernetes-int-or-string: true
1386
scheme:
1387
description: Scheme to use for connecting to the
1388
host. Defaults to HTTP.
1389
type: string
1390
required:
1391
- port
1392
type: object
1393
tcpSocket:
1394
description: Deprecated. TCPSocket is NOT supported
1395
as a LifecycleHandler and kept for the backward compatibility.
1396
There are no validation of this field and lifecycle
1397
hooks will fail in runtime when tcp handler is specified.
1398
properties:
1399
host:
1400
description: 'Optional: Host name to connect to,
1401
defaults to the pod IP.'
1402
type: string
1403
port:
1404
anyOf:
1405
- type: integer
1406
- type: string
1407
description: Number or name of the port to access
1408
on the container. Number must be in the range
1409
1 to 65535. Name must be an IANA_SVC_NAME.
1410
x-kubernetes-int-or-string: true
1411
required:
1412
- port
1413
type: object
1414
type: object
1415
preStop:
1416
description: 'PreStop is called immediately before a container
1417
is terminated due to an API request or management event
1418
such as liveness/startup probe failure, preemption, resource
1419
contention, etc. The handler is not called if the container
1420
crashes or exits. The Pod''s termination grace period
1421
countdown begins before the PreStop hook is executed.
1422
Regardless of the outcome of the handler, the container
1423
will eventually terminate within the Pod''s termination
1424
grace period (unless delayed by finalizers). Other management
1425
of the container blocks until the hook completes or until
1426
the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
1427
properties:
1428
exec:
1429
description: Exec specifies the action to take.
1430
properties:
1431
command:
1432
description: Command is the command line to execute
1433
inside the container, the working directory for
1434
the command is root ('/') in the container's
1435
filesystem. The command is simply exec'd, it is
1436
not run inside a shell, so traditional shell instructions
1437
('|', etc) won't work. To use a shell, you need
1438
to explicitly call out to that shell. Exit status
1439
of 0 is treated as live/healthy and non-zero is
1440
unhealthy.
1441
items:
1442
type: string
1443
type: array
1444
type: object
1445
httpGet:
1446
description: HTTPGet specifies the http request to perform.
1447
properties:
1448
host:
1449
description: Host name to connect to, defaults to
1450
the pod IP. You probably want to set "Host" in
1451
httpHeaders instead.
1452
type: string
1453
httpHeaders:
1454
description: Custom headers to set in the request.
1455
HTTP allows repeated headers.
1456
items:
1457
description: HTTPHeader describes a custom header
1458
to be used in HTTP probes
1459
properties:
1460
name:
1461
description: The header field name
1462
type: string
1463
value:
1464
description: The header field value
1465
type: string
1466
required:
1467
- name
1468
- value
1469
type: object
1470
type: array
1471
path:
1472
description: Path to access on the HTTP server.
1473
type: string
1474
port:
1475
anyOf:
1476
- type: integer
1477
- type: string
1478
description: Name or number of the port to access
1479
on the container. Number must be in the range
1480
1 to 65535. Name must be an IANA_SVC_NAME.
1481
x-kubernetes-int-or-string: true
1482
scheme:
1483
description: Scheme to use for connecting to the
1484
host. Defaults to HTTP.
1485
type: string
1486
required:
1487
- port
1488
type: object
1489
tcpSocket:
1490
description: Deprecated. TCPSocket is NOT supported
1491
as a LifecycleHandler and kept for the backward compatibility.
1492
There are no validation of this field and lifecycle
1493
hooks will fail in runtime when tcp handler is specified.
1494
properties:
1495
host:
1496
description: 'Optional: Host name to connect to,
1497
defaults to the pod IP.'
1498
type: string
1499
port:
1500
anyOf:
1501
- type: integer
1502
- type: string
1503
description: Number or name of the port to access
1504
on the container. Number must be in the range
1505
1 to 65535. Name must be an IANA_SVC_NAME.
1506
x-kubernetes-int-or-string: true
1507
required:
1508
- port
1509
type: object
1510
type: object
1511
type: object
1512
livenessProbe:
1513
description: 'Periodic probe of container liveness. Container
1514
will be restarted if the probe fails. Cannot be updated. More
1515
info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1516
properties:
1517
exec:
1518
description: Exec specifies the action to take.
1519
properties:
1520
command:
1521
description: Command is the command line to execute
1522
inside the container, the working directory for the
1523
command is root ('/') in the container's filesystem.
1524
The command is simply exec'd, it is not run inside
1525
a shell, so traditional shell instructions ('|', etc)
1526
won't work. To use a shell, you need to explicitly
1527
call out to that shell. Exit status of 0 is treated
1528
as live/healthy and non-zero is unhealthy.
1529
items:
1530
type: string
1531
type: array
1532
type: object
1533
failureThreshold:
1534
description: Minimum consecutive failures for the probe
1535
to be considered failed after having succeeded. Defaults
1536
to 3. Minimum value is 1.
1537
format: int32
1538
type: integer
1539
grpc:
1540
description: GRPC specifies an action involving a GRPC port.
1541
This is a beta field and requires enabling GRPCContainerProbe
1542
feature gate.
1543
properties:
1544
port:
1545
description: Port number of the gRPC service. Number
1546
must be in the range 1 to 65535.
1547
format: int32
1548
type: integer
1549
service:
1550
description: "Service is the name of the service to
1551
place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
1552
\n If this is not specified, the default behavior
1553
is defined by gRPC."
1554
type: string
1555
required:
1556
- port
1557
type: object
1558
httpGet:
1559
description: HTTPGet specifies the http request to perform.
1560
properties:
1561
host:
1562
description: Host name to connect to, defaults to the
1563
pod IP. You probably want to set "Host" in httpHeaders
1564
instead.
1565
type: string
1566
httpHeaders:
1567
description: Custom headers to set in the request. HTTP
1568
allows repeated headers.
1569
items:
1570
description: HTTPHeader describes a custom header
1571
to be used in HTTP probes
1572
properties:
1573
name:
1574
description: The header field name
1575
type: string
1576
value:
1577
description: The header field value
1578
type: string
1579
required:
1580
- name
1581
- value
1582
type: object
1583
type: array
1584
path:
1585
description: Path to access on the HTTP server.
1586
type: string
1587
port:
1588
anyOf:
1589
- type: integer
1590
- type: string
1591
description: Name or number of the port to access on
1592
the container. Number must be in the range 1 to 65535.
1593
Name must be an IANA_SVC_NAME.
1594
x-kubernetes-int-or-string: true
1595
scheme:
1596
description: Scheme to use for connecting to the host.
1597
Defaults to HTTP.
1598
type: string
1599
required:
1600
- port
1601
type: object
1602
initialDelaySeconds:
1603
description: 'Number of seconds after the container has
1604
started before liveness probes are initiated. More info:
1605
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1606
format: int32
1607
type: integer
1608
periodSeconds:
1609
description: How often (in seconds) to perform the probe.
1610
Default to 10 seconds. Minimum value is 1.
1611
format: int32
1612
type: integer
1613
successThreshold:
1614
description: Minimum consecutive successes for the probe
1615
to be considered successful after having failed. Defaults
1616
to 1. Must be 1 for liveness and startup. Minimum value
1617
is 1.
1618
format: int32
1619
type: integer
1620
tcpSocket:
1621
description: TCPSocket specifies an action involving a TCP
1622
port.
1623
properties:
1624
host:
1625
description: 'Optional: Host name to connect to, defaults
1626
to the pod IP.'
1627
type: string
1628
port:
1629
anyOf:
1630
- type: integer
1631
- type: string
1632
description: Number or name of the port to access on
1633
the container. Number must be in the range 1 to 65535.
1634
Name must be an IANA_SVC_NAME.
1635
x-kubernetes-int-or-string: true
1636
required:
1637
- port
1638
type: object
1639
terminationGracePeriodSeconds:
1640
description: Optional duration in seconds the pod needs
1641
to terminate gracefully upon probe failure. The grace
1642
period is the duration in seconds after the processes
1643
running in the pod are sent a termination signal and the
1644
time when the processes are forcibly halted with a kill
1645
signal. Set this value longer than the expected cleanup
1646
time for your process. If this value is nil, the pod's
1647
terminationGracePeriodSeconds will be used. Otherwise,
1648
this value overrides the value provided by the pod spec.
1649
Value must be non-negative integer. The value zero indicates
1650
stop immediately via the kill signal (no opportunity to
1651
shut down). This is a beta field and requires enabling
1652
ProbeTerminationGracePeriod feature gate. Minimum value
1653
is 1. spec.terminationGracePeriodSeconds is used if unset.
1654
format: int64
1655
type: integer
1656
timeoutSeconds:
1657
description: 'Number of seconds after which the probe times
1658
out. Defaults to 1 second. Minimum value is 1. More info:
1659
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1660
format: int32
1661
type: integer
1662
type: object
1663
name:
1664
description: Name of the container specified as a DNS_LABEL.
1665
Each container in a pod must have a unique name (DNS_LABEL).
1666
Cannot be updated.
1667
type: string
1668
ports:
1669
description: List of ports to expose from the container. Not
1670
specifying a port here DOES NOT prevent that port from being
1671
exposed. Any port which is listening on the default "0.0.0.0"
1672
address inside a container will be accessible from the network.
1673
Modifying this array with strategic merge patch may corrupt
1674
the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255.
1675
Cannot be updated.
1676
items:
1677
description: ContainerPort represents a network port in a
1678
single container.
1679
properties:
1680
containerPort:
1681
description: Number of port to expose on the pod's IP
1682
address. This must be a valid port number, 0 < x < 65536.
1683
format: int32
1684
type: integer
1685
hostIP:
1686
description: What host IP to bind the external port to.
1687
type: string
1688
hostPort:
1689
description: Number of port to expose on the host. If
1690
specified, this must be a valid port number, 0 < x <
1691
65536. If HostNetwork is specified, this must match
1692
ContainerPort. Most containers do not need this.
1693
format: int32
1694
type: integer
1695
name:
1696
description: If specified, this must be an IANA_SVC_NAME
1697
and unique within the pod. Each named port in a pod
1698
must have a unique name. Name for the port that can
1699
be referred to by services.
1700
type: string
1701
protocol:
1702
default: TCP
1703
description: Protocol for port. Must be UDP, TCP, or SCTP.
1704
Defaults to "TCP".
1705
type: string
1706
required:
1707
- containerPort
1708
type: object
1709
type: array
1710
x-kubernetes-list-map-keys:
1711
- containerPort
1712
- protocol
1713
x-kubernetes-list-type: map
1714
readinessProbe:
1715
description: 'Periodic probe of container service readiness.
1716
Container will be removed from service endpoints if the probe
1717
fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1718
properties:
1719
exec:
1720
description: Exec specifies the action to take.
1721
properties:
1722
command:
1723
description: Command is the command line to execute
1724
inside the container, the working directory for the
1725
command is root ('/') in the container's filesystem.
1726
The command is simply exec'd, it is not run inside
1727
a shell, so traditional shell instructions ('|', etc)
1728
won't work. To use a shell, you need to explicitly
1729
call out to that shell. Exit status of 0 is treated
1730
as live/healthy and non-zero is unhealthy.
1731
items:
1732
type: string
1733
type: array
1734
type: object
1735
failureThreshold:
1736
description: Minimum consecutive failures for the probe
1737
to be considered failed after having succeeded. Defaults
1738
to 3. Minimum value is 1.
1739
format: int32
1740
type: integer
1741
grpc:
1742
description: GRPC specifies an action involving a GRPC port.
1743
This is a beta field and requires enabling GRPCContainerProbe
1744
feature gate.
1745
properties:
1746
port:
1747
description: Port number of the gRPC service. Number
1748
must be in the range 1 to 65535.
1749
format: int32
1750
type: integer
1751
service:
1752
description: "Service is the name of the service to
1753
place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
1754
\n If this is not specified, the default behavior
1755
is defined by gRPC."
1756
type: string
1757
required:
1758
- port
1759
type: object
1760
httpGet:
1761
description: HTTPGet specifies the http request to perform.
1762
properties:
1763
host:
1764
description: Host name to connect to, defaults to the
1765
pod IP. You probably want to set "Host" in httpHeaders
1766
instead.
1767
type: string
1768
httpHeaders:
1769
description: Custom headers to set in the request. HTTP
1770
allows repeated headers.
1771
items:
1772
description: HTTPHeader describes a custom header
1773
to be used in HTTP probes
1774
properties:
1775
name:
1776
description: The header field name
1777
type: string
1778
value:
1779
description: The header field value
1780
type: string
1781
required:
1782
- name
1783
- value
1784
type: object
1785
type: array
1786
path:
1787
description: Path to access on the HTTP server.
1788
type: string
1789
port:
1790
anyOf:
1791
- type: integer
1792
- type: string
1793
description: Name or number of the port to access on
1794
the container. Number must be in the range 1 to 65535.
1795
Name must be an IANA_SVC_NAME.
1796
x-kubernetes-int-or-string: true
1797
scheme:
1798
description: Scheme to use for connecting to the host.
1799
Defaults to HTTP.
1800
type: string
1801
required:
1802
- port
1803
type: object
1804
initialDelaySeconds:
1805
description: 'Number of seconds after the container has
1806
started before liveness probes are initiated. More info:
1807
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1808
format: int32
1809
type: integer
1810
periodSeconds:
1811
description: How often (in seconds) to perform the probe.
1812
Default to 10 seconds. Minimum value is 1.
1813
format: int32
1814
type: integer
1815
successThreshold:
1816
description: Minimum consecutive successes for the probe
1817
to be considered successful after having failed. Defaults
1818
to 1. Must be 1 for liveness and startup. Minimum value
1819
is 1.
1820
format: int32
1821
type: integer
1822
tcpSocket:
1823
description: TCPSocket specifies an action involving a TCP
1824
port.
1825
properties:
1826
host:
1827
description: 'Optional: Host name to connect to, defaults
1828
to the pod IP.'
1829
type: string
1830
port:
1831
anyOf:
1832
- type: integer
1833
- type: string
1834
description: Number or name of the port to access on
1835
the container. Number must be in the range 1 to 65535.
1836
Name must be an IANA_SVC_NAME.
1837
x-kubernetes-int-or-string: true
1838
required:
1839
- port
1840
type: object
1841
terminationGracePeriodSeconds:
1842
description: Optional duration in seconds the pod needs
1843
to terminate gracefully upon probe failure. The grace
1844
period is the duration in seconds after the processes
1845
running in the pod are sent a termination signal and the
1846
time when the processes are forcibly halted with a kill
1847
signal. Set this value longer than the expected cleanup
1848
time for your process. If this value is nil, the pod's
1849
terminationGracePeriodSeconds will be used. Otherwise,
1850
this value overrides the value provided by the pod spec.
1851
Value must be non-negative integer. The value zero indicates
1852
stop immediately via the kill signal (no opportunity to
1853
shut down). This is a beta field and requires enabling
1854
ProbeTerminationGracePeriod feature gate. Minimum value
1855
is 1. spec.terminationGracePeriodSeconds is used if unset.
1856
format: int64
1857
type: integer
1858
timeoutSeconds:
1859
description: 'Number of seconds after which the probe times
1860
out. Defaults to 1 second. Minimum value is 1. More info:
1861
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1862
format: int32
1863
type: integer
1864
type: object
1865
resources:
1866
description: 'Compute Resources required by this container.
1867
Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1868
properties:
1869
limits:
1870
additionalProperties:
1871
anyOf:
1872
- type: integer
1873
- type: string
1874
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1875
x-kubernetes-int-or-string: true
1876
description: 'Limits describes the maximum amount of compute
1877
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1878
type: object
1879
requests:
1880
additionalProperties:
1881
anyOf:
1882
- type: integer
1883
- type: string
1884
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1885
x-kubernetes-int-or-string: true
1886
description: 'Requests describes the minimum amount of compute
1887
resources required. If Requests is omitted for a container,
1888
it defaults to Limits if that is explicitly specified,
1889
otherwise to an implementation-defined value. More info:
1890
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1891
type: object
1892
type: object
1893
securityContext:
1894
description: 'SecurityContext defines the security options the
1895
container should be run with. If set, the fields of SecurityContext
1896
override the equivalent fields of PodSecurityContext. More
1897
info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
1898
properties:
1899
allowPrivilegeEscalation:
1900
description: 'AllowPrivilegeEscalation controls whether
1901
a process can gain more privileges than its parent process.
1902
This bool directly controls if the no_new_privs flag will
1903
be set on the container process. AllowPrivilegeEscalation
1904
is true always when the container is: 1) run as Privileged
1905
2) has CAP_SYS_ADMIN Note that this field cannot be set
1906
when spec.os.name is windows.'
1907
type: boolean
1908
capabilities:
1909
description: The capabilities to add/drop when running containers.
1910
Defaults to the default set of capabilities granted by
1911
the container runtime. Note that this field cannot be
1912
set when spec.os.name is windows.
1913
properties:
1914
add:
1915
description: Added capabilities
1916
items:
1917
description: Capability represent POSIX capabilities
1918
type
1919
type: string
1920
type: array
1921
drop:
1922
description: Removed capabilities
1923
items:
1924
description: Capability represent POSIX capabilities
1925
type
1926
type: string
1927
type: array
1928
type: object
1929
privileged:
1930
description: Run container in privileged mode. Processes
1931
in privileged containers are essentially equivalent to
1932
root on the host. Defaults to false. Note that this field
1933
cannot be set when spec.os.name is windows.
1934
type: boolean
1935
procMount:
1936
description: procMount denotes the type of proc mount to
1937
use for the containers. The default is DefaultProcMount
1938
which uses the container runtime defaults for readonly
1939
paths and masked paths. This requires the ProcMountType
1940
feature flag to be enabled. Note that this field cannot
1941
be set when spec.os.name is windows.
1942
type: string
1943
readOnlyRootFilesystem:
1944
description: Whether this container has a read-only root
1945
filesystem. Default is false. Note that this field cannot
1946
be set when spec.os.name is windows.
1947
type: boolean
1948
runAsGroup:
1949
description: The GID to run the entrypoint of the container
1950
process. Uses runtime default if unset. May also be set
1951
in PodSecurityContext. If set in both SecurityContext
1952
and PodSecurityContext, the value specified in SecurityContext
1953
takes precedence. Note that this field cannot be set when
1954
spec.os.name is windows.
1955
format: int64
1956
type: integer
1957
runAsNonRoot:
1958
description: Indicates that the container must run as a
1959
non-root user. If true, the Kubelet will validate the
1960
image at runtime to ensure that it does not run as UID
1961
0 (root) and fail to start the container if it does. If
1962
unset or false, no such validation will be performed.
1963
May also be set in PodSecurityContext. If set in both
1964
SecurityContext and PodSecurityContext, the value specified
1965
in SecurityContext takes precedence.
1966
type: boolean
1967
runAsUser:
1968
description: The UID to run the entrypoint of the container
1969
process. Defaults to user specified in image metadata
1970
if unspecified. May also be set in PodSecurityContext. If
1971
set in both SecurityContext and PodSecurityContext, the
1972
value specified in SecurityContext takes precedence. Note
1973
that this field cannot be set when spec.os.name is windows.
1974
format: int64
1975
type: integer
1976
seLinuxOptions:
1977
description: The SELinux context to be applied to the container.
1978
If unspecified, the container runtime will allocate a
1979
random SELinux context for each container. May also be
1980
set in PodSecurityContext. If set in both SecurityContext
1981
and PodSecurityContext, the value specified in SecurityContext
1982
takes precedence. Note that this field cannot be set when
1983
spec.os.name is windows.
1984
properties:
1985
level:
1986
description: Level is SELinux level label that applies
1987
to the container.
1988
type: string
1989
role:
1990
description: Role is a SELinux role label that applies
1991
to the container.
1992
type: string
1993
type:
1994
description: Type is a SELinux type label that applies
1995
to the container.
1996
type: string
1997
user:
1998
description: User is a SELinux user label that applies
1999
to the container.
2000
type: string
2001
type: object
2002
seccompProfile:
2003
description: The seccomp options to use by this container.
2004
If seccomp options are provided at both the pod & container
2005
level, the container options override the pod options.
2006
Note that this field cannot be set when spec.os.name is
2007
windows.
2008
properties:
2009
localhostProfile:
2010
description: localhostProfile indicates a profile defined
2011
in a file on the node should be used. The profile
2012
must be preconfigured on the node to work. Must be
2013
a descending path, relative to the kubelet's configured
2014
seccomp profile location. Must only be set if type
2015
is "Localhost".
2016
type: string
2017
type:
2018
description: "type indicates which kind of seccomp profile
2019
will be applied. Valid options are: \n Localhost -
2020
a profile defined in a file on the node should be
2021
used. RuntimeDefault - the container runtime default
2022
profile should be used. Unconfined - no profile should
2023
be applied."
2024
type: string
2025
required:
2026
- type
2027
type: object
2028
windowsOptions:
2029
description: The Windows specific settings applied to all
2030
containers. If unspecified, the options from the PodSecurityContext
2031
will be used. If set in both SecurityContext and PodSecurityContext,
2032
the value specified in SecurityContext takes precedence.
2033
Note that this field cannot be set when spec.os.name is
2034
linux.
2035
properties:
2036
gmsaCredentialSpec:
2037
description: GMSACredentialSpec is where the GMSA admission
2038
webhook (https://github.com/kubernetes-sigs/windows-gmsa)
2039
inlines the contents of the GMSA credential spec named
2040
by the GMSACredentialSpecName field.
2041
type: string
2042
gmsaCredentialSpecName:
2043
description: GMSACredentialSpecName is the name of the
2044
GMSA credential spec to use.
2045
type: string
2046
hostProcess:
2047
description: HostProcess determines if a container should
2048
be run as a 'Host Process' container. This field is
2049
alpha-level and will only be honored by components
2050
that enable the WindowsHostProcessContainers feature
2051
flag. Setting this field without the feature flag
2052
will result in errors when validating the Pod. All
2053
of a Pod's containers must have the same effective
2054
HostProcess value (it is not allowed to have a mix
2055
of HostProcess containers and non-HostProcess containers). In
2056
addition, if HostProcess is true then HostNetwork
2057
must also be set to true.
2058
type: boolean
2059
runAsUserName:
2060
description: The UserName in Windows to run the entrypoint
2061
of the container process. Defaults to the user specified
2062
in image metadata if unspecified. May also be set
2063
in PodSecurityContext. If set in both SecurityContext
2064
and PodSecurityContext, the value specified in SecurityContext
2065
takes precedence.
2066
type: string
2067
type: object
2068
type: object
2069
startupProbe:
2070
description: 'StartupProbe indicates that the Pod has successfully
2071
initialized. If specified, no other probes are executed until
2072
this completes successfully. If this probe fails, the Pod
2073
will be restarted, just as if the livenessProbe failed. This
2074
can be used to provide different probe parameters at the beginning
2075
of a Pod''s lifecycle, when it might take a long time to load
2076
data or warm a cache, than during steady-state operation.
2077
This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
2078
properties:
2079
exec:
2080
description: Exec specifies the action to take.
2081
properties:
2082
command:
2083
description: Command is the command line to execute
2084
inside the container, the working directory for the
2085
command is root ('/') in the container's filesystem.
2086
The command is simply exec'd, it is not run inside
2087
a shell, so traditional shell instructions ('|', etc)
2088
won't work. To use a shell, you need to explicitly
2089
call out to that shell. Exit status of 0 is treated
2090
as live/healthy and non-zero is unhealthy.
2091
items:
2092
type: string
2093
type: array
2094
type: object
2095
failureThreshold:
2096
description: Minimum consecutive failures for the probe
2097
to be considered failed after having succeeded. Defaults
2098
to 3. Minimum value is 1.
2099
format: int32
2100
type: integer
2101
grpc:
2102
description: GRPC specifies an action involving a GRPC port.
2103
This is a beta field and requires enabling GRPCContainerProbe
2104
feature gate.
2105
properties:
2106
port:
2107
description: Port number of the gRPC service. Number
2108
must be in the range 1 to 65535.
2109
format: int32
2110
type: integer
2111
service:
2112
description: "Service is the name of the service to
2113
place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
2114
\n If this is not specified, the default behavior
2115
is defined by gRPC."
2116
type: string
2117
required:
2118
- port
2119
type: object
2120
httpGet:
2121
description: HTTPGet specifies the http request to perform.
2122
properties:
2123
host:
2124
description: Host name to connect to, defaults to the
2125
pod IP. You probably want to set "Host" in httpHeaders
2126
instead.
2127
type: string
2128
httpHeaders:
2129
description: Custom headers to set in the request. HTTP
2130
allows repeated headers.
2131
items:
2132
description: HTTPHeader describes a custom header
2133
to be used in HTTP probes
2134
properties:
2135
name:
2136
description: The header field name
2137
type: string
2138
value:
2139
description: The header field value
2140
type: string
2141
required:
2142
- name
2143
- value
2144
type: object
2145
type: array
2146
path:
2147
description: Path to access on the HTTP server.
2148
type: string
2149
port:
2150
anyOf:
2151
- type: integer
2152
- type: string
2153
description: Name or number of the port to access on
2154
the container. Number must be in the range 1 to 65535.
2155
Name must be an IANA_SVC_NAME.
2156
x-kubernetes-int-or-string: true
2157
scheme:
2158
description: Scheme to use for connecting to the host.
2159
Defaults to HTTP.
2160
type: string
2161
required:
2162
- port
2163
type: object
2164
initialDelaySeconds:
2165
description: 'Number of seconds after the container has
2166
started before liveness probes are initiated. More info:
2167
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
2168
format: int32
2169
type: integer
2170
periodSeconds:
2171
description: How often (in seconds) to perform the probe.
2172
Default to 10 seconds. Minimum value is 1.
2173
format: int32
2174
type: integer
2175
successThreshold:
2176
description: Minimum consecutive successes for the probe
2177
to be considered successful after having failed. Defaults
2178
to 1. Must be 1 for liveness and startup. Minimum value
2179
is 1.
2180
format: int32
2181
type: integer
2182
tcpSocket:
2183
description: TCPSocket specifies an action involving a TCP
2184
port.
2185
properties:
2186
host:
2187
description: 'Optional: Host name to connect to, defaults
2188
to the pod IP.'
2189
type: string
2190
port:
2191
anyOf:
2192
- type: integer
2193
- type: string
2194
description: Number or name of the port to access on
2195
the container. Number must be in the range 1 to 65535.
2196
Name must be an IANA_SVC_NAME.
2197
x-kubernetes-int-or-string: true
2198
required:
2199
- port
2200
type: object
2201
terminationGracePeriodSeconds:
2202
description: Optional duration in seconds the pod needs
2203
to terminate gracefully upon probe failure. The grace
2204
period is the duration in seconds after the processes
2205
running in the pod are sent a termination signal and the
2206
time when the processes are forcibly halted with a kill
2207
signal. Set this value longer than the expected cleanup
2208
time for your process. If this value is nil, the pod's
2209
terminationGracePeriodSeconds will be used. Otherwise,
2210
this value overrides the value provided by the pod spec.
2211
Value must be non-negative integer. The value zero indicates
2212
stop immediately via the kill signal (no opportunity to
2213
shut down). This is a beta field and requires enabling
2214
ProbeTerminationGracePeriod feature gate. Minimum value
2215
is 1. spec.terminationGracePeriodSeconds is used if unset.
2216
format: int64
2217
type: integer
2218
timeoutSeconds:
2219
description: 'Number of seconds after which the probe times
2220
out. Defaults to 1 second. Minimum value is 1. More info:
2221
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
2222
format: int32
2223
type: integer
2224
type: object
2225
stdin:
2226
description: Whether this container should allocate a buffer
2227
for stdin in the container runtime. If this is not set, reads
2228
from stdin in the container will always result in EOF. Default
2229
is false.
2230
type: boolean
2231
stdinOnce:
2232
description: Whether the container runtime should close the
2233
stdin channel after it has been opened by a single attach.
2234
When stdin is true the stdin stream will remain open across
2235
multiple attach sessions. If stdinOnce is set to true, stdin
2236
is opened on container start, is empty until the first client
2237
attaches to stdin, and then remains open and accepts data
2238
until the client disconnects, at which time stdin is closed
2239
and remains closed until the container is restarted. If this
2240
flag is false, a container processes that reads from stdin
2241
will never receive an EOF. Default is false
2242
type: boolean
2243
terminationMessagePath:
2244
description: 'Optional: Path at which the file to which the
2245
container''s termination message will be written is mounted
2246
into the container''s filesystem. Message written is intended
2247
to be brief final status, such as an assertion failure message.
2248
Will be truncated by the node if greater than 4096 bytes.
2249
The total message length across all containers will be limited
2250
to 12kb. Defaults to /dev/termination-log. Cannot be updated.'
2251
type: string
2252
terminationMessagePolicy:
2253
description: Indicate how the termination message should be
2254
populated. File will use the contents of terminationMessagePath
2255
to populate the container status message on both success and
2256
failure. FallbackToLogsOnError will use the last chunk of
2257
container log output if the termination message file is empty
2258
and the container exited with an error. The log output is
2259
limited to 2048 bytes or 80 lines, whichever is smaller. Defaults
2260
to File. Cannot be updated.
2261
type: string
2262
tty:
2263
description: Whether this container should allocate a TTY for
2264
itself, also requires 'stdin' to be true. Default is false.
2265
type: boolean
2266
volumeDevices:
2267
description: volumeDevices is the list of block devices to be
2268
used by the container.
2269
items:
2270
description: volumeDevice describes a mapping of a raw block
2271
device within a container.
2272
properties:
2273
devicePath:
2274
description: devicePath is the path inside of the container
2275
that the device will be mapped to.
2276
type: string
2277
name:
2278
description: name must match the name of a persistentVolumeClaim
2279
in the pod
2280
type: string
2281
required:
2282
- devicePath
2283
- name
2284
type: object
2285
type: array
2286
volumeMounts:
2287
description: Pod volumes to mount into the container's filesystem.
2288
Cannot be updated.
2289
items:
2290
description: VolumeMount describes a mounting of a Volume
2291
within a container.
2292
properties:
2293
mountPath:
2294
description: Path within the container at which the volume
2295
should be mounted. Must not contain ':'.
2296
type: string
2297
mountPropagation:
2298
description: mountPropagation determines how mounts are
2299
propagated from the host to container and the other
2300
way around. When not set, MountPropagationNone is used.
2301
This field is beta in 1.10.
2302
type: string
2303
name:
2304
description: This must match the Name of a Volume.
2305
type: string
2306
readOnly:
2307
description: Mounted read-only if true, read-write otherwise
2308
(false or unspecified). Defaults to false.
2309
type: boolean
2310
subPath:
2311
description: Path within the volume from which the container's
2312
volume should be mounted. Defaults to "" (volume's root).
2313
type: string
2314
subPathExpr:
2315
description: Expanded path within the volume from which
2316
the container's volume should be mounted. Behaves similarly
2317
to SubPath but environment variable references $(VAR_NAME)
2318
are expanded using the container's environment. Defaults
2319
to "" (volume's root). SubPathExpr and SubPath are mutually
2320
exclusive.
2321
type: string
2322
required:
2323
- mountPath
2324
- name
2325
type: object
2326
type: array
2327
workingDir:
2328
description: Container's working directory. If not specified,
2329
the container runtime's default will be used, which might
2330
be configured in the container image. Cannot be updated.
2331
type: string
2332
required:
2333
- name
2334
type: object
2335
type: array
2336
disableReporting:
2337
default: false
2338
description: disableReporting disables reporting of enabled feature
2339
flags to Grafana.
2340
type: boolean
2341
disableSupportBundle:
2342
default: false
2343
description: disableSupportBundle disables the generation of support
2344
bundles.
2345
type: boolean
2346
enableConfigReadAPI:
2347
default: false
2348
description: enableConfigReadAPI enables the read API for viewing
2349
the currently running config port 8080 on the agent.
2350
type: boolean
2351
image:
2352
description: Image, when specified, overrides the image used to run
2353
Agent. Specify the image along with a tag. You still need to set
2354
the version to ensure Grafana Agent Operator knows which version
2355
of Grafana Agent is being configured.
2356
type: string
2357
imagePullSecrets:
2358
description: 'ImagePullSecrets holds an optional list of references
2359
to Secrets within the same namespace used for pulling the Grafana
2360
Agent image from registries. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod'
2361
items:
2362
description: LocalObjectReference contains enough information to
2363
let you locate the referenced object inside the same namespace.
2364
properties:
2365
name:
2366
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2367
TODO: Add other useful fields. apiVersion, kind, uid?'
2368
type: string
2369
type: object
2370
x-kubernetes-map-type: atomic
2371
type: array
2372
initContainers:
2373
description: 'InitContainers let you add initContainers to the pod
2374
definition. These can be used to, for example, fetch secrets for
2375
injection into the Grafana Agent configuration from external sources.
2376
Errors during the execution of an initContainer cause the pod to
2377
restart. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2378
Using initContainers for any use case other than secret fetching
2379
is entirely outside the scope of what the Grafana Agent maintainers
2380
support and by doing so, you accept that this behavior may break
2381
at any time without notice.'
2382
items:
2383
description: A single application container that you want to run
2384
within a pod.
2385
properties:
2386
args:
2387
description: 'Arguments to the entrypoint. The container image''s
2388
CMD is used if this is not provided. Variable references $(VAR_NAME)
2389
are expanded using the container''s environment. If a variable
2390
cannot be resolved, the reference in the input string will
2391
be unchanged. Double $$ are reduced to a single $, which allows
2392
for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
2393
produce the string literal "$(VAR_NAME)". Escaped references
2394
will never be expanded, regardless of whether the variable
2395
exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#run-a-command-in-a-shell'
2396
items:
2397
type: string
2398
type: array
2399
command:
2400
description: 'Entrypoint array. Not executed within a shell.
2401
The container image''s ENTRYPOINT is used if this is not provided.
2402
Variable references $(VAR_NAME) are expanded using the container''s
2403
environment. If a variable cannot be resolved, the reference
2404
in the input string will be unchanged. Double $$ are reduced
2405
to a single $, which allows for escaping the $(VAR_NAME) syntax:
2406
i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
2407
Escaped references will never be expanded, regardless of whether
2408
the variable exists or not. Cannot be updated. More info:
2409
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#run-a-command-in-a-shell'
2410
items:
2411
type: string
2412
type: array
2413
env:
2414
description: List of environment variables to set in the container.
2415
Cannot be updated.
2416
items:
2417
description: EnvVar represents an environment variable present
2418
in a Container.
2419
properties:
2420
name:
2421
description: Name of the environment variable. Must be
2422
a C_IDENTIFIER.
2423
type: string
2424
value:
2425
description: 'Variable references $(VAR_NAME) are expanded
2426
using the previously defined environment variables in
2427
the container and any service environment variables.
2428
If a variable cannot be resolved, the reference in the
2429
input string will be unchanged. Double $$ are reduced
2430
to a single $, which allows for escaping the $(VAR_NAME)
2431
syntax: i.e. "$$(VAR_NAME)" will produce the string
2432
literal "$(VAR_NAME)". Escaped references will never
2433
be expanded, regardless of whether the variable exists
2434
or not. Defaults to "".'
2435
type: string
2436
valueFrom:
2437
description: Source for the environment variable's value.
2438
Cannot be used if value is not empty.
2439
properties:
2440
configMapKeyRef:
2441
description: Selects a key of a ConfigMap.
2442
properties:
2443
key:
2444
description: The key to select.
2445
type: string
2446
name:
2447
description: 'Name of the referent. More info:
2448
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2449
TODO: Add other useful fields. apiVersion, kind,
2450
uid?'
2451
type: string
2452
optional:
2453
description: Specify whether the ConfigMap or
2454
its key must be defined
2455
type: boolean
2456
required:
2457
- key
2458
type: object
2459
x-kubernetes-map-type: atomic
2460
fieldRef:
2461
description: 'Selects a field of the pod: supports
2462
metadata.name, metadata.namespace, `metadata.labels[''<KEY>'']`,
2463
`metadata.annotations[''<KEY>'']`, spec.nodeName,
2464
spec.serviceAccountName, status.hostIP, status.podIP,
2465
status.podIPs.'
2466
properties:
2467
apiVersion:
2468
description: Version of the schema the FieldPath
2469
is written in terms of, defaults to "v1".
2470
type: string
2471
fieldPath:
2472
description: Path of the field to select in the
2473
specified API version.
2474
type: string
2475
required:
2476
- fieldPath
2477
type: object
2478
x-kubernetes-map-type: atomic
2479
resourceFieldRef:
2480
description: 'Selects a resource of the container:
2481
only resources limits and requests (limits.cpu,
2482
limits.memory, limits.ephemeral-storage, requests.cpu,
2483
requests.memory and requests.ephemeral-storage)
2484
are currently supported.'
2485
properties:
2486
containerName:
2487
description: 'Container name: required for volumes,
2488
optional for env vars'
2489
type: string
2490
divisor:
2491
anyOf:
2492
- type: integer
2493
- type: string
2494
description: Specifies the output format of the
2495
exposed resources, defaults to "1"
2496
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2497
x-kubernetes-int-or-string: true
2498
resource:
2499
description: 'Required: resource to select'
2500
type: string
2501
required:
2502
- resource
2503
type: object
2504
x-kubernetes-map-type: atomic
2505
secretKeyRef:
2506
description: Selects a key of a secret in the pod's
2507
namespace
2508
properties:
2509
key:
2510
description: The key of the secret to select from. Must
2511
be a valid secret key.
2512
type: string
2513
name:
2514
description: 'Name of the referent. More info:
2515
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2516
TODO: Add other useful fields. apiVersion, kind,
2517
uid?'
2518
type: string
2519
optional:
2520
description: Specify whether the Secret or its
2521
key must be defined
2522
type: boolean
2523
required:
2524
- key
2525
type: object
2526
x-kubernetes-map-type: atomic
2527
type: object
2528
required:
2529
- name
2530
type: object
2531
type: array
2532
envFrom:
2533
description: List of sources to populate environment variables
2534
in the container. The keys defined within a source must be
2535
a C_IDENTIFIER. All invalid keys will be reported as an event
2536
when the container is starting. When a key exists in multiple
2537
sources, the value associated with the last source will take
2538
precedence. Values defined by an Env with a duplicate key
2539
will take precedence. Cannot be updated.
2540
items:
2541
description: EnvFromSource represents the source of a set
2542
of ConfigMaps
2543
properties:
2544
configMapRef:
2545
description: The ConfigMap to select from
2546
properties:
2547
name:
2548
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2549
TODO: Add other useful fields. apiVersion, kind,
2550
uid?'
2551
type: string
2552
optional:
2553
description: Specify whether the ConfigMap must be
2554
defined
2555
type: boolean
2556
type: object
2557
x-kubernetes-map-type: atomic
2558
prefix:
2559
description: An optional identifier to prepend to each
2560
key in the ConfigMap. Must be a C_IDENTIFIER.
2561
type: string
2562
secretRef:
2563
description: The Secret to select from
2564
properties:
2565
name:
2566
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2567
TODO: Add other useful fields. apiVersion, kind,
2568
uid?'
2569
type: string
2570
optional:
2571
description: Specify whether the Secret must be defined
2572
type: boolean
2573
type: object
2574
x-kubernetes-map-type: atomic
2575
type: object
2576
type: array
2577
image:
2578
description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images
2579
This field is optional to allow higher level config management
2580
to default or override container images in workload controllers
2581
like Deployments and StatefulSets.'
2582
type: string
2583
imagePullPolicy:
2584
description: 'Image pull policy. One of Always, Never, IfNotPresent.
2585
Defaults to Always if :latest tag is specified, or IfNotPresent
2586
otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
2587
type: string
2588
lifecycle:
2589
description: Actions that the management system should take
2590
in response to container lifecycle events. Cannot be updated.
2591
properties:
2592
postStart:
2593
description: 'PostStart is called immediately after a container
2594
is created. If the handler fails, the container is terminated
2595
and restarted according to its restart policy. Other management
2596
of the container blocks until the hook completes. More
2597
info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
2598
properties:
2599
exec:
2600
description: Exec specifies the action to take.
2601
properties:
2602
command:
2603
description: Command is the command line to execute
2604
inside the container, the working directory for
2605
the command is root ('/') in the container's
2606
filesystem. The command is simply exec'd, it is
2607
not run inside a shell, so traditional shell instructions
2608
('|', etc) won't work. To use a shell, you need
2609
to explicitly call out to that shell. Exit status
2610
of 0 is treated as live/healthy and non-zero is
2611
unhealthy.
2612
items:
2613
type: string
2614
type: array
2615
type: object
2616
httpGet:
2617
description: HTTPGet specifies the http request to perform.
2618
properties:
2619
host:
2620
description: Host name to connect to, defaults to
2621
the pod IP. You probably want to set "Host" in
2622
httpHeaders instead.
2623
type: string
2624
httpHeaders:
2625
description: Custom headers to set in the request.
2626
HTTP allows repeated headers.
2627
items:
2628
description: HTTPHeader describes a custom header
2629
to be used in HTTP probes
2630
properties:
2631
name:
2632
description: The header field name
2633
type: string
2634
value:
2635
description: The header field value
2636
type: string
2637
required:
2638
- name
2639
- value
2640
type: object
2641
type: array
2642
path:
2643
description: Path to access on the HTTP server.
2644
type: string
2645
port:
2646
anyOf:
2647
- type: integer
2648
- type: string
2649
description: Name or number of the port to access
2650
on the container. Number must be in the range
2651
1 to 65535. Name must be an IANA_SVC_NAME.
2652
x-kubernetes-int-or-string: true
2653
scheme:
2654
description: Scheme to use for connecting to the
2655
host. Defaults to HTTP.
2656
type: string
2657
required:
2658
- port
2659
type: object
2660
tcpSocket:
2661
description: Deprecated. TCPSocket is NOT supported
2662
as a LifecycleHandler and kept for the backward compatibility.
2663
There are no validation of this field and lifecycle
2664
hooks will fail in runtime when tcp handler is specified.
2665
properties:
2666
host:
2667
description: 'Optional: Host name to connect to,
2668
defaults to the pod IP.'
2669
type: string
2670
port:
2671
anyOf:
2672
- type: integer
2673
- type: string
2674
description: Number or name of the port to access
2675
on the container. Number must be in the range
2676
1 to 65535. Name must be an IANA_SVC_NAME.
2677
x-kubernetes-int-or-string: true
2678
required:
2679
- port
2680
type: object
2681
type: object
2682
preStop:
2683
description: 'PreStop is called immediately before a container
2684
is terminated due to an API request or management event
2685
such as liveness/startup probe failure, preemption, resource
2686
contention, etc. The handler is not called if the container
2687
crashes or exits. The Pod''s termination grace period
2688
countdown begins before the PreStop hook is executed.
2689
Regardless of the outcome of the handler, the container
2690
will eventually terminate within the Pod''s termination
2691
grace period (unless delayed by finalizers). Other management
2692
of the container blocks until the hook completes or until
2693
the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
2694
properties:
2695
exec:
2696
description: Exec specifies the action to take.
2697
properties:
2698
command:
2699
description: Command is the command line to execute
2700
inside the container, the working directory for
2701
the command is root ('/') in the container's
2702
filesystem. The command is simply exec'd, it is
2703
not run inside a shell, so traditional shell instructions
2704
('|', etc) won't work. To use a shell, you need
2705
to explicitly call out to that shell. Exit status
2706
of 0 is treated as live/healthy and non-zero is
2707
unhealthy.
2708
items:
2709
type: string
2710
type: array
2711
type: object
2712
httpGet:
2713
description: HTTPGet specifies the http request to perform.
2714
properties:
2715
host:
2716
description: Host name to connect to, defaults to
2717
the pod IP. You probably want to set "Host" in
2718
httpHeaders instead.
2719
type: string
2720
httpHeaders:
2721
description: Custom headers to set in the request.
2722
HTTP allows repeated headers.
2723
items:
2724
description: HTTPHeader describes a custom header
2725
to be used in HTTP probes
2726
properties:
2727
name:
2728
description: The header field name
2729
type: string
2730
value:
2731
description: The header field value
2732
type: string
2733
required:
2734
- name
2735
- value
2736
type: object
2737
type: array
2738
path:
2739
description: Path to access on the HTTP server.
2740
type: string
2741
port:
2742
anyOf:
2743
- type: integer
2744
- type: string
2745
description: Name or number of the port to access
2746
on the container. Number must be in the range
2747
1 to 65535. Name must be an IANA_SVC_NAME.
2748
x-kubernetes-int-or-string: true
2749
scheme:
2750
description: Scheme to use for connecting to the
2751
host. Defaults to HTTP.
2752
type: string
2753
required:
2754
- port
2755
type: object
2756
tcpSocket:
2757
description: Deprecated. TCPSocket is NOT supported
2758
as a LifecycleHandler and kept for the backward compatibility.
2759
There are no validation of this field and lifecycle
2760
hooks will fail in runtime when tcp handler is specified.
2761
properties:
2762
host:
2763
description: 'Optional: Host name to connect to,
2764
defaults to the pod IP.'
2765
type: string
2766
port:
2767
anyOf:
2768
- type: integer
2769
- type: string
2770
description: Number or name of the port to access
2771
on the container. Number must be in the range
2772
1 to 65535. Name must be an IANA_SVC_NAME.
2773
x-kubernetes-int-or-string: true
2774
required:
2775
- port
2776
type: object
2777
type: object
2778
type: object
2779
livenessProbe:
2780
description: 'Periodic probe of container liveness. Container
2781
will be restarted if the probe fails. Cannot be updated. More
2782
info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
2783
properties:
2784
exec:
2785
description: Exec specifies the action to take.
2786
properties:
2787
command:
2788
description: Command is the command line to execute
2789
inside the container, the working directory for the
2790
command is root ('/') in the container's filesystem.
2791
The command is simply exec'd, it is not run inside
2792
a shell, so traditional shell instructions ('|', etc)
2793
won't work. To use a shell, you need to explicitly
2794
call out to that shell. Exit status of 0 is treated
2795
as live/healthy and non-zero is unhealthy.
2796
items:
2797
type: string
2798
type: array
2799
type: object
2800
failureThreshold:
2801
description: Minimum consecutive failures for the probe
2802
to be considered failed after having succeeded. Defaults
2803
to 3. Minimum value is 1.
2804
format: int32
2805
type: integer
2806
grpc:
2807
description: GRPC specifies an action involving a GRPC port.
2808
This is a beta field and requires enabling GRPCContainerProbe
2809
feature gate.
2810
properties:
2811
port:
2812
description: Port number of the gRPC service. Number
2813
must be in the range 1 to 65535.
2814
format: int32
2815
type: integer
2816
service:
2817
description: "Service is the name of the service to
2818
place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
2819
\n If this is not specified, the default behavior
2820
is defined by gRPC."
2821
type: string
2822
required:
2823
- port
2824
type: object
2825
httpGet:
2826
description: HTTPGet specifies the http request to perform.
2827
properties:
2828
host:
2829
description: Host name to connect to, defaults to the
2830
pod IP. You probably want to set "Host" in httpHeaders
2831
instead.
2832
type: string
2833
httpHeaders:
2834
description: Custom headers to set in the request. HTTP
2835
allows repeated headers.
2836
items:
2837
description: HTTPHeader describes a custom header
2838
to be used in HTTP probes
2839
properties:
2840
name:
2841
description: The header field name
2842
type: string
2843
value:
2844
description: The header field value
2845
type: string
2846
required:
2847
- name
2848
- value
2849
type: object
2850
type: array
2851
path:
2852
description: Path to access on the HTTP server.
2853
type: string
2854
port:
2855
anyOf:
2856
- type: integer
2857
- type: string
2858
description: Name or number of the port to access on
2859
the container. Number must be in the range 1 to 65535.
2860
Name must be an IANA_SVC_NAME.
2861
x-kubernetes-int-or-string: true
2862
scheme:
2863
description: Scheme to use for connecting to the host.
2864
Defaults to HTTP.
2865
type: string
2866
required:
2867
- port
2868
type: object
2869
initialDelaySeconds:
2870
description: 'Number of seconds after the container has
2871
started before liveness probes are initiated. More info:
2872
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
2873
format: int32
2874
type: integer
2875
periodSeconds:
2876
description: How often (in seconds) to perform the probe.
2877
Default to 10 seconds. Minimum value is 1.
2878
format: int32
2879
type: integer
2880
successThreshold:
2881
description: Minimum consecutive successes for the probe
2882
to be considered successful after having failed. Defaults
2883
to 1. Must be 1 for liveness and startup. Minimum value
2884
is 1.
2885
format: int32
2886
type: integer
2887
tcpSocket:
2888
description: TCPSocket specifies an action involving a TCP
2889
port.
2890
properties:
2891
host:
2892
description: 'Optional: Host name to connect to, defaults
2893
to the pod IP.'
2894
type: string
2895
port:
2896
anyOf:
2897
- type: integer
2898
- type: string
2899
description: Number or name of the port to access on
2900
the container. Number must be in the range 1 to 65535.
2901
Name must be an IANA_SVC_NAME.
2902
x-kubernetes-int-or-string: true
2903
required:
2904
- port
2905
type: object
2906
terminationGracePeriodSeconds:
2907
description: Optional duration in seconds the pod needs
2908
to terminate gracefully upon probe failure. The grace
2909
period is the duration in seconds after the processes
2910
running in the pod are sent a termination signal and the
2911
time when the processes are forcibly halted with a kill
2912
signal. Set this value longer than the expected cleanup
2913
time for your process. If this value is nil, the pod's
2914
terminationGracePeriodSeconds will be used. Otherwise,
2915
this value overrides the value provided by the pod spec.
2916
Value must be non-negative integer. The value zero indicates
2917
stop immediately via the kill signal (no opportunity to
2918
shut down). This is a beta field and requires enabling
2919
ProbeTerminationGracePeriod feature gate. Minimum value
2920
is 1. spec.terminationGracePeriodSeconds is used if unset.
2921
format: int64
2922
type: integer
2923
timeoutSeconds:
2924
description: 'Number of seconds after which the probe times
2925
out. Defaults to 1 second. Minimum value is 1. More info:
2926
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
2927
format: int32
2928
type: integer
2929
type: object
2930
name:
2931
description: Name of the container specified as a DNS_LABEL.
2932
Each container in a pod must have a unique name (DNS_LABEL).
2933
Cannot be updated.
2934
type: string
2935
ports:
2936
description: List of ports to expose from the container. Not
2937
specifying a port here DOES NOT prevent that port from being
2938
exposed. Any port which is listening on the default "0.0.0.0"
2939
address inside a container will be accessible from the network.
2940
Modifying this array with strategic merge patch may corrupt
2941
the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255.
2942
Cannot be updated.
2943
items:
2944
description: ContainerPort represents a network port in a
2945
single container.
2946
properties:
2947
containerPort:
2948
description: Number of port to expose on the pod's IP
2949
address. This must be a valid port number, 0 < x < 65536.
2950
format: int32
2951
type: integer
2952
hostIP:
2953
description: What host IP to bind the external port to.
2954
type: string
2955
hostPort:
2956
description: Number of port to expose on the host. If
2957
specified, this must be a valid port number, 0 < x <
2958
65536. If HostNetwork is specified, this must match
2959
ContainerPort. Most containers do not need this.
2960
format: int32
2961
type: integer
2962
name:
2963
description: If specified, this must be an IANA_SVC_NAME
2964
and unique within the pod. Each named port in a pod
2965
must have a unique name. Name for the port that can
2966
be referred to by services.
2967
type: string
2968
protocol:
2969
default: TCP
2970
description: Protocol for port. Must be UDP, TCP, or SCTP.
2971
Defaults to "TCP".
2972
type: string
2973
required:
2974
- containerPort
2975
type: object
2976
type: array
2977
x-kubernetes-list-map-keys:
2978
- containerPort
2979
- protocol
2980
x-kubernetes-list-type: map
2981
readinessProbe:
2982
description: 'Periodic probe of container service readiness.
2983
Container will be removed from service endpoints if the probe
2984
fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
2985
properties:
2986
exec:
2987
description: Exec specifies the action to take.
2988
properties:
2989
command:
2990
description: Command is the command line to execute
2991
inside the container, the working directory for the
2992
command is root ('/') in the container's filesystem.
2993
The command is simply exec'd, it is not run inside
2994
a shell, so traditional shell instructions ('|', etc)
2995
won't work. To use a shell, you need to explicitly
2996
call out to that shell. Exit status of 0 is treated
2997
as live/healthy and non-zero is unhealthy.
2998
items:
2999
type: string
3000
type: array
3001
type: object
3002
failureThreshold:
3003
description: Minimum consecutive failures for the probe
3004
to be considered failed after having succeeded. Defaults
3005
to 3. Minimum value is 1.
3006
format: int32
3007
type: integer
3008
grpc:
3009
description: GRPC specifies an action involving a GRPC port.
3010
This is a beta field and requires enabling GRPCContainerProbe
3011
feature gate.
3012
properties:
3013
port:
3014
description: Port number of the gRPC service. Number
3015
must be in the range 1 to 65535.
3016
format: int32
3017
type: integer
3018
service:
3019
description: "Service is the name of the service to
3020
place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
3021
\n If this is not specified, the default behavior
3022
is defined by gRPC."
3023
type: string
3024
required:
3025
- port
3026
type: object
3027
httpGet:
3028
description: HTTPGet specifies the http request to perform.
3029
properties:
3030
host:
3031
description: Host name to connect to, defaults to the
3032
pod IP. You probably want to set "Host" in httpHeaders
3033
instead.
3034
type: string
3035
httpHeaders:
3036
description: Custom headers to set in the request. HTTP
3037
allows repeated headers.
3038
items:
3039
description: HTTPHeader describes a custom header
3040
to be used in HTTP probes
3041
properties:
3042
name:
3043
description: The header field name
3044
type: string
3045
value:
3046
description: The header field value
3047
type: string
3048
required:
3049
- name
3050
- value
3051
type: object
3052
type: array
3053
path:
3054
description: Path to access on the HTTP server.
3055
type: string
3056
port:
3057
anyOf:
3058
- type: integer
3059
- type: string
3060
description: Name or number of the port to access on
3061
the container. Number must be in the range 1 to 65535.
3062
Name must be an IANA_SVC_NAME.
3063
x-kubernetes-int-or-string: true
3064
scheme:
3065
description: Scheme to use for connecting to the host.
3066
Defaults to HTTP.
3067
type: string
3068
required:
3069
- port
3070
type: object
3071
initialDelaySeconds:
3072
description: 'Number of seconds after the container has
3073
started before liveness probes are initiated. More info:
3074
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
3075
format: int32
3076
type: integer
3077
periodSeconds:
3078
description: How often (in seconds) to perform the probe.
3079
Default to 10 seconds. Minimum value is 1.
3080
format: int32
3081
type: integer
3082
successThreshold:
3083
description: Minimum consecutive successes for the probe
3084
to be considered successful after having failed. Defaults
3085
to 1. Must be 1 for liveness and startup. Minimum value
3086
is 1.
3087
format: int32
3088
type: integer
3089
tcpSocket:
3090
description: TCPSocket specifies an action involving a TCP
3091
port.
3092
properties:
3093
host:
3094
description: 'Optional: Host name to connect to, defaults
3095
to the pod IP.'
3096
type: string
3097
port:
3098
anyOf:
3099
- type: integer
3100
- type: string
3101
description: Number or name of the port to access on
3102
the container. Number must be in the range 1 to 65535.
3103
Name must be an IANA_SVC_NAME.
3104
x-kubernetes-int-or-string: true
3105
required:
3106
- port
3107
type: object
3108
terminationGracePeriodSeconds:
3109
description: Optional duration in seconds the pod needs
3110
to terminate gracefully upon probe failure. The grace
3111
period is the duration in seconds after the processes
3112
running in the pod are sent a termination signal and the
3113
time when the processes are forcibly halted with a kill
3114
signal. Set this value longer than the expected cleanup
3115
time for your process. If this value is nil, the pod's
3116
terminationGracePeriodSeconds will be used. Otherwise,
3117
this value overrides the value provided by the pod spec.
3118
Value must be non-negative integer. The value zero indicates
3119
stop immediately via the kill signal (no opportunity to
3120
shut down). This is a beta field and requires enabling
3121
ProbeTerminationGracePeriod feature gate. Minimum value
3122
is 1. spec.terminationGracePeriodSeconds is used if unset.
3123
format: int64
3124
type: integer
3125
timeoutSeconds:
3126
description: 'Number of seconds after which the probe times
3127
out. Defaults to 1 second. Minimum value is 1. More info:
3128
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
3129
format: int32
3130
type: integer
3131
type: object
3132
resources:
3133
description: 'Compute Resources required by this container.
3134
Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
3135
properties:
3136
limits:
3137
additionalProperties:
3138
anyOf:
3139
- type: integer
3140
- type: string
3141
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3142
x-kubernetes-int-or-string: true
3143
description: 'Limits describes the maximum amount of compute
3144
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
3145
type: object
3146
requests:
3147
additionalProperties:
3148
anyOf:
3149
- type: integer
3150
- type: string
3151
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3152
x-kubernetes-int-or-string: true
3153
description: 'Requests describes the minimum amount of compute
3154
resources required. If Requests is omitted for a container,
3155
it defaults to Limits if that is explicitly specified,
3156
otherwise to an implementation-defined value. More info:
3157
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
3158
type: object
3159
type: object
3160
securityContext:
3161
description: 'SecurityContext defines the security options the
3162
container should be run with. If set, the fields of SecurityContext
3163
override the equivalent fields of PodSecurityContext. More
3164
info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/'
3165
properties:
3166
allowPrivilegeEscalation:
3167
description: 'AllowPrivilegeEscalation controls whether
3168
a process can gain more privileges than its parent process.
3169
This bool directly controls if the no_new_privs flag will
3170
be set on the container process. AllowPrivilegeEscalation
3171
is true always when the container is: 1) run as Privileged
3172
2) has CAP_SYS_ADMIN Note that this field cannot be set
3173
when spec.os.name is windows.'
3174
type: boolean
3175
capabilities:
3176
description: The capabilities to add/drop when running containers.
3177
Defaults to the default set of capabilities granted by
3178
the container runtime. Note that this field cannot be
3179
set when spec.os.name is windows.
3180
properties:
3181
add:
3182
description: Added capabilities
3183
items:
3184
description: Capability represent POSIX capabilities
3185
type
3186
type: string
3187
type: array
3188
drop:
3189
description: Removed capabilities
3190
items:
3191
description: Capability represent POSIX capabilities
3192
type
3193
type: string
3194
type: array
3195
type: object
3196
privileged:
3197
description: Run container in privileged mode. Processes
3198
in privileged containers are essentially equivalent to
3199
root on the host. Defaults to false. Note that this field
3200
cannot be set when spec.os.name is windows.
3201
type: boolean
3202
procMount:
3203
description: procMount denotes the type of proc mount to
3204
use for the containers. The default is DefaultProcMount
3205
which uses the container runtime defaults for readonly
3206
paths and masked paths. This requires the ProcMountType
3207
feature flag to be enabled. Note that this field cannot
3208
be set when spec.os.name is windows.
3209
type: string
3210
readOnlyRootFilesystem:
3211
description: Whether this container has a read-only root
3212
filesystem. Default is false. Note that this field cannot
3213
be set when spec.os.name is windows.
3214
type: boolean
3215
runAsGroup:
3216
description: The GID to run the entrypoint of the container
3217
process. Uses runtime default if unset. May also be set
3218
in PodSecurityContext. If set in both SecurityContext
3219
and PodSecurityContext, the value specified in SecurityContext
3220
takes precedence. Note that this field cannot be set when
3221
spec.os.name is windows.
3222
format: int64
3223
type: integer
3224
runAsNonRoot:
3225
description: Indicates that the container must run as a
3226
non-root user. If true, the Kubelet will validate the
3227
image at runtime to ensure that it does not run as UID
3228
0 (root) and fail to start the container if it does. If
3229
unset or false, no such validation will be performed.
3230
May also be set in PodSecurityContext. If set in both
3231
SecurityContext and PodSecurityContext, the value specified
3232
in SecurityContext takes precedence.
3233
type: boolean
3234
runAsUser:
3235
description: The UID to run the entrypoint of the container
3236
process. Defaults to user specified in image metadata
3237
if unspecified. May also be set in PodSecurityContext. If
3238
set in both SecurityContext and PodSecurityContext, the
3239
value specified in SecurityContext takes precedence. Note
3240
that this field cannot be set when spec.os.name is windows.
3241
format: int64
3242
type: integer
3243
seLinuxOptions:
3244
description: The SELinux context to be applied to the container.
3245
If unspecified, the container runtime will allocate a
3246
random SELinux context for each container. May also be
3247
set in PodSecurityContext. If set in both SecurityContext
3248
and PodSecurityContext, the value specified in SecurityContext
3249
takes precedence. Note that this field cannot be set when
3250
spec.os.name is windows.
3251
properties:
3252
level:
3253
description: Level is SELinux level label that applies
3254
to the container.
3255
type: string
3256
role:
3257
description: Role is a SELinux role label that applies
3258
to the container.
3259
type: string
3260
type:
3261
description: Type is a SELinux type label that applies
3262
to the container.
3263
type: string
3264
user:
3265
description: User is a SELinux user label that applies
3266
to the container.
3267
type: string
3268
type: object
3269
seccompProfile:
3270
description: The seccomp options to use by this container.
3271
If seccomp options are provided at both the pod & container
3272
level, the container options override the pod options.
3273
Note that this field cannot be set when spec.os.name is
3274
windows.
3275
properties:
3276
localhostProfile:
3277
description: localhostProfile indicates a profile defined
3278
in a file on the node should be used. The profile
3279
must be preconfigured on the node to work. Must be
3280
a descending path, relative to the kubelet's configured
3281
seccomp profile location. Must only be set if type
3282
is "Localhost".
3283
type: string
3284
type:
3285
description: "type indicates which kind of seccomp profile
3286
will be applied. Valid options are: \n Localhost -
3287
a profile defined in a file on the node should be
3288
used. RuntimeDefault - the container runtime default
3289
profile should be used. Unconfined - no profile should
3290
be applied."
3291
type: string
3292
required:
3293
- type
3294
type: object
3295
windowsOptions:
3296
description: The Windows specific settings applied to all
3297
containers. If unspecified, the options from the PodSecurityContext
3298
will be used. If set in both SecurityContext and PodSecurityContext,
3299
the value specified in SecurityContext takes precedence.
3300
Note that this field cannot be set when spec.os.name is
3301
linux.
3302
properties:
3303
gmsaCredentialSpec:
3304
description: GMSACredentialSpec is where the GMSA admission
3305
webhook (https://github.com/kubernetes-sigs/windows-gmsa)
3306
inlines the contents of the GMSA credential spec named
3307
by the GMSACredentialSpecName field.
3308
type: string
3309
gmsaCredentialSpecName:
3310
description: GMSACredentialSpecName is the name of the
3311
GMSA credential spec to use.
3312
type: string
3313
hostProcess:
3314
description: HostProcess determines if a container should
3315
be run as a 'Host Process' container. This field is
3316
alpha-level and will only be honored by components
3317
that enable the WindowsHostProcessContainers feature
3318
flag. Setting this field without the feature flag
3319
will result in errors when validating the Pod. All
3320
of a Pod's containers must have the same effective
3321
HostProcess value (it is not allowed to have a mix
3322
of HostProcess containers and non-HostProcess containers). In
3323
addition, if HostProcess is true then HostNetwork
3324
must also be set to true.
3325
type: boolean
3326
runAsUserName:
3327
description: The UserName in Windows to run the entrypoint
3328
of the container process. Defaults to the user specified
3329
in image metadata if unspecified. May also be set
3330
in PodSecurityContext. If set in both SecurityContext
3331
and PodSecurityContext, the value specified in SecurityContext
3332
takes precedence.
3333
type: string
3334
type: object
3335
type: object
3336
startupProbe:
3337
description: 'StartupProbe indicates that the Pod has successfully
3338
initialized. If specified, no other probes are executed until
3339
this completes successfully. If this probe fails, the Pod
3340
will be restarted, just as if the livenessProbe failed. This
3341
can be used to provide different probe parameters at the beginning
3342
of a Pod''s lifecycle, when it might take a long time to load
3343
data or warm a cache, than during steady-state operation.
3344
This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
3345
properties:
3346
exec:
3347
description: Exec specifies the action to take.
3348
properties:
3349
command:
3350
description: Command is the command line to execute
3351
inside the container, the working directory for the
3352
command is root ('/') in the container's filesystem.
3353
The command is simply exec'd, it is not run inside
3354
a shell, so traditional shell instructions ('|', etc)
3355
won't work. To use a shell, you need to explicitly
3356
call out to that shell. Exit status of 0 is treated
3357
as live/healthy and non-zero is unhealthy.
3358
items:
3359
type: string
3360
type: array
3361
type: object
3362
failureThreshold:
3363
description: Minimum consecutive failures for the probe
3364
to be considered failed after having succeeded. Defaults
3365
to 3. Minimum value is 1.
3366
format: int32
3367
type: integer
3368
grpc:
3369
description: GRPC specifies an action involving a GRPC port.
3370
This is a beta field and requires enabling GRPCContainerProbe
3371
feature gate.
3372
properties:
3373
port:
3374
description: Port number of the gRPC service. Number
3375
must be in the range 1 to 65535.
3376
format: int32
3377
type: integer
3378
service:
3379
description: "Service is the name of the service to
3380
place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
3381
\n If this is not specified, the default behavior
3382
is defined by gRPC."
3383
type: string
3384
required:
3385
- port
3386
type: object
3387
httpGet:
3388
description: HTTPGet specifies the http request to perform.
3389
properties:
3390
host:
3391
description: Host name to connect to, defaults to the
3392
pod IP. You probably want to set "Host" in httpHeaders
3393
instead.
3394
type: string
3395
httpHeaders:
3396
description: Custom headers to set in the request. HTTP
3397
allows repeated headers.
3398
items:
3399
description: HTTPHeader describes a custom header
3400
to be used in HTTP probes
3401
properties:
3402
name:
3403
description: The header field name
3404
type: string
3405
value:
3406
description: The header field value
3407
type: string
3408
required:
3409
- name
3410
- value
3411
type: object
3412
type: array
3413
path:
3414
description: Path to access on the HTTP server.
3415
type: string
3416
port:
3417
anyOf:
3418
- type: integer
3419
- type: string
3420
description: Name or number of the port to access on
3421
the container. Number must be in the range 1 to 65535.
3422
Name must be an IANA_SVC_NAME.
3423
x-kubernetes-int-or-string: true
3424
scheme:
3425
description: Scheme to use for connecting to the host.
3426
Defaults to HTTP.
3427
type: string
3428
required:
3429
- port
3430
type: object
3431
initialDelaySeconds:
3432
description: 'Number of seconds after the container has
3433
started before liveness probes are initiated. More info:
3434
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
3435
format: int32
3436
type: integer
3437
periodSeconds:
3438
description: How often (in seconds) to perform the probe.
3439
Default to 10 seconds. Minimum value is 1.
3440
format: int32
3441
type: integer
3442
successThreshold:
3443
description: Minimum consecutive successes for the probe
3444
to be considered successful after having failed. Defaults
3445
to 1. Must be 1 for liveness and startup. Minimum value
3446
is 1.
3447
format: int32
3448
type: integer
3449
tcpSocket:
3450
description: TCPSocket specifies an action involving a TCP
3451
port.
3452
properties:
3453
host:
3454
description: 'Optional: Host name to connect to, defaults
3455
to the pod IP.'
3456
type: string
3457
port:
3458
anyOf:
3459
- type: integer
3460
- type: string
3461
description: Number or name of the port to access on
3462
the container. Number must be in the range 1 to 65535.
3463
Name must be an IANA_SVC_NAME.
3464
x-kubernetes-int-or-string: true
3465
required:
3466
- port
3467
type: object
3468
terminationGracePeriodSeconds:
3469
description: Optional duration in seconds the pod needs
3470
to terminate gracefully upon probe failure. The grace
3471
period is the duration in seconds after the processes
3472
running in the pod are sent a termination signal and the
3473
time when the processes are forcibly halted with a kill
3474
signal. Set this value longer than the expected cleanup
3475
time for your process. If this value is nil, the pod's
3476
terminationGracePeriodSeconds will be used. Otherwise,
3477
this value overrides the value provided by the pod spec.
3478
Value must be non-negative integer. The value zero indicates
3479
stop immediately via the kill signal (no opportunity to
3480
shut down). This is a beta field and requires enabling
3481
ProbeTerminationGracePeriod feature gate. Minimum value
3482
is 1. spec.terminationGracePeriodSeconds is used if unset.
3483
format: int64
3484
type: integer
3485
timeoutSeconds:
3486
description: 'Number of seconds after which the probe times
3487
out. Defaults to 1 second. Minimum value is 1. More info:
3488
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
3489
format: int32
3490
type: integer
3491
type: object
3492
stdin:
3493
description: Whether this container should allocate a buffer
3494
for stdin in the container runtime. If this is not set, reads
3495
from stdin in the container will always result in EOF. Default
3496
is false.
3497
type: boolean
3498
stdinOnce:
3499
description: Whether the container runtime should close the
3500
stdin channel after it has been opened by a single attach.
3501
When stdin is true the stdin stream will remain open across
3502
multiple attach sessions. If stdinOnce is set to true, stdin
3503
is opened on container start, is empty until the first client
3504
attaches to stdin, and then remains open and accepts data
3505
until the client disconnects, at which time stdin is closed
3506
and remains closed until the container is restarted. If this
3507
flag is false, a container processes that reads from stdin
3508
will never receive an EOF. Default is false
3509
type: boolean
3510
terminationMessagePath:
3511
description: 'Optional: Path at which the file to which the
3512
container''s termination message will be written is mounted
3513
into the container''s filesystem. Message written is intended
3514
to be brief final status, such as an assertion failure message.
3515
Will be truncated by the node if greater than 4096 bytes.
3516
The total message length across all containers will be limited
3517
to 12kb. Defaults to /dev/termination-log. Cannot be updated.'
3518
type: string
3519
terminationMessagePolicy:
3520
description: Indicate how the termination message should be
3521
populated. File will use the contents of terminationMessagePath
3522
to populate the container status message on both success and
3523
failure. FallbackToLogsOnError will use the last chunk of
3524
container log output if the termination message file is empty
3525
and the container exited with an error. The log output is
3526
limited to 2048 bytes or 80 lines, whichever is smaller. Defaults
3527
to File. Cannot be updated.
3528
type: string
3529
tty:
3530
description: Whether this container should allocate a TTY for
3531
itself, also requires 'stdin' to be true. Default is false.
3532
type: boolean
3533
volumeDevices:
3534
description: volumeDevices is the list of block devices to be
3535
used by the container.
3536
items:
3537
description: volumeDevice describes a mapping of a raw block
3538
device within a container.
3539
properties:
3540
devicePath:
3541
description: devicePath is the path inside of the container
3542
that the device will be mapped to.
3543
type: string
3544
name:
3545
description: name must match the name of a persistentVolumeClaim
3546
in the pod
3547
type: string
3548
required:
3549
- devicePath
3550
- name
3551
type: object
3552
type: array
3553
volumeMounts:
3554
description: Pod volumes to mount into the container's filesystem.
3555
Cannot be updated.
3556
items:
3557
description: VolumeMount describes a mounting of a Volume
3558
within a container.
3559
properties:
3560
mountPath:
3561
description: Path within the container at which the volume
3562
should be mounted. Must not contain ':'.
3563
type: string
3564
mountPropagation:
3565
description: mountPropagation determines how mounts are
3566
propagated from the host to container and the other
3567
way around. When not set, MountPropagationNone is used.
3568
This field is beta in 1.10.
3569
type: string
3570
name:
3571
description: This must match the Name of a Volume.
3572
type: string
3573
readOnly:
3574
description: Mounted read-only if true, read-write otherwise
3575
(false or unspecified). Defaults to false.
3576
type: boolean
3577
subPath:
3578
description: Path within the volume from which the container's
3579
volume should be mounted. Defaults to "" (volume's root).
3580
type: string
3581
subPathExpr:
3582
description: Expanded path within the volume from which
3583
the container's volume should be mounted. Behaves similarly
3584
to SubPath but environment variable references $(VAR_NAME)
3585
are expanded using the container's environment. Defaults
3586
to "" (volume's root). SubPathExpr and SubPath are mutually
3587
exclusive.
3588
type: string
3589
required:
3590
- mountPath
3591
- name
3592
type: object
3593
type: array
3594
workingDir:
3595
description: Container's working directory. If not specified,
3596
the container runtime's default will be used, which might
3597
be configured in the container image. Cannot be updated.
3598
type: string
3599
required:
3600
- name
3601
type: object
3602
type: array
3603
integrations:
3604
description: Integrations controls the integration subsystem of the
3605
Agent and settings unique to deployed integration-specific pods.
3606
properties:
3607
namespaceSelector:
3608
description: "Label selector for namespaces to search when discovering
3609
integration resources. If nil, integration resources are only
3610
discovered in the namespace of the GrafanaAgent resource. \n
3611
Set to `{}` to search all namespaces."
3612
properties:
3613
matchExpressions:
3614
description: matchExpressions is a list of label selector
3615
requirements. The requirements are ANDed.
3616
items:
3617
description: A label selector requirement is a selector
3618
that contains values, a key, and an operator that relates
3619
the key and values.
3620
properties:
3621
key:
3622
description: key is the label key that the selector
3623
applies to.
3624
type: string
3625
operator:
3626
description: operator represents a key's relationship
3627
to a set of values. Valid operators are In, NotIn,
3628
Exists and DoesNotExist.
3629
type: string
3630
values:
3631
description: values is an array of string values. If
3632
the operator is In or NotIn, the values array must
3633
be non-empty. If the operator is Exists or DoesNotExist,
3634
the values array must be empty. This array is replaced
3635
during a strategic merge patch.
3636
items:
3637
type: string
3638
type: array
3639
required:
3640
- key
3641
- operator
3642
type: object
3643
type: array
3644
matchLabels:
3645
additionalProperties:
3646
type: string
3647
description: matchLabels is a map of {key,value} pairs. A
3648
single {key,value} in the matchLabels map is equivalent
3649
to an element of matchExpressions, whose key field is "key",
3650
the operator is "In", and the values array contains only
3651
"value". The requirements are ANDed.
3652
type: object
3653
type: object
3654
x-kubernetes-map-type: atomic
3655
selector:
3656
description: Label selector to find Integration resources to run.
3657
When nil, no integration resources will be defined.
3658
properties:
3659
matchExpressions:
3660
description: matchExpressions is a list of label selector
3661
requirements. The requirements are ANDed.
3662
items:
3663
description: A label selector requirement is a selector
3664
that contains values, a key, and an operator that relates
3665
the key and values.
3666
properties:
3667
key:
3668
description: key is the label key that the selector
3669
applies to.
3670
type: string
3671
operator:
3672
description: operator represents a key's relationship
3673
to a set of values. Valid operators are In, NotIn,
3674
Exists and DoesNotExist.
3675
type: string
3676
values:
3677
description: values is an array of string values. If
3678
the operator is In or NotIn, the values array must
3679
be non-empty. If the operator is Exists or DoesNotExist,
3680
the values array must be empty. This array is replaced
3681
during a strategic merge patch.
3682
items:
3683
type: string
3684
type: array
3685
required:
3686
- key
3687
- operator
3688
type: object
3689
type: array
3690
matchLabels:
3691
additionalProperties:
3692
type: string
3693
description: matchLabels is a map of {key,value} pairs. A
3694
single {key,value} in the matchLabels map is equivalent
3695
to an element of matchExpressions, whose key field is "key",
3696
the operator is "In", and the values array contains only
3697
"value". The requirements are ANDed.
3698
type: object
3699
type: object
3700
x-kubernetes-map-type: atomic
3701
type: object
3702
logFormat:
3703
description: LogFormat controls the logging format of the generated
3704
pods. Defaults to "logfmt" if not set.
3705
type: string
3706
logLevel:
3707
description: LogLevel controls the log level of the generated pods.
3708
Defaults to "info" if not set.
3709
type: string
3710
logs:
3711
description: Logs controls the logging subsystem of the Agent and
3712
settings unique to logging-specific pods that are deployed.
3713
properties:
3714
clients:
3715
description: A global set of clients to use when a discovered
3716
LogsInstance does not have any clients defined.
3717
items:
3718
description: LogsClientSpec defines the client integration for
3719
logs, indicating which Loki server to send logs to.
3720
properties:
3721
backoffConfig:
3722
description: Configures how to retry requests to Loki when
3723
a request fails. Defaults to a minPeriod of 500ms, maxPeriod
3724
of 5m, and maxRetries of 10.
3725
properties:
3726
maxPeriod:
3727
description: Maximum backoff time between retries.
3728
type: string
3729
maxRetries:
3730
description: Maximum number of retries to perform before
3731
giving up a request.
3732
type: integer
3733
minPeriod:
3734
description: Initial backoff time between retries. Time
3735
between retries is increased exponentially.
3736
type: string
3737
type: object
3738
basicAuth:
3739
description: BasicAuth for the Loki server.
3740
properties:
3741
password:
3742
description: The secret in the service monitor namespace
3743
that contains the password for authentication.
3744
properties:
3745
key:
3746
description: The key of the secret to select from. Must
3747
be a valid secret key.
3748
type: string
3749
name:
3750
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3751
TODO: Add other useful fields. apiVersion, kind,
3752
uid?'
3753
type: string
3754
optional:
3755
description: Specify whether the Secret or its key
3756
must be defined
3757
type: boolean
3758
required:
3759
- key
3760
type: object
3761
x-kubernetes-map-type: atomic
3762
username:
3763
description: The secret in the service monitor namespace
3764
that contains the username for authentication.
3765
properties:
3766
key:
3767
description: The key of the secret to select from. Must
3768
be a valid secret key.
3769
type: string
3770
name:
3771
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3772
TODO: Add other useful fields. apiVersion, kind,
3773
uid?'
3774
type: string
3775
optional:
3776
description: Specify whether the Secret or its key
3777
must be defined
3778
type: boolean
3779
required:
3780
- key
3781
type: object
3782
x-kubernetes-map-type: atomic
3783
type: object
3784
batchSize:
3785
description: Maximum batch size (in bytes) of logs to accumulate
3786
before sending the batch to Loki.
3787
type: integer
3788
batchWait:
3789
description: Maximum amount of time to wait before sending
3790
a batch, even if that batch isn't full.
3791
type: string
3792
bearerToken:
3793
description: BearerToken used for remote_write.
3794
type: string
3795
bearerTokenFile:
3796
description: BearerTokenFile used to read bearer token.
3797
type: string
3798
externalLabels:
3799
additionalProperties:
3800
type: string
3801
description: ExternalLabels are labels to add to any time
3802
series when sending data to Loki.
3803
type: object
3804
proxyUrl:
3805
description: ProxyURL to proxy requests through. Optional.
3806
type: string
3807
tenantId:
3808
description: Tenant ID used by default to push logs to Loki.
3809
If omitted assumes remote Loki is running in single-tenant
3810
mode or an authentication layer is used to inject an X-Scope-OrgID
3811
header.
3812
type: string
3813
timeout:
3814
description: Maximum time to wait for a server to respond
3815
to a request.
3816
type: string
3817
tlsConfig:
3818
description: TLSConfig to use for the client. Only used
3819
when the protocol of the URL is https.
3820
properties:
3821
ca:
3822
description: Certificate authority used when verifying
3823
server certificates.
3824
properties:
3825
configMap:
3826
description: ConfigMap containing data to use for
3827
the targets.
3828
properties:
3829
key:
3830
description: The key to select.
3831
type: string
3832
name:
3833
description: 'Name of the referent. More info:
3834
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3835
TODO: Add other useful fields. apiVersion,
3836
kind, uid?'
3837
type: string
3838
optional:
3839
description: Specify whether the ConfigMap or
3840
its key must be defined
3841
type: boolean
3842
required:
3843
- key
3844
type: object
3845
x-kubernetes-map-type: atomic
3846
secret:
3847
description: Secret containing data to use for the
3848
targets.
3849
properties:
3850
key:
3851
description: The key of the secret to select
3852
from. Must be a valid secret key.
3853
type: string
3854
name:
3855
description: 'Name of the referent. More info:
3856
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3857
TODO: Add other useful fields. apiVersion,
3858
kind, uid?'
3859
type: string
3860
optional:
3861
description: Specify whether the Secret or its
3862
key must be defined
3863
type: boolean
3864
required:
3865
- key
3866
type: object
3867
x-kubernetes-map-type: atomic
3868
type: object
3869
caFile:
3870
description: Path to the CA cert in the Prometheus container
3871
to use for the targets.
3872
type: string
3873
cert:
3874
description: Client certificate to present when doing
3875
client-authentication.
3876
properties:
3877
configMap:
3878
description: ConfigMap containing data to use for
3879
the targets.
3880
properties:
3881
key:
3882
description: The key to select.
3883
type: string
3884
name:
3885
description: 'Name of the referent. More info:
3886
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3887
TODO: Add other useful fields. apiVersion,
3888
kind, uid?'
3889
type: string
3890
optional:
3891
description: Specify whether the ConfigMap or
3892
its key must be defined
3893
type: boolean
3894
required:
3895
- key
3896
type: object
3897
x-kubernetes-map-type: atomic
3898
secret:
3899
description: Secret containing data to use for the
3900
targets.
3901
properties:
3902
key:
3903
description: The key of the secret to select
3904
from. Must be a valid secret key.
3905
type: string
3906
name:
3907
description: 'Name of the referent. More info:
3908
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3909
TODO: Add other useful fields. apiVersion,
3910
kind, uid?'
3911
type: string
3912
optional:
3913
description: Specify whether the Secret or its
3914
key must be defined
3915
type: boolean
3916
required:
3917
- key
3918
type: object
3919
x-kubernetes-map-type: atomic
3920
type: object
3921
certFile:
3922
description: Path to the client cert file in the Prometheus
3923
container for the targets.
3924
type: string
3925
insecureSkipVerify:
3926
description: Disable target certificate validation.
3927
type: boolean
3928
keyFile:
3929
description: Path to the client key file in the Prometheus
3930
container for the targets.
3931
type: string
3932
keySecret:
3933
description: Secret containing the client key file for
3934
the targets.
3935
properties:
3936
key:
3937
description: The key of the secret to select from. Must
3938
be a valid secret key.
3939
type: string
3940
name:
3941
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3942
TODO: Add other useful fields. apiVersion, kind,
3943
uid?'
3944
type: string
3945
optional:
3946
description: Specify whether the Secret or its key
3947
must be defined
3948
type: boolean
3949
required:
3950
- key
3951
type: object
3952
x-kubernetes-map-type: atomic
3953
serverName:
3954
description: Used to verify the hostname for the targets.
3955
type: string
3956
type: object
3957
url:
3958
description: 'URL is the URL where Loki is listening. Must
3959
be a full HTTP URL, including protocol. Required. Example:
3960
https://logs-prod-us-central1.grafana.net/loki/api/v1/push.'
3961
type: string
3962
required:
3963
- url
3964
type: object
3965
type: array
3966
enforcedNamespaceLabel:
3967
description: EnforcedNamespaceLabel enforces adding a namespace
3968
label of origin for each metric that is user-created. The label
3969
value will always be the namespace of the object that is being
3970
created.
3971
type: string
3972
ignoreNamespaceSelectors:
3973
description: IgnoreNamespaceSelectors, if true, will ignore NamespaceSelector
3974
settings from the PodLogs configs, and they will only discover
3975
endpoints within their current namespace.
3976
type: boolean
3977
instanceNamespaceSelector:
3978
description: InstanceNamespaceSelector are the set of labels to
3979
determine which namespaces to watch for LogInstances. If not
3980
provided, only checks own namespace.
3981
properties:
3982
matchExpressions:
3983
description: matchExpressions is a list of label selector
3984
requirements. The requirements are ANDed.
3985
items:
3986
description: A label selector requirement is a selector
3987
that contains values, a key, and an operator that relates
3988
the key and values.
3989
properties:
3990
key:
3991
description: key is the label key that the selector
3992
applies to.
3993
type: string
3994
operator:
3995
description: operator represents a key's relationship
3996
to a set of values. Valid operators are In, NotIn,
3997
Exists and DoesNotExist.
3998
type: string
3999
values:
4000
description: values is an array of string values. If
4001
the operator is In or NotIn, the values array must
4002
be non-empty. If the operator is Exists or DoesNotExist,
4003
the values array must be empty. This array is replaced
4004
during a strategic merge patch.
4005
items:
4006
type: string
4007
type: array
4008
required:
4009
- key
4010
- operator
4011
type: object
4012
type: array
4013
matchLabels:
4014
additionalProperties:
4015
type: string
4016
description: matchLabels is a map of {key,value} pairs. A
4017
single {key,value} in the matchLabels map is equivalent
4018
to an element of matchExpressions, whose key field is "key",
4019
the operator is "In", and the values array contains only
4020
"value". The requirements are ANDed.
4021
type: object
4022
type: object
4023
x-kubernetes-map-type: atomic
4024
instanceSelector:
4025
description: InstanceSelector determines which LogInstances should
4026
be selected for running. Each instance runs its own set of Prometheus
4027
components, including service discovery, scraping, and remote_write.
4028
properties:
4029
matchExpressions:
4030
description: matchExpressions is a list of label selector
4031
requirements. The requirements are ANDed.
4032
items:
4033
description: A label selector requirement is a selector
4034
that contains values, a key, and an operator that relates
4035
the key and values.
4036
properties:
4037
key:
4038
description: key is the label key that the selector
4039
applies to.
4040
type: string
4041
operator:
4042
description: operator represents a key's relationship
4043
to a set of values. Valid operators are In, NotIn,
4044
Exists and DoesNotExist.
4045
type: string
4046
values:
4047
description: values is an array of string values. If
4048
the operator is In or NotIn, the values array must
4049
be non-empty. If the operator is Exists or DoesNotExist,
4050
the values array must be empty. This array is replaced
4051
during a strategic merge patch.
4052
items:
4053
type: string
4054
type: array
4055
required:
4056
- key
4057
- operator
4058
type: object
4059
type: array
4060
matchLabels:
4061
additionalProperties:
4062
type: string
4063
description: matchLabels is a map of {key,value} pairs. A
4064
single {key,value} in the matchLabels map is equivalent
4065
to an element of matchExpressions, whose key field is "key",
4066
the operator is "In", and the values array contains only
4067
"value". The requirements are ANDed.
4068
type: object
4069
type: object
4070
x-kubernetes-map-type: atomic
4071
logsExternalLabelName:
4072
description: LogsExternalLabelName is the name of the external
4073
label used to denote Grafana Agent cluster. Defaults to "cluster."
4074
External label will _not_ be added when value is set to the
4075
empty string.
4076
type: string
4077
type: object
4078
metrics:
4079
description: Metrics controls the metrics subsystem of the Agent and
4080
settings unique to metrics-specific pods that are deployed.
4081
properties:
4082
arbitraryFSAccessThroughSMs:
4083
description: ArbitraryFSAccessThroughSMs configures whether configuration
4084
based on a ServiceMonitor can access arbitrary files on the
4085
file system of the Grafana Agent container, e.g., bearer token
4086
files.
4087
properties:
4088
deny:
4089
type: boolean
4090
type: object
4091
enforcedNamespaceLabel:
4092
description: EnforcedNamespaceLabel enforces adding a namespace
4093
label of origin for each metric that is user-created. The label
4094
value is always the namespace of the object that is being created.
4095
type: string
4096
enforcedSampleLimit:
4097
description: EnforcedSampleLimit defines a global limit on the
4098
number of scraped samples that are accepted. This overrides
4099
any SampleLimit set per ServiceMonitor and/or PodMonitor. It
4100
is meant to be used by admins to enforce the SampleLimit to
4101
keep the overall number of samples and series under the desired
4102
limit. Note that if a SampleLimit from a ServiceMonitor or PodMonitor
4103
is lower, that value is used instead.
4104
format: int64
4105
type: integer
4106
enforcedTargetLimit:
4107
description: EnforcedTargetLimit defines a global limit on the
4108
number of scraped targets. This overrides any TargetLimit set
4109
per ServiceMonitor and/or PodMonitor. It is meant to be used
4110
by admins to enforce the TargetLimit to keep the overall number
4111
of targets under the desired limit. Note that if a TargetLimit
4112
from a ServiceMonitor or PodMonitor is higher, that value is
4113
used instead.
4114
format: int64
4115
type: integer
4116
externalLabels:
4117
additionalProperties:
4118
type: string
4119
description: ExternalLabels are labels to add to any time series
4120
when sending data over remote_write.
4121
type: object
4122
ignoreNamespaceSelectors:
4123
description: IgnoreNamespaceSelectors, if true, ignores NamespaceSelector
4124
settings from the PodMonitor and ServiceMonitor configs, so
4125
that they only discover endpoints within their current namespace.
4126
type: boolean
4127
instanceNamespaceSelector:
4128
description: InstanceNamespaceSelector is the set of labels that
4129
determines which namespaces to watch for MetricsInstances. If
4130
not provided, it only checks its own namespace.
4131
properties:
4132
matchExpressions:
4133
description: matchExpressions is a list of label selector
4134
requirements. The requirements are ANDed.
4135
items:
4136
description: A label selector requirement is a selector
4137
that contains values, a key, and an operator that relates
4138
the key and values.
4139
properties:
4140
key:
4141
description: key is the label key that the selector
4142
applies to.
4143
type: string
4144
operator:
4145
description: operator represents a key's relationship
4146
to a set of values. Valid operators are In, NotIn,
4147
Exists and DoesNotExist.
4148
type: string
4149
values:
4150
description: values is an array of string values. If
4151
the operator is In or NotIn, the values array must
4152
be non-empty. If the operator is Exists or DoesNotExist,
4153
the values array must be empty. This array is replaced
4154
during a strategic merge patch.
4155
items:
4156
type: string
4157
type: array
4158
required:
4159
- key
4160
- operator
4161
type: object
4162
type: array
4163
matchLabels:
4164
additionalProperties:
4165
type: string
4166
description: matchLabels is a map of {key,value} pairs. A
4167
single {key,value} in the matchLabels map is equivalent
4168
to an element of matchExpressions, whose key field is "key",
4169
the operator is "In", and the values array contains only
4170
"value". The requirements are ANDed.
4171
type: object
4172
type: object
4173
x-kubernetes-map-type: atomic
4174
instanceSelector:
4175
description: InstanceSelector determines which MetricsInstances
4176
should be selected for running. Each instance runs its own set
4177
of Metrics components, including service discovery, scraping,
4178
and remote_write.
4179
properties:
4180
matchExpressions:
4181
description: matchExpressions is a list of label selector
4182
requirements. The requirements are ANDed.
4183
items:
4184
description: A label selector requirement is a selector
4185
that contains values, a key, and an operator that relates
4186
the key and values.
4187
properties:
4188
key:
4189
description: key is the label key that the selector
4190
applies to.
4191
type: string
4192
operator:
4193
description: operator represents a key's relationship
4194
to a set of values. Valid operators are In, NotIn,
4195
Exists and DoesNotExist.
4196
type: string
4197
values:
4198
description: values is an array of string values. If
4199
the operator is In or NotIn, the values array must
4200
be non-empty. If the operator is Exists or DoesNotExist,
4201
the values array must be empty. This array is replaced
4202
during a strategic merge patch.
4203
items:
4204
type: string
4205
type: array
4206
required:
4207
- key
4208
- operator
4209
type: object
4210
type: array
4211
matchLabels:
4212
additionalProperties:
4213
type: string
4214
description: matchLabels is a map of {key,value} pairs. A
4215
single {key,value} in the matchLabels map is equivalent
4216
to an element of matchExpressions, whose key field is "key",
4217
the operator is "In", and the values array contains only
4218
"value". The requirements are ANDed.
4219
type: object
4220
type: object
4221
x-kubernetes-map-type: atomic
4222
metricsExternalLabelName:
4223
description: MetricsExternalLabelName is the name of the external
4224
label used to denote Grafana Agent cluster. Defaults to "cluster."
4225
The external label is _not_ added when the value is set to the
4226
empty string.
4227
type: string
4228
overrideHonorLabels:
4229
description: OverrideHonorLabels, if true, overrides all configured
4230
honor_labels read from ServiceMonitor or PodMonitor and sets
4231
them to false.
4232
type: boolean
4233
overrideHonorTimestamps:
4234
description: OverrideHonorTimestamps allows global enforcement
4235
for honoring timestamps in all scrape configs.
4236
type: boolean
4237
remoteWrite:
4238
description: RemoteWrite controls default remote_write settings
4239
for all instances. If an instance does not provide its own RemoteWrite
4240
settings, these will be used instead.
4241
items:
4242
description: RemoteWriteSpec defines the remote_write configuration
4243
for Prometheus.
4244
properties:
4245
basicAuth:
4246
description: BasicAuth for the URL.
4247
properties:
4248
password:
4249
description: The secret in the service monitor namespace
4250
that contains the password for authentication.
4251
properties:
4252
key:
4253
description: The key of the secret to select from. Must
4254
be a valid secret key.
4255
type: string
4256
name:
4257
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4258
TODO: Add other useful fields. apiVersion, kind,
4259
uid?'
4260
type: string
4261
optional:
4262
description: Specify whether the Secret or its key
4263
must be defined
4264
type: boolean
4265
required:
4266
- key
4267
type: object
4268
x-kubernetes-map-type: atomic
4269
username:
4270
description: The secret in the service monitor namespace
4271
that contains the username for authentication.
4272
properties:
4273
key:
4274
description: The key of the secret to select from. Must
4275
be a valid secret key.
4276
type: string
4277
name:
4278
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4279
TODO: Add other useful fields. apiVersion, kind,
4280
uid?'
4281
type: string
4282
optional:
4283
description: Specify whether the Secret or its key
4284
must be defined
4285
type: boolean
4286
required:
4287
- key
4288
type: object
4289
x-kubernetes-map-type: atomic
4290
type: object
4291
bearerToken:
4292
description: BearerToken used for remote_write.
4293
type: string
4294
bearerTokenFile:
4295
description: BearerTokenFile used to read bearer token.
4296
type: string
4297
headers:
4298
additionalProperties:
4299
type: string
4300
description: Headers is a set of custom HTTP headers to
4301
be sent along with each remote_write request. Be aware
4302
that any headers set by Grafana Agent itself can't be
4303
overwritten.
4304
type: object
4305
metadataConfig:
4306
description: MetadataConfig configures the sending of series
4307
metadata to remote storage.
4308
properties:
4309
send:
4310
description: Send enables metric metadata to be sent
4311
to remote storage.
4312
type: boolean
4313
sendInterval:
4314
description: SendInterval controls how frequently metric
4315
metadata is sent to remote storage.
4316
type: string
4317
type: object
4318
name:
4319
description: Name of the remote_write queue. Must be unique
4320
if specified. The name is used in metrics and logging
4321
in order to differentiate queues.
4322
type: string
4323
oauth2:
4324
description: Oauth2 for URL
4325
properties:
4326
clientId:
4327
description: The secret or configmap containing the
4328
OAuth2 client id
4329
properties:
4330
configMap:
4331
description: ConfigMap containing data to use for
4332
the targets.
4333
properties:
4334
key:
4335
description: The key to select.
4336
type: string
4337
name:
4338
description: 'Name of the referent. More info:
4339
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4340
TODO: Add other useful fields. apiVersion,
4341
kind, uid?'
4342
type: string
4343
optional:
4344
description: Specify whether the ConfigMap or
4345
its key must be defined
4346
type: boolean
4347
required:
4348
- key
4349
type: object
4350
x-kubernetes-map-type: atomic
4351
secret:
4352
description: Secret containing data to use for the
4353
targets.
4354
properties:
4355
key:
4356
description: The key of the secret to select
4357
from. Must be a valid secret key.
4358
type: string
4359
name:
4360
description: 'Name of the referent. More info:
4361
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4362
TODO: Add other useful fields. apiVersion,
4363
kind, uid?'
4364
type: string
4365
optional:
4366
description: Specify whether the Secret or its
4367
key must be defined
4368
type: boolean
4369
required:
4370
- key
4371
type: object
4372
x-kubernetes-map-type: atomic
4373
type: object
4374
clientSecret:
4375
description: The secret containing the OAuth2 client
4376
secret
4377
properties:
4378
key:
4379
description: The key of the secret to select from. Must
4380
be a valid secret key.
4381
type: string
4382
name:
4383
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4384
TODO: Add other useful fields. apiVersion, kind,
4385
uid?'
4386
type: string
4387
optional:
4388
description: Specify whether the Secret or its key
4389
must be defined
4390
type: boolean
4391
required:
4392
- key
4393
type: object
4394
x-kubernetes-map-type: atomic
4395
endpointParams:
4396
additionalProperties:
4397
type: string
4398
description: Parameters to append to the token URL
4399
type: object
4400
scopes:
4401
description: OAuth2 scopes used for the token request
4402
items:
4403
type: string
4404
type: array
4405
tokenUrl:
4406
description: The URL to fetch the token from
4407
minLength: 1
4408
type: string
4409
required:
4410
- clientId
4411
- clientSecret
4412
- tokenUrl
4413
type: object
4414
proxyUrl:
4415
description: ProxyURL to proxy requests through. Optional.
4416
type: string
4417
queueConfig:
4418
description: QueueConfig allows tuning of the remote_write
4419
queue parameters.
4420
properties:
4421
batchSendDeadline:
4422
description: BatchSendDeadline is the maximum time a
4423
sample will wait in the buffer.
4424
type: string
4425
capacity:
4426
description: Capacity is the number of samples to buffer
4427
per shard before samples start being dropped.
4428
type: integer
4429
maxBackoff:
4430
description: MaxBackoff is the maximum retry delay.
4431
type: string
4432
maxRetries:
4433
description: MaxRetries is the maximum number of times
4434
to retry a batch on recoverable errors.
4435
type: integer
4436
maxSamplesPerSend:
4437
description: MaxSamplesPerSend is the maximum number
4438
of samples per send.
4439
type: integer
4440
maxShards:
4441
description: MaxShards is the maximum number of shards,
4442
i.e., the amount of concurrency.
4443
type: integer
4444
minBackoff:
4445
description: MinBackoff is the initial retry delay.
4446
MinBackoff is doubled for every retry.
4447
type: string
4448
minShards:
4449
description: MinShards is the minimum number of shards,
4450
i.e., the amount of concurrency.
4451
type: integer
4452
retryOnRateLimit:
4453
description: RetryOnRateLimit retries requests when
4454
encountering rate limits.
4455
type: boolean
4456
type: object
4457
remoteTimeout:
4458
description: RemoteTimeout is the timeout for requests to
4459
the remote_write endpoint.
4460
type: string
4461
sigv4:
4462
description: SigV4 configures SigV4-based authentication
4463
to the remote_write endpoint. SigV4-based authentication
4464
is used if SigV4 is defined, even with an empty object.
4465
properties:
4466
accessKey:
4467
description: AccessKey holds the secret of the AWS API
4468
access key to use for signing. If not provided, the
4469
environment variable AWS_ACCESS_KEY_ID is used.
4470
properties:
4471
key:
4472
description: The key of the secret to select from. Must
4473
be a valid secret key.
4474
type: string
4475
name:
4476
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4477
TODO: Add other useful fields. apiVersion, kind,
4478
uid?'
4479
type: string
4480
optional:
4481
description: Specify whether the Secret or its key
4482
must be defined
4483
type: boolean
4484
required:
4485
- key
4486
type: object
4487
x-kubernetes-map-type: atomic
4488
profile:
4489
description: Profile is the named AWS profile to use
4490
for authentication.
4491
type: string
4492
region:
4493
description: Region of the AWS endpoint. If blank, the
4494
region from the default credentials chain is used.
4495
type: string
4496
roleARN:
4497
description: RoleARN is the AWS Role ARN to use for
4498
authentication, as an alternative for using the AWS
4499
API keys.
4500
type: string
4501
secretKey:
4502
description: SecretKey of the AWS API to use for signing.
4503
If blank, the environment variable AWS_SECRET_ACCESS_KEY
4504
is used.
4505
properties:
4506
key:
4507
description: The key of the secret to select from. Must
4508
be a valid secret key.
4509
type: string
4510
name:
4511
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4512
TODO: Add other useful fields. apiVersion, kind,
4513
uid?'
4514
type: string
4515
optional:
4516
description: Specify whether the Secret or its key
4517
must be defined
4518
type: boolean
4519
required:
4520
- key
4521
type: object
4522
x-kubernetes-map-type: atomic
4523
type: object
4524
tlsConfig:
4525
description: TLSConfig to use for remote_write.
4526
properties:
4527
ca:
4528
description: Certificate authority used when verifying
4529
server certificates.
4530
properties:
4531
configMap:
4532
description: ConfigMap containing data to use for
4533
the targets.
4534
properties:
4535
key:
4536
description: The key to select.
4537
type: string
4538
name:
4539
description: 'Name of the referent. More info:
4540
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4541
TODO: Add other useful fields. apiVersion,
4542
kind, uid?'
4543
type: string
4544
optional:
4545
description: Specify whether the ConfigMap or
4546
its key must be defined
4547
type: boolean
4548
required:
4549
- key
4550
type: object
4551
x-kubernetes-map-type: atomic
4552
secret:
4553
description: Secret containing data to use for the
4554
targets.
4555
properties:
4556
key:
4557
description: The key of the secret to select
4558
from. Must be a valid secret key.
4559
type: string
4560
name:
4561
description: 'Name of the referent. More info:
4562
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4563
TODO: Add other useful fields. apiVersion,
4564
kind, uid?'
4565
type: string
4566
optional:
4567
description: Specify whether the Secret or its
4568
key must be defined
4569
type: boolean
4570
required:
4571
- key
4572
type: object
4573
x-kubernetes-map-type: atomic
4574
type: object
4575
caFile:
4576
description: Path to the CA cert in the Prometheus container
4577
to use for the targets.
4578
type: string
4579
cert:
4580
description: Client certificate to present when doing
4581
client-authentication.
4582
properties:
4583
configMap:
4584
description: ConfigMap containing data to use for
4585
the targets.
4586
properties:
4587
key:
4588
description: The key to select.
4589
type: string
4590
name:
4591
description: 'Name of the referent. More info:
4592
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4593
TODO: Add other useful fields. apiVersion,
4594
kind, uid?'
4595
type: string
4596
optional:
4597
description: Specify whether the ConfigMap or
4598
its key must be defined
4599
type: boolean
4600
required:
4601
- key
4602
type: object
4603
x-kubernetes-map-type: atomic
4604
secret:
4605
description: Secret containing data to use for the
4606
targets.
4607
properties:
4608
key:
4609
description: The key of the secret to select
4610
from. Must be a valid secret key.
4611
type: string
4612
name:
4613
description: 'Name of the referent. More info:
4614
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4615
TODO: Add other useful fields. apiVersion,
4616
kind, uid?'
4617
type: string
4618
optional:
4619
description: Specify whether the Secret or its
4620
key must be defined
4621
type: boolean
4622
required:
4623
- key
4624
type: object
4625
x-kubernetes-map-type: atomic
4626
type: object
4627
certFile:
4628
description: Path to the client cert file in the Prometheus
4629
container for the targets.
4630
type: string
4631
insecureSkipVerify:
4632
description: Disable target certificate validation.
4633
type: boolean
4634
keyFile:
4635
description: Path to the client key file in the Prometheus
4636
container for the targets.
4637
type: string
4638
keySecret:
4639
description: Secret containing the client key file for
4640
the targets.
4641
properties:
4642
key:
4643
description: The key of the secret to select from. Must
4644
be a valid secret key.
4645
type: string
4646
name:
4647
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4648
TODO: Add other useful fields. apiVersion, kind,
4649
uid?'
4650
type: string
4651
optional:
4652
description: Specify whether the Secret or its key
4653
must be defined
4654
type: boolean
4655
required:
4656
- key
4657
type: object
4658
x-kubernetes-map-type: atomic
4659
serverName:
4660
description: Used to verify the hostname for the targets.
4661
type: string
4662
type: object
4663
url:
4664
description: URL of the endpoint to send samples to.
4665
type: string
4666
writeRelabelConfigs:
4667
description: WriteRelabelConfigs holds relabel_configs to
4668
relabel samples before they are sent to the remote_write
4669
endpoint.
4670
items:
4671
description: 'RelabelConfig allows dynamic rewriting of
4672
the label set, being applied to samples before ingestion.
4673
It defines `<metric_relabel_configs>`-section of Prometheus
4674
configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
4675
properties:
4676
action:
4677
default: replace
4678
description: Action to perform based on regex matching.
4679
Default is 'replace'. uppercase and lowercase actions
4680
require Prometheus >= 2.36.
4681
enum:
4682
- replace
4683
- Replace
4684
- keep
4685
- Keep
4686
- drop
4687
- Drop
4688
- hashmod
4689
- HashMod
4690
- labelmap
4691
- LabelMap
4692
- labeldrop
4693
- LabelDrop
4694
- labelkeep
4695
- LabelKeep
4696
- lowercase
4697
- Lowercase
4698
- uppercase
4699
- Uppercase
4700
type: string
4701
modulus:
4702
description: Modulus to take of the hash of the source
4703
label values.
4704
format: int64
4705
type: integer
4706
regex:
4707
description: Regular expression against which the
4708
extracted value is matched. Default is '(.*)'
4709
type: string
4710
replacement:
4711
description: Replacement value against which a regex
4712
replace is performed if the regular expression matches.
4713
Regex capture groups are available. Default is '$1'
4714
type: string
4715
separator:
4716
description: Separator placed between concatenated
4717
source label values. default is ';'.
4718
type: string
4719
sourceLabels:
4720
description: The source labels select values from
4721
existing labels. Their content is concatenated using
4722
the configured separator and matched against the
4723
configured regular expression for the replace, keep,
4724
and drop actions.
4725
items:
4726
description: LabelName is a valid Prometheus label
4727
name which may only contain ASCII letters, numbers,
4728
as well as underscores.
4729
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
4730
type: string
4731
type: array
4732
targetLabel:
4733
description: Label to which the resulting value is
4734
written in a replace action. It is mandatory for
4735
replace actions. Regex capture groups are available.
4736
type: string
4737
type: object
4738
type: array
4739
required:
4740
- url
4741
type: object
4742
type: array
4743
replicaExternalLabelName:
4744
description: ReplicaExternalLabelName is the name of the metrics
4745
external label used to denote the replica name. Defaults to
4746
__replica__. The external label is _not_ added when the value
4747
is set to the empty string.
4748
type: string
4749
replicas:
4750
description: Replicas of each shard to deploy for metrics pods.
4751
Number of replicas multiplied by the number of shards is the
4752
total number of pods created.
4753
format: int32
4754
type: integer
4755
scrapeInterval:
4756
description: ScrapeInterval is the time between consecutive scrapes.
4757
type: string
4758
scrapeTimeout:
4759
description: ScrapeTimeout is the time to wait for a target to
4760
respond before marking a scrape as failed.
4761
type: string
4762
shards:
4763
description: Shards to distribute targets onto. Number of replicas
4764
multiplied by the number of shards is the total number of pods
4765
created. Note that scaling down shards does not reshard data
4766
onto remaining instances; it must be manually moved. Increasing
4767
shards does not reshard data either, but it will continue to
4768
be available from the same instances. Sharding is performed
4769
on the content of the __address__ target meta-label.
4770
format: int32
4771
type: integer
4772
type: object
4773
nodeSelector:
4774
additionalProperties:
4775
type: string
4776
description: NodeSelector defines which nodes pods should be scheduling
4777
on.
4778
type: object
4779
paused:
4780
description: Paused prevents actions except for deletion to be performed
4781
on the underlying managed objects.
4782
type: boolean
4783
podMetadata:
4784
description: PodMetadata configures Labels and Annotations which are
4785
propagated to created Grafana Agent pods.
4786
properties:
4787
annotations:
4788
additionalProperties:
4789
type: string
4790
description: 'Annotations is an unstructured key value map stored
4791
with a resource that may be set by external tools to store and
4792
retrieve arbitrary metadata. They are not queryable and should
4793
be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/'
4794
type: object
4795
labels:
4796
additionalProperties:
4797
type: string
4798
description: 'Map of string keys and values that can be used to
4799
organize and categorize (scope and select) objects. May match
4800
selectors of replication controllers and services. More info:
4801
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/'
4802
type: object
4803
name:
4804
description: 'Name must be unique within a namespace. Is required
4805
when creating resources, although some resources may allow a
4806
client to request the generation of an appropriate name automatically.
4807
Name is primarily intended for creation idempotence and configuration
4808
definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
4809
type: string
4810
type: object
4811
portName:
4812
description: Port name used for the pods and governing service. This
4813
defaults to agent-metrics.
4814
type: string
4815
priorityClassName:
4816
description: PriorityClassName is the priority class assigned to pods.
4817
type: string
4818
resources:
4819
description: Resources holds requests and limits for individual pods.
4820
properties:
4821
limits:
4822
additionalProperties:
4823
anyOf:
4824
- type: integer
4825
- type: string
4826
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4827
x-kubernetes-int-or-string: true
4828
description: 'Limits describes the maximum amount of compute resources
4829
allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
4830
type: object
4831
requests:
4832
additionalProperties:
4833
anyOf:
4834
- type: integer
4835
- type: string
4836
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4837
x-kubernetes-int-or-string: true
4838
description: 'Requests describes the minimum amount of compute
4839
resources required. If Requests is omitted for a container,
4840
it defaults to Limits if that is explicitly specified, otherwise
4841
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
4842
type: object
4843
type: object
4844
secrets:
4845
description: Secrets is a list of secrets in the same namespace as
4846
the GrafanaAgent object which will be mounted into each running
4847
Grafana Agent pod. The secrets are mounted into /etc/grafana-agent/extra-secrets/<secret-name>.
4848
items:
4849
type: string
4850
type: array
4851
securityContext:
4852
description: SecurityContext holds pod-level security attributes and
4853
common container settings. When unspecified, defaults to the default
4854
PodSecurityContext.
4855
properties:
4856
fsGroup:
4857
description: "A special supplemental group that applies to all
4858
containers in a pod. Some volume types allow the Kubelet to
4859
change the ownership of that volume to be owned by the pod:
4860
\n 1. The owning GID will be the FSGroup 2. The setgid bit is
4861
set (new files created in the volume will be owned by FSGroup)
4862
3. The permission bits are OR'd with rw-rw---- \n If unset,
4863
the Kubelet will not modify the ownership and permissions of
4864
any volume. Note that this field cannot be set when spec.os.name
4865
is windows."
4866
format: int64
4867
type: integer
4868
fsGroupChangePolicy:
4869
description: 'fsGroupChangePolicy defines behavior of changing
4870
ownership and permission of the volume before being exposed
4871
inside Pod. This field will only apply to volume types which
4872
support fsGroup based ownership(and permissions). It will have
4873
no effect on ephemeral volume types such as: secret, configmaps
4874
and emptydir. Valid values are "OnRootMismatch" and "Always".
4875
If not specified, "Always" is used. Note that this field cannot
4876
be set when spec.os.name is windows.'
4877
type: string
4878
runAsGroup:
4879
description: The GID to run the entrypoint of the container process.
4880
Uses runtime default if unset. May also be set in SecurityContext. If
4881
set in both SecurityContext and PodSecurityContext, the value
4882
specified in SecurityContext takes precedence for that container.
4883
Note that this field cannot be set when spec.os.name is windows.
4884
format: int64
4885
type: integer
4886
runAsNonRoot:
4887
description: Indicates that the container must run as a non-root
4888
user. If true, the Kubelet will validate the image at runtime
4889
to ensure that it does not run as UID 0 (root) and fail to start
4890
the container if it does. If unset or false, no such validation
4891
will be performed. May also be set in SecurityContext. If set
4892
in both SecurityContext and PodSecurityContext, the value specified
4893
in SecurityContext takes precedence.
4894
type: boolean
4895
runAsUser:
4896
description: The UID to run the entrypoint of the container process.
4897
Defaults to user specified in image metadata if unspecified.
4898
May also be set in SecurityContext. If set in both SecurityContext
4899
and PodSecurityContext, the value specified in SecurityContext
4900
takes precedence for that container. Note that this field cannot
4901
be set when spec.os.name is windows.
4902
format: int64
4903
type: integer
4904
seLinuxOptions:
4905
description: The SELinux context to be applied to all containers.
4906
If unspecified, the container runtime will allocate a random
4907
SELinux context for each container. May also be set in SecurityContext. If
4908
set in both SecurityContext and PodSecurityContext, the value
4909
specified in SecurityContext takes precedence for that container.
4910
Note that this field cannot be set when spec.os.name is windows.
4911
properties:
4912
level:
4913
description: Level is SELinux level label that applies to
4914
the container.
4915
type: string
4916
role:
4917
description: Role is a SELinux role label that applies to
4918
the container.
4919
type: string
4920
type:
4921
description: Type is a SELinux type label that applies to
4922
the container.
4923
type: string
4924
user:
4925
description: User is a SELinux user label that applies to
4926
the container.
4927
type: string
4928
type: object
4929
seccompProfile:
4930
description: The seccomp options to use by the containers in this
4931
pod. Note that this field cannot be set when spec.os.name is
4932
windows.
4933
properties:
4934
localhostProfile:
4935
description: localhostProfile indicates a profile defined
4936
in a file on the node should be used. The profile must be
4937
preconfigured on the node to work. Must be a descending
4938
path, relative to the kubelet's configured seccomp profile
4939
location. Must only be set if type is "Localhost".
4940
type: string
4941
type:
4942
description: "type indicates which kind of seccomp profile
4943
will be applied. Valid options are: \n Localhost - a profile
4944
defined in a file on the node should be used. RuntimeDefault
4945
- the container runtime default profile should be used.
4946
Unconfined - no profile should be applied."
4947
type: string
4948
required:
4949
- type
4950
type: object
4951
supplementalGroups:
4952
description: A list of groups applied to the first process run
4953
in each container, in addition to the container's primary GID. If
4954
unspecified, no groups will be added to any container. Note
4955
that this field cannot be set when spec.os.name is windows.
4956
items:
4957
format: int64
4958
type: integer
4959
type: array
4960
sysctls:
4961
description: Sysctls hold a list of namespaced sysctls used for
4962
the pod. Pods with unsupported sysctls (by the container runtime)
4963
might fail to launch. Note that this field cannot be set when
4964
spec.os.name is windows.
4965
items:
4966
description: Sysctl defines a kernel parameter to be set
4967
properties:
4968
name:
4969
description: Name of a property to set
4970
type: string
4971
value:
4972
description: Value of a property to set
4973
type: string
4974
required:
4975
- name
4976
- value
4977
type: object
4978
type: array
4979
windowsOptions:
4980
description: The Windows specific settings applied to all containers.
4981
If unspecified, the options within a container's SecurityContext
4982
will be used. If set in both SecurityContext and PodSecurityContext,
4983
the value specified in SecurityContext takes precedence. Note
4984
that this field cannot be set when spec.os.name is linux.
4985
properties:
4986
gmsaCredentialSpec:
4987
description: GMSACredentialSpec is where the GMSA admission
4988
webhook (https://github.com/kubernetes-sigs/windows-gmsa)
4989
inlines the contents of the GMSA credential spec named by
4990
the GMSACredentialSpecName field.
4991
type: string
4992
gmsaCredentialSpecName:
4993
description: GMSACredentialSpecName is the name of the GMSA
4994
credential spec to use.
4995
type: string
4996
hostProcess:
4997
description: HostProcess determines if a container should
4998
be run as a 'Host Process' container. This field is alpha-level
4999
and will only be honored by components that enable the WindowsHostProcessContainers
5000
feature flag. Setting this field without the feature flag
5001
will result in errors when validating the Pod. All of a
5002
Pod's containers must have the same effective HostProcess
5003
value (it is not allowed to have a mix of HostProcess containers
5004
and non-HostProcess containers). In addition, if HostProcess
5005
is true then HostNetwork must also be set to true.
5006
type: boolean
5007
runAsUserName:
5008
description: The UserName in Windows to run the entrypoint
5009
of the container process. Defaults to the user specified
5010
in image metadata if unspecified. May also be set in PodSecurityContext.
5011
If set in both SecurityContext and PodSecurityContext, the
5012
value specified in SecurityContext takes precedence.
5013
type: string
5014
type: object
5015
type: object
5016
serviceAccountName:
5017
description: ServiceAccountName is the name of the ServiceAccount
5018
to use for running Grafana Agent pods.
5019
type: string
5020
storage:
5021
description: Storage spec to specify how storage will be used.
5022
properties:
5023
disableMountSubPath:
5024
description: 'Deprecated: subPath usage will be disabled by default
5025
in a future release, this option will become unnecessary. DisableMountSubPath
5026
allows to remove any subPath usage in volume mounts.'
5027
type: boolean
5028
emptyDir:
5029
description: 'EmptyDirVolumeSource to be used by the Prometheus
5030
StatefulSets. If specified, used in place of any volumeClaimTemplate.
5031
More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir'
5032
properties:
5033
medium:
5034
description: 'medium represents what type of storage medium
5035
should back this directory. The default is "" which means
5036
to use the node''s default medium. Must be an empty string
5037
(default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
5038
type: string
5039
sizeLimit:
5040
anyOf:
5041
- type: integer
5042
- type: string
5043
description: 'sizeLimit is the total amount of local storage
5044
required for this EmptyDir volume. The size limit is also
5045
applicable for memory medium. The maximum usage on memory
5046
medium EmptyDir would be the minimum value between the SizeLimit
5047
specified here and the sum of memory limits of all containers
5048
in a pod. The default is nil which means that the limit
5049
is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
5050
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5051
x-kubernetes-int-or-string: true
5052
type: object
5053
ephemeral:
5054
description: 'EphemeralVolumeSource to be used by the Prometheus
5055
StatefulSets. This is a beta field in k8s 1.21, for lower versions,
5056
starting with k8s 1.19, it requires enabling the GenericEphemeralVolume
5057
feature gate. More info: https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes'
5058
properties:
5059
volumeClaimTemplate:
5060
description: "Will be used to create a stand-alone PVC to
5061
provision the volume. The pod in which this EphemeralVolumeSource
5062
is embedded will be the owner of the PVC, i.e. the PVC will
5063
be deleted together with the pod. The name of the PVC will
5064
be `<pod name>-<volume name>` where `<volume name>` is the
5065
name from the `PodSpec.Volumes` array entry. Pod validation
5066
will reject the pod if the concatenated name is not valid
5067
for a PVC (for example, too long). \n An existing PVC with
5068
that name that is not owned by the pod will *not* be used
5069
for the pod to avoid using an unrelated volume by mistake.
5070
Starting the pod is then blocked until the unrelated PVC
5071
is removed. If such a pre-created PVC is meant to be used
5072
by the pod, the PVC has to updated with an owner reference
5073
to the pod once the pod exists. Normally this should not
5074
be necessary, but it may be useful when manually reconstructing
5075
a broken cluster. \n This field is read-only and no changes
5076
will be made by Kubernetes to the PVC after it has been
5077
created. \n Required, must not be nil."
5078
properties:
5079
metadata:
5080
description: May contain labels and annotations that will
5081
be copied into the PVC when creating it. No other fields
5082
are allowed and will be rejected during validation.
5083
type: object
5084
spec:
5085
description: The specification for the PersistentVolumeClaim.
5086
The entire content is copied unchanged into the PVC
5087
that gets created from this template. The same fields
5088
as in a PersistentVolumeClaim are also valid here.
5089
properties:
5090
accessModes:
5091
description: 'accessModes contains the desired access
5092
modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
5093
items:
5094
type: string
5095
type: array
5096
dataSource:
5097
description: 'dataSource field can be used to specify
5098
either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
5099
* An existing PVC (PersistentVolumeClaim) If the
5100
provisioner or an external controller can support
5101
the specified data source, it will create a new
5102
volume based on the contents of the specified data
5103
source. If the AnyVolumeDataSource feature gate
5104
is enabled, this field will always have the same
5105
contents as the DataSourceRef field.'
5106
properties:
5107
apiGroup:
5108
description: APIGroup is the group for the resource
5109
being referenced. If APIGroup is not specified,
5110
the specified Kind must be in the core API group.
5111
For any other third-party types, APIGroup is
5112
required.
5113
type: string
5114
kind:
5115
description: Kind is the type of resource being
5116
referenced
5117
type: string
5118
name:
5119
description: Name is the name of resource being
5120
referenced
5121
type: string
5122
required:
5123
- kind
5124
- name
5125
type: object
5126
x-kubernetes-map-type: atomic
5127
dataSourceRef:
5128
description: 'dataSourceRef specifies the object from
5129
which to populate the volume with data, if a non-empty
5130
volume is desired. This may be any local object
5131
from a non-empty API group (non core object) or
5132
a PersistentVolumeClaim object. When this field
5133
is specified, volume binding will only succeed if
5134
the type of the specified object matches some installed
5135
volume populator or dynamic provisioner. This field
5136
will replace the functionality of the DataSource
5137
field and as such if both fields are non-empty,
5138
they must have the same value. For backwards compatibility,
5139
both fields (DataSource and DataSourceRef) will
5140
be set to the same value automatically if one of
5141
them is empty and the other is non-empty. There
5142
are two important differences between DataSource
5143
and DataSourceRef: * While DataSource only allows
5144
two specific types of objects, DataSourceRef allows
5145
any non-core object, as well as PersistentVolumeClaim
5146
objects. * While DataSource ignores disallowed values
5147
(dropping them), DataSourceRef preserves all values,
5148
and generates an error if a disallowed value is
5149
specified. (Beta) Using this field requires the
5150
AnyVolumeDataSource feature gate to be enabled.'
5151
properties:
5152
apiGroup:
5153
description: APIGroup is the group for the resource
5154
being referenced. If APIGroup is not specified,
5155
the specified Kind must be in the core API group.
5156
For any other third-party types, APIGroup is
5157
required.
5158
type: string
5159
kind:
5160
description: Kind is the type of resource being
5161
referenced
5162
type: string
5163
name:
5164
description: Name is the name of resource being
5165
referenced
5166
type: string
5167
required:
5168
- kind
5169
- name
5170
type: object
5171
x-kubernetes-map-type: atomic
5172
resources:
5173
description: 'resources represents the minimum resources
5174
the volume should have. If RecoverVolumeExpansionFailure
5175
feature is enabled users are allowed to specify
5176
resource requirements that are lower than previous
5177
value but must still be higher than capacity recorded
5178
in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
5179
properties:
5180
limits:
5181
additionalProperties:
5182
anyOf:
5183
- type: integer
5184
- type: string
5185
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5186
x-kubernetes-int-or-string: true
5187
description: 'Limits describes the maximum amount
5188
of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
5189
type: object
5190
requests:
5191
additionalProperties:
5192
anyOf:
5193
- type: integer
5194
- type: string
5195
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5196
x-kubernetes-int-or-string: true
5197
description: 'Requests describes the minimum amount
5198
of compute resources required. If Requests is
5199
omitted for a container, it defaults to Limits
5200
if that is explicitly specified, otherwise to
5201
an implementation-defined value. More info:
5202
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
5203
type: object
5204
type: object
5205
selector:
5206
description: selector is a label query over volumes
5207
to consider for binding.
5208
properties:
5209
matchExpressions:
5210
description: matchExpressions is a list of label
5211
selector requirements. The requirements are
5212
ANDed.
5213
items:
5214
description: A label selector requirement is
5215
a selector that contains values, a key, and
5216
an operator that relates the key and values.
5217
properties:
5218
key:
5219
description: key is the label key that the
5220
selector applies to.
5221
type: string
5222
operator:
5223
description: operator represents a key's
5224
relationship to a set of values. Valid
5225
operators are In, NotIn, Exists and DoesNotExist.
5226
type: string
5227
values:
5228
description: values is an array of string
5229
values. If the operator is In or NotIn,
5230
the values array must be non-empty. If
5231
the operator is Exists or DoesNotExist,
5232
the values array must be empty. This array
5233
is replaced during a strategic merge patch.
5234
items:
5235
type: string
5236
type: array
5237
required:
5238
- key
5239
- operator
5240
type: object
5241
type: array
5242
matchLabels:
5243
additionalProperties:
5244
type: string
5245
description: matchLabels is a map of {key,value}
5246
pairs. A single {key,value} in the matchLabels
5247
map is equivalent to an element of matchExpressions,
5248
whose key field is "key", the operator is "In",
5249
and the values array contains only "value".
5250
The requirements are ANDed.
5251
type: object
5252
type: object
5253
x-kubernetes-map-type: atomic
5254
storageClassName:
5255
description: 'storageClassName is the name of the
5256
StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
5257
type: string
5258
volumeMode:
5259
description: volumeMode defines what type of volume
5260
is required by the claim. Value of Filesystem is
5261
implied when not included in claim spec.
5262
type: string
5263
volumeName:
5264
description: volumeName is the binding reference to
5265
the PersistentVolume backing this claim.
5266
type: string
5267
type: object
5268
required:
5269
- spec
5270
type: object
5271
type: object
5272
volumeClaimTemplate:
5273
description: A PVC spec to be used by the Prometheus StatefulSets.
5274
properties:
5275
apiVersion:
5276
description: 'APIVersion defines the versioned schema of this
5277
representation of an object. Servers should convert recognized
5278
schemas to the latest internal value, and may reject unrecognized
5279
values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
5280
type: string
5281
kind:
5282
description: 'Kind is a string value representing the REST
5283
resource this object represents. Servers may infer this
5284
from the endpoint the client submits requests to. Cannot
5285
be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
5286
type: string
5287
metadata:
5288
description: EmbeddedMetadata contains metadata relevant to
5289
an EmbeddedResource.
5290
properties:
5291
annotations:
5292
additionalProperties:
5293
type: string
5294
description: 'Annotations is an unstructured key value
5295
map stored with a resource that may be set by external
5296
tools to store and retrieve arbitrary metadata. They
5297
are not queryable and should be preserved when modifying
5298
objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/'
5299
type: object
5300
labels:
5301
additionalProperties:
5302
type: string
5303
description: 'Map of string keys and values that can be
5304
used to organize and categorize (scope and select) objects.
5305
May match selectors of replication controllers and services.
5306
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/'
5307
type: object
5308
name:
5309
description: 'Name must be unique within a namespace.
5310
Is required when creating resources, although some resources
5311
may allow a client to request the generation of an appropriate
5312
name automatically. Name is primarily intended for creation
5313
idempotence and configuration definition. Cannot be
5314
updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
5315
type: string
5316
type: object
5317
spec:
5318
description: 'Spec defines the desired characteristics of
5319
a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
5320
properties:
5321
accessModes:
5322
description: 'accessModes contains the desired access
5323
modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
5324
items:
5325
type: string
5326
type: array
5327
dataSource:
5328
description: 'dataSource field can be used to specify
5329
either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
5330
* An existing PVC (PersistentVolumeClaim) If the provisioner
5331
or an external controller can support the specified
5332
data source, it will create a new volume based on the
5333
contents of the specified data source. If the AnyVolumeDataSource
5334
feature gate is enabled, this field will always have
5335
the same contents as the DataSourceRef field.'
5336
properties:
5337
apiGroup:
5338
description: APIGroup is the group for the resource
5339
being referenced. If APIGroup is not specified,
5340
the specified Kind must be in the core API group.
5341
For any other third-party types, APIGroup is required.
5342
type: string
5343
kind:
5344
description: Kind is the type of resource being referenced
5345
type: string
5346
name:
5347
description: Name is the name of resource being referenced
5348
type: string
5349
required:
5350
- kind
5351
- name
5352
type: object
5353
x-kubernetes-map-type: atomic
5354
dataSourceRef:
5355
description: 'dataSourceRef specifies the object from
5356
which to populate the volume with data, if a non-empty
5357
volume is desired. This may be any local object from
5358
a non-empty API group (non core object) or a PersistentVolumeClaim
5359
object. When this field is specified, volume binding
5360
will only succeed if the type of the specified object
5361
matches some installed volume populator or dynamic provisioner.
5362
This field will replace the functionality of the DataSource
5363
field and as such if both fields are non-empty, they
5364
must have the same value. For backwards compatibility,
5365
both fields (DataSource and DataSourceRef) will be set
5366
to the same value automatically if one of them is empty
5367
and the other is non-empty. There are two important
5368
differences between DataSource and DataSourceRef: *
5369
While DataSource only allows two specific types of objects,
5370
DataSourceRef allows any non-core object, as well as
5371
PersistentVolumeClaim objects. * While DataSource ignores
5372
disallowed values (dropping them), DataSourceRef preserves
5373
all values, and generates an error if a disallowed value
5374
is specified. (Beta) Using this field requires the AnyVolumeDataSource
5375
feature gate to be enabled.'
5376
properties:
5377
apiGroup:
5378
description: APIGroup is the group for the resource
5379
being referenced. If APIGroup is not specified,
5380
the specified Kind must be in the core API group.
5381
For any other third-party types, APIGroup is required.
5382
type: string
5383
kind:
5384
description: Kind is the type of resource being referenced
5385
type: string
5386
name:
5387
description: Name is the name of resource being referenced
5388
type: string
5389
required:
5390
- kind
5391
- name
5392
type: object
5393
x-kubernetes-map-type: atomic
5394
resources:
5395
description: 'resources represents the minimum resources
5396
the volume should have. If RecoverVolumeExpansionFailure
5397
feature is enabled users are allowed to specify resource
5398
requirements that are lower than previous value but
5399
must still be higher than capacity recorded in the status
5400
field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
5401
properties:
5402
limits:
5403
additionalProperties:
5404
anyOf:
5405
- type: integer
5406
- type: string
5407
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5408
x-kubernetes-int-or-string: true
5409
description: 'Limits describes the maximum amount
5410
of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
5411
type: object
5412
requests:
5413
additionalProperties:
5414
anyOf:
5415
- type: integer
5416
- type: string
5417
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5418
x-kubernetes-int-or-string: true
5419
description: 'Requests describes the minimum amount
5420
of compute resources required. If Requests is omitted
5421
for a container, it defaults to Limits if that is
5422
explicitly specified, otherwise to an implementation-defined
5423
value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
5424
type: object
5425
type: object
5426
selector:
5427
description: selector is a label query over volumes to
5428
consider for binding.
5429
properties:
5430
matchExpressions:
5431
description: matchExpressions is a list of label selector
5432
requirements. The requirements are ANDed.
5433
items:
5434
description: A label selector requirement is a selector
5435
that contains values, a key, and an operator that
5436
relates the key and values.
5437
properties:
5438
key:
5439
description: key is the label key that the selector
5440
applies to.
5441
type: string
5442
operator:
5443
description: operator represents a key's relationship
5444
to a set of values. Valid operators are In,
5445
NotIn, Exists and DoesNotExist.
5446
type: string
5447
values:
5448
description: values is an array of string values.
5449
If the operator is In or NotIn, the values
5450
array must be non-empty. If the operator is
5451
Exists or DoesNotExist, the values array must
5452
be empty. This array is replaced during a
5453
strategic merge patch.
5454
items:
5455
type: string
5456
type: array
5457
required:
5458
- key
5459
- operator
5460
type: object
5461
type: array
5462
matchLabels:
5463
additionalProperties:
5464
type: string
5465
description: matchLabels is a map of {key,value} pairs.
5466
A single {key,value} in the matchLabels map is equivalent
5467
to an element of matchExpressions, whose key field
5468
is "key", the operator is "In", and the values array
5469
contains only "value". The requirements are ANDed.
5470
type: object
5471
type: object
5472
x-kubernetes-map-type: atomic
5473
storageClassName:
5474
description: 'storageClassName is the name of the StorageClass
5475
required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
5476
type: string
5477
volumeMode:
5478
description: volumeMode defines what type of volume is
5479
required by the claim. Value of Filesystem is implied
5480
when not included in claim spec.
5481
type: string
5482
volumeName:
5483
description: volumeName is the binding reference to the
5484
PersistentVolume backing this claim.
5485
type: string
5486
type: object
5487
status:
5488
description: 'Status represents the current information/status
5489
of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
5490
properties:
5491
accessModes:
5492
description: 'accessModes contains the actual access modes
5493
the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
5494
items:
5495
type: string
5496
type: array
5497
allocatedResources:
5498
additionalProperties:
5499
anyOf:
5500
- type: integer
5501
- type: string
5502
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5503
x-kubernetes-int-or-string: true
5504
description: allocatedResources is the storage resource
5505
within AllocatedResources tracks the capacity allocated
5506
to a PVC. It may be larger than the actual capacity
5507
when a volume expansion operation is requested. For
5508
storage quota, the larger value from allocatedResources
5509
and PVC.spec.resources is used. If allocatedResources
5510
is not set, PVC.spec.resources alone is used for quota
5511
calculation. If a volume expansion capacity request
5512
is lowered, allocatedResources is only lowered if there
5513
are no expansion operations in progress and if the actual
5514
volume capacity is equal or lower than the requested
5515
capacity. This is an alpha field and requires enabling
5516
RecoverVolumeExpansionFailure feature.
5517
type: object
5518
capacity:
5519
additionalProperties:
5520
anyOf:
5521
- type: integer
5522
- type: string
5523
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5524
x-kubernetes-int-or-string: true
5525
description: capacity represents the actual resources
5526
of the underlying volume.
5527
type: object
5528
conditions:
5529
description: conditions is the current Condition of persistent
5530
volume claim. If underlying persistent volume is being
5531
resized then the Condition will be set to 'ResizeStarted'.
5532
items:
5533
description: PersistentVolumeClaimCondition contails
5534
details about state of pvc
5535
properties:
5536
lastProbeTime:
5537
description: lastProbeTime is the time we probed
5538
the condition.
5539
format: date-time
5540
type: string
5541
lastTransitionTime:
5542
description: lastTransitionTime is the time the
5543
condition transitioned from one status to another.
5544
format: date-time
5545
type: string
5546
message:
5547
description: message is the human-readable message
5548
indicating details about last transition.
5549
type: string
5550
reason:
5551
description: reason is a unique, this should be
5552
a short, machine understandable string that gives
5553
the reason for condition's last transition. If
5554
it reports "ResizeStarted" that means the underlying
5555
persistent volume is being resized.
5556
type: string
5557
status:
5558
type: string
5559
type:
5560
description: PersistentVolumeClaimConditionType
5561
is a valid value of PersistentVolumeClaimCondition.Type
5562
type: string
5563
required:
5564
- status
5565
- type
5566
type: object
5567
type: array
5568
phase:
5569
description: phase represents the current phase of PersistentVolumeClaim.
5570
type: string
5571
resizeStatus:
5572
description: resizeStatus stores status of resize operation.
5573
ResizeStatus is not set by default but when expansion
5574
is complete resizeStatus is set to empty string by resize
5575
controller or kubelet. This is an alpha field and requires
5576
enabling RecoverVolumeExpansionFailure feature.
5577
type: string
5578
type: object
5579
type: object
5580
type: object
5581
tolerations:
5582
description: Tolerations, if specified, controls the pod's tolerations.
5583
items:
5584
description: The pod this Toleration is attached to tolerates any
5585
taint that matches the triple <key,value,effect> using the matching
5586
operator <operator>.
5587
properties:
5588
effect:
5589
description: Effect indicates the taint effect to match. Empty
5590
means match all taint effects. When specified, allowed values
5591
are NoSchedule, PreferNoSchedule and NoExecute.
5592
type: string
5593
key:
5594
description: Key is the taint key that the toleration applies
5595
to. Empty means match all taint keys. If the key is empty,
5596
operator must be Exists; this combination means to match all
5597
values and all keys.
5598
type: string
5599
operator:
5600
description: Operator represents a key's relationship to the
5601
value. Valid operators are Exists and Equal. Defaults to Equal.
5602
Exists is equivalent to wildcard for value, so that a pod
5603
can tolerate all taints of a particular category.
5604
type: string
5605
tolerationSeconds:
5606
description: TolerationSeconds represents the period of time
5607
the toleration (which must be of effect NoExecute, otherwise
5608
this field is ignored) tolerates the taint. By default, it
5609
is not set, which means tolerate the taint forever (do not
5610
evict). Zero and negative values will be treated as 0 (evict
5611
immediately) by the system.
5612
format: int64
5613
type: integer
5614
value:
5615
description: Value is the taint value the toleration matches
5616
to. If the operator is Exists, the value should be empty,
5617
otherwise just a regular string.
5618
type: string
5619
type: object
5620
type: array
5621
topologySpreadConstraints:
5622
description: TopologySpreadConstraints, if specified, controls the
5623
pod's topology spread constraints.
5624
items:
5625
description: TopologySpreadConstraint specifies how to spread matching
5626
pods among the given topology.
5627
properties:
5628
labelSelector:
5629
description: LabelSelector is used to find matching pods. Pods
5630
that match this label selector are counted to determine the
5631
number of pods in their corresponding topology domain.
5632
properties:
5633
matchExpressions:
5634
description: matchExpressions is a list of label selector
5635
requirements. The requirements are ANDed.
5636
items:
5637
description: A label selector requirement is a selector
5638
that contains values, a key, and an operator that relates
5639
the key and values.
5640
properties:
5641
key:
5642
description: key is the label key that the selector
5643
applies to.
5644
type: string
5645
operator:
5646
description: operator represents a key's relationship
5647
to a set of values. Valid operators are In, NotIn,
5648
Exists and DoesNotExist.
5649
type: string
5650
values:
5651
description: values is an array of string values.
5652
If the operator is In or NotIn, the values array
5653
must be non-empty. If the operator is Exists or
5654
DoesNotExist, the values array must be empty. This
5655
array is replaced during a strategic merge patch.
5656
items:
5657
type: string
5658
type: array
5659
required:
5660
- key
5661
- operator
5662
type: object
5663
type: array
5664
matchLabels:
5665
additionalProperties:
5666
type: string
5667
description: matchLabels is a map of {key,value} pairs.
5668
A single {key,value} in the matchLabels map is equivalent
5669
to an element of matchExpressions, whose key field is
5670
"key", the operator is "In", and the values array contains
5671
only "value". The requirements are ANDed.
5672
type: object
5673
type: object
5674
x-kubernetes-map-type: atomic
5675
matchLabelKeys:
5676
description: MatchLabelKeys is a set of pod label keys to select
5677
the pods over which spreading will be calculated. The keys
5678
are used to lookup values from the incoming pod labels, those
5679
key-value labels are ANDed with labelSelector to select the
5680
group of existing pods over which spreading will be calculated
5681
for the incoming pod. Keys that don't exist in the incoming
5682
pod labels will be ignored. A null or empty list means only
5683
match against labelSelector.
5684
items:
5685
type: string
5686
type: array
5687
x-kubernetes-list-type: atomic
5688
maxSkew:
5689
description: 'MaxSkew describes the degree to which pods may
5690
be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`,
5691
it is the maximum permitted difference between the number
5692
of matching pods in the target topology and the global minimum.
5693
The global minimum is the minimum number of matching pods
5694
in an eligible domain or zero if the number of eligible domains
5695
is less than MinDomains. For example, in a 3-zone cluster,
5696
MaxSkew is set to 1, and pods with the same labelSelector
5697
spread as 2/2/1: In this case, the global minimum is 1. |
5698
zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew
5699
is 1, incoming pod can only be scheduled to zone3 to become
5700
2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1)
5701
on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming
5702
pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`,
5703
it is used to give higher precedence to topologies that satisfy
5704
it. It''s a required field. Default value is 1 and 0 is not
5705
allowed.'
5706
format: int32
5707
type: integer
5708
minDomains:
5709
description: "MinDomains indicates a minimum number of eligible
5710
domains. When the number of eligible domains with matching
5711
topology keys is less than minDomains, Pod Topology Spread
5712
treats \"global minimum\" as 0, and then the calculation of
5713
Skew is performed. And when the number of eligible domains
5714
with matching topology keys equals or greater than minDomains,
5715
this value has no effect on scheduling. As a result, when
5716
the number of eligible domains is less than minDomains, scheduler
5717
won't schedule more than maxSkew Pods to those domains. If
5718
value is nil, the constraint behaves as if MinDomains is equal
5719
to 1. Valid values are integers greater than 0. When value
5720
is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For
5721
example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains
5722
is set to 5 and pods with the same labelSelector spread as
5723
2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P |
5724
The number of domains is less than 5(MinDomains), so \"global
5725
minimum\" is treated as 0. In this situation, new pod with
5726
the same labelSelector cannot be scheduled, because computed
5727
skew will be 3(3 - 0) if new Pod is scheduled to any of the
5728
three zones, it will violate MaxSkew. \n This is a beta field
5729
and requires the MinDomainsInPodTopologySpread feature gate
5730
to be enabled (enabled by default)."
5731
format: int32
5732
type: integer
5733
nodeAffinityPolicy:
5734
description: "NodeAffinityPolicy indicates how we will treat
5735
Pod's nodeAffinity/nodeSelector when calculating pod topology
5736
spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector
5737
are included in the calculations. - Ignore: nodeAffinity/nodeSelector
5738
are ignored. All nodes are included in the calculations. \n
5739
If this value is nil, the behavior is equivalent to the Honor
5740
policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread
5741
feature flag."
5742
type: string
5743
nodeTaintsPolicy:
5744
description: "NodeTaintsPolicy indicates how we will treat node
5745
taints when calculating pod topology spread skew. Options
5746
are: - Honor: nodes without taints, along with tainted nodes
5747
for which the incoming pod has a toleration, are included.
5748
- Ignore: node taints are ignored. All nodes are included.
5749
\n If this value is nil, the behavior is equivalent to the
5750
Ignore policy. This is a alpha-level feature enabled by the
5751
NodeInclusionPolicyInPodTopologySpread feature flag."
5752
type: string
5753
topologyKey:
5754
description: TopologyKey is the key of node labels. Nodes that
5755
have a label with this key and identical values are considered
5756
to be in the same topology. We consider each <key, value>
5757
as a "bucket", and try to put balanced number of pods into
5758
each bucket. We define a domain as a particular instance of
5759
a topology. Also, we define an eligible domain as a domain
5760
whose nodes meet the requirements of nodeAffinityPolicy and
5761
nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname",
5762
each Node is a domain of that topology. And, if TopologyKey
5763
is "topology.kubernetes.io/zone", each zone is a domain of
5764
that topology. It's a required field.
5765
type: string
5766
whenUnsatisfiable:
5767
description: 'WhenUnsatisfiable indicates how to deal with a
5768
pod if it doesn''t satisfy the spread constraint. - DoNotSchedule
5769
(default) tells the scheduler not to schedule it. - ScheduleAnyway
5770
tells the scheduler to schedule the pod in any location, but
5771
giving higher precedence to topologies that would help reduce
5772
the skew. A constraint is considered "Unsatisfiable" for an
5773
incoming pod if and only if every possible node assignment
5774
for that pod would violate "MaxSkew" on some topology. For
5775
example, in a 3-zone cluster, MaxSkew is set to 1, and pods
5776
with the same labelSelector spread as 3/1/1: | zone1 | zone2
5777
| zone3 | | P P P | P | P | If WhenUnsatisfiable is
5778
set to DoNotSchedule, incoming pod can only be scheduled to
5779
zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on
5780
zone2(zone3) satisfies MaxSkew(1). In other words, the cluster
5781
can still be imbalanced, but scheduler won''t make it *more*
5782
imbalanced. It''s a required field.'
5783
type: string
5784
required:
5785
- maxSkew
5786
- topologyKey
5787
- whenUnsatisfiable
5788
type: object
5789
type: array
5790
version:
5791
description: Version of Grafana Agent to be deployed.
5792
type: string
5793
volumeMounts:
5794
description: VolumeMounts lets you configure additional VolumeMounts
5795
on the output StatefulSet definition. Specified VolumeMounts are
5796
appended to other VolumeMounts generated as a result of StorageSpec
5797
objects in the Grafana Agent container.
5798
items:
5799
description: VolumeMount describes a mounting of a Volume within
5800
a container.
5801
properties:
5802
mountPath:
5803
description: Path within the container at which the volume should
5804
be mounted. Must not contain ':'.
5805
type: string
5806
mountPropagation:
5807
description: mountPropagation determines how mounts are propagated
5808
from the host to container and the other way around. When
5809
not set, MountPropagationNone is used. This field is beta
5810
in 1.10.
5811
type: string
5812
name:
5813
description: This must match the Name of a Volume.
5814
type: string
5815
readOnly:
5816
description: Mounted read-only if true, read-write otherwise
5817
(false or unspecified). Defaults to false.
5818
type: boolean
5819
subPath:
5820
description: Path within the volume from which the container's
5821
volume should be mounted. Defaults to "" (volume's root).
5822
type: string
5823
subPathExpr:
5824
description: Expanded path within the volume from which the
5825
container's volume should be mounted. Behaves similarly to
5826
SubPath but environment variable references $(VAR_NAME) are
5827
expanded using the container's environment. Defaults to ""
5828
(volume's root). SubPathExpr and SubPath are mutually exclusive.
5829
type: string
5830
required:
5831
- mountPath
5832
- name
5833
type: object
5834
type: array
5835
volumes:
5836
description: Volumes allows configuration of additional volumes on
5837
the output StatefulSet definition. The volumes specified are appended
5838
to other volumes that are generated as a result of StorageSpec objects.
5839
items:
5840
description: Volume represents a named volume in a pod that may
5841
be accessed by any container in the pod.
5842
properties:
5843
awsElasticBlockStore:
5844
description: 'awsElasticBlockStore represents an AWS Disk resource
5845
that is attached to a kubelet''s host machine and then exposed
5846
to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
5847
properties:
5848
fsType:
5849
description: 'fsType is the filesystem type of the volume
5850
that you want to mount. Tip: Ensure that the filesystem
5851
type is supported by the host operating system. Examples:
5852
"ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
5853
if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
5854
TODO: how do we prevent errors in the filesystem from
5855
compromising the machine'
5856
type: string
5857
partition:
5858
description: 'partition is the partition in the volume that
5859
you want to mount. If omitted, the default is to mount
5860
by volume name. Examples: For volume /dev/sda1, you specify
5861
the partition as "1". Similarly, the volume partition
5862
for /dev/sda is "0" (or you can leave the property empty).'
5863
format: int32
5864
type: integer
5865
readOnly:
5866
description: 'readOnly value true will force the readOnly
5867
setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
5868
type: boolean
5869
volumeID:
5870
description: 'volumeID is unique ID of the persistent disk
5871
resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
5872
type: string
5873
required:
5874
- volumeID
5875
type: object
5876
azureDisk:
5877
description: azureDisk represents an Azure Data Disk mount on
5878
the host and bind mount to the pod.
5879
properties:
5880
cachingMode:
5881
description: 'cachingMode is the Host Caching mode: None,
5882
Read Only, Read Write.'
5883
type: string
5884
diskName:
5885
description: diskName is the Name of the data disk in the
5886
blob storage
5887
type: string
5888
diskURI:
5889
description: diskURI is the URI of data disk in the blob
5890
storage
5891
type: string
5892
fsType:
5893
description: fsType is Filesystem type to mount. Must be
5894
a filesystem type supported by the host operating system.
5895
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
5896
if unspecified.
5897
type: string
5898
kind:
5899
description: 'kind expected values are Shared: multiple
5900
blob disks per storage account Dedicated: single blob
5901
disk per storage account Managed: azure managed data
5902
disk (only in managed availability set). defaults to shared'
5903
type: string
5904
readOnly:
5905
description: readOnly Defaults to false (read/write). ReadOnly
5906
here will force the ReadOnly setting in VolumeMounts.
5907
type: boolean
5908
required:
5909
- diskName
5910
- diskURI
5911
type: object
5912
azureFile:
5913
description: azureFile represents an Azure File Service mount
5914
on the host and bind mount to the pod.
5915
properties:
5916
readOnly:
5917
description: readOnly defaults to false (read/write). ReadOnly
5918
here will force the ReadOnly setting in VolumeMounts.
5919
type: boolean
5920
secretName:
5921
description: secretName is the name of secret that contains
5922
Azure Storage Account Name and Key
5923
type: string
5924
shareName:
5925
description: shareName is the azure share Name
5926
type: string
5927
required:
5928
- secretName
5929
- shareName
5930
type: object
5931
cephfs:
5932
description: cephFS represents a Ceph FS mount on the host that
5933
shares a pod's lifetime
5934
properties:
5935
monitors:
5936
description: 'monitors is Required: Monitors is a collection
5937
of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
5938
items:
5939
type: string
5940
type: array
5941
path:
5942
description: 'path is Optional: Used as the mounted root,
5943
rather than the full Ceph tree, default is /'
5944
type: string
5945
readOnly:
5946
description: 'readOnly is Optional: Defaults to false (read/write).
5947
ReadOnly here will force the ReadOnly setting in VolumeMounts.
5948
More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
5949
type: boolean
5950
secretFile:
5951
description: 'secretFile is Optional: SecretFile is the
5952
path to key ring for User, default is /etc/ceph/user.secret
5953
More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
5954
type: string
5955
secretRef:
5956
description: 'secretRef is Optional: SecretRef is reference
5957
to the authentication secret for User, default is empty.
5958
More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
5959
properties:
5960
name:
5961
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
5962
TODO: Add other useful fields. apiVersion, kind, uid?'
5963
type: string
5964
type: object
5965
x-kubernetes-map-type: atomic
5966
user:
5967
description: 'user is optional: User is the rados user name,
5968
default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
5969
type: string
5970
required:
5971
- monitors
5972
type: object
5973
cinder:
5974
description: 'cinder represents a cinder volume attached and
5975
mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
5976
properties:
5977
fsType:
5978
description: 'fsType is the filesystem type to mount. Must
5979
be a filesystem type supported by the host operating system.
5980
Examples: "ext4", "xfs", "ntfs". Implicitly inferred to
5981
be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
5982
type: string
5983
readOnly:
5984
description: 'readOnly defaults to false (read/write). ReadOnly
5985
here will force the ReadOnly setting in VolumeMounts.
5986
More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
5987
type: boolean
5988
secretRef:
5989
description: 'secretRef is optional: points to a secret
5990
object containing parameters used to connect to OpenStack.'
5991
properties:
5992
name:
5993
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
5994
TODO: Add other useful fields. apiVersion, kind, uid?'
5995
type: string
5996
type: object
5997
x-kubernetes-map-type: atomic
5998
volumeID:
5999
description: 'volumeID used to identify the volume in cinder.
6000
More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
6001
type: string
6002
required:
6003
- volumeID
6004
type: object
6005
configMap:
6006
description: configMap represents a configMap that should populate
6007
this volume
6008
properties:
6009
defaultMode:
6010
description: 'defaultMode is optional: mode bits used to
6011
set permissions on created files by default. Must be an
6012
octal value between 0000 and 0777 or a decimal value between
6013
0 and 511. YAML accepts both octal and decimal values,
6014
JSON requires decimal values for mode bits. Defaults to
6015
0644. Directories within the path are not affected by
6016
this setting. This might be in conflict with other options
6017
that affect the file mode, like fsGroup, and the result
6018
can be other mode bits set.'
6019
format: int32
6020
type: integer
6021
items:
6022
description: items if unspecified, each key-value pair in
6023
the Data field of the referenced ConfigMap will be projected
6024
into the volume as a file whose name is the key and content
6025
is the value. If specified, the listed keys will be projected
6026
into the specified paths, and unlisted keys will not be
6027
present. If a key is specified which is not present in
6028
the ConfigMap, the volume setup will error unless it is
6029
marked optional. Paths must be relative and may not contain
6030
the '..' path or start with '..'.
6031
items:
6032
description: Maps a string key to a path within a volume.
6033
properties:
6034
key:
6035
description: key is the key to project.
6036
type: string
6037
mode:
6038
description: 'mode is Optional: mode bits used to
6039
set permissions on this file. Must be an octal value
6040
between 0000 and 0777 or a decimal value between
6041
0 and 511. YAML accepts both octal and decimal values,
6042
JSON requires decimal values for mode bits. If not
6043
specified, the volume defaultMode will be used.
6044
This might be in conflict with other options that
6045
affect the file mode, like fsGroup, and the result
6046
can be other mode bits set.'
6047
format: int32
6048
type: integer
6049
path:
6050
description: path is the relative path of the file
6051
to map the key to. May not be an absolute path.
6052
May not contain the path element '..'. May not start
6053
with the string '..'.
6054
type: string
6055
required:
6056
- key
6057
- path
6058
type: object
6059
type: array
6060
name:
6061
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6062
TODO: Add other useful fields. apiVersion, kind, uid?'
6063
type: string
6064
optional:
6065
description: optional specify whether the ConfigMap or its
6066
keys must be defined
6067
type: boolean
6068
type: object
6069
x-kubernetes-map-type: atomic
6070
csi:
6071
description: csi (Container Storage Interface) represents ephemeral
6072
storage that is handled by certain external CSI drivers (Beta
6073
feature).
6074
properties:
6075
driver:
6076
description: driver is the name of the CSI driver that handles
6077
this volume. Consult with your admin for the correct name
6078
as registered in the cluster.
6079
type: string
6080
fsType:
6081
description: fsType to mount. Ex. "ext4", "xfs", "ntfs".
6082
If not provided, the empty value is passed to the associated
6083
CSI driver which will determine the default filesystem
6084
to apply.
6085
type: string
6086
nodePublishSecretRef:
6087
description: nodePublishSecretRef is a reference to the
6088
secret object containing sensitive information to pass
6089
to the CSI driver to complete the CSI NodePublishVolume
6090
and NodeUnpublishVolume calls. This field is optional,
6091
and may be empty if no secret is required. If the secret
6092
object contains more than one secret, all secret references
6093
are passed.
6094
properties:
6095
name:
6096
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6097
TODO: Add other useful fields. apiVersion, kind, uid?'
6098
type: string
6099
type: object
6100
x-kubernetes-map-type: atomic
6101
readOnly:
6102
description: readOnly specifies a read-only configuration
6103
for the volume. Defaults to false (read/write).
6104
type: boolean
6105
volumeAttributes:
6106
additionalProperties:
6107
type: string
6108
description: volumeAttributes stores driver-specific properties
6109
that are passed to the CSI driver. Consult your driver's
6110
documentation for supported values.
6111
type: object
6112
required:
6113
- driver
6114
type: object
6115
downwardAPI:
6116
description: downwardAPI represents downward API about the pod
6117
that should populate this volume
6118
properties:
6119
defaultMode:
6120
description: 'Optional: mode bits to use on created files
6121
by default. Must be a Optional: mode bits used to set
6122
permissions on created files by default. Must be an octal
6123
value between 0000 and 0777 or a decimal value between
6124
0 and 511. YAML accepts both octal and decimal values,
6125
JSON requires decimal values for mode bits. Defaults to
6126
0644. Directories within the path are not affected by
6127
this setting. This might be in conflict with other options
6128
that affect the file mode, like fsGroup, and the result
6129
can be other mode bits set.'
6130
format: int32
6131
type: integer
6132
items:
6133
description: Items is a list of downward API volume file
6134
items:
6135
description: DownwardAPIVolumeFile represents information
6136
to create the file containing the pod field
6137
properties:
6138
fieldRef:
6139
description: 'Required: Selects a field of the pod:
6140
only annotations, labels, name and namespace are
6141
supported.'
6142
properties:
6143
apiVersion:
6144
description: Version of the schema the FieldPath
6145
is written in terms of, defaults to "v1".
6146
type: string
6147
fieldPath:
6148
description: Path of the field to select in the
6149
specified API version.
6150
type: string
6151
required:
6152
- fieldPath
6153
type: object
6154
x-kubernetes-map-type: atomic
6155
mode:
6156
description: 'Optional: mode bits used to set permissions
6157
on this file, must be an octal value between 0000
6158
and 0777 or a decimal value between 0 and 511. YAML
6159
accepts both octal and decimal values, JSON requires
6160
decimal values for mode bits. If not specified,
6161
the volume defaultMode will be used. This might
6162
be in conflict with other options that affect the
6163
file mode, like fsGroup, and the result can be other
6164
mode bits set.'
6165
format: int32
6166
type: integer
6167
path:
6168
description: 'Required: Path is the relative path
6169
name of the file to be created. Must not be absolute
6170
or contain the ''..'' path. Must be utf-8 encoded.
6171
The first item of the relative path must not start
6172
with ''..'''
6173
type: string
6174
resourceFieldRef:
6175
description: 'Selects a resource of the container:
6176
only resources limits and requests (limits.cpu,
6177
limits.memory, requests.cpu and requests.memory)
6178
are currently supported.'
6179
properties:
6180
containerName:
6181
description: 'Container name: required for volumes,
6182
optional for env vars'
6183
type: string
6184
divisor:
6185
anyOf:
6186
- type: integer
6187
- type: string
6188
description: Specifies the output format of the
6189
exposed resources, defaults to "1"
6190
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
6191
x-kubernetes-int-or-string: true
6192
resource:
6193
description: 'Required: resource to select'
6194
type: string
6195
required:
6196
- resource
6197
type: object
6198
x-kubernetes-map-type: atomic
6199
required:
6200
- path
6201
type: object
6202
type: array
6203
type: object
6204
emptyDir:
6205
description: 'emptyDir represents a temporary directory that
6206
shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
6207
properties:
6208
medium:
6209
description: 'medium represents what type of storage medium
6210
should back this directory. The default is "" which means
6211
to use the node''s default medium. Must be an empty string
6212
(default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
6213
type: string
6214
sizeLimit:
6215
anyOf:
6216
- type: integer
6217
- type: string
6218
description: 'sizeLimit is the total amount of local storage
6219
required for this EmptyDir volume. The size limit is also
6220
applicable for memory medium. The maximum usage on memory
6221
medium EmptyDir would be the minimum value between the
6222
SizeLimit specified here and the sum of memory limits
6223
of all containers in a pod. The default is nil which means
6224
that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir'
6225
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
6226
x-kubernetes-int-or-string: true
6227
type: object
6228
ephemeral:
6229
description: "ephemeral represents a volume that is handled
6230
by a cluster storage driver. The volume's lifecycle is tied
6231
to the pod that defines it - it will be created before the
6232
pod starts, and deleted when the pod is removed. \n Use this
6233
if: a) the volume is only needed while the pod runs, b) features
6234
of normal volumes like restoring from snapshot or capacity
6235
tracking are needed, c) the storage driver is specified through
6236
a storage class, and d) the storage driver supports dynamic
6237
volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource
6238
for more information on the connection between this volume
6239
type and PersistentVolumeClaim). \n Use PersistentVolumeClaim
6240
or one of the vendor-specific APIs for volumes that persist
6241
for longer than the lifecycle of an individual pod. \n Use
6242
CSI for light-weight local ephemeral volumes if the CSI driver
6243
is meant to be used that way - see the documentation of the
6244
driver for more information. \n A pod can use both types of
6245
ephemeral volumes and persistent volumes at the same time."
6246
properties:
6247
volumeClaimTemplate:
6248
description: "Will be used to create a stand-alone PVC to
6249
provision the volume. The pod in which this EphemeralVolumeSource
6250
is embedded will be the owner of the PVC, i.e. the PVC
6251
will be deleted together with the pod. The name of the
6252
PVC will be `<pod name>-<volume name>` where `<volume
6253
name>` is the name from the `PodSpec.Volumes` array entry.
6254
Pod validation will reject the pod if the concatenated
6255
name is not valid for a PVC (for example, too long). \n
6256
An existing PVC with that name that is not owned by the
6257
pod will *not* be used for the pod to avoid using an unrelated
6258
volume by mistake. Starting the pod is then blocked until
6259
the unrelated PVC is removed. If such a pre-created PVC
6260
is meant to be used by the pod, the PVC has to updated
6261
with an owner reference to the pod once the pod exists.
6262
Normally this should not be necessary, but it may be useful
6263
when manually reconstructing a broken cluster. \n This
6264
field is read-only and no changes will be made by Kubernetes
6265
to the PVC after it has been created. \n Required, must
6266
not be nil."
6267
properties:
6268
metadata:
6269
description: May contain labels and annotations that
6270
will be copied into the PVC when creating it. No other
6271
fields are allowed and will be rejected during validation.
6272
type: object
6273
spec:
6274
description: The specification for the PersistentVolumeClaim.
6275
The entire content is copied unchanged into the PVC
6276
that gets created from this template. The same fields
6277
as in a PersistentVolumeClaim are also valid here.
6278
properties:
6279
accessModes:
6280
description: 'accessModes contains the desired access
6281
modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
6282
items:
6283
type: string
6284
type: array
6285
dataSource:
6286
description: 'dataSource field can be used to specify
6287
either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
6288
* An existing PVC (PersistentVolumeClaim) If the
6289
provisioner or an external controller can support
6290
the specified data source, it will create a new
6291
volume based on the contents of the specified
6292
data source. If the AnyVolumeDataSource feature
6293
gate is enabled, this field will always have the
6294
same contents as the DataSourceRef field.'
6295
properties:
6296
apiGroup:
6297
description: APIGroup is the group for the resource
6298
being referenced. If APIGroup is not specified,
6299
the specified Kind must be in the core API
6300
group. For any other third-party types, APIGroup
6301
is required.
6302
type: string
6303
kind:
6304
description: Kind is the type of resource being
6305
referenced
6306
type: string
6307
name:
6308
description: Name is the name of resource being
6309
referenced
6310
type: string
6311
required:
6312
- kind
6313
- name
6314
type: object
6315
x-kubernetes-map-type: atomic
6316
dataSourceRef:
6317
description: 'dataSourceRef specifies the object
6318
from which to populate the volume with data, if
6319
a non-empty volume is desired. This may be any
6320
local object from a non-empty API group (non core
6321
object) or a PersistentVolumeClaim object. When
6322
this field is specified, volume binding will only
6323
succeed if the type of the specified object matches
6324
some installed volume populator or dynamic provisioner.
6325
This field will replace the functionality of the
6326
DataSource field and as such if both fields are
6327
non-empty, they must have the same value. For
6328
backwards compatibility, both fields (DataSource
6329
and DataSourceRef) will be set to the same value
6330
automatically if one of them is empty and the
6331
other is non-empty. There are two important differences
6332
between DataSource and DataSourceRef: * While
6333
DataSource only allows two specific types of objects,
6334
DataSourceRef allows any non-core object, as well
6335
as PersistentVolumeClaim objects. * While DataSource
6336
ignores disallowed values (dropping them), DataSourceRef
6337
preserves all values, and generates an error if
6338
a disallowed value is specified. (Beta) Using
6339
this field requires the AnyVolumeDataSource feature
6340
gate to be enabled.'
6341
properties:
6342
apiGroup:
6343
description: APIGroup is the group for the resource
6344
being referenced. If APIGroup is not specified,
6345
the specified Kind must be in the core API
6346
group. For any other third-party types, APIGroup
6347
is required.
6348
type: string
6349
kind:
6350
description: Kind is the type of resource being
6351
referenced
6352
type: string
6353
name:
6354
description: Name is the name of resource being
6355
referenced
6356
type: string
6357
required:
6358
- kind
6359
- name
6360
type: object
6361
x-kubernetes-map-type: atomic
6362
resources:
6363
description: 'resources represents the minimum resources
6364
the volume should have. If RecoverVolumeExpansionFailure
6365
feature is enabled users are allowed to specify
6366
resource requirements that are lower than previous
6367
value but must still be higher than capacity recorded
6368
in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
6369
properties:
6370
limits:
6371
additionalProperties:
6372
anyOf:
6373
- type: integer
6374
- type: string
6375
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
6376
x-kubernetes-int-or-string: true
6377
description: 'Limits describes the maximum amount
6378
of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
6379
type: object
6380
requests:
6381
additionalProperties:
6382
anyOf:
6383
- type: integer
6384
- type: string
6385
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
6386
x-kubernetes-int-or-string: true
6387
description: 'Requests describes the minimum
6388
amount of compute resources required. If Requests
6389
is omitted for a container, it defaults to
6390
Limits if that is explicitly specified, otherwise
6391
to an implementation-defined value. More info:
6392
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
6393
type: object
6394
type: object
6395
selector:
6396
description: selector is a label query over volumes
6397
to consider for binding.
6398
properties:
6399
matchExpressions:
6400
description: matchExpressions is a list of label
6401
selector requirements. The requirements are
6402
ANDed.
6403
items:
6404
description: A label selector requirement
6405
is a selector that contains values, a key,
6406
and an operator that relates the key and
6407
values.
6408
properties:
6409
key:
6410
description: key is the label key that
6411
the selector applies to.
6412
type: string
6413
operator:
6414
description: operator represents a key's
6415
relationship to a set of values. Valid
6416
operators are In, NotIn, Exists and
6417
DoesNotExist.
6418
type: string
6419
values:
6420
description: values is an array of string
6421
values. If the operator is In or NotIn,
6422
the values array must be non-empty.
6423
If the operator is Exists or DoesNotExist,
6424
the values array must be empty. This
6425
array is replaced during a strategic
6426
merge patch.
6427
items:
6428
type: string
6429
type: array
6430
required:
6431
- key
6432
- operator
6433
type: object
6434
type: array
6435
matchLabels:
6436
additionalProperties:
6437
type: string
6438
description: matchLabels is a map of {key,value}
6439
pairs. A single {key,value} in the matchLabels
6440
map is equivalent to an element of matchExpressions,
6441
whose key field is "key", the operator is
6442
"In", and the values array contains only "value".
6443
The requirements are ANDed.
6444
type: object
6445
type: object
6446
x-kubernetes-map-type: atomic
6447
storageClassName:
6448
description: 'storageClassName is the name of the
6449
StorageClass required by the claim. More info:
6450
https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
6451
type: string
6452
volumeMode:
6453
description: volumeMode defines what type of volume
6454
is required by the claim. Value of Filesystem
6455
is implied when not included in claim spec.
6456
type: string
6457
volumeName:
6458
description: volumeName is the binding reference
6459
to the PersistentVolume backing this claim.
6460
type: string
6461
type: object
6462
required:
6463
- spec
6464
type: object
6465
type: object
6466
fc:
6467
description: fc represents a Fibre Channel resource that is
6468
attached to a kubelet's host machine and then exposed to the
6469
pod.
6470
properties:
6471
fsType:
6472
description: 'fsType is the filesystem type to mount. Must
6473
be a filesystem type supported by the host operating system.
6474
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
6475
if unspecified. TODO: how do we prevent errors in the
6476
filesystem from compromising the machine'
6477
type: string
6478
lun:
6479
description: 'lun is Optional: FC target lun number'
6480
format: int32
6481
type: integer
6482
readOnly:
6483
description: 'readOnly is Optional: Defaults to false (read/write).
6484
ReadOnly here will force the ReadOnly setting in VolumeMounts.'
6485
type: boolean
6486
targetWWNs:
6487
description: 'targetWWNs is Optional: FC target worldwide
6488
names (WWNs)'
6489
items:
6490
type: string
6491
type: array
6492
wwids:
6493
description: 'wwids Optional: FC volume world wide identifiers
6494
(wwids) Either wwids or combination of targetWWNs and
6495
lun must be set, but not both simultaneously.'
6496
items:
6497
type: string
6498
type: array
6499
type: object
6500
flexVolume:
6501
description: flexVolume represents a generic volume resource
6502
that is provisioned/attached using an exec based plugin.
6503
properties:
6504
driver:
6505
description: driver is the name of the driver to use for
6506
this volume.
6507
type: string
6508
fsType:
6509
description: fsType is the filesystem type to mount. Must
6510
be a filesystem type supported by the host operating system.
6511
Ex. "ext4", "xfs", "ntfs". The default filesystem depends
6512
on FlexVolume script.
6513
type: string
6514
options:
6515
additionalProperties:
6516
type: string
6517
description: 'options is Optional: this field holds extra
6518
command options if any.'
6519
type: object
6520
readOnly:
6521
description: 'readOnly is Optional: defaults to false (read/write).
6522
ReadOnly here will force the ReadOnly setting in VolumeMounts.'
6523
type: boolean
6524
secretRef:
6525
description: 'secretRef is Optional: secretRef is reference
6526
to the secret object containing sensitive information
6527
to pass to the plugin scripts. This may be empty if no
6528
secret object is specified. If the secret object contains
6529
more than one secret, all secrets are passed to the plugin
6530
scripts.'
6531
properties:
6532
name:
6533
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6534
TODO: Add other useful fields. apiVersion, kind, uid?'
6535
type: string
6536
type: object
6537
x-kubernetes-map-type: atomic
6538
required:
6539
- driver
6540
type: object
6541
flocker:
6542
description: flocker represents a Flocker volume attached to
6543
a kubelet's host machine. This depends on the Flocker control
6544
service being running
6545
properties:
6546
datasetName:
6547
description: datasetName is Name of the dataset stored as
6548
metadata -> name on the dataset for Flocker should be
6549
considered as deprecated
6550
type: string
6551
datasetUUID:
6552
description: datasetUUID is the UUID of the dataset. This
6553
is unique identifier of a Flocker dataset
6554
type: string
6555
type: object
6556
gcePersistentDisk:
6557
description: 'gcePersistentDisk represents a GCE Disk resource
6558
that is attached to a kubelet''s host machine and then exposed
6559
to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
6560
properties:
6561
fsType:
6562
description: 'fsType is filesystem type of the volume that
6563
you want to mount. Tip: Ensure that the filesystem type
6564
is supported by the host operating system. Examples: "ext4",
6565
"xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
6566
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
6567
TODO: how do we prevent errors in the filesystem from
6568
compromising the machine'
6569
type: string
6570
partition:
6571
description: 'partition is the partition in the volume that
6572
you want to mount. If omitted, the default is to mount
6573
by volume name. Examples: For volume /dev/sda1, you specify
6574
the partition as "1". Similarly, the volume partition
6575
for /dev/sda is "0" (or you can leave the property empty).
6576
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
6577
format: int32
6578
type: integer
6579
pdName:
6580
description: 'pdName is unique name of the PD resource in
6581
GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
6582
type: string
6583
readOnly:
6584
description: 'readOnly here will force the ReadOnly setting
6585
in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
6586
type: boolean
6587
required:
6588
- pdName
6589
type: object
6590
gitRepo:
6591
description: 'gitRepo represents a git repository at a particular
6592
revision. DEPRECATED: GitRepo is deprecated. To provision
6593
a container with a git repo, mount an EmptyDir into an InitContainer
6594
that clones the repo using git, then mount the EmptyDir into
6595
the Pod''s container.'
6596
properties:
6597
directory:
6598
description: directory is the target directory name. Must
6599
not contain or start with '..'. If '.' is supplied, the
6600
volume directory will be the git repository. Otherwise,
6601
if specified, the volume will contain the git repository
6602
in the subdirectory with the given name.
6603
type: string
6604
repository:
6605
description: repository is the URL
6606
type: string
6607
revision:
6608
description: revision is the commit hash for the specified
6609
revision.
6610
type: string
6611
required:
6612
- repository
6613
type: object
6614
glusterfs:
6615
description: 'glusterfs represents a Glusterfs mount on the
6616
host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
6617
properties:
6618
endpoints:
6619
description: 'endpoints is the endpoint name that details
6620
Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
6621
type: string
6622
path:
6623
description: 'path is the Glusterfs volume path. More info:
6624
https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
6625
type: string
6626
readOnly:
6627
description: 'readOnly here will force the Glusterfs volume
6628
to be mounted with read-only permissions. Defaults to
6629
false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
6630
type: boolean
6631
required:
6632
- endpoints
6633
- path
6634
type: object
6635
hostPath:
6636
description: 'hostPath represents a pre-existing file or directory
6637
on the host machine that is directly exposed to the container.
6638
This is generally used for system agents or other privileged
6639
things that are allowed to see the host machine. Most containers
6640
will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
6641
--- TODO(jonesdl) We need to restrict who can use host directory
6642
mounts and who can/can not mount host directories as read/write.'
6643
properties:
6644
path:
6645
description: 'path of the directory on the host. If the
6646
path is a symlink, it will follow the link to the real
6647
path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
6648
type: string
6649
type:
6650
description: 'type for HostPath Volume Defaults to "" More
6651
info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
6652
type: string
6653
required:
6654
- path
6655
type: object
6656
iscsi:
6657
description: 'iscsi represents an ISCSI Disk resource that is
6658
attached to a kubelet''s host machine and then exposed to
6659
the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
6660
properties:
6661
chapAuthDiscovery:
6662
description: chapAuthDiscovery defines whether support iSCSI
6663
Discovery CHAP authentication
6664
type: boolean
6665
chapAuthSession:
6666
description: chapAuthSession defines whether support iSCSI
6667
Session CHAP authentication
6668
type: boolean
6669
fsType:
6670
description: 'fsType is the filesystem type of the volume
6671
that you want to mount. Tip: Ensure that the filesystem
6672
type is supported by the host operating system. Examples:
6673
"ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
6674
if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
6675
TODO: how do we prevent errors in the filesystem from
6676
compromising the machine'
6677
type: string
6678
initiatorName:
6679
description: initiatorName is the custom iSCSI Initiator
6680
Name. If initiatorName is specified with iscsiInterface
6681
simultaneously, new iSCSI interface <target portal>:<volume
6682
name> will be created for the connection.
6683
type: string
6684
iqn:
6685
description: iqn is the target iSCSI Qualified Name.
6686
type: string
6687
iscsiInterface:
6688
description: iscsiInterface is the interface Name that uses
6689
an iSCSI transport. Defaults to 'default' (tcp).
6690
type: string
6691
lun:
6692
description: lun represents iSCSI Target Lun number.
6693
format: int32
6694
type: integer
6695
portals:
6696
description: portals is the iSCSI Target Portal List. The
6697
portal is either an IP or ip_addr:port if the port is
6698
other than default (typically TCP ports 860 and 3260).
6699
items:
6700
type: string
6701
type: array
6702
readOnly:
6703
description: readOnly here will force the ReadOnly setting
6704
in VolumeMounts. Defaults to false.
6705
type: boolean
6706
secretRef:
6707
description: secretRef is the CHAP Secret for iSCSI target
6708
and initiator authentication
6709
properties:
6710
name:
6711
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6712
TODO: Add other useful fields. apiVersion, kind, uid?'
6713
type: string
6714
type: object
6715
x-kubernetes-map-type: atomic
6716
targetPortal:
6717
description: targetPortal is iSCSI Target Portal. The Portal
6718
is either an IP or ip_addr:port if the port is other than
6719
default (typically TCP ports 860 and 3260).
6720
type: string
6721
required:
6722
- iqn
6723
- lun
6724
- targetPortal
6725
type: object
6726
name:
6727
description: 'name of the volume. Must be a DNS_LABEL and unique
6728
within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
6729
type: string
6730
nfs:
6731
description: 'nfs represents an NFS mount on the host that shares
6732
a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
6733
properties:
6734
path:
6735
description: 'path that is exported by the NFS server. More
6736
info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
6737
type: string
6738
readOnly:
6739
description: 'readOnly here will force the NFS export to
6740
be mounted with read-only permissions. Defaults to false.
6741
More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
6742
type: boolean
6743
server:
6744
description: 'server is the hostname or IP address of the
6745
NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
6746
type: string
6747
required:
6748
- path
6749
- server
6750
type: object
6751
persistentVolumeClaim:
6752
description: 'persistentVolumeClaimVolumeSource represents a
6753
reference to a PersistentVolumeClaim in the same namespace.
6754
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
6755
properties:
6756
claimName:
6757
description: 'claimName is the name of a PersistentVolumeClaim
6758
in the same namespace as the pod using this volume. More
6759
info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
6760
type: string
6761
readOnly:
6762
description: readOnly Will force the ReadOnly setting in
6763
VolumeMounts. Default false.
6764
type: boolean
6765
required:
6766
- claimName
6767
type: object
6768
photonPersistentDisk:
6769
description: photonPersistentDisk represents a PhotonController
6770
persistent disk attached and mounted on kubelets host machine
6771
properties:
6772
fsType:
6773
description: fsType is the filesystem type to mount. Must
6774
be a filesystem type supported by the host operating system.
6775
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
6776
if unspecified.
6777
type: string
6778
pdID:
6779
description: pdID is the ID that identifies Photon Controller
6780
persistent disk
6781
type: string
6782
required:
6783
- pdID
6784
type: object
6785
portworxVolume:
6786
description: portworxVolume represents a portworx volume attached
6787
and mounted on kubelets host machine
6788
properties:
6789
fsType:
6790
description: fSType represents the filesystem type to mount
6791
Must be a filesystem type supported by the host operating
6792
system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4"
6793
if unspecified.
6794
type: string
6795
readOnly:
6796
description: readOnly defaults to false (read/write). ReadOnly
6797
here will force the ReadOnly setting in VolumeMounts.
6798
type: boolean
6799
volumeID:
6800
description: volumeID uniquely identifies a Portworx volume
6801
type: string
6802
required:
6803
- volumeID
6804
type: object
6805
projected:
6806
description: projected items for all in one resources secrets,
6807
configmaps, and downward API
6808
properties:
6809
defaultMode:
6810
description: defaultMode are the mode bits used to set permissions
6811
on created files by default. Must be an octal value between
6812
0000 and 0777 or a decimal value between 0 and 511. YAML
6813
accepts both octal and decimal values, JSON requires decimal
6814
values for mode bits. Directories within the path are
6815
not affected by this setting. This might be in conflict
6816
with other options that affect the file mode, like fsGroup,
6817
and the result can be other mode bits set.
6818
format: int32
6819
type: integer
6820
sources:
6821
description: sources is the list of volume projections
6822
items:
6823
description: Projection that may be projected along with
6824
other supported volume types
6825
properties:
6826
configMap:
6827
description: configMap information about the configMap
6828
data to project
6829
properties:
6830
items:
6831
description: items if unspecified, each key-value
6832
pair in the Data field of the referenced ConfigMap
6833
will be projected into the volume as a file
6834
whose name is the key and content is the value.
6835
If specified, the listed keys will be projected
6836
into the specified paths, and unlisted keys
6837
will not be present. If a key is specified which
6838
is not present in the ConfigMap, the volume
6839
setup will error unless it is marked optional.
6840
Paths must be relative and may not contain the
6841
'..' path or start with '..'.
6842
items:
6843
description: Maps a string key to a path within
6844
a volume.
6845
properties:
6846
key:
6847
description: key is the key to project.
6848
type: string
6849
mode:
6850
description: 'mode is Optional: mode bits
6851
used to set permissions on this file.
6852
Must be an octal value between 0000 and
6853
0777 or a decimal value between 0 and
6854
511. YAML accepts both octal and decimal
6855
values, JSON requires decimal values for
6856
mode bits. If not specified, the volume
6857
defaultMode will be used. This might be
6858
in conflict with other options that affect
6859
the file mode, like fsGroup, and the result
6860
can be other mode bits set.'
6861
format: int32
6862
type: integer
6863
path:
6864
description: path is the relative path of
6865
the file to map the key to. May not be
6866
an absolute path. May not contain the
6867
path element '..'. May not start with
6868
the string '..'.
6869
type: string
6870
required:
6871
- key
6872
- path
6873
type: object
6874
type: array
6875
name:
6876
description: 'Name of the referent. More info:
6877
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6878
TODO: Add other useful fields. apiVersion, kind,
6879
uid?'
6880
type: string
6881
optional:
6882
description: optional specify whether the ConfigMap
6883
or its keys must be defined
6884
type: boolean
6885
type: object
6886
x-kubernetes-map-type: atomic
6887
downwardAPI:
6888
description: downwardAPI information about the downwardAPI
6889
data to project
6890
properties:
6891
items:
6892
description: Items is a list of DownwardAPIVolume
6893
file
6894
items:
6895
description: DownwardAPIVolumeFile represents
6896
information to create the file containing
6897
the pod field
6898
properties:
6899
fieldRef:
6900
description: 'Required: Selects a field
6901
of the pod: only annotations, labels,
6902
name and namespace are supported.'
6903
properties:
6904
apiVersion:
6905
description: Version of the schema the
6906
FieldPath is written in terms of,
6907
defaults to "v1".
6908
type: string
6909
fieldPath:
6910
description: Path of the field to select
6911
in the specified API version.
6912
type: string
6913
required:
6914
- fieldPath
6915
type: object
6916
x-kubernetes-map-type: atomic
6917
mode:
6918
description: 'Optional: mode bits used to
6919
set permissions on this file, must be
6920
an octal value between 0000 and 0777 or
6921
a decimal value between 0 and 511. YAML
6922
accepts both octal and decimal values,
6923
JSON requires decimal values for mode
6924
bits. If not specified, the volume defaultMode
6925
will be used. This might be in conflict
6926
with other options that affect the file
6927
mode, like fsGroup, and the result can
6928
be other mode bits set.'
6929
format: int32
6930
type: integer
6931
path:
6932
description: 'Required: Path is the relative
6933
path name of the file to be created. Must
6934
not be absolute or contain the ''..''
6935
path. Must be utf-8 encoded. The first
6936
item of the relative path must not start
6937
with ''..'''
6938
type: string
6939
resourceFieldRef:
6940
description: 'Selects a resource of the
6941
container: only resources limits and requests
6942
(limits.cpu, limits.memory, requests.cpu
6943
and requests.memory) are currently supported.'
6944
properties:
6945
containerName:
6946
description: 'Container name: required
6947
for volumes, optional for env vars'
6948
type: string
6949
divisor:
6950
anyOf:
6951
- type: integer
6952
- type: string
6953
description: Specifies the output format
6954
of the exposed resources, defaults
6955
to "1"
6956
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
6957
x-kubernetes-int-or-string: true
6958
resource:
6959
description: 'Required: resource to
6960
select'
6961
type: string
6962
required:
6963
- resource
6964
type: object
6965
x-kubernetes-map-type: atomic
6966
required:
6967
- path
6968
type: object
6969
type: array
6970
type: object
6971
secret:
6972
description: secret information about the secret data
6973
to project
6974
properties:
6975
items:
6976
description: items if unspecified, each key-value
6977
pair in the Data field of the referenced Secret
6978
will be projected into the volume as a file
6979
whose name is the key and content is the value.
6980
If specified, the listed keys will be projected
6981
into the specified paths, and unlisted keys
6982
will not be present. If a key is specified which
6983
is not present in the Secret, the volume setup
6984
will error unless it is marked optional. Paths
6985
must be relative and may not contain the '..'
6986
path or start with '..'.
6987
items:
6988
description: Maps a string key to a path within
6989
a volume.
6990
properties:
6991
key:
6992
description: key is the key to project.
6993
type: string
6994
mode:
6995
description: 'mode is Optional: mode bits
6996
used to set permissions on this file.
6997
Must be an octal value between 0000 and
6998
0777 or a decimal value between 0 and
6999
511. YAML accepts both octal and decimal
7000
values, JSON requires decimal values for
7001
mode bits. If not specified, the volume
7002
defaultMode will be used. This might be
7003
in conflict with other options that affect
7004
the file mode, like fsGroup, and the result
7005
can be other mode bits set.'
7006
format: int32
7007
type: integer
7008
path:
7009
description: path is the relative path of
7010
the file to map the key to. May not be
7011
an absolute path. May not contain the
7012
path element '..'. May not start with
7013
the string '..'.
7014
type: string
7015
required:
7016
- key
7017
- path
7018
type: object
7019
type: array
7020
name:
7021
description: 'Name of the referent. More info:
7022
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7023
TODO: Add other useful fields. apiVersion, kind,
7024
uid?'
7025
type: string
7026
optional:
7027
description: optional field specify whether the
7028
Secret or its key must be defined
7029
type: boolean
7030
type: object
7031
x-kubernetes-map-type: atomic
7032
serviceAccountToken:
7033
description: serviceAccountToken is information about
7034
the serviceAccountToken data to project
7035
properties:
7036
audience:
7037
description: audience is the intended audience
7038
of the token. A recipient of a token must identify
7039
itself with an identifier specified in the audience
7040
of the token, and otherwise should reject the
7041
token. The audience defaults to the identifier
7042
of the apiserver.
7043
type: string
7044
expirationSeconds:
7045
description: expirationSeconds is the requested
7046
duration of validity of the service account
7047
token. As the token approaches expiration, the
7048
kubelet volume plugin will proactively rotate
7049
the service account token. The kubelet will
7050
start trying to rotate the token if the token
7051
is older than 80 percent of its time to live
7052
or if the token is older than 24 hours.Defaults
7053
to 1 hour and must be at least 10 minutes.
7054
format: int64
7055
type: integer
7056
path:
7057
description: path is the path relative to the
7058
mount point of the file to project the token
7059
into.
7060
type: string
7061
required:
7062
- path
7063
type: object
7064
type: object
7065
type: array
7066
type: object
7067
quobyte:
7068
description: quobyte represents a Quobyte mount on the host
7069
that shares a pod's lifetime
7070
properties:
7071
group:
7072
description: group to map volume access to Default is no
7073
group
7074
type: string
7075
readOnly:
7076
description: readOnly here will force the Quobyte volume
7077
to be mounted with read-only permissions. Defaults to
7078
false.
7079
type: boolean
7080
registry:
7081
description: registry represents a single or multiple Quobyte
7082
Registry services specified as a string as host:port pair
7083
(multiple entries are separated with commas) which acts
7084
as the central registry for volumes
7085
type: string
7086
tenant:
7087
description: tenant owning the given Quobyte volume in the
7088
Backend Used with dynamically provisioned Quobyte volumes,
7089
value is set by the plugin
7090
type: string
7091
user:
7092
description: user to map volume access to Defaults to serivceaccount
7093
user
7094
type: string
7095
volume:
7096
description: volume is a string that references an already
7097
created Quobyte volume by name.
7098
type: string
7099
required:
7100
- registry
7101
- volume
7102
type: object
7103
rbd:
7104
description: 'rbd represents a Rados Block Device mount on the
7105
host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
7106
properties:
7107
fsType:
7108
description: 'fsType is the filesystem type of the volume
7109
that you want to mount. Tip: Ensure that the filesystem
7110
type is supported by the host operating system. Examples:
7111
"ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
7112
if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
7113
TODO: how do we prevent errors in the filesystem from
7114
compromising the machine'
7115
type: string
7116
image:
7117
description: 'image is the rados image name. More info:
7118
https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7119
type: string
7120
keyring:
7121
description: 'keyring is the path to key ring for RBDUser.
7122
Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7123
type: string
7124
monitors:
7125
description: 'monitors is a collection of Ceph monitors.
7126
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7127
items:
7128
type: string
7129
type: array
7130
pool:
7131
description: 'pool is the rados pool name. Default is rbd.
7132
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7133
type: string
7134
readOnly:
7135
description: 'readOnly here will force the ReadOnly setting
7136
in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7137
type: boolean
7138
secretRef:
7139
description: 'secretRef is name of the authentication secret
7140
for RBDUser. If provided overrides keyring. Default is
7141
nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7142
properties:
7143
name:
7144
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7145
TODO: Add other useful fields. apiVersion, kind, uid?'
7146
type: string
7147
type: object
7148
x-kubernetes-map-type: atomic
7149
user:
7150
description: 'user is the rados user name. Default is admin.
7151
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7152
type: string
7153
required:
7154
- image
7155
- monitors
7156
type: object
7157
scaleIO:
7158
description: scaleIO represents a ScaleIO persistent volume
7159
attached and mounted on Kubernetes nodes.
7160
properties:
7161
fsType:
7162
description: fsType is the filesystem type to mount. Must
7163
be a filesystem type supported by the host operating system.
7164
Ex. "ext4", "xfs", "ntfs". Default is "xfs".
7165
type: string
7166
gateway:
7167
description: gateway is the host address of the ScaleIO
7168
API Gateway.
7169
type: string
7170
protectionDomain:
7171
description: protectionDomain is the name of the ScaleIO
7172
Protection Domain for the configured storage.
7173
type: string
7174
readOnly:
7175
description: readOnly Defaults to false (read/write). ReadOnly
7176
here will force the ReadOnly setting in VolumeMounts.
7177
type: boolean
7178
secretRef:
7179
description: secretRef references to the secret for ScaleIO
7180
user and other sensitive information. If this is not provided,
7181
Login operation will fail.
7182
properties:
7183
name:
7184
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7185
TODO: Add other useful fields. apiVersion, kind, uid?'
7186
type: string
7187
type: object
7188
x-kubernetes-map-type: atomic
7189
sslEnabled:
7190
description: sslEnabled Flag enable/disable SSL communication
7191
with Gateway, default false
7192
type: boolean
7193
storageMode:
7194
description: storageMode indicates whether the storage for
7195
a volume should be ThickProvisioned or ThinProvisioned.
7196
Default is ThinProvisioned.
7197
type: string
7198
storagePool:
7199
description: storagePool is the ScaleIO Storage Pool associated
7200
with the protection domain.
7201
type: string
7202
system:
7203
description: system is the name of the storage system as
7204
configured in ScaleIO.
7205
type: string
7206
volumeName:
7207
description: volumeName is the name of a volume already
7208
created in the ScaleIO system that is associated with
7209
this volume source.
7210
type: string
7211
required:
7212
- gateway
7213
- secretRef
7214
- system
7215
type: object
7216
secret:
7217
description: 'secret represents a secret that should populate
7218
this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
7219
properties:
7220
defaultMode:
7221
description: 'defaultMode is Optional: mode bits used to
7222
set permissions on created files by default. Must be an
7223
octal value between 0000 and 0777 or a decimal value between
7224
0 and 511. YAML accepts both octal and decimal values,
7225
JSON requires decimal values for mode bits. Defaults to
7226
0644. Directories within the path are not affected by
7227
this setting. This might be in conflict with other options
7228
that affect the file mode, like fsGroup, and the result
7229
can be other mode bits set.'
7230
format: int32
7231
type: integer
7232
items:
7233
description: items If unspecified, each key-value pair in
7234
the Data field of the referenced Secret will be projected
7235
into the volume as a file whose name is the key and content
7236
is the value. If specified, the listed keys will be projected
7237
into the specified paths, and unlisted keys will not be
7238
present. If a key is specified which is not present in
7239
the Secret, the volume setup will error unless it is marked
7240
optional. Paths must be relative and may not contain the
7241
'..' path or start with '..'.
7242
items:
7243
description: Maps a string key to a path within a volume.
7244
properties:
7245
key:
7246
description: key is the key to project.
7247
type: string
7248
mode:
7249
description: 'mode is Optional: mode bits used to
7250
set permissions on this file. Must be an octal value
7251
between 0000 and 0777 or a decimal value between
7252
0 and 511. YAML accepts both octal and decimal values,
7253
JSON requires decimal values for mode bits. If not
7254
specified, the volume defaultMode will be used.
7255
This might be in conflict with other options that
7256
affect the file mode, like fsGroup, and the result
7257
can be other mode bits set.'
7258
format: int32
7259
type: integer
7260
path:
7261
description: path is the relative path of the file
7262
to map the key to. May not be an absolute path.
7263
May not contain the path element '..'. May not start
7264
with the string '..'.
7265
type: string
7266
required:
7267
- key
7268
- path
7269
type: object
7270
type: array
7271
optional:
7272
description: optional field specify whether the Secret or
7273
its keys must be defined
7274
type: boolean
7275
secretName:
7276
description: 'secretName is the name of the secret in the
7277
pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
7278
type: string
7279
type: object
7280
storageos:
7281
description: storageOS represents a StorageOS volume attached
7282
and mounted on Kubernetes nodes.
7283
properties:
7284
fsType:
7285
description: fsType is the filesystem type to mount. Must
7286
be a filesystem type supported by the host operating system.
7287
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
7288
if unspecified.
7289
type: string
7290
readOnly:
7291
description: readOnly defaults to false (read/write). ReadOnly
7292
here will force the ReadOnly setting in VolumeMounts.
7293
type: boolean
7294
secretRef:
7295
description: secretRef specifies the secret to use for obtaining
7296
the StorageOS API credentials. If not specified, default
7297
values will be attempted.
7298
properties:
7299
name:
7300
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7301
TODO: Add other useful fields. apiVersion, kind, uid?'
7302
type: string
7303
type: object
7304
x-kubernetes-map-type: atomic
7305
volumeName:
7306
description: volumeName is the human-readable name of the
7307
StorageOS volume. Volume names are only unique within
7308
a namespace.
7309
type: string
7310
volumeNamespace:
7311
description: volumeNamespace specifies the scope of the
7312
volume within StorageOS. If no namespace is specified
7313
then the Pod's namespace will be used. This allows the
7314
Kubernetes name scoping to be mirrored within StorageOS
7315
for tighter integration. Set VolumeName to any name to
7316
override the default behaviour. Set to "default" if you
7317
are not using namespaces within StorageOS. Namespaces
7318
that do not pre-exist within StorageOS will be created.
7319
type: string
7320
type: object
7321
vsphereVolume:
7322
description: vsphereVolume represents a vSphere volume attached
7323
and mounted on kubelets host machine
7324
properties:
7325
fsType:
7326
description: fsType is filesystem type to mount. Must be
7327
a filesystem type supported by the host operating system.
7328
Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4"
7329
if unspecified.
7330
type: string
7331
storagePolicyID:
7332
description: storagePolicyID is the storage Policy Based
7333
Management (SPBM) profile ID associated with the StoragePolicyName.
7334
type: string
7335
storagePolicyName:
7336
description: storagePolicyName is the storage Policy Based
7337
Management (SPBM) profile name.
7338
type: string
7339
volumePath:
7340
description: volumePath is the path that identifies vSphere
7341
volume vmdk
7342
type: string
7343
required:
7344
- volumePath
7345
type: object
7346
required:
7347
- name
7348
type: object
7349
type: array
7350
type: object
7351
type: object
7352
served: true
7353
storage: true
7354
7355