pulumi-eks 4.3.0a1768463252__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,719 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-gen-eks. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
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 ._enums import *
17
+
18
+ __all__ = ['VpcCniAddonArgs', 'VpcCniAddon']
19
+
20
+ @pulumi.input_type
21
+ class VpcCniAddonArgs:
22
+ def __init__(__self__, *,
23
+ cluster_name: pulumi.Input[_builtins.str],
24
+ addon_version: Optional[pulumi.Input[_builtins.str]] = None,
25
+ cluster_version: Optional[pulumi.Input[_builtins.str]] = None,
26
+ cni_configure_rpfilter: Optional[pulumi.Input[_builtins.bool]] = None,
27
+ cni_custom_network_cfg: Optional[pulumi.Input[_builtins.bool]] = None,
28
+ cni_external_snat: Optional[pulumi.Input[_builtins.bool]] = None,
29
+ configuration_values: Optional[pulumi.Input[Mapping[str, Any]]] = None,
30
+ custom_network_config: Optional[pulumi.Input[_builtins.bool]] = None,
31
+ disable_tcp_early_demux: Optional[pulumi.Input[_builtins.bool]] = None,
32
+ enable_network_policy: Optional[pulumi.Input[_builtins.bool]] = None,
33
+ enable_pod_eni: Optional[pulumi.Input[_builtins.bool]] = None,
34
+ enable_prefix_delegation: Optional[pulumi.Input[_builtins.bool]] = None,
35
+ eni_config_label_def: Optional[pulumi.Input[_builtins.str]] = None,
36
+ eni_mtu: Optional[pulumi.Input[_builtins.int]] = None,
37
+ external_snat: Optional[pulumi.Input[_builtins.bool]] = None,
38
+ log_file: Optional[pulumi.Input[_builtins.str]] = None,
39
+ log_level: Optional[pulumi.Input[_builtins.str]] = None,
40
+ node_port_support: Optional[pulumi.Input[_builtins.bool]] = None,
41
+ resolve_conflicts_on_create: Optional['ResolveConflictsOnCreate'] = None,
42
+ resolve_conflicts_on_update: Optional['ResolveConflictsOnUpdate'] = None,
43
+ security_context_privileged: Optional[pulumi.Input[_builtins.bool]] = None,
44
+ service_account_role_arn: Optional[pulumi.Input[_builtins.str]] = None,
45
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]] = None,
46
+ veth_prefix: Optional[pulumi.Input[_builtins.str]] = None,
47
+ warm_eni_target: Optional[pulumi.Input[_builtins.int]] = None,
48
+ warm_ip_target: Optional[pulumi.Input[_builtins.int]] = None,
49
+ warm_prefix_target: Optional[pulumi.Input[_builtins.int]] = None):
50
+ """
51
+ The set of arguments for constructing a VpcCniAddon resource.
52
+ :param pulumi.Input[_builtins.str] cluster_name: The name of the EKS cluster.
53
+ :param pulumi.Input[_builtins.str] addon_version: The version of the addon to use. If not specified, the latest version of the addon for the cluster's Kubernetes version will be used.
54
+ :param pulumi.Input[_builtins.str] cluster_version: The Kubernetes version of the cluster. This is used to determine the addon version to use if `addonVersion` is not specified.
55
+ :param pulumi.Input[_builtins.bool] cni_configure_rpfilter: Specifies whether ipamd should configure rp filter for primary interface. Default is `false`.
56
+ :param pulumi.Input[_builtins.bool] cni_custom_network_cfg: Specifies that your pods may use subnets and security groups that are independent of your worker node's VPC configuration. By default, pods share the same subnet and security groups as the worker node's primary interface. Setting this variable to true causes ipamd to use the security groups and VPC subnet in a worker node's ENIConfig for elastic network interface allocation. You must create an ENIConfig custom resource for each subnet that your pods will reside in, and then annotate or label each worker node to use a specific ENIConfig (multiple worker nodes can be annotated or labelled with the same ENIConfig). Worker nodes can only be annotated with a single ENIConfig at a time, and the subnet in the ENIConfig must belong to the same Availability Zone that the worker node resides in. For more information, see CNI Custom Networking in the Amazon EKS User Guide. Default is `false`
57
+ :param pulumi.Input[_builtins.bool] cni_external_snat: Specifies whether an external NAT gateway should be used to provide SNAT of secondary ENI IP addresses. If set to true, the SNAT iptables rule and off-VPC IP rule are not applied, and these rules are removed if they have already been applied. Disable SNAT if you need to allow inbound communication to your pods from external VPNs, direct connections, and external VPCs, and your pods do not need to access the Internet directly via an Internet Gateway. However, your nodes must be running in a private subnet and connected to the internet through an AWS NAT Gateway or another external NAT device. Default is `false`
58
+ :param pulumi.Input[Mapping[str, Any]] configuration_values: Custom configuration values for the vpc-cni addon. This object must match the schema derived from [describe-addon-configuration](https://docs.aws.amazon.com/cli/latest/reference/eks/describe-addon-configuration.html).
59
+ :param pulumi.Input[_builtins.bool] custom_network_config: Specifies that your pods may use subnets and security groups (within the same VPC as your control plane resources) that are independent of your cluster's `resourcesVpcConfig`.
60
+
61
+ Defaults to false.
62
+ :param pulumi.Input[_builtins.bool] disable_tcp_early_demux: Allows the kubelet's liveness and readiness probes to connect via TCP when pod ENI is enabled. This will slightly increase local TCP connection latency.
63
+ :param pulumi.Input[_builtins.bool] enable_network_policy: Enables using Kubernetes network policies. In Kubernetes, by default, all pod-to-pod communication is allowed. Communication can be restricted with Kubernetes NetworkPolicy objects.
64
+
65
+ See for more information: [Kubernetes Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/).
66
+ :param pulumi.Input[_builtins.bool] enable_pod_eni: Specifies whether to allow IPAMD to add the `vpc.amazonaws.com/has-trunk-attached` label to the node if the instance has capacity to attach an additional ENI. Default is `false`. If using liveness and readiness probes, you will also need to disable TCP early demux.
67
+ :param pulumi.Input[_builtins.bool] enable_prefix_delegation: IPAMD will start allocating (/28) prefixes to the ENIs with ENABLE_PREFIX_DELEGATION set to true.
68
+ :param pulumi.Input[_builtins.str] eni_config_label_def: Specifies the ENI_CONFIG_LABEL_DEF environment variable value for worker nodes. This is used to tell Kubernetes to automatically apply the ENIConfig for each Availability Zone
69
+ Ref: https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html (step 5(c))
70
+
71
+ Defaults to the official AWS CNI image in ECR.
72
+ :param pulumi.Input[_builtins.int] eni_mtu: Used to configure the MTU size for attached ENIs. The valid range is from 576 to 9001.
73
+
74
+ Defaults to 9001.
75
+ :param pulumi.Input[_builtins.bool] external_snat: Specifies whether an external NAT gateway should be used to provide SNAT of secondary ENI IP addresses. If set to true, the SNAT iptables rule and off-VPC IP rule are not applied, and these rules are removed if they have already been applied.
76
+
77
+ Defaults to false.
78
+ :param pulumi.Input[_builtins.str] log_file: Specifies the file path used for logs.
79
+
80
+ Defaults to "stdout" to emit Pod logs for `kubectl logs`.
81
+ :param pulumi.Input[_builtins.str] log_level: Specifies the log level used for logs.
82
+
83
+ Defaults to "DEBUG"
84
+ Valid values: "DEBUG", "INFO", "WARN", "ERROR", or "FATAL".
85
+ :param pulumi.Input[_builtins.bool] node_port_support: Specifies whether NodePort services are enabled on a worker node's primary network interface. This requires additional iptables rules and that the kernel's reverse path filter on the primary interface is set to loose.
86
+
87
+ Defaults to true.
88
+ :param 'ResolveConflictsOnCreate' resolve_conflicts_on_create: How to resolve field value conflicts when migrating a self-managed add-on to an Amazon EKS add-on. Valid values are `NONE` and `OVERWRITE`. For more details see the [CreateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateAddon.html) API Docs.
89
+ :param 'ResolveConflictsOnUpdate' resolve_conflicts_on_update: How to resolve field value conflicts for an Amazon EKS add-on if you've changed a value from the Amazon EKS default value. Valid values are `NONE`, `OVERWRITE`, and `PRESERVE`. For more details see the [UpdateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html) API Docs.
90
+ :param pulumi.Input[_builtins.bool] security_context_privileged: Pass privilege to containers securityContext. This is required when SELinux is enabled. This value will not be passed to the CNI config by default
91
+ :param pulumi.Input[_builtins.str] service_account_role_arn: The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role.
92
+
93
+ For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the Amazon EKS User Guide.
94
+
95
+ Note: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see [Enabling IAM roles for service accounts on your cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) in the Amazon EKS User Guide.
96
+ :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] tags: Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
97
+ :param pulumi.Input[_builtins.str] veth_prefix: Specifies the veth prefix used to generate the host-side veth device name for the CNI.
98
+
99
+ The prefix can be at most 4 characters long.
100
+
101
+ Defaults to "eni".
102
+ :param pulumi.Input[_builtins.int] warm_eni_target: Specifies the number of free elastic network interfaces (and all of their available IP addresses) that the ipamD daemon should attempt to keep available for pod assignment on the node.
103
+
104
+ Defaults to 1.
105
+ :param pulumi.Input[_builtins.int] warm_ip_target: Specifies the number of free IP addresses that the ipamD daemon should attempt to keep available for pod assignment on the node.
106
+ :param pulumi.Input[_builtins.int] warm_prefix_target: WARM_PREFIX_TARGET will allocate one full (/28) prefix even if a single IP is consumed with the existing prefix. Ref: https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/prefix-and-ip-target.md
107
+ """
108
+ pulumi.set(__self__, "cluster_name", cluster_name)
109
+ if addon_version is not None:
110
+ pulumi.set(__self__, "addon_version", addon_version)
111
+ if cluster_version is not None:
112
+ pulumi.set(__self__, "cluster_version", cluster_version)
113
+ if cni_configure_rpfilter is not None:
114
+ pulumi.set(__self__, "cni_configure_rpfilter", cni_configure_rpfilter)
115
+ if cni_custom_network_cfg is not None:
116
+ pulumi.set(__self__, "cni_custom_network_cfg", cni_custom_network_cfg)
117
+ if cni_external_snat is not None:
118
+ pulumi.set(__self__, "cni_external_snat", cni_external_snat)
119
+ if configuration_values is not None:
120
+ pulumi.set(__self__, "configuration_values", configuration_values)
121
+ if custom_network_config is not None:
122
+ pulumi.set(__self__, "custom_network_config", custom_network_config)
123
+ if disable_tcp_early_demux is not None:
124
+ pulumi.set(__self__, "disable_tcp_early_demux", disable_tcp_early_demux)
125
+ if enable_network_policy is not None:
126
+ pulumi.set(__self__, "enable_network_policy", enable_network_policy)
127
+ if enable_pod_eni is not None:
128
+ pulumi.set(__self__, "enable_pod_eni", enable_pod_eni)
129
+ if enable_prefix_delegation is not None:
130
+ pulumi.set(__self__, "enable_prefix_delegation", enable_prefix_delegation)
131
+ if eni_config_label_def is not None:
132
+ pulumi.set(__self__, "eni_config_label_def", eni_config_label_def)
133
+ if eni_mtu is not None:
134
+ pulumi.set(__self__, "eni_mtu", eni_mtu)
135
+ if external_snat is not None:
136
+ pulumi.set(__self__, "external_snat", external_snat)
137
+ if log_file is not None:
138
+ pulumi.set(__self__, "log_file", log_file)
139
+ if log_level is not None:
140
+ pulumi.set(__self__, "log_level", log_level)
141
+ if node_port_support is not None:
142
+ pulumi.set(__self__, "node_port_support", node_port_support)
143
+ if resolve_conflicts_on_create is None:
144
+ resolve_conflicts_on_create = 'OVERWRITE'
145
+ if resolve_conflicts_on_create is not None:
146
+ pulumi.set(__self__, "resolve_conflicts_on_create", resolve_conflicts_on_create)
147
+ if resolve_conflicts_on_update is None:
148
+ resolve_conflicts_on_update = 'OVERWRITE'
149
+ if resolve_conflicts_on_update is not None:
150
+ pulumi.set(__self__, "resolve_conflicts_on_update", resolve_conflicts_on_update)
151
+ if security_context_privileged is not None:
152
+ pulumi.set(__self__, "security_context_privileged", security_context_privileged)
153
+ if service_account_role_arn is not None:
154
+ pulumi.set(__self__, "service_account_role_arn", service_account_role_arn)
155
+ if tags is not None:
156
+ pulumi.set(__self__, "tags", tags)
157
+ if veth_prefix is not None:
158
+ pulumi.set(__self__, "veth_prefix", veth_prefix)
159
+ if warm_eni_target is not None:
160
+ pulumi.set(__self__, "warm_eni_target", warm_eni_target)
161
+ if warm_ip_target is not None:
162
+ pulumi.set(__self__, "warm_ip_target", warm_ip_target)
163
+ if warm_prefix_target is not None:
164
+ pulumi.set(__self__, "warm_prefix_target", warm_prefix_target)
165
+
166
+ @_builtins.property
167
+ @pulumi.getter(name="clusterName")
168
+ def cluster_name(self) -> pulumi.Input[_builtins.str]:
169
+ """
170
+ The name of the EKS cluster.
171
+ """
172
+ return pulumi.get(self, "cluster_name")
173
+
174
+ @cluster_name.setter
175
+ def cluster_name(self, value: pulumi.Input[_builtins.str]):
176
+ pulumi.set(self, "cluster_name", value)
177
+
178
+ @_builtins.property
179
+ @pulumi.getter(name="addonVersion")
180
+ def addon_version(self) -> Optional[pulumi.Input[_builtins.str]]:
181
+ """
182
+ The version of the addon to use. If not specified, the latest version of the addon for the cluster's Kubernetes version will be used.
183
+ """
184
+ return pulumi.get(self, "addon_version")
185
+
186
+ @addon_version.setter
187
+ def addon_version(self, value: Optional[pulumi.Input[_builtins.str]]):
188
+ pulumi.set(self, "addon_version", value)
189
+
190
+ @_builtins.property
191
+ @pulumi.getter(name="clusterVersion")
192
+ def cluster_version(self) -> Optional[pulumi.Input[_builtins.str]]:
193
+ """
194
+ The Kubernetes version of the cluster. This is used to determine the addon version to use if `addonVersion` is not specified.
195
+ """
196
+ return pulumi.get(self, "cluster_version")
197
+
198
+ @cluster_version.setter
199
+ def cluster_version(self, value: Optional[pulumi.Input[_builtins.str]]):
200
+ pulumi.set(self, "cluster_version", value)
201
+
202
+ @_builtins.property
203
+ @pulumi.getter(name="cniConfigureRpfilter")
204
+ def cni_configure_rpfilter(self) -> Optional[pulumi.Input[_builtins.bool]]:
205
+ """
206
+ Specifies whether ipamd should configure rp filter for primary interface. Default is `false`.
207
+ """
208
+ return pulumi.get(self, "cni_configure_rpfilter")
209
+
210
+ @cni_configure_rpfilter.setter
211
+ def cni_configure_rpfilter(self, value: Optional[pulumi.Input[_builtins.bool]]):
212
+ pulumi.set(self, "cni_configure_rpfilter", value)
213
+
214
+ @_builtins.property
215
+ @pulumi.getter(name="cniCustomNetworkCfg")
216
+ def cni_custom_network_cfg(self) -> Optional[pulumi.Input[_builtins.bool]]:
217
+ """
218
+ Specifies that your pods may use subnets and security groups that are independent of your worker node's VPC configuration. By default, pods share the same subnet and security groups as the worker node's primary interface. Setting this variable to true causes ipamd to use the security groups and VPC subnet in a worker node's ENIConfig for elastic network interface allocation. You must create an ENIConfig custom resource for each subnet that your pods will reside in, and then annotate or label each worker node to use a specific ENIConfig (multiple worker nodes can be annotated or labelled with the same ENIConfig). Worker nodes can only be annotated with a single ENIConfig at a time, and the subnet in the ENIConfig must belong to the same Availability Zone that the worker node resides in. For more information, see CNI Custom Networking in the Amazon EKS User Guide. Default is `false`
219
+ """
220
+ return pulumi.get(self, "cni_custom_network_cfg")
221
+
222
+ @cni_custom_network_cfg.setter
223
+ def cni_custom_network_cfg(self, value: Optional[pulumi.Input[_builtins.bool]]):
224
+ pulumi.set(self, "cni_custom_network_cfg", value)
225
+
226
+ @_builtins.property
227
+ @pulumi.getter(name="cniExternalSnat")
228
+ def cni_external_snat(self) -> Optional[pulumi.Input[_builtins.bool]]:
229
+ """
230
+ Specifies whether an external NAT gateway should be used to provide SNAT of secondary ENI IP addresses. If set to true, the SNAT iptables rule and off-VPC IP rule are not applied, and these rules are removed if they have already been applied. Disable SNAT if you need to allow inbound communication to your pods from external VPNs, direct connections, and external VPCs, and your pods do not need to access the Internet directly via an Internet Gateway. However, your nodes must be running in a private subnet and connected to the internet through an AWS NAT Gateway or another external NAT device. Default is `false`
231
+ """
232
+ return pulumi.get(self, "cni_external_snat")
233
+
234
+ @cni_external_snat.setter
235
+ def cni_external_snat(self, value: Optional[pulumi.Input[_builtins.bool]]):
236
+ pulumi.set(self, "cni_external_snat", value)
237
+
238
+ @_builtins.property
239
+ @pulumi.getter(name="configurationValues")
240
+ def configuration_values(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
241
+ """
242
+ Custom configuration values for the vpc-cni addon. This object must match the schema derived from [describe-addon-configuration](https://docs.aws.amazon.com/cli/latest/reference/eks/describe-addon-configuration.html).
243
+ """
244
+ return pulumi.get(self, "configuration_values")
245
+
246
+ @configuration_values.setter
247
+ def configuration_values(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
248
+ pulumi.set(self, "configuration_values", value)
249
+
250
+ @_builtins.property
251
+ @pulumi.getter(name="customNetworkConfig")
252
+ def custom_network_config(self) -> Optional[pulumi.Input[_builtins.bool]]:
253
+ """
254
+ Specifies that your pods may use subnets and security groups (within the same VPC as your control plane resources) that are independent of your cluster's `resourcesVpcConfig`.
255
+
256
+ Defaults to false.
257
+ """
258
+ return pulumi.get(self, "custom_network_config")
259
+
260
+ @custom_network_config.setter
261
+ def custom_network_config(self, value: Optional[pulumi.Input[_builtins.bool]]):
262
+ pulumi.set(self, "custom_network_config", value)
263
+
264
+ @_builtins.property
265
+ @pulumi.getter(name="disableTcpEarlyDemux")
266
+ def disable_tcp_early_demux(self) -> Optional[pulumi.Input[_builtins.bool]]:
267
+ """
268
+ Allows the kubelet's liveness and readiness probes to connect via TCP when pod ENI is enabled. This will slightly increase local TCP connection latency.
269
+ """
270
+ return pulumi.get(self, "disable_tcp_early_demux")
271
+
272
+ @disable_tcp_early_demux.setter
273
+ def disable_tcp_early_demux(self, value: Optional[pulumi.Input[_builtins.bool]]):
274
+ pulumi.set(self, "disable_tcp_early_demux", value)
275
+
276
+ @_builtins.property
277
+ @pulumi.getter(name="enableNetworkPolicy")
278
+ def enable_network_policy(self) -> Optional[pulumi.Input[_builtins.bool]]:
279
+ """
280
+ Enables using Kubernetes network policies. In Kubernetes, by default, all pod-to-pod communication is allowed. Communication can be restricted with Kubernetes NetworkPolicy objects.
281
+
282
+ See for more information: [Kubernetes Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/).
283
+ """
284
+ return pulumi.get(self, "enable_network_policy")
285
+
286
+ @enable_network_policy.setter
287
+ def enable_network_policy(self, value: Optional[pulumi.Input[_builtins.bool]]):
288
+ pulumi.set(self, "enable_network_policy", value)
289
+
290
+ @_builtins.property
291
+ @pulumi.getter(name="enablePodEni")
292
+ def enable_pod_eni(self) -> Optional[pulumi.Input[_builtins.bool]]:
293
+ """
294
+ Specifies whether to allow IPAMD to add the `vpc.amazonaws.com/has-trunk-attached` label to the node if the instance has capacity to attach an additional ENI. Default is `false`. If using liveness and readiness probes, you will also need to disable TCP early demux.
295
+ """
296
+ return pulumi.get(self, "enable_pod_eni")
297
+
298
+ @enable_pod_eni.setter
299
+ def enable_pod_eni(self, value: Optional[pulumi.Input[_builtins.bool]]):
300
+ pulumi.set(self, "enable_pod_eni", value)
301
+
302
+ @_builtins.property
303
+ @pulumi.getter(name="enablePrefixDelegation")
304
+ def enable_prefix_delegation(self) -> Optional[pulumi.Input[_builtins.bool]]:
305
+ """
306
+ IPAMD will start allocating (/28) prefixes to the ENIs with ENABLE_PREFIX_DELEGATION set to true.
307
+ """
308
+ return pulumi.get(self, "enable_prefix_delegation")
309
+
310
+ @enable_prefix_delegation.setter
311
+ def enable_prefix_delegation(self, value: Optional[pulumi.Input[_builtins.bool]]):
312
+ pulumi.set(self, "enable_prefix_delegation", value)
313
+
314
+ @_builtins.property
315
+ @pulumi.getter(name="eniConfigLabelDef")
316
+ def eni_config_label_def(self) -> Optional[pulumi.Input[_builtins.str]]:
317
+ """
318
+ Specifies the ENI_CONFIG_LABEL_DEF environment variable value for worker nodes. This is used to tell Kubernetes to automatically apply the ENIConfig for each Availability Zone
319
+ Ref: https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html (step 5(c))
320
+
321
+ Defaults to the official AWS CNI image in ECR.
322
+ """
323
+ return pulumi.get(self, "eni_config_label_def")
324
+
325
+ @eni_config_label_def.setter
326
+ def eni_config_label_def(self, value: Optional[pulumi.Input[_builtins.str]]):
327
+ pulumi.set(self, "eni_config_label_def", value)
328
+
329
+ @_builtins.property
330
+ @pulumi.getter(name="eniMtu")
331
+ def eni_mtu(self) -> Optional[pulumi.Input[_builtins.int]]:
332
+ """
333
+ Used to configure the MTU size for attached ENIs. The valid range is from 576 to 9001.
334
+
335
+ Defaults to 9001.
336
+ """
337
+ return pulumi.get(self, "eni_mtu")
338
+
339
+ @eni_mtu.setter
340
+ def eni_mtu(self, value: Optional[pulumi.Input[_builtins.int]]):
341
+ pulumi.set(self, "eni_mtu", value)
342
+
343
+ @_builtins.property
344
+ @pulumi.getter(name="externalSnat")
345
+ def external_snat(self) -> Optional[pulumi.Input[_builtins.bool]]:
346
+ """
347
+ Specifies whether an external NAT gateway should be used to provide SNAT of secondary ENI IP addresses. If set to true, the SNAT iptables rule and off-VPC IP rule are not applied, and these rules are removed if they have already been applied.
348
+
349
+ Defaults to false.
350
+ """
351
+ return pulumi.get(self, "external_snat")
352
+
353
+ @external_snat.setter
354
+ def external_snat(self, value: Optional[pulumi.Input[_builtins.bool]]):
355
+ pulumi.set(self, "external_snat", value)
356
+
357
+ @_builtins.property
358
+ @pulumi.getter(name="logFile")
359
+ def log_file(self) -> Optional[pulumi.Input[_builtins.str]]:
360
+ """
361
+ Specifies the file path used for logs.
362
+
363
+ Defaults to "stdout" to emit Pod logs for `kubectl logs`.
364
+ """
365
+ return pulumi.get(self, "log_file")
366
+
367
+ @log_file.setter
368
+ def log_file(self, value: Optional[pulumi.Input[_builtins.str]]):
369
+ pulumi.set(self, "log_file", value)
370
+
371
+ @_builtins.property
372
+ @pulumi.getter(name="logLevel")
373
+ def log_level(self) -> Optional[pulumi.Input[_builtins.str]]:
374
+ """
375
+ Specifies the log level used for logs.
376
+
377
+ Defaults to "DEBUG"
378
+ Valid values: "DEBUG", "INFO", "WARN", "ERROR", or "FATAL".
379
+ """
380
+ return pulumi.get(self, "log_level")
381
+
382
+ @log_level.setter
383
+ def log_level(self, value: Optional[pulumi.Input[_builtins.str]]):
384
+ pulumi.set(self, "log_level", value)
385
+
386
+ @_builtins.property
387
+ @pulumi.getter(name="nodePortSupport")
388
+ def node_port_support(self) -> Optional[pulumi.Input[_builtins.bool]]:
389
+ """
390
+ Specifies whether NodePort services are enabled on a worker node's primary network interface. This requires additional iptables rules and that the kernel's reverse path filter on the primary interface is set to loose.
391
+
392
+ Defaults to true.
393
+ """
394
+ return pulumi.get(self, "node_port_support")
395
+
396
+ @node_port_support.setter
397
+ def node_port_support(self, value: Optional[pulumi.Input[_builtins.bool]]):
398
+ pulumi.set(self, "node_port_support", value)
399
+
400
+ @_builtins.property
401
+ @pulumi.getter(name="resolveConflictsOnCreate")
402
+ def resolve_conflicts_on_create(self) -> Optional['ResolveConflictsOnCreate']:
403
+ """
404
+ How to resolve field value conflicts when migrating a self-managed add-on to an Amazon EKS add-on. Valid values are `NONE` and `OVERWRITE`. For more details see the [CreateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateAddon.html) API Docs.
405
+ """
406
+ return pulumi.get(self, "resolve_conflicts_on_create")
407
+
408
+ @resolve_conflicts_on_create.setter
409
+ def resolve_conflicts_on_create(self, value: Optional['ResolveConflictsOnCreate']):
410
+ pulumi.set(self, "resolve_conflicts_on_create", value)
411
+
412
+ @_builtins.property
413
+ @pulumi.getter(name="resolveConflictsOnUpdate")
414
+ def resolve_conflicts_on_update(self) -> Optional['ResolveConflictsOnUpdate']:
415
+ """
416
+ How to resolve field value conflicts for an Amazon EKS add-on if you've changed a value from the Amazon EKS default value. Valid values are `NONE`, `OVERWRITE`, and `PRESERVE`. For more details see the [UpdateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html) API Docs.
417
+ """
418
+ return pulumi.get(self, "resolve_conflicts_on_update")
419
+
420
+ @resolve_conflicts_on_update.setter
421
+ def resolve_conflicts_on_update(self, value: Optional['ResolveConflictsOnUpdate']):
422
+ pulumi.set(self, "resolve_conflicts_on_update", value)
423
+
424
+ @_builtins.property
425
+ @pulumi.getter(name="securityContextPrivileged")
426
+ def security_context_privileged(self) -> Optional[pulumi.Input[_builtins.bool]]:
427
+ """
428
+ Pass privilege to containers securityContext. This is required when SELinux is enabled. This value will not be passed to the CNI config by default
429
+ """
430
+ return pulumi.get(self, "security_context_privileged")
431
+
432
+ @security_context_privileged.setter
433
+ def security_context_privileged(self, value: Optional[pulumi.Input[_builtins.bool]]):
434
+ pulumi.set(self, "security_context_privileged", value)
435
+
436
+ @_builtins.property
437
+ @pulumi.getter(name="serviceAccountRoleArn")
438
+ def service_account_role_arn(self) -> Optional[pulumi.Input[_builtins.str]]:
439
+ """
440
+ The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role.
441
+
442
+ For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the Amazon EKS User Guide.
443
+
444
+ Note: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see [Enabling IAM roles for service accounts on your cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) in the Amazon EKS User Guide.
445
+ """
446
+ return pulumi.get(self, "service_account_role_arn")
447
+
448
+ @service_account_role_arn.setter
449
+ def service_account_role_arn(self, value: Optional[pulumi.Input[_builtins.str]]):
450
+ pulumi.set(self, "service_account_role_arn", value)
451
+
452
+ @_builtins.property
453
+ @pulumi.getter
454
+ def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]:
455
+ """
456
+ Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
457
+ """
458
+ return pulumi.get(self, "tags")
459
+
460
+ @tags.setter
461
+ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]):
462
+ pulumi.set(self, "tags", value)
463
+
464
+ @_builtins.property
465
+ @pulumi.getter(name="vethPrefix")
466
+ def veth_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
467
+ """
468
+ Specifies the veth prefix used to generate the host-side veth device name for the CNI.
469
+
470
+ The prefix can be at most 4 characters long.
471
+
472
+ Defaults to "eni".
473
+ """
474
+ return pulumi.get(self, "veth_prefix")
475
+
476
+ @veth_prefix.setter
477
+ def veth_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
478
+ pulumi.set(self, "veth_prefix", value)
479
+
480
+ @_builtins.property
481
+ @pulumi.getter(name="warmEniTarget")
482
+ def warm_eni_target(self) -> Optional[pulumi.Input[_builtins.int]]:
483
+ """
484
+ Specifies the number of free elastic network interfaces (and all of their available IP addresses) that the ipamD daemon should attempt to keep available for pod assignment on the node.
485
+
486
+ Defaults to 1.
487
+ """
488
+ return pulumi.get(self, "warm_eni_target")
489
+
490
+ @warm_eni_target.setter
491
+ def warm_eni_target(self, value: Optional[pulumi.Input[_builtins.int]]):
492
+ pulumi.set(self, "warm_eni_target", value)
493
+
494
+ @_builtins.property
495
+ @pulumi.getter(name="warmIpTarget")
496
+ def warm_ip_target(self) -> Optional[pulumi.Input[_builtins.int]]:
497
+ """
498
+ Specifies the number of free IP addresses that the ipamD daemon should attempt to keep available for pod assignment on the node.
499
+ """
500
+ return pulumi.get(self, "warm_ip_target")
501
+
502
+ @warm_ip_target.setter
503
+ def warm_ip_target(self, value: Optional[pulumi.Input[_builtins.int]]):
504
+ pulumi.set(self, "warm_ip_target", value)
505
+
506
+ @_builtins.property
507
+ @pulumi.getter(name="warmPrefixTarget")
508
+ def warm_prefix_target(self) -> Optional[pulumi.Input[_builtins.int]]:
509
+ """
510
+ WARM_PREFIX_TARGET will allocate one full (/28) prefix even if a single IP is consumed with the existing prefix. Ref: https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/prefix-and-ip-target.md
511
+ """
512
+ return pulumi.get(self, "warm_prefix_target")
513
+
514
+ @warm_prefix_target.setter
515
+ def warm_prefix_target(self, value: Optional[pulumi.Input[_builtins.int]]):
516
+ pulumi.set(self, "warm_prefix_target", value)
517
+
518
+
519
+ @pulumi.type_token("eks:index:VpcCniAddon")
520
+ class VpcCniAddon(pulumi.ComponentResource):
521
+ @overload
522
+ def __init__(__self__,
523
+ resource_name: str,
524
+ opts: Optional[pulumi.ResourceOptions] = None,
525
+ addon_version: Optional[pulumi.Input[_builtins.str]] = None,
526
+ cluster_name: Optional[pulumi.Input[_builtins.str]] = None,
527
+ cluster_version: Optional[pulumi.Input[_builtins.str]] = None,
528
+ cni_configure_rpfilter: Optional[pulumi.Input[_builtins.bool]] = None,
529
+ cni_custom_network_cfg: Optional[pulumi.Input[_builtins.bool]] = None,
530
+ cni_external_snat: Optional[pulumi.Input[_builtins.bool]] = None,
531
+ configuration_values: Optional[pulumi.Input[Mapping[str, Any]]] = None,
532
+ custom_network_config: Optional[pulumi.Input[_builtins.bool]] = None,
533
+ disable_tcp_early_demux: Optional[pulumi.Input[_builtins.bool]] = None,
534
+ enable_network_policy: Optional[pulumi.Input[_builtins.bool]] = None,
535
+ enable_pod_eni: Optional[pulumi.Input[_builtins.bool]] = None,
536
+ enable_prefix_delegation: Optional[pulumi.Input[_builtins.bool]] = None,
537
+ eni_config_label_def: Optional[pulumi.Input[_builtins.str]] = None,
538
+ eni_mtu: Optional[pulumi.Input[_builtins.int]] = None,
539
+ external_snat: Optional[pulumi.Input[_builtins.bool]] = None,
540
+ log_file: Optional[pulumi.Input[_builtins.str]] = None,
541
+ log_level: Optional[pulumi.Input[_builtins.str]] = None,
542
+ node_port_support: Optional[pulumi.Input[_builtins.bool]] = None,
543
+ resolve_conflicts_on_create: Optional['ResolveConflictsOnCreate'] = None,
544
+ resolve_conflicts_on_update: Optional['ResolveConflictsOnUpdate'] = None,
545
+ security_context_privileged: Optional[pulumi.Input[_builtins.bool]] = None,
546
+ service_account_role_arn: Optional[pulumi.Input[_builtins.str]] = None,
547
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]] = None,
548
+ veth_prefix: Optional[pulumi.Input[_builtins.str]] = None,
549
+ warm_eni_target: Optional[pulumi.Input[_builtins.int]] = None,
550
+ warm_ip_target: Optional[pulumi.Input[_builtins.int]] = None,
551
+ warm_prefix_target: Optional[pulumi.Input[_builtins.int]] = None,
552
+ __props__=None):
553
+ """
554
+ VpcCniAddon manages the configuration of the Amazon VPC CNI plugin for Kubernetes by leveraging the EKS managed add-on.
555
+ For more information see: https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html
556
+
557
+ :param str resource_name: The name of the resource.
558
+ :param pulumi.ResourceOptions opts: Options for the resource.
559
+ :param pulumi.Input[_builtins.str] addon_version: The version of the addon to use. If not specified, the latest version of the addon for the cluster's Kubernetes version will be used.
560
+ :param pulumi.Input[_builtins.str] cluster_name: The name of the EKS cluster.
561
+ :param pulumi.Input[_builtins.str] cluster_version: The Kubernetes version of the cluster. This is used to determine the addon version to use if `addonVersion` is not specified.
562
+ :param pulumi.Input[_builtins.bool] cni_configure_rpfilter: Specifies whether ipamd should configure rp filter for primary interface. Default is `false`.
563
+ :param pulumi.Input[_builtins.bool] cni_custom_network_cfg: Specifies that your pods may use subnets and security groups that are independent of your worker node's VPC configuration. By default, pods share the same subnet and security groups as the worker node's primary interface. Setting this variable to true causes ipamd to use the security groups and VPC subnet in a worker node's ENIConfig for elastic network interface allocation. You must create an ENIConfig custom resource for each subnet that your pods will reside in, and then annotate or label each worker node to use a specific ENIConfig (multiple worker nodes can be annotated or labelled with the same ENIConfig). Worker nodes can only be annotated with a single ENIConfig at a time, and the subnet in the ENIConfig must belong to the same Availability Zone that the worker node resides in. For more information, see CNI Custom Networking in the Amazon EKS User Guide. Default is `false`
564
+ :param pulumi.Input[_builtins.bool] cni_external_snat: Specifies whether an external NAT gateway should be used to provide SNAT of secondary ENI IP addresses. If set to true, the SNAT iptables rule and off-VPC IP rule are not applied, and these rules are removed if they have already been applied. Disable SNAT if you need to allow inbound communication to your pods from external VPNs, direct connections, and external VPCs, and your pods do not need to access the Internet directly via an Internet Gateway. However, your nodes must be running in a private subnet and connected to the internet through an AWS NAT Gateway or another external NAT device. Default is `false`
565
+ :param pulumi.Input[Mapping[str, Any]] configuration_values: Custom configuration values for the vpc-cni addon. This object must match the schema derived from [describe-addon-configuration](https://docs.aws.amazon.com/cli/latest/reference/eks/describe-addon-configuration.html).
566
+ :param pulumi.Input[_builtins.bool] custom_network_config: Specifies that your pods may use subnets and security groups (within the same VPC as your control plane resources) that are independent of your cluster's `resourcesVpcConfig`.
567
+
568
+ Defaults to false.
569
+ :param pulumi.Input[_builtins.bool] disable_tcp_early_demux: Allows the kubelet's liveness and readiness probes to connect via TCP when pod ENI is enabled. This will slightly increase local TCP connection latency.
570
+ :param pulumi.Input[_builtins.bool] enable_network_policy: Enables using Kubernetes network policies. In Kubernetes, by default, all pod-to-pod communication is allowed. Communication can be restricted with Kubernetes NetworkPolicy objects.
571
+
572
+ See for more information: [Kubernetes Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/).
573
+ :param pulumi.Input[_builtins.bool] enable_pod_eni: Specifies whether to allow IPAMD to add the `vpc.amazonaws.com/has-trunk-attached` label to the node if the instance has capacity to attach an additional ENI. Default is `false`. If using liveness and readiness probes, you will also need to disable TCP early demux.
574
+ :param pulumi.Input[_builtins.bool] enable_prefix_delegation: IPAMD will start allocating (/28) prefixes to the ENIs with ENABLE_PREFIX_DELEGATION set to true.
575
+ :param pulumi.Input[_builtins.str] eni_config_label_def: Specifies the ENI_CONFIG_LABEL_DEF environment variable value for worker nodes. This is used to tell Kubernetes to automatically apply the ENIConfig for each Availability Zone
576
+ Ref: https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html (step 5(c))
577
+
578
+ Defaults to the official AWS CNI image in ECR.
579
+ :param pulumi.Input[_builtins.int] eni_mtu: Used to configure the MTU size for attached ENIs. The valid range is from 576 to 9001.
580
+
581
+ Defaults to 9001.
582
+ :param pulumi.Input[_builtins.bool] external_snat: Specifies whether an external NAT gateway should be used to provide SNAT of secondary ENI IP addresses. If set to true, the SNAT iptables rule and off-VPC IP rule are not applied, and these rules are removed if they have already been applied.
583
+
584
+ Defaults to false.
585
+ :param pulumi.Input[_builtins.str] log_file: Specifies the file path used for logs.
586
+
587
+ Defaults to "stdout" to emit Pod logs for `kubectl logs`.
588
+ :param pulumi.Input[_builtins.str] log_level: Specifies the log level used for logs.
589
+
590
+ Defaults to "DEBUG"
591
+ Valid values: "DEBUG", "INFO", "WARN", "ERROR", or "FATAL".
592
+ :param pulumi.Input[_builtins.bool] node_port_support: Specifies whether NodePort services are enabled on a worker node's primary network interface. This requires additional iptables rules and that the kernel's reverse path filter on the primary interface is set to loose.
593
+
594
+ Defaults to true.
595
+ :param 'ResolveConflictsOnCreate' resolve_conflicts_on_create: How to resolve field value conflicts when migrating a self-managed add-on to an Amazon EKS add-on. Valid values are `NONE` and `OVERWRITE`. For more details see the [CreateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateAddon.html) API Docs.
596
+ :param 'ResolveConflictsOnUpdate' resolve_conflicts_on_update: How to resolve field value conflicts for an Amazon EKS add-on if you've changed a value from the Amazon EKS default value. Valid values are `NONE`, `OVERWRITE`, and `PRESERVE`. For more details see the [UpdateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html) API Docs.
597
+ :param pulumi.Input[_builtins.bool] security_context_privileged: Pass privilege to containers securityContext. This is required when SELinux is enabled. This value will not be passed to the CNI config by default
598
+ :param pulumi.Input[_builtins.str] service_account_role_arn: The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role.
599
+
600
+ For more information, see [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the Amazon EKS User Guide.
601
+
602
+ Note: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see [Enabling IAM roles for service accounts on your cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) in the Amazon EKS User Guide.
603
+ :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] tags: Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
604
+ :param pulumi.Input[_builtins.str] veth_prefix: Specifies the veth prefix used to generate the host-side veth device name for the CNI.
605
+
606
+ The prefix can be at most 4 characters long.
607
+
608
+ Defaults to "eni".
609
+ :param pulumi.Input[_builtins.int] warm_eni_target: Specifies the number of free elastic network interfaces (and all of their available IP addresses) that the ipamD daemon should attempt to keep available for pod assignment on the node.
610
+
611
+ Defaults to 1.
612
+ :param pulumi.Input[_builtins.int] warm_ip_target: Specifies the number of free IP addresses that the ipamD daemon should attempt to keep available for pod assignment on the node.
613
+ :param pulumi.Input[_builtins.int] warm_prefix_target: WARM_PREFIX_TARGET will allocate one full (/28) prefix even if a single IP is consumed with the existing prefix. Ref: https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/prefix-and-ip-target.md
614
+ """
615
+ ...
616
+ @overload
617
+ def __init__(__self__,
618
+ resource_name: str,
619
+ args: VpcCniAddonArgs,
620
+ opts: Optional[pulumi.ResourceOptions] = None):
621
+ """
622
+ VpcCniAddon manages the configuration of the Amazon VPC CNI plugin for Kubernetes by leveraging the EKS managed add-on.
623
+ For more information see: https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html
624
+
625
+ :param str resource_name: The name of the resource.
626
+ :param VpcCniAddonArgs args: The arguments to use to populate this resource's properties.
627
+ :param pulumi.ResourceOptions opts: Options for the resource.
628
+ """
629
+ ...
630
+ def __init__(__self__, resource_name: str, *args, **kwargs):
631
+ resource_args, opts = _utilities.get_resource_args_opts(VpcCniAddonArgs, pulumi.ResourceOptions, *args, **kwargs)
632
+ if resource_args is not None:
633
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
634
+ else:
635
+ __self__._internal_init(resource_name, *args, **kwargs)
636
+
637
+ def _internal_init(__self__,
638
+ resource_name: str,
639
+ opts: Optional[pulumi.ResourceOptions] = None,
640
+ addon_version: Optional[pulumi.Input[_builtins.str]] = None,
641
+ cluster_name: Optional[pulumi.Input[_builtins.str]] = None,
642
+ cluster_version: Optional[pulumi.Input[_builtins.str]] = None,
643
+ cni_configure_rpfilter: Optional[pulumi.Input[_builtins.bool]] = None,
644
+ cni_custom_network_cfg: Optional[pulumi.Input[_builtins.bool]] = None,
645
+ cni_external_snat: Optional[pulumi.Input[_builtins.bool]] = None,
646
+ configuration_values: Optional[pulumi.Input[Mapping[str, Any]]] = None,
647
+ custom_network_config: Optional[pulumi.Input[_builtins.bool]] = None,
648
+ disable_tcp_early_demux: Optional[pulumi.Input[_builtins.bool]] = None,
649
+ enable_network_policy: Optional[pulumi.Input[_builtins.bool]] = None,
650
+ enable_pod_eni: Optional[pulumi.Input[_builtins.bool]] = None,
651
+ enable_prefix_delegation: Optional[pulumi.Input[_builtins.bool]] = None,
652
+ eni_config_label_def: Optional[pulumi.Input[_builtins.str]] = None,
653
+ eni_mtu: Optional[pulumi.Input[_builtins.int]] = None,
654
+ external_snat: Optional[pulumi.Input[_builtins.bool]] = None,
655
+ log_file: Optional[pulumi.Input[_builtins.str]] = None,
656
+ log_level: Optional[pulumi.Input[_builtins.str]] = None,
657
+ node_port_support: Optional[pulumi.Input[_builtins.bool]] = None,
658
+ resolve_conflicts_on_create: Optional['ResolveConflictsOnCreate'] = None,
659
+ resolve_conflicts_on_update: Optional['ResolveConflictsOnUpdate'] = None,
660
+ security_context_privileged: Optional[pulumi.Input[_builtins.bool]] = None,
661
+ service_account_role_arn: Optional[pulumi.Input[_builtins.str]] = None,
662
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]] = None,
663
+ veth_prefix: Optional[pulumi.Input[_builtins.str]] = None,
664
+ warm_eni_target: Optional[pulumi.Input[_builtins.int]] = None,
665
+ warm_ip_target: Optional[pulumi.Input[_builtins.int]] = None,
666
+ warm_prefix_target: Optional[pulumi.Input[_builtins.int]] = None,
667
+ __props__=None):
668
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
669
+ if not isinstance(opts, pulumi.ResourceOptions):
670
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
671
+ if opts.id is not None:
672
+ raise ValueError('ComponentResource classes do not support opts.id')
673
+ else:
674
+ if __props__ is not None:
675
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
676
+ __props__ = VpcCniAddonArgs.__new__(VpcCniAddonArgs)
677
+
678
+ __props__.__dict__["addon_version"] = addon_version
679
+ if cluster_name is None and not opts.urn:
680
+ raise TypeError("Missing required property 'cluster_name'")
681
+ __props__.__dict__["cluster_name"] = cluster_name
682
+ __props__.__dict__["cluster_version"] = cluster_version
683
+ __props__.__dict__["cni_configure_rpfilter"] = cni_configure_rpfilter
684
+ __props__.__dict__["cni_custom_network_cfg"] = cni_custom_network_cfg
685
+ __props__.__dict__["cni_external_snat"] = cni_external_snat
686
+ __props__.__dict__["configuration_values"] = configuration_values
687
+ __props__.__dict__["custom_network_config"] = custom_network_config
688
+ __props__.__dict__["disable_tcp_early_demux"] = disable_tcp_early_demux
689
+ __props__.__dict__["enable_network_policy"] = enable_network_policy
690
+ __props__.__dict__["enable_pod_eni"] = enable_pod_eni
691
+ __props__.__dict__["enable_prefix_delegation"] = enable_prefix_delegation
692
+ __props__.__dict__["eni_config_label_def"] = eni_config_label_def
693
+ __props__.__dict__["eni_mtu"] = eni_mtu
694
+ __props__.__dict__["external_snat"] = external_snat
695
+ __props__.__dict__["log_file"] = log_file
696
+ __props__.__dict__["log_level"] = log_level
697
+ __props__.__dict__["node_port_support"] = node_port_support
698
+ if resolve_conflicts_on_create is None:
699
+ resolve_conflicts_on_create = 'OVERWRITE'
700
+ __props__.__dict__["resolve_conflicts_on_create"] = resolve_conflicts_on_create
701
+ if resolve_conflicts_on_update is None:
702
+ resolve_conflicts_on_update = 'OVERWRITE'
703
+ __props__.__dict__["resolve_conflicts_on_update"] = resolve_conflicts_on_update
704
+ __props__.__dict__["security_context_privileged"] = security_context_privileged
705
+ __props__.__dict__["service_account_role_arn"] = service_account_role_arn
706
+ __props__.__dict__["tags"] = tags
707
+ __props__.__dict__["veth_prefix"] = veth_prefix
708
+ __props__.__dict__["warm_eni_target"] = warm_eni_target
709
+ __props__.__dict__["warm_ip_target"] = warm_ip_target
710
+ __props__.__dict__["warm_prefix_target"] = warm_prefix_target
711
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="eks:index:VpcCni")])
712
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
713
+ super(VpcCniAddon, __self__).__init__(
714
+ 'eks:index:VpcCniAddon',
715
+ resource_name,
716
+ __props__,
717
+ opts,
718
+ remote=True)
719
+