pulumi-kubernetes-coredns 0.1.0a1736271445__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,687 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+ import pulumi_kubernetes
19
+
20
+ __all__ = ['CoreDNSArgs', 'CoreDNS']
21
+
22
+ @pulumi.input_type
23
+ class CoreDNSArgs:
24
+ def __init__(__self__, *,
25
+ affinity: Optional[pulumi.Input['pulumi_kubernetes.core.v1.AffinityArgs']] = None,
26
+ autoscaler: Optional[pulumi.Input['CoreDNSAutoscalerArgs']] = None,
27
+ autoscaling: Optional[pulumi.Input['pulumi_kubernetes.autoscaling.v2beta2.HorizontalPodAutoscalerSpecArgs']] = None,
28
+ deployment: Optional[pulumi.Input['CoreDNSDeploymentArgs']] = None,
29
+ extra_secrets: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] = None,
30
+ extra_volume_mounts: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] = None,
31
+ extra_volumes: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeArgs']]]] = None,
32
+ helm_options: Optional[pulumi.Input['ReleaseArgs']] = None,
33
+ hpa: Optional[pulumi.Input['CoreDNSHPAArgs']] = None,
34
+ image: Optional[pulumi.Input['CoreDNSImageArgs']] = None,
35
+ is_cluster_service: Optional[pulumi.Input[bool]] = None,
36
+ liveness_probe: Optional[pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs']] = None,
37
+ node_selector: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
38
+ pod_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
39
+ pod_disruption_budget: Optional[pulumi.Input['pulumi_kubernetes.policy.v1.PodDisruptionBudgetSpecArgs']] = None,
40
+ pre_stop_sleep: Optional[pulumi.Input[int]] = None,
41
+ priority_class_name: Optional[pulumi.Input[str]] = None,
42
+ prometheus: Optional[pulumi.Input['CoreDNSPrometheusArgs']] = None,
43
+ rbac: Optional[pulumi.Input['CoreDNSRBACArgs']] = None,
44
+ readiness_probe: Optional[pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs']] = None,
45
+ replica_count: Optional[pulumi.Input[int]] = None,
46
+ resources: Optional[pulumi.Input['pulumi_kubernetes.core.v1.ResourceRequirementsArgs']] = None,
47
+ rolling_update: Optional[pulumi.Input['pulumi_kubernetes.apps.v1.RollingUpdateDeploymentArgs']] = None,
48
+ servers: Optional[pulumi.Input[Sequence[pulumi.Input['CoreDNSServerArgs']]]] = None,
49
+ service: Optional[pulumi.Input['CoreDNSServiceArgs']] = None,
50
+ service_account: Optional[pulumi.Input['CoreDNSServiceAccountArgs']] = None,
51
+ service_type: Optional[pulumi.Input[str]] = None,
52
+ termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
53
+ tolerations: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.TolerationArgs']]]] = None,
54
+ zone_files: Optional[pulumi.Input[Sequence[pulumi.Input['CoreDNSZoneFileArgs']]]] = None):
55
+ """
56
+ The set of arguments for constructing a CoreDNS resource.
57
+ :param pulumi.Input['pulumi_kubernetes.core.v1.AffinityArgs'] affinity: Affinity settings for pod assignment.
58
+ :param pulumi.Input['CoreDNSAutoscalerArgs'] autoscaler: Configue a cluster-proportional-autoscaler for coredns. See https://github.com/kubernetes-incubator/cluster-proportional-autoscaler.
59
+ :param pulumi.Input['pulumi_kubernetes.autoscaling.v2beta2.HorizontalPodAutoscalerSpecArgs'] autoscaling: Create HorizontalPodAutoscaler object.
60
+ :param pulumi.Input['CoreDNSDeploymentArgs'] deployment: Configure the CoreDNS Deployment.
61
+ :param pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]] extra_secrets: Optional array of secrets to mount inside coredns container. Possible usecase: need for secure connection with etcd backend. Optional array of mount points for extraVolumes.
62
+ :param pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]] extra_volume_mounts: Optional array of mount points for extraVolumes.
63
+ :param pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeArgs']]] extra_volumes: Optional array of extra volumes to create.
64
+ :param pulumi.Input['ReleaseArgs'] helm_options: HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args.
65
+ :param pulumi.Input['CoreDNSHPAArgs'] hpa: Alternative configuration for HPA deployment if wanted.
66
+ :param pulumi.Input['CoreDNSImageArgs'] image: The image to pull.
67
+ :param pulumi.Input[bool] is_cluster_service: Specifies whether chart should be deployed as cluster-service or normal k8s app.
68
+ :param pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs'] liveness_probe: Configure the liveness probe. To use the livenessProbe, the health plugin needs to be enabled in CoreDNS' server config.
69
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_selector: Node labels for pod assignment.
70
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pod_annotations: Optional Pod only Annotations.
71
+ :param pulumi.Input['pulumi_kubernetes.policy.v1.PodDisruptionBudgetSpecArgs'] pod_disruption_budget: Optional PodDisruptionBudget.
72
+ :param pulumi.Input[int] pre_stop_sleep: Under heavy load it takes more that standard time to remove Pod endpoint from a cluster. This will delay termination of our pod by `preStopSleep`. To make sure kube-proxy has enough time to catch up.
73
+ :param pulumi.Input[str] priority_class_name: Optional priority class to be used for the coredns pods. Used for autoscaler if autoscaler.priorityClassName not set.
74
+ :param pulumi.Input['CoreDNSPrometheusArgs'] prometheus: Configure Prometheus installation.
75
+ :param pulumi.Input['CoreDNSRBACArgs'] rbac: Configure CoreDNS RBAC resources.
76
+ :param pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs'] readiness_probe: Configure the readiness probe. To use the readinessProbe, the health plugin needs to be enabled in CoreDNS' server config.
77
+ :param pulumi.Input[int] replica_count: Number of replicas.
78
+ :param pulumi.Input['pulumi_kubernetes.core.v1.ResourceRequirementsArgs'] resources: Container resource limits.
79
+ :param pulumi.Input[Sequence[pulumi.Input['CoreDNSServerArgs']]] servers: Configuration for CoreDNS and plugins. Default zone is what Kubernetes recommends: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns-configmap-options
80
+ :param pulumi.Input['CoreDNSServiceArgs'] service: Configure CoreDNS Service parameters.
81
+ :param pulumi.Input['CoreDNSServiceAccountArgs'] service_account: Configure CoreDNS Service Account.
82
+ :param pulumi.Input[str] service_type: Kubernetes Service type.
83
+ :param pulumi.Input[int] termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully.
84
+ :param pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.TolerationArgs']]] tolerations: Tolerations for pod assignment.
85
+ :param pulumi.Input[Sequence[pulumi.Input['CoreDNSZoneFileArgs']]] zone_files: Configure custom Zone files.
86
+ """
87
+ if affinity is not None:
88
+ pulumi.set(__self__, "affinity", affinity)
89
+ if autoscaler is not None:
90
+ pulumi.set(__self__, "autoscaler", autoscaler)
91
+ if autoscaling is not None:
92
+ pulumi.set(__self__, "autoscaling", autoscaling)
93
+ if deployment is not None:
94
+ pulumi.set(__self__, "deployment", deployment)
95
+ if extra_secrets is not None:
96
+ pulumi.set(__self__, "extra_secrets", extra_secrets)
97
+ if extra_volume_mounts is not None:
98
+ pulumi.set(__self__, "extra_volume_mounts", extra_volume_mounts)
99
+ if extra_volumes is not None:
100
+ pulumi.set(__self__, "extra_volumes", extra_volumes)
101
+ if helm_options is not None:
102
+ pulumi.set(__self__, "helm_options", helm_options)
103
+ if hpa is not None:
104
+ pulumi.set(__self__, "hpa", hpa)
105
+ if image is not None:
106
+ pulumi.set(__self__, "image", image)
107
+ if is_cluster_service is not None:
108
+ pulumi.set(__self__, "is_cluster_service", is_cluster_service)
109
+ if liveness_probe is not None:
110
+ pulumi.set(__self__, "liveness_probe", liveness_probe)
111
+ if node_selector is not None:
112
+ pulumi.set(__self__, "node_selector", node_selector)
113
+ if pod_annotations is not None:
114
+ pulumi.set(__self__, "pod_annotations", pod_annotations)
115
+ if pod_disruption_budget is not None:
116
+ pulumi.set(__self__, "pod_disruption_budget", pod_disruption_budget)
117
+ if pre_stop_sleep is not None:
118
+ pulumi.set(__self__, "pre_stop_sleep", pre_stop_sleep)
119
+ if priority_class_name is not None:
120
+ pulumi.set(__self__, "priority_class_name", priority_class_name)
121
+ if prometheus is not None:
122
+ pulumi.set(__self__, "prometheus", prometheus)
123
+ if rbac is not None:
124
+ pulumi.set(__self__, "rbac", rbac)
125
+ if readiness_probe is not None:
126
+ pulumi.set(__self__, "readiness_probe", readiness_probe)
127
+ if replica_count is not None:
128
+ pulumi.set(__self__, "replica_count", replica_count)
129
+ if resources is not None:
130
+ pulumi.set(__self__, "resources", resources)
131
+ if rolling_update is not None:
132
+ pulumi.set(__self__, "rolling_update", rolling_update)
133
+ if servers is not None:
134
+ pulumi.set(__self__, "servers", servers)
135
+ if service is not None:
136
+ pulumi.set(__self__, "service", service)
137
+ if service_account is not None:
138
+ pulumi.set(__self__, "service_account", service_account)
139
+ if service_type is not None:
140
+ pulumi.set(__self__, "service_type", service_type)
141
+ if termination_grace_period_seconds is not None:
142
+ pulumi.set(__self__, "termination_grace_period_seconds", termination_grace_period_seconds)
143
+ if tolerations is not None:
144
+ pulumi.set(__self__, "tolerations", tolerations)
145
+ if zone_files is not None:
146
+ pulumi.set(__self__, "zone_files", zone_files)
147
+
148
+ @property
149
+ @pulumi.getter
150
+ def affinity(self) -> Optional[pulumi.Input['pulumi_kubernetes.core.v1.AffinityArgs']]:
151
+ """
152
+ Affinity settings for pod assignment.
153
+ """
154
+ return pulumi.get(self, "affinity")
155
+
156
+ @affinity.setter
157
+ def affinity(self, value: Optional[pulumi.Input['pulumi_kubernetes.core.v1.AffinityArgs']]):
158
+ pulumi.set(self, "affinity", value)
159
+
160
+ @property
161
+ @pulumi.getter
162
+ def autoscaler(self) -> Optional[pulumi.Input['CoreDNSAutoscalerArgs']]:
163
+ """
164
+ Configue a cluster-proportional-autoscaler for coredns. See https://github.com/kubernetes-incubator/cluster-proportional-autoscaler.
165
+ """
166
+ return pulumi.get(self, "autoscaler")
167
+
168
+ @autoscaler.setter
169
+ def autoscaler(self, value: Optional[pulumi.Input['CoreDNSAutoscalerArgs']]):
170
+ pulumi.set(self, "autoscaler", value)
171
+
172
+ @property
173
+ @pulumi.getter
174
+ def autoscaling(self) -> Optional[pulumi.Input['pulumi_kubernetes.autoscaling.v2beta2.HorizontalPodAutoscalerSpecArgs']]:
175
+ """
176
+ Create HorizontalPodAutoscaler object.
177
+ """
178
+ return pulumi.get(self, "autoscaling")
179
+
180
+ @autoscaling.setter
181
+ def autoscaling(self, value: Optional[pulumi.Input['pulumi_kubernetes.autoscaling.v2beta2.HorizontalPodAutoscalerSpecArgs']]):
182
+ pulumi.set(self, "autoscaling", value)
183
+
184
+ @property
185
+ @pulumi.getter
186
+ def deployment(self) -> Optional[pulumi.Input['CoreDNSDeploymentArgs']]:
187
+ """
188
+ Configure the CoreDNS Deployment.
189
+ """
190
+ return pulumi.get(self, "deployment")
191
+
192
+ @deployment.setter
193
+ def deployment(self, value: Optional[pulumi.Input['CoreDNSDeploymentArgs']]):
194
+ pulumi.set(self, "deployment", value)
195
+
196
+ @property
197
+ @pulumi.getter(name="extraSecrets")
198
+ def extra_secrets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]:
199
+ """
200
+ Optional array of secrets to mount inside coredns container. Possible usecase: need for secure connection with etcd backend. Optional array of mount points for extraVolumes.
201
+ """
202
+ return pulumi.get(self, "extra_secrets")
203
+
204
+ @extra_secrets.setter
205
+ def extra_secrets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]):
206
+ pulumi.set(self, "extra_secrets", value)
207
+
208
+ @property
209
+ @pulumi.getter(name="extraVolumeMounts")
210
+ def extra_volume_mounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]:
211
+ """
212
+ Optional array of mount points for extraVolumes.
213
+ """
214
+ return pulumi.get(self, "extra_volume_mounts")
215
+
216
+ @extra_volume_mounts.setter
217
+ def extra_volume_mounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]):
218
+ pulumi.set(self, "extra_volume_mounts", value)
219
+
220
+ @property
221
+ @pulumi.getter(name="extraVolumes")
222
+ def extra_volumes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeArgs']]]]:
223
+ """
224
+ Optional array of extra volumes to create.
225
+ """
226
+ return pulumi.get(self, "extra_volumes")
227
+
228
+ @extra_volumes.setter
229
+ def extra_volumes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.VolumeArgs']]]]):
230
+ pulumi.set(self, "extra_volumes", value)
231
+
232
+ @property
233
+ @pulumi.getter(name="helmOptions")
234
+ def helm_options(self) -> Optional[pulumi.Input['ReleaseArgs']]:
235
+ """
236
+ HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args.
237
+ """
238
+ return pulumi.get(self, "helm_options")
239
+
240
+ @helm_options.setter
241
+ def helm_options(self, value: Optional[pulumi.Input['ReleaseArgs']]):
242
+ pulumi.set(self, "helm_options", value)
243
+
244
+ @property
245
+ @pulumi.getter
246
+ def hpa(self) -> Optional[pulumi.Input['CoreDNSHPAArgs']]:
247
+ """
248
+ Alternative configuration for HPA deployment if wanted.
249
+ """
250
+ return pulumi.get(self, "hpa")
251
+
252
+ @hpa.setter
253
+ def hpa(self, value: Optional[pulumi.Input['CoreDNSHPAArgs']]):
254
+ pulumi.set(self, "hpa", value)
255
+
256
+ @property
257
+ @pulumi.getter
258
+ def image(self) -> Optional[pulumi.Input['CoreDNSImageArgs']]:
259
+ """
260
+ The image to pull.
261
+ """
262
+ return pulumi.get(self, "image")
263
+
264
+ @image.setter
265
+ def image(self, value: Optional[pulumi.Input['CoreDNSImageArgs']]):
266
+ pulumi.set(self, "image", value)
267
+
268
+ @property
269
+ @pulumi.getter(name="isClusterService")
270
+ def is_cluster_service(self) -> Optional[pulumi.Input[bool]]:
271
+ """
272
+ Specifies whether chart should be deployed as cluster-service or normal k8s app.
273
+ """
274
+ return pulumi.get(self, "is_cluster_service")
275
+
276
+ @is_cluster_service.setter
277
+ def is_cluster_service(self, value: Optional[pulumi.Input[bool]]):
278
+ pulumi.set(self, "is_cluster_service", value)
279
+
280
+ @property
281
+ @pulumi.getter(name="livenessProbe")
282
+ def liveness_probe(self) -> Optional[pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs']]:
283
+ """
284
+ Configure the liveness probe. To use the livenessProbe, the health plugin needs to be enabled in CoreDNS' server config.
285
+ """
286
+ return pulumi.get(self, "liveness_probe")
287
+
288
+ @liveness_probe.setter
289
+ def liveness_probe(self, value: Optional[pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs']]):
290
+ pulumi.set(self, "liveness_probe", value)
291
+
292
+ @property
293
+ @pulumi.getter(name="nodeSelector")
294
+ def node_selector(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
295
+ """
296
+ Node labels for pod assignment.
297
+ """
298
+ return pulumi.get(self, "node_selector")
299
+
300
+ @node_selector.setter
301
+ def node_selector(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
302
+ pulumi.set(self, "node_selector", value)
303
+
304
+ @property
305
+ @pulumi.getter(name="podAnnotations")
306
+ def pod_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
307
+ """
308
+ Optional Pod only Annotations.
309
+ """
310
+ return pulumi.get(self, "pod_annotations")
311
+
312
+ @pod_annotations.setter
313
+ def pod_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
314
+ pulumi.set(self, "pod_annotations", value)
315
+
316
+ @property
317
+ @pulumi.getter(name="podDisruptionBudget")
318
+ def pod_disruption_budget(self) -> Optional[pulumi.Input['pulumi_kubernetes.policy.v1.PodDisruptionBudgetSpecArgs']]:
319
+ """
320
+ Optional PodDisruptionBudget.
321
+ """
322
+ return pulumi.get(self, "pod_disruption_budget")
323
+
324
+ @pod_disruption_budget.setter
325
+ def pod_disruption_budget(self, value: Optional[pulumi.Input['pulumi_kubernetes.policy.v1.PodDisruptionBudgetSpecArgs']]):
326
+ pulumi.set(self, "pod_disruption_budget", value)
327
+
328
+ @property
329
+ @pulumi.getter(name="preStopSleep")
330
+ def pre_stop_sleep(self) -> Optional[pulumi.Input[int]]:
331
+ """
332
+ Under heavy load it takes more that standard time to remove Pod endpoint from a cluster. This will delay termination of our pod by `preStopSleep`. To make sure kube-proxy has enough time to catch up.
333
+ """
334
+ return pulumi.get(self, "pre_stop_sleep")
335
+
336
+ @pre_stop_sleep.setter
337
+ def pre_stop_sleep(self, value: Optional[pulumi.Input[int]]):
338
+ pulumi.set(self, "pre_stop_sleep", value)
339
+
340
+ @property
341
+ @pulumi.getter(name="priorityClassName")
342
+ def priority_class_name(self) -> Optional[pulumi.Input[str]]:
343
+ """
344
+ Optional priority class to be used for the coredns pods. Used for autoscaler if autoscaler.priorityClassName not set.
345
+ """
346
+ return pulumi.get(self, "priority_class_name")
347
+
348
+ @priority_class_name.setter
349
+ def priority_class_name(self, value: Optional[pulumi.Input[str]]):
350
+ pulumi.set(self, "priority_class_name", value)
351
+
352
+ @property
353
+ @pulumi.getter
354
+ def prometheus(self) -> Optional[pulumi.Input['CoreDNSPrometheusArgs']]:
355
+ """
356
+ Configure Prometheus installation.
357
+ """
358
+ return pulumi.get(self, "prometheus")
359
+
360
+ @prometheus.setter
361
+ def prometheus(self, value: Optional[pulumi.Input['CoreDNSPrometheusArgs']]):
362
+ pulumi.set(self, "prometheus", value)
363
+
364
+ @property
365
+ @pulumi.getter
366
+ def rbac(self) -> Optional[pulumi.Input['CoreDNSRBACArgs']]:
367
+ """
368
+ Configure CoreDNS RBAC resources.
369
+ """
370
+ return pulumi.get(self, "rbac")
371
+
372
+ @rbac.setter
373
+ def rbac(self, value: Optional[pulumi.Input['CoreDNSRBACArgs']]):
374
+ pulumi.set(self, "rbac", value)
375
+
376
+ @property
377
+ @pulumi.getter(name="readinessProbe")
378
+ def readiness_probe(self) -> Optional[pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs']]:
379
+ """
380
+ Configure the readiness probe. To use the readinessProbe, the health plugin needs to be enabled in CoreDNS' server config.
381
+ """
382
+ return pulumi.get(self, "readiness_probe")
383
+
384
+ @readiness_probe.setter
385
+ def readiness_probe(self, value: Optional[pulumi.Input['pulumi_kubernetes.core.v1.ProbeArgs']]):
386
+ pulumi.set(self, "readiness_probe", value)
387
+
388
+ @property
389
+ @pulumi.getter(name="replicaCount")
390
+ def replica_count(self) -> Optional[pulumi.Input[int]]:
391
+ """
392
+ Number of replicas.
393
+ """
394
+ return pulumi.get(self, "replica_count")
395
+
396
+ @replica_count.setter
397
+ def replica_count(self, value: Optional[pulumi.Input[int]]):
398
+ pulumi.set(self, "replica_count", value)
399
+
400
+ @property
401
+ @pulumi.getter
402
+ def resources(self) -> Optional[pulumi.Input['pulumi_kubernetes.core.v1.ResourceRequirementsArgs']]:
403
+ """
404
+ Container resource limits.
405
+ """
406
+ return pulumi.get(self, "resources")
407
+
408
+ @resources.setter
409
+ def resources(self, value: Optional[pulumi.Input['pulumi_kubernetes.core.v1.ResourceRequirementsArgs']]):
410
+ pulumi.set(self, "resources", value)
411
+
412
+ @property
413
+ @pulumi.getter(name="rollingUpdate")
414
+ def rolling_update(self) -> Optional[pulumi.Input['pulumi_kubernetes.apps.v1.RollingUpdateDeploymentArgs']]:
415
+ return pulumi.get(self, "rolling_update")
416
+
417
+ @rolling_update.setter
418
+ def rolling_update(self, value: Optional[pulumi.Input['pulumi_kubernetes.apps.v1.RollingUpdateDeploymentArgs']]):
419
+ pulumi.set(self, "rolling_update", value)
420
+
421
+ @property
422
+ @pulumi.getter
423
+ def servers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CoreDNSServerArgs']]]]:
424
+ """
425
+ Configuration for CoreDNS and plugins. Default zone is what Kubernetes recommends: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns-configmap-options
426
+ """
427
+ return pulumi.get(self, "servers")
428
+
429
+ @servers.setter
430
+ def servers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CoreDNSServerArgs']]]]):
431
+ pulumi.set(self, "servers", value)
432
+
433
+ @property
434
+ @pulumi.getter
435
+ def service(self) -> Optional[pulumi.Input['CoreDNSServiceArgs']]:
436
+ """
437
+ Configure CoreDNS Service parameters.
438
+ """
439
+ return pulumi.get(self, "service")
440
+
441
+ @service.setter
442
+ def service(self, value: Optional[pulumi.Input['CoreDNSServiceArgs']]):
443
+ pulumi.set(self, "service", value)
444
+
445
+ @property
446
+ @pulumi.getter(name="serviceAccount")
447
+ def service_account(self) -> Optional[pulumi.Input['CoreDNSServiceAccountArgs']]:
448
+ """
449
+ Configure CoreDNS Service Account.
450
+ """
451
+ return pulumi.get(self, "service_account")
452
+
453
+ @service_account.setter
454
+ def service_account(self, value: Optional[pulumi.Input['CoreDNSServiceAccountArgs']]):
455
+ pulumi.set(self, "service_account", value)
456
+
457
+ @property
458
+ @pulumi.getter(name="serviceType")
459
+ def service_type(self) -> Optional[pulumi.Input[str]]:
460
+ """
461
+ Kubernetes Service type.
462
+ """
463
+ return pulumi.get(self, "service_type")
464
+
465
+ @service_type.setter
466
+ def service_type(self, value: Optional[pulumi.Input[str]]):
467
+ pulumi.set(self, "service_type", value)
468
+
469
+ @property
470
+ @pulumi.getter(name="terminationGracePeriodSeconds")
471
+ def termination_grace_period_seconds(self) -> Optional[pulumi.Input[int]]:
472
+ """
473
+ Optional duration in seconds the pod needs to terminate gracefully.
474
+ """
475
+ return pulumi.get(self, "termination_grace_period_seconds")
476
+
477
+ @termination_grace_period_seconds.setter
478
+ def termination_grace_period_seconds(self, value: Optional[pulumi.Input[int]]):
479
+ pulumi.set(self, "termination_grace_period_seconds", value)
480
+
481
+ @property
482
+ @pulumi.getter
483
+ def tolerations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.TolerationArgs']]]]:
484
+ """
485
+ Tolerations for pod assignment.
486
+ """
487
+ return pulumi.get(self, "tolerations")
488
+
489
+ @tolerations.setter
490
+ def tolerations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_kubernetes.core.v1.TolerationArgs']]]]):
491
+ pulumi.set(self, "tolerations", value)
492
+
493
+ @property
494
+ @pulumi.getter(name="zoneFiles")
495
+ def zone_files(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CoreDNSZoneFileArgs']]]]:
496
+ """
497
+ Configure custom Zone files.
498
+ """
499
+ return pulumi.get(self, "zone_files")
500
+
501
+ @zone_files.setter
502
+ def zone_files(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CoreDNSZoneFileArgs']]]]):
503
+ pulumi.set(self, "zone_files", value)
504
+
505
+
506
+ class CoreDNS(pulumi.ComponentResource):
507
+ @overload
508
+ def __init__(__self__,
509
+ resource_name: str,
510
+ opts: Optional[pulumi.ResourceOptions] = None,
511
+ affinity: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.AffinityArgs']]] = None,
512
+ autoscaler: Optional[pulumi.Input[Union['CoreDNSAutoscalerArgs', 'CoreDNSAutoscalerArgsDict']]] = None,
513
+ autoscaling: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.autoscaling.v2beta2.HorizontalPodAutoscalerSpecArgs']]] = None,
514
+ deployment: Optional[pulumi.Input[Union['CoreDNSDeploymentArgs', 'CoreDNSDeploymentArgsDict']]] = None,
515
+ extra_secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None,
516
+ extra_volume_mounts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None,
517
+ extra_volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeArgs']]]]] = None,
518
+ helm_options: Optional[pulumi.Input[Union['ReleaseArgs', 'ReleaseArgsDict']]] = None,
519
+ hpa: Optional[pulumi.Input[Union['CoreDNSHPAArgs', 'CoreDNSHPAArgsDict']]] = None,
520
+ image: Optional[pulumi.Input[Union['CoreDNSImageArgs', 'CoreDNSImageArgsDict']]] = None,
521
+ is_cluster_service: Optional[pulumi.Input[bool]] = None,
522
+ liveness_probe: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ProbeArgs']]] = None,
523
+ node_selector: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
524
+ pod_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
525
+ pod_disruption_budget: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.policy.v1.PodDisruptionBudgetSpecArgs']]] = None,
526
+ pre_stop_sleep: Optional[pulumi.Input[int]] = None,
527
+ priority_class_name: Optional[pulumi.Input[str]] = None,
528
+ prometheus: Optional[pulumi.Input[Union['CoreDNSPrometheusArgs', 'CoreDNSPrometheusArgsDict']]] = None,
529
+ rbac: Optional[pulumi.Input[Union['CoreDNSRBACArgs', 'CoreDNSRBACArgsDict']]] = None,
530
+ readiness_probe: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ProbeArgs']]] = None,
531
+ replica_count: Optional[pulumi.Input[int]] = None,
532
+ resources: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ResourceRequirementsArgs']]] = None,
533
+ rolling_update: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.apps.v1.RollingUpdateDeploymentArgs']]] = None,
534
+ servers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CoreDNSServerArgs', 'CoreDNSServerArgsDict']]]]] = None,
535
+ service: Optional[pulumi.Input[Union['CoreDNSServiceArgs', 'CoreDNSServiceArgsDict']]] = None,
536
+ service_account: Optional[pulumi.Input[Union['CoreDNSServiceAccountArgs', 'CoreDNSServiceAccountArgsDict']]] = None,
537
+ service_type: Optional[pulumi.Input[str]] = None,
538
+ termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
539
+ tolerations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.TolerationArgs']]]]] = None,
540
+ zone_files: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CoreDNSZoneFileArgs', 'CoreDNSZoneFileArgsDict']]]]] = None,
541
+ __props__=None):
542
+ """
543
+ Enable fast and flexible in-cluster DNS.
544
+
545
+ :param str resource_name: The name of the resource.
546
+ :param pulumi.ResourceOptions opts: Options for the resource.
547
+ :param pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.AffinityArgs']] affinity: Affinity settings for pod assignment.
548
+ :param pulumi.Input[Union['CoreDNSAutoscalerArgs', 'CoreDNSAutoscalerArgsDict']] autoscaler: Configue a cluster-proportional-autoscaler for coredns. See https://github.com/kubernetes-incubator/cluster-proportional-autoscaler.
549
+ :param pulumi.Input[pulumi.InputType['pulumi_kubernetes.autoscaling.v2beta2.HorizontalPodAutoscalerSpecArgs']] autoscaling: Create HorizontalPodAutoscaler object.
550
+ :param pulumi.Input[Union['CoreDNSDeploymentArgs', 'CoreDNSDeploymentArgsDict']] deployment: Configure the CoreDNS Deployment.
551
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] extra_secrets: Optional array of secrets to mount inside coredns container. Possible usecase: need for secure connection with etcd backend. Optional array of mount points for extraVolumes.
552
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]] extra_volume_mounts: Optional array of mount points for extraVolumes.
553
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeArgs']]]] extra_volumes: Optional array of extra volumes to create.
554
+ :param pulumi.Input[Union['ReleaseArgs', 'ReleaseArgsDict']] helm_options: HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args.
555
+ :param pulumi.Input[Union['CoreDNSHPAArgs', 'CoreDNSHPAArgsDict']] hpa: Alternative configuration for HPA deployment if wanted.
556
+ :param pulumi.Input[Union['CoreDNSImageArgs', 'CoreDNSImageArgsDict']] image: The image to pull.
557
+ :param pulumi.Input[bool] is_cluster_service: Specifies whether chart should be deployed as cluster-service or normal k8s app.
558
+ :param pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ProbeArgs']] liveness_probe: Configure the liveness probe. To use the livenessProbe, the health plugin needs to be enabled in CoreDNS' server config.
559
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_selector: Node labels for pod assignment.
560
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pod_annotations: Optional Pod only Annotations.
561
+ :param pulumi.Input[pulumi.InputType['pulumi_kubernetes.policy.v1.PodDisruptionBudgetSpecArgs']] pod_disruption_budget: Optional PodDisruptionBudget.
562
+ :param pulumi.Input[int] pre_stop_sleep: Under heavy load it takes more that standard time to remove Pod endpoint from a cluster. This will delay termination of our pod by `preStopSleep`. To make sure kube-proxy has enough time to catch up.
563
+ :param pulumi.Input[str] priority_class_name: Optional priority class to be used for the coredns pods. Used for autoscaler if autoscaler.priorityClassName not set.
564
+ :param pulumi.Input[Union['CoreDNSPrometheusArgs', 'CoreDNSPrometheusArgsDict']] prometheus: Configure Prometheus installation.
565
+ :param pulumi.Input[Union['CoreDNSRBACArgs', 'CoreDNSRBACArgsDict']] rbac: Configure CoreDNS RBAC resources.
566
+ :param pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ProbeArgs']] readiness_probe: Configure the readiness probe. To use the readinessProbe, the health plugin needs to be enabled in CoreDNS' server config.
567
+ :param pulumi.Input[int] replica_count: Number of replicas.
568
+ :param pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ResourceRequirementsArgs']] resources: Container resource limits.
569
+ :param pulumi.Input[Sequence[pulumi.Input[Union['CoreDNSServerArgs', 'CoreDNSServerArgsDict']]]] servers: Configuration for CoreDNS and plugins. Default zone is what Kubernetes recommends: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/#coredns-configmap-options
570
+ :param pulumi.Input[Union['CoreDNSServiceArgs', 'CoreDNSServiceArgsDict']] service: Configure CoreDNS Service parameters.
571
+ :param pulumi.Input[Union['CoreDNSServiceAccountArgs', 'CoreDNSServiceAccountArgsDict']] service_account: Configure CoreDNS Service Account.
572
+ :param pulumi.Input[str] service_type: Kubernetes Service type.
573
+ :param pulumi.Input[int] termination_grace_period_seconds: Optional duration in seconds the pod needs to terminate gracefully.
574
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.TolerationArgs']]]] tolerations: Tolerations for pod assignment.
575
+ :param pulumi.Input[Sequence[pulumi.Input[Union['CoreDNSZoneFileArgs', 'CoreDNSZoneFileArgsDict']]]] zone_files: Configure custom Zone files.
576
+ """
577
+ ...
578
+ @overload
579
+ def __init__(__self__,
580
+ resource_name: str,
581
+ args: Optional[CoreDNSArgs] = None,
582
+ opts: Optional[pulumi.ResourceOptions] = None):
583
+ """
584
+ Enable fast and flexible in-cluster DNS.
585
+
586
+ :param str resource_name: The name of the resource.
587
+ :param CoreDNSArgs args: The arguments to use to populate this resource's properties.
588
+ :param pulumi.ResourceOptions opts: Options for the resource.
589
+ """
590
+ ...
591
+ def __init__(__self__, resource_name: str, *args, **kwargs):
592
+ resource_args, opts = _utilities.get_resource_args_opts(CoreDNSArgs, pulumi.ResourceOptions, *args, **kwargs)
593
+ if resource_args is not None:
594
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
595
+ else:
596
+ __self__._internal_init(resource_name, *args, **kwargs)
597
+
598
+ def _internal_init(__self__,
599
+ resource_name: str,
600
+ opts: Optional[pulumi.ResourceOptions] = None,
601
+ affinity: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.AffinityArgs']]] = None,
602
+ autoscaler: Optional[pulumi.Input[Union['CoreDNSAutoscalerArgs', 'CoreDNSAutoscalerArgsDict']]] = None,
603
+ autoscaling: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.autoscaling.v2beta2.HorizontalPodAutoscalerSpecArgs']]] = None,
604
+ deployment: Optional[pulumi.Input[Union['CoreDNSDeploymentArgs', 'CoreDNSDeploymentArgsDict']]] = None,
605
+ extra_secrets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None,
606
+ extra_volume_mounts: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeMountArgs']]]]] = None,
607
+ extra_volumes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.VolumeArgs']]]]] = None,
608
+ helm_options: Optional[pulumi.Input[Union['ReleaseArgs', 'ReleaseArgsDict']]] = None,
609
+ hpa: Optional[pulumi.Input[Union['CoreDNSHPAArgs', 'CoreDNSHPAArgsDict']]] = None,
610
+ image: Optional[pulumi.Input[Union['CoreDNSImageArgs', 'CoreDNSImageArgsDict']]] = None,
611
+ is_cluster_service: Optional[pulumi.Input[bool]] = None,
612
+ liveness_probe: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ProbeArgs']]] = None,
613
+ node_selector: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
614
+ pod_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
615
+ pod_disruption_budget: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.policy.v1.PodDisruptionBudgetSpecArgs']]] = None,
616
+ pre_stop_sleep: Optional[pulumi.Input[int]] = None,
617
+ priority_class_name: Optional[pulumi.Input[str]] = None,
618
+ prometheus: Optional[pulumi.Input[Union['CoreDNSPrometheusArgs', 'CoreDNSPrometheusArgsDict']]] = None,
619
+ rbac: Optional[pulumi.Input[Union['CoreDNSRBACArgs', 'CoreDNSRBACArgsDict']]] = None,
620
+ readiness_probe: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ProbeArgs']]] = None,
621
+ replica_count: Optional[pulumi.Input[int]] = None,
622
+ resources: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.ResourceRequirementsArgs']]] = None,
623
+ rolling_update: Optional[pulumi.Input[pulumi.InputType['pulumi_kubernetes.apps.v1.RollingUpdateDeploymentArgs']]] = None,
624
+ servers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CoreDNSServerArgs', 'CoreDNSServerArgsDict']]]]] = None,
625
+ service: Optional[pulumi.Input[Union['CoreDNSServiceArgs', 'CoreDNSServiceArgsDict']]] = None,
626
+ service_account: Optional[pulumi.Input[Union['CoreDNSServiceAccountArgs', 'CoreDNSServiceAccountArgsDict']]] = None,
627
+ service_type: Optional[pulumi.Input[str]] = None,
628
+ termination_grace_period_seconds: Optional[pulumi.Input[int]] = None,
629
+ tolerations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_kubernetes.core.v1.TolerationArgs']]]]] = None,
630
+ zone_files: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CoreDNSZoneFileArgs', 'CoreDNSZoneFileArgsDict']]]]] = None,
631
+ __props__=None):
632
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
633
+ if not isinstance(opts, pulumi.ResourceOptions):
634
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
635
+ if opts.id is not None:
636
+ raise ValueError('ComponentResource classes do not support opts.id')
637
+ else:
638
+ if __props__ is not None:
639
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
640
+ __props__ = CoreDNSArgs.__new__(CoreDNSArgs)
641
+
642
+ __props__.__dict__["affinity"] = affinity
643
+ __props__.__dict__["autoscaler"] = autoscaler
644
+ __props__.__dict__["autoscaling"] = autoscaling
645
+ __props__.__dict__["deployment"] = deployment
646
+ __props__.__dict__["extra_secrets"] = extra_secrets
647
+ __props__.__dict__["extra_volume_mounts"] = extra_volume_mounts
648
+ __props__.__dict__["extra_volumes"] = extra_volumes
649
+ __props__.__dict__["helm_options"] = helm_options
650
+ __props__.__dict__["hpa"] = hpa
651
+ __props__.__dict__["image"] = image
652
+ __props__.__dict__["is_cluster_service"] = is_cluster_service
653
+ __props__.__dict__["liveness_probe"] = liveness_probe
654
+ __props__.__dict__["node_selector"] = node_selector
655
+ __props__.__dict__["pod_annotations"] = pod_annotations
656
+ __props__.__dict__["pod_disruption_budget"] = pod_disruption_budget
657
+ __props__.__dict__["pre_stop_sleep"] = pre_stop_sleep
658
+ __props__.__dict__["priority_class_name"] = priority_class_name
659
+ __props__.__dict__["prometheus"] = prometheus
660
+ __props__.__dict__["rbac"] = rbac
661
+ __props__.__dict__["readiness_probe"] = readiness_probe
662
+ __props__.__dict__["replica_count"] = replica_count
663
+ __props__.__dict__["resources"] = resources
664
+ __props__.__dict__["rolling_update"] = rolling_update
665
+ __props__.__dict__["servers"] = servers
666
+ __props__.__dict__["service"] = service
667
+ __props__.__dict__["service_account"] = service_account
668
+ __props__.__dict__["service_type"] = service_type
669
+ __props__.__dict__["termination_grace_period_seconds"] = termination_grace_period_seconds
670
+ __props__.__dict__["tolerations"] = tolerations
671
+ __props__.__dict__["zone_files"] = zone_files
672
+ __props__.__dict__["status"] = None
673
+ super(CoreDNS, __self__).__init__(
674
+ 'kubernetes-coredns:index:CoreDNS',
675
+ resource_name,
676
+ __props__,
677
+ opts,
678
+ remote=True)
679
+
680
+ @property
681
+ @pulumi.getter
682
+ def status(self) -> pulumi.Output['outputs.ReleaseStatus']:
683
+ """
684
+ Detailed information about the status of the underlying Helm deployment.
685
+ """
686
+ return pulumi.get(self, "status")
687
+