aws-cdk-lib 2.145.0__py3-none-any.whl → 2.147.0__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.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/__init__.py +12 -11
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.145.0.jsii.tgz → aws-cdk-lib@2.147.0.jsii.tgz} +0 -0
- aws_cdk/aws_apigateway/__init__.py +32 -12
- aws_cdk/aws_apigatewayv2/__init__.py +48 -2
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +142 -4
- aws_cdk/aws_appconfig/__init__.py +8 -4
- aws_cdk/aws_applicationsignals/__init__.py +1766 -0
- aws_cdk/aws_appsync/__init__.py +62 -0
- aws_cdk/aws_auditmanager/__init__.py +5 -1
- aws_cdk/aws_autoscaling/__init__.py +457 -56
- aws_cdk/aws_batch/__init__.py +215 -0
- aws_cdk/aws_bedrock/__init__.py +272 -103
- aws_cdk/aws_cloudformation/__init__.py +5 -11
- aws_cdk/aws_cloudfront/__init__.py +10 -3
- aws_cdk/aws_cloudtrail/__init__.py +56 -2
- aws_cdk/aws_codebuild/__init__.py +85 -32
- aws_cdk/aws_codepipeline/__init__.py +10 -5
- aws_cdk/aws_connect/__init__.py +86 -0
- aws_cdk/aws_datazone/__init__.py +80 -68
- aws_cdk/aws_deadline/__init__.py +603 -17
- aws_cdk/aws_ec2/__init__.py +237 -112
- aws_cdk/aws_ecs/__init__.py +123 -12
- aws_cdk/aws_eks/__init__.py +1335 -50
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +11 -5
- aws_cdk/aws_emrserverless/__init__.py +5 -5
- aws_cdk/aws_events/__init__.py +36 -16
- aws_cdk/aws_fsx/__init__.py +126 -21
- aws_cdk/aws_globalaccelerator/__init__.py +2 -1
- aws_cdk/aws_globalaccelerator_endpoints/__init__.py +35 -4
- aws_cdk/aws_glue/__init__.py +26 -0
- aws_cdk/aws_grafana/__init__.py +4 -4
- aws_cdk/aws_groundstation/__init__.py +55 -35
- aws_cdk/aws_guardduty/__init__.py +826 -0
- aws_cdk/aws_iam/__init__.py +13 -8
- aws_cdk/aws_iot/__init__.py +3 -3
- aws_cdk/aws_lambda/__init__.py +7 -5
- aws_cdk/aws_lightsail/__init__.py +1 -1
- aws_cdk/aws_location/__init__.py +10 -11
- aws_cdk/aws_mediapackagev2/__init__.py +38 -20
- aws_cdk/aws_mediatailor/__init__.py +2 -2
- aws_cdk/aws_msk/__init__.py +4 -4
- aws_cdk/aws_mwaa/__init__.py +16 -8
- aws_cdk/aws_nimblestudio/__init__.py +9 -9
- aws_cdk/aws_opensearchservice/__init__.py +11 -4
- aws_cdk/aws_opsworks/__init__.py +3 -3
- aws_cdk/aws_osis/__init__.py +33 -4
- aws_cdk/aws_pipes/__init__.py +691 -0
- aws_cdk/aws_quicksight/__init__.py +23 -21
- aws_cdk/aws_rds/__init__.py +55 -11
- aws_cdk/aws_refactorspaces/__init__.py +3 -3
- aws_cdk/aws_rolesanywhere/__init__.py +206 -3
- aws_cdk/aws_sagemaker/__init__.py +5 -2
- aws_cdk/aws_securityhub/__init__.py +163 -78
- aws_cdk/aws_securitylake/__init__.py +7 -5
- aws_cdk/aws_ses/__init__.py +117 -0
- aws_cdk/aws_simspaceweaver/__init__.py +2 -2
- aws_cdk/aws_sns/__init__.py +67 -13
- aws_cdk/aws_sqs/__init__.py +3 -3
- aws_cdk/aws_stepfunctions/__init__.py +51 -28
- aws_cdk/aws_stepfunctions_tasks/__init__.py +59 -5
- aws_cdk/aws_transfer/__init__.py +8 -2
- aws_cdk/aws_wafv2/__init__.py +10 -10
- aws_cdk/aws_workspacesweb/__init__.py +8 -8
- aws_cdk/region_info/__init__.py +6 -0
- {aws_cdk_lib-2.145.0.dist-info → aws_cdk_lib-2.147.0.dist-info}/METADATA +2 -2
- {aws_cdk_lib-2.145.0.dist-info → aws_cdk_lib-2.147.0.dist-info}/NOTICE +0 -35
- {aws_cdk_lib-2.145.0.dist-info → aws_cdk_lib-2.147.0.dist-info}/RECORD +71 -70
- {aws_cdk_lib-2.145.0.dist-info → aws_cdk_lib-2.147.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.145.0.dist-info → aws_cdk_lib-2.147.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.145.0.dist-info → aws_cdk_lib-2.147.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_eks/__init__.py
CHANGED
|
@@ -42,6 +42,8 @@ In addition, the library also supports defining Kubernetes resource manifests wi
|
|
|
42
42
|
* [Permissions and Security](#permissions-and-security)
|
|
43
43
|
|
|
44
44
|
* [AWS IAM Mapping](#aws-iam-mapping)
|
|
45
|
+
* [Access Config](#access-config)
|
|
46
|
+
* [Access Entry](#access-mapping)
|
|
45
47
|
* [Cluster Security Group](#cluster-security-group)
|
|
46
48
|
* [Node SSH Access](#node-ssh-access)
|
|
47
49
|
* [Service Accounts](#service-accounts)
|
|
@@ -1122,6 +1124,131 @@ console_read_only_role.add_to_policy(iam.PolicyStatement(
|
|
|
1122
1124
|
cluster.aws_auth.add_masters_role(console_read_only_role)
|
|
1123
1125
|
```
|
|
1124
1126
|
|
|
1127
|
+
### Access Config
|
|
1128
|
+
|
|
1129
|
+
Amazon EKS supports three modes of authentication: `CONFIG_MAP`, `API_AND_CONFIG_MAP`, and `API`. You can enable cluster
|
|
1130
|
+
to use access entry APIs by using authenticationMode `API` or `API_AND_CONFIG_MAP`. Use authenticationMode `CONFIG_MAP`
|
|
1131
|
+
to continue using aws-auth configMap exclusively. When `API_AND_CONFIG_MAP` is enabled, the cluster will source authenticated
|
|
1132
|
+
AWS IAM principals from both Amazon EKS access entry APIs and the aws-auth configMap, with priority given to the access entry API.
|
|
1133
|
+
|
|
1134
|
+
To specify the `authenticationMode`:
|
|
1135
|
+
|
|
1136
|
+
```python
|
|
1137
|
+
from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
|
|
1138
|
+
# vpc: ec2.Vpc
|
|
1139
|
+
|
|
1140
|
+
|
|
1141
|
+
eks.Cluster(self, "Cluster",
|
|
1142
|
+
vpc=vpc,
|
|
1143
|
+
version=eks.KubernetesVersion.V1_30,
|
|
1144
|
+
kubectl_layer=KubectlV30Layer(self, "KubectlLayer"),
|
|
1145
|
+
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
1146
|
+
)
|
|
1147
|
+
```
|
|
1148
|
+
|
|
1149
|
+
> **Note** - Switching authentication modes on an existing cluster is a one-way operation. You can switch from
|
|
1150
|
+
> `CONFIG_MAP` to `API_AND_CONFIG_MAP`. You can then switch from `API_AND_CONFIG_MAP` to `API`.
|
|
1151
|
+
> You cannot revert these operations in the opposite direction. Meaning you cannot switch back to
|
|
1152
|
+
> `CONFIG_MAP` or `API_AND_CONFIG_MAP` from `API`. And you cannot switch back to `CONFIG_MAP` from `API_AND_CONFIG_MAP`.
|
|
1153
|
+
|
|
1154
|
+
Read [A deep dive into simplified Amazon EKS access management controls
|
|
1155
|
+
](https://aws.amazon.com/blogs/containers/a-deep-dive-into-simplified-amazon-eks-access-management-controls/) for more details.
|
|
1156
|
+
|
|
1157
|
+
You can disable granting the cluster admin permissions to the cluster creator role on bootstrapping by setting
|
|
1158
|
+
`bootstrapClusterCreatorAdminPermissions` to false.
|
|
1159
|
+
|
|
1160
|
+
> **Note** - Switching `bootstrapClusterCreatorAdminPermissions` on an existing cluster would cause cluster replacement and should be avoided in production.
|
|
1161
|
+
|
|
1162
|
+
### Access Entry
|
|
1163
|
+
|
|
1164
|
+
An access entry is a cluster identity—directly linked to an AWS IAM principal user or role that is used to authenticate to
|
|
1165
|
+
an Amazon EKS cluster. An Amazon EKS access policy authorizes an access entry to perform specific cluster actions.
|
|
1166
|
+
|
|
1167
|
+
Access policies are Amazon EKS-specific policies that assign Kubernetes permissions to access entries. Amazon EKS supports
|
|
1168
|
+
only predefined and AWS managed policies. Access policies are not AWS IAM entities and are defined and managed by Amazon EKS.
|
|
1169
|
+
Amazon EKS access policies include permission sets that support common use cases of administration, editing, or read-only access
|
|
1170
|
+
to Kubernetes resources. See [Access Policy Permissions](https://docs.aws.amazon.com/eks/latest/userguide/access-policies.html#access-policy-permissions) for more details.
|
|
1171
|
+
|
|
1172
|
+
Use `AccessPolicy` to include predefined AWS managed policies:
|
|
1173
|
+
|
|
1174
|
+
```python
|
|
1175
|
+
# AmazonEKSClusterAdminPolicy with `cluster` scope
|
|
1176
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSClusterAdminPolicy",
|
|
1177
|
+
access_scope_type=eks.AccessScopeType.CLUSTER
|
|
1178
|
+
)
|
|
1179
|
+
# AmazonEKSAdminPolicy with `namespace` scope
|
|
1180
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
|
|
1181
|
+
access_scope_type=eks.AccessScopeType.NAMESPACE,
|
|
1182
|
+
namespaces=["foo", "bar"]
|
|
1183
|
+
)
|
|
1184
|
+
```
|
|
1185
|
+
|
|
1186
|
+
Use `grantAccess()` to grant the AccessPolicy to an IAM principal:
|
|
1187
|
+
|
|
1188
|
+
```python
|
|
1189
|
+
from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
|
|
1190
|
+
# vpc: ec2.Vpc
|
|
1191
|
+
|
|
1192
|
+
|
|
1193
|
+
cluster_admin_role = iam.Role(self, "ClusterAdminRole",
|
|
1194
|
+
assumed_by=iam.ArnPrincipal("arn_for_trusted_principal")
|
|
1195
|
+
)
|
|
1196
|
+
|
|
1197
|
+
eks_admin_role = iam.Role(self, "EKSAdminRole",
|
|
1198
|
+
assumed_by=iam.ArnPrincipal("arn_for_trusted_principal")
|
|
1199
|
+
)
|
|
1200
|
+
|
|
1201
|
+
eks_admin_view_role = iam.Role(self, "EKSAdminViewRole",
|
|
1202
|
+
assumed_by=iam.ArnPrincipal("arn_for_trusted_principal")
|
|
1203
|
+
)
|
|
1204
|
+
|
|
1205
|
+
cluster = eks.Cluster(self, "Cluster",
|
|
1206
|
+
vpc=vpc,
|
|
1207
|
+
masters_role=cluster_admin_role,
|
|
1208
|
+
version=eks.KubernetesVersion.V1_30,
|
|
1209
|
+
kubectl_layer=KubectlV30Layer(self, "KubectlLayer"),
|
|
1210
|
+
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
1211
|
+
)
|
|
1212
|
+
|
|
1213
|
+
# Cluster Admin role for this cluster
|
|
1214
|
+
cluster.grant_access("clusterAdminAccess", cluster_admin_role.role_arn, [
|
|
1215
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSClusterAdminPolicy",
|
|
1216
|
+
access_scope_type=eks.AccessScopeType.CLUSTER
|
|
1217
|
+
)
|
|
1218
|
+
])
|
|
1219
|
+
|
|
1220
|
+
# EKS Admin role for specified namespaces of this cluster
|
|
1221
|
+
cluster.grant_access("eksAdminRoleAccess", eks_admin_role.role_arn, [
|
|
1222
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
|
|
1223
|
+
access_scope_type=eks.AccessScopeType.NAMESPACE,
|
|
1224
|
+
namespaces=["foo", "bar"]
|
|
1225
|
+
)
|
|
1226
|
+
])
|
|
1227
|
+
|
|
1228
|
+
# EKS Admin Viewer role for specified namespaces of this cluster
|
|
1229
|
+
cluster.grant_access("eksAdminViewRoleAccess", eks_admin_view_role.role_arn, [
|
|
1230
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminViewPolicy",
|
|
1231
|
+
access_scope_type=eks.AccessScopeType.NAMESPACE,
|
|
1232
|
+
namespaces=["foo", "bar"]
|
|
1233
|
+
)
|
|
1234
|
+
])
|
|
1235
|
+
```
|
|
1236
|
+
|
|
1237
|
+
### Migrating from ConfigMap to Access Entry
|
|
1238
|
+
|
|
1239
|
+
If the cluster is created with the `authenticationMode` property left undefined,
|
|
1240
|
+
it will default to `CONFIG_MAP`.
|
|
1241
|
+
|
|
1242
|
+
The update path is:
|
|
1243
|
+
|
|
1244
|
+
`undefined`(`CONFIG_MAP`) -> `API_AND_CONFIG_MAP` -> `API`
|
|
1245
|
+
|
|
1246
|
+
If you have explicitly declared `AwsAuth` resources and then try to switch to the `API` mode, which no longer supports the
|
|
1247
|
+
`ConfigMap`, AWS CDK will throw an error as a protective measure to prevent you from losing all the access entries in the `ConfigMap`. In this case, you will need to remove all the declared `AwsAuth` resources explicitly and define the access entries before you are allowed to transition to the `API` mode.
|
|
1248
|
+
|
|
1249
|
+
> **Note** - This is a one-way transition. Once you switch to the `API` mode,
|
|
1250
|
+
> you will not be able to switch back. Therefore, it is crucial to ensure that you have defined all the necessary access entries before making the switch to the `API` mode.
|
|
1251
|
+
|
|
1125
1252
|
### Cluster Security Group
|
|
1126
1253
|
|
|
1127
1254
|
When you create an Amazon EKS cluster, a [cluster security group](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
|
|
@@ -1839,6 +1966,573 @@ from ..aws_lambda import ILayerVersion as _ILayerVersion_5ac127c8
|
|
|
1839
1966
|
from ..aws_s3_assets import Asset as _Asset_ac2a7e61
|
|
1840
1967
|
|
|
1841
1968
|
|
|
1969
|
+
@jsii.data_type(
|
|
1970
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessEntryAttributes",
|
|
1971
|
+
jsii_struct_bases=[],
|
|
1972
|
+
name_mapping={
|
|
1973
|
+
"access_entry_arn": "accessEntryArn",
|
|
1974
|
+
"access_entry_name": "accessEntryName",
|
|
1975
|
+
},
|
|
1976
|
+
)
|
|
1977
|
+
class AccessEntryAttributes:
|
|
1978
|
+
def __init__(
|
|
1979
|
+
self,
|
|
1980
|
+
*,
|
|
1981
|
+
access_entry_arn: builtins.str,
|
|
1982
|
+
access_entry_name: builtins.str,
|
|
1983
|
+
) -> None:
|
|
1984
|
+
'''Represents the attributes of an access entry.
|
|
1985
|
+
|
|
1986
|
+
:param access_entry_arn: The Amazon Resource Name (ARN) of the access entry.
|
|
1987
|
+
:param access_entry_name: The name of the access entry.
|
|
1988
|
+
|
|
1989
|
+
:exampleMetadata: fixture=_generated
|
|
1990
|
+
|
|
1991
|
+
Example::
|
|
1992
|
+
|
|
1993
|
+
# The code below shows an example of how to instantiate this type.
|
|
1994
|
+
# The values are placeholders you should change.
|
|
1995
|
+
from aws_cdk import aws_eks as eks
|
|
1996
|
+
|
|
1997
|
+
access_entry_attributes = eks.AccessEntryAttributes(
|
|
1998
|
+
access_entry_arn="accessEntryArn",
|
|
1999
|
+
access_entry_name="accessEntryName"
|
|
2000
|
+
)
|
|
2001
|
+
'''
|
|
2002
|
+
if __debug__:
|
|
2003
|
+
type_hints = typing.get_type_hints(_typecheckingstub__ea57d074f938dd093d38b977c20869681c2abd3bacc2931046328147dc4d8d72)
|
|
2004
|
+
check_type(argname="argument access_entry_arn", value=access_entry_arn, expected_type=type_hints["access_entry_arn"])
|
|
2005
|
+
check_type(argname="argument access_entry_name", value=access_entry_name, expected_type=type_hints["access_entry_name"])
|
|
2006
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2007
|
+
"access_entry_arn": access_entry_arn,
|
|
2008
|
+
"access_entry_name": access_entry_name,
|
|
2009
|
+
}
|
|
2010
|
+
|
|
2011
|
+
@builtins.property
|
|
2012
|
+
def access_entry_arn(self) -> builtins.str:
|
|
2013
|
+
'''The Amazon Resource Name (ARN) of the access entry.'''
|
|
2014
|
+
result = self._values.get("access_entry_arn")
|
|
2015
|
+
assert result is not None, "Required property 'access_entry_arn' is missing"
|
|
2016
|
+
return typing.cast(builtins.str, result)
|
|
2017
|
+
|
|
2018
|
+
@builtins.property
|
|
2019
|
+
def access_entry_name(self) -> builtins.str:
|
|
2020
|
+
'''The name of the access entry.'''
|
|
2021
|
+
result = self._values.get("access_entry_name")
|
|
2022
|
+
assert result is not None, "Required property 'access_entry_name' is missing"
|
|
2023
|
+
return typing.cast(builtins.str, result)
|
|
2024
|
+
|
|
2025
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
2026
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
2027
|
+
|
|
2028
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
2029
|
+
return not (rhs == self)
|
|
2030
|
+
|
|
2031
|
+
def __repr__(self) -> str:
|
|
2032
|
+
return "AccessEntryAttributes(%s)" % ", ".join(
|
|
2033
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
2034
|
+
)
|
|
2035
|
+
|
|
2036
|
+
|
|
2037
|
+
@jsii.data_type(
|
|
2038
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessEntryProps",
|
|
2039
|
+
jsii_struct_bases=[],
|
|
2040
|
+
name_mapping={
|
|
2041
|
+
"access_policies": "accessPolicies",
|
|
2042
|
+
"cluster": "cluster",
|
|
2043
|
+
"principal": "principal",
|
|
2044
|
+
"access_entry_name": "accessEntryName",
|
|
2045
|
+
"access_entry_type": "accessEntryType",
|
|
2046
|
+
},
|
|
2047
|
+
)
|
|
2048
|
+
class AccessEntryProps:
|
|
2049
|
+
def __init__(
|
|
2050
|
+
self,
|
|
2051
|
+
*,
|
|
2052
|
+
access_policies: typing.Sequence["IAccessPolicy"],
|
|
2053
|
+
cluster: "ICluster",
|
|
2054
|
+
principal: builtins.str,
|
|
2055
|
+
access_entry_name: typing.Optional[builtins.str] = None,
|
|
2056
|
+
access_entry_type: typing.Optional["AccessEntryType"] = None,
|
|
2057
|
+
) -> None:
|
|
2058
|
+
'''Represents the properties required to create an Amazon EKS access entry.
|
|
2059
|
+
|
|
2060
|
+
:param access_policies: The access policies that define the permissions and scope for the access entry.
|
|
2061
|
+
:param cluster: The Amazon EKS cluster to which the access entry applies.
|
|
2062
|
+
:param principal: The Amazon Resource Name (ARN) of the principal (user or role) to associate the access entry with.
|
|
2063
|
+
:param access_entry_name: The name of the AccessEntry. Default: - No access entry name is provided
|
|
2064
|
+
:param access_entry_type: The type of the AccessEntry. Default: STANDARD
|
|
2065
|
+
|
|
2066
|
+
:exampleMetadata: fixture=_generated
|
|
2067
|
+
|
|
2068
|
+
Example::
|
|
2069
|
+
|
|
2070
|
+
# The code below shows an example of how to instantiate this type.
|
|
2071
|
+
# The values are placeholders you should change.
|
|
2072
|
+
from aws_cdk import aws_eks as eks
|
|
2073
|
+
|
|
2074
|
+
# access_policy: eks.AccessPolicy
|
|
2075
|
+
# cluster: eks.Cluster
|
|
2076
|
+
|
|
2077
|
+
access_entry_props = eks.AccessEntryProps(
|
|
2078
|
+
access_policies=[access_policy],
|
|
2079
|
+
cluster=cluster,
|
|
2080
|
+
principal="principal",
|
|
2081
|
+
|
|
2082
|
+
# the properties below are optional
|
|
2083
|
+
access_entry_name="accessEntryName",
|
|
2084
|
+
access_entry_type=eks.AccessEntryType.STANDARD
|
|
2085
|
+
)
|
|
2086
|
+
'''
|
|
2087
|
+
if __debug__:
|
|
2088
|
+
type_hints = typing.get_type_hints(_typecheckingstub__0cc467f068aa2e977dd81e9c0227cfe45f7381ea6d31cea9c6f7f80e6d83e048)
|
|
2089
|
+
check_type(argname="argument access_policies", value=access_policies, expected_type=type_hints["access_policies"])
|
|
2090
|
+
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
2091
|
+
check_type(argname="argument principal", value=principal, expected_type=type_hints["principal"])
|
|
2092
|
+
check_type(argname="argument access_entry_name", value=access_entry_name, expected_type=type_hints["access_entry_name"])
|
|
2093
|
+
check_type(argname="argument access_entry_type", value=access_entry_type, expected_type=type_hints["access_entry_type"])
|
|
2094
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2095
|
+
"access_policies": access_policies,
|
|
2096
|
+
"cluster": cluster,
|
|
2097
|
+
"principal": principal,
|
|
2098
|
+
}
|
|
2099
|
+
if access_entry_name is not None:
|
|
2100
|
+
self._values["access_entry_name"] = access_entry_name
|
|
2101
|
+
if access_entry_type is not None:
|
|
2102
|
+
self._values["access_entry_type"] = access_entry_type
|
|
2103
|
+
|
|
2104
|
+
@builtins.property
|
|
2105
|
+
def access_policies(self) -> typing.List["IAccessPolicy"]:
|
|
2106
|
+
'''The access policies that define the permissions and scope for the access entry.'''
|
|
2107
|
+
result = self._values.get("access_policies")
|
|
2108
|
+
assert result is not None, "Required property 'access_policies' is missing"
|
|
2109
|
+
return typing.cast(typing.List["IAccessPolicy"], result)
|
|
2110
|
+
|
|
2111
|
+
@builtins.property
|
|
2112
|
+
def cluster(self) -> "ICluster":
|
|
2113
|
+
'''The Amazon EKS cluster to which the access entry applies.'''
|
|
2114
|
+
result = self._values.get("cluster")
|
|
2115
|
+
assert result is not None, "Required property 'cluster' is missing"
|
|
2116
|
+
return typing.cast("ICluster", result)
|
|
2117
|
+
|
|
2118
|
+
@builtins.property
|
|
2119
|
+
def principal(self) -> builtins.str:
|
|
2120
|
+
'''The Amazon Resource Name (ARN) of the principal (user or role) to associate the access entry with.'''
|
|
2121
|
+
result = self._values.get("principal")
|
|
2122
|
+
assert result is not None, "Required property 'principal' is missing"
|
|
2123
|
+
return typing.cast(builtins.str, result)
|
|
2124
|
+
|
|
2125
|
+
@builtins.property
|
|
2126
|
+
def access_entry_name(self) -> typing.Optional[builtins.str]:
|
|
2127
|
+
'''The name of the AccessEntry.
|
|
2128
|
+
|
|
2129
|
+
:default: - No access entry name is provided
|
|
2130
|
+
'''
|
|
2131
|
+
result = self._values.get("access_entry_name")
|
|
2132
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
2133
|
+
|
|
2134
|
+
@builtins.property
|
|
2135
|
+
def access_entry_type(self) -> typing.Optional["AccessEntryType"]:
|
|
2136
|
+
'''The type of the AccessEntry.
|
|
2137
|
+
|
|
2138
|
+
:default: STANDARD
|
|
2139
|
+
'''
|
|
2140
|
+
result = self._values.get("access_entry_type")
|
|
2141
|
+
return typing.cast(typing.Optional["AccessEntryType"], result)
|
|
2142
|
+
|
|
2143
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
2144
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
2145
|
+
|
|
2146
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
2147
|
+
return not (rhs == self)
|
|
2148
|
+
|
|
2149
|
+
def __repr__(self) -> str:
|
|
2150
|
+
return "AccessEntryProps(%s)" % ", ".join(
|
|
2151
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
2152
|
+
)
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_eks.AccessEntryType")
|
|
2156
|
+
class AccessEntryType(enum.Enum):
|
|
2157
|
+
'''Represents the different types of access entries that can be used in an Amazon EKS cluster.
|
|
2158
|
+
|
|
2159
|
+
:enum: true
|
|
2160
|
+
'''
|
|
2161
|
+
|
|
2162
|
+
STANDARD = "STANDARD"
|
|
2163
|
+
'''Represents a standard access entry.'''
|
|
2164
|
+
FARGATE_LINUX = "FARGATE_LINUX"
|
|
2165
|
+
'''Represents a Fargate Linux access entry.'''
|
|
2166
|
+
EC2_LINUX = "EC2_LINUX"
|
|
2167
|
+
'''Represents an EC2 Linux access entry.'''
|
|
2168
|
+
EC2_WINDOWS = "EC2_WINDOWS"
|
|
2169
|
+
'''Represents an EC2 Windows access entry.'''
|
|
2170
|
+
|
|
2171
|
+
|
|
2172
|
+
class AccessPolicyArn(
|
|
2173
|
+
metaclass=jsii.JSIIMeta,
|
|
2174
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessPolicyArn",
|
|
2175
|
+
):
|
|
2176
|
+
'''Represents an Amazon EKS Access Policy ARN.
|
|
2177
|
+
|
|
2178
|
+
Amazon EKS Access Policies are used to control access to Amazon EKS clusters.
|
|
2179
|
+
|
|
2180
|
+
:see: https://docs.aws.amazon.com/eks/latest/userguide/access-policies.html
|
|
2181
|
+
:exampleMetadata: fixture=_generated
|
|
2182
|
+
|
|
2183
|
+
Example::
|
|
2184
|
+
|
|
2185
|
+
# The code below shows an example of how to instantiate this type.
|
|
2186
|
+
# The values are placeholders you should change.
|
|
2187
|
+
from aws_cdk import aws_eks as eks
|
|
2188
|
+
|
|
2189
|
+
access_policy_arn = eks.AccessPolicyArn.AMAZON_EKS_ADMIN_POLICY
|
|
2190
|
+
'''
|
|
2191
|
+
|
|
2192
|
+
def __init__(self, policy_name: builtins.str) -> None:
|
|
2193
|
+
'''Constructs a new instance of the ``AccessEntry`` class.
|
|
2194
|
+
|
|
2195
|
+
:param policy_name: - The name of the Amazon EKS access policy. This is used to construct the policy ARN.
|
|
2196
|
+
'''
|
|
2197
|
+
if __debug__:
|
|
2198
|
+
type_hints = typing.get_type_hints(_typecheckingstub__0ac946189967c669f9d1c47c0772f99ed1ce20197e6c76e4496836bbe19d2a72)
|
|
2199
|
+
check_type(argname="argument policy_name", value=policy_name, expected_type=type_hints["policy_name"])
|
|
2200
|
+
jsii.create(self.__class__, self, [policy_name])
|
|
2201
|
+
|
|
2202
|
+
@jsii.member(jsii_name="of")
|
|
2203
|
+
@builtins.classmethod
|
|
2204
|
+
def of(cls, policy_name: builtins.str) -> "AccessPolicyArn":
|
|
2205
|
+
'''Creates a new instance of the AccessPolicy class with the specified policy name.
|
|
2206
|
+
|
|
2207
|
+
:param policy_name: The name of the access policy.
|
|
2208
|
+
|
|
2209
|
+
:return: A new instance of the AccessPolicy class.
|
|
2210
|
+
'''
|
|
2211
|
+
if __debug__:
|
|
2212
|
+
type_hints = typing.get_type_hints(_typecheckingstub__23236f8d1dae1650ef58623c900288d55afe1fd4ead26b7b1aff290d073de854)
|
|
2213
|
+
check_type(argname="argument policy_name", value=policy_name, expected_type=type_hints["policy_name"])
|
|
2214
|
+
return typing.cast("AccessPolicyArn", jsii.sinvoke(cls, "of", [policy_name]))
|
|
2215
|
+
|
|
2216
|
+
@jsii.python.classproperty
|
|
2217
|
+
@jsii.member(jsii_name="AMAZON_EKS_ADMIN_POLICY")
|
|
2218
|
+
def AMAZON_EKS_ADMIN_POLICY(cls) -> "AccessPolicyArn":
|
|
2219
|
+
'''The Amazon EKS Admin Policy.
|
|
2220
|
+
|
|
2221
|
+
This access policy includes permissions that grant an IAM principal
|
|
2222
|
+
most permissions to resources. When associated to an access entry, its access scope is typically
|
|
2223
|
+
one or more Kubernetes namespaces.
|
|
2224
|
+
'''
|
|
2225
|
+
return typing.cast("AccessPolicyArn", jsii.sget(cls, "AMAZON_EKS_ADMIN_POLICY"))
|
|
2226
|
+
|
|
2227
|
+
@jsii.python.classproperty
|
|
2228
|
+
@jsii.member(jsii_name="AMAZON_EKS_ADMIN_VIEW_POLICY")
|
|
2229
|
+
def AMAZON_EKS_ADMIN_VIEW_POLICY(cls) -> "AccessPolicyArn":
|
|
2230
|
+
'''The Amazon EKS Admin View Policy.
|
|
2231
|
+
|
|
2232
|
+
This access policy includes permissions that grant an IAM principal
|
|
2233
|
+
access to list/view all resources in a cluster.
|
|
2234
|
+
'''
|
|
2235
|
+
return typing.cast("AccessPolicyArn", jsii.sget(cls, "AMAZON_EKS_ADMIN_VIEW_POLICY"))
|
|
2236
|
+
|
|
2237
|
+
@jsii.python.classproperty
|
|
2238
|
+
@jsii.member(jsii_name="AMAZON_EKS_CLUSTER_ADMIN_POLICY")
|
|
2239
|
+
def AMAZON_EKS_CLUSTER_ADMIN_POLICY(cls) -> "AccessPolicyArn":
|
|
2240
|
+
'''The Amazon EKS Cluster Admin Policy.
|
|
2241
|
+
|
|
2242
|
+
This access policy includes permissions that grant an IAM
|
|
2243
|
+
principal administrator access to a cluster. When associated to an access entry, its access scope
|
|
2244
|
+
is typically the cluster, rather than a Kubernetes namespace.
|
|
2245
|
+
'''
|
|
2246
|
+
return typing.cast("AccessPolicyArn", jsii.sget(cls, "AMAZON_EKS_CLUSTER_ADMIN_POLICY"))
|
|
2247
|
+
|
|
2248
|
+
@jsii.python.classproperty
|
|
2249
|
+
@jsii.member(jsii_name="AMAZON_EKS_EDIT_POLICY")
|
|
2250
|
+
def AMAZON_EKS_EDIT_POLICY(cls) -> "AccessPolicyArn":
|
|
2251
|
+
'''The Amazon EKS Edit Policy.
|
|
2252
|
+
|
|
2253
|
+
This access policy includes permissions that allow an IAM principal
|
|
2254
|
+
to edit most Kubernetes resources.
|
|
2255
|
+
'''
|
|
2256
|
+
return typing.cast("AccessPolicyArn", jsii.sget(cls, "AMAZON_EKS_EDIT_POLICY"))
|
|
2257
|
+
|
|
2258
|
+
@jsii.python.classproperty
|
|
2259
|
+
@jsii.member(jsii_name="AMAZON_EKS_VIEW_POLICY")
|
|
2260
|
+
def AMAZON_EKS_VIEW_POLICY(cls) -> "AccessPolicyArn":
|
|
2261
|
+
'''The Amazon EKS View Policy.
|
|
2262
|
+
|
|
2263
|
+
This access policy includes permissions that grant an IAM principal
|
|
2264
|
+
access to list/view all resources in a cluster.
|
|
2265
|
+
'''
|
|
2266
|
+
return typing.cast("AccessPolicyArn", jsii.sget(cls, "AMAZON_EKS_VIEW_POLICY"))
|
|
2267
|
+
|
|
2268
|
+
@builtins.property
|
|
2269
|
+
@jsii.member(jsii_name="policyArn")
|
|
2270
|
+
def policy_arn(self) -> builtins.str:
|
|
2271
|
+
'''The Amazon Resource Name (ARN) of the access policy.'''
|
|
2272
|
+
return typing.cast(builtins.str, jsii.get(self, "policyArn"))
|
|
2273
|
+
|
|
2274
|
+
@builtins.property
|
|
2275
|
+
@jsii.member(jsii_name="policyName")
|
|
2276
|
+
def policy_name(self) -> builtins.str:
|
|
2277
|
+
'''- The name of the Amazon EKS access policy.
|
|
2278
|
+
|
|
2279
|
+
This is used to construct the policy ARN.
|
|
2280
|
+
'''
|
|
2281
|
+
return typing.cast(builtins.str, jsii.get(self, "policyName"))
|
|
2282
|
+
|
|
2283
|
+
|
|
2284
|
+
@jsii.data_type(
|
|
2285
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessPolicyNameOptions",
|
|
2286
|
+
jsii_struct_bases=[],
|
|
2287
|
+
name_mapping={"access_scope_type": "accessScopeType", "namespaces": "namespaces"},
|
|
2288
|
+
)
|
|
2289
|
+
class AccessPolicyNameOptions:
|
|
2290
|
+
def __init__(
|
|
2291
|
+
self,
|
|
2292
|
+
*,
|
|
2293
|
+
access_scope_type: "AccessScopeType",
|
|
2294
|
+
namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
2295
|
+
) -> None:
|
|
2296
|
+
'''Represents the options required to create an Amazon EKS Access Policy using the ``fromAccessPolicyName()`` method.
|
|
2297
|
+
|
|
2298
|
+
:param access_scope_type: The scope of the access policy. This determines the level of access granted by the policy.
|
|
2299
|
+
:param namespaces: An optional array of Kubernetes namespaces to which the access policy applies. Default: - no specific namespaces for this scope
|
|
2300
|
+
|
|
2301
|
+
:exampleMetadata: infused
|
|
2302
|
+
|
|
2303
|
+
Example::
|
|
2304
|
+
|
|
2305
|
+
# AmazonEKSClusterAdminPolicy with `cluster` scope
|
|
2306
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSClusterAdminPolicy",
|
|
2307
|
+
access_scope_type=eks.AccessScopeType.CLUSTER
|
|
2308
|
+
)
|
|
2309
|
+
# AmazonEKSAdminPolicy with `namespace` scope
|
|
2310
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
|
|
2311
|
+
access_scope_type=eks.AccessScopeType.NAMESPACE,
|
|
2312
|
+
namespaces=["foo", "bar"]
|
|
2313
|
+
)
|
|
2314
|
+
'''
|
|
2315
|
+
if __debug__:
|
|
2316
|
+
type_hints = typing.get_type_hints(_typecheckingstub__249ef277acd24f14314e76608ae6685b8ec176bb0872ba8327c446714e5afaee)
|
|
2317
|
+
check_type(argname="argument access_scope_type", value=access_scope_type, expected_type=type_hints["access_scope_type"])
|
|
2318
|
+
check_type(argname="argument namespaces", value=namespaces, expected_type=type_hints["namespaces"])
|
|
2319
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2320
|
+
"access_scope_type": access_scope_type,
|
|
2321
|
+
}
|
|
2322
|
+
if namespaces is not None:
|
|
2323
|
+
self._values["namespaces"] = namespaces
|
|
2324
|
+
|
|
2325
|
+
@builtins.property
|
|
2326
|
+
def access_scope_type(self) -> "AccessScopeType":
|
|
2327
|
+
'''The scope of the access policy.
|
|
2328
|
+
|
|
2329
|
+
This determines the level of access granted by the policy.
|
|
2330
|
+
'''
|
|
2331
|
+
result = self._values.get("access_scope_type")
|
|
2332
|
+
assert result is not None, "Required property 'access_scope_type' is missing"
|
|
2333
|
+
return typing.cast("AccessScopeType", result)
|
|
2334
|
+
|
|
2335
|
+
@builtins.property
|
|
2336
|
+
def namespaces(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
2337
|
+
'''An optional array of Kubernetes namespaces to which the access policy applies.
|
|
2338
|
+
|
|
2339
|
+
:default: - no specific namespaces for this scope
|
|
2340
|
+
'''
|
|
2341
|
+
result = self._values.get("namespaces")
|
|
2342
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
2343
|
+
|
|
2344
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
2345
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
2346
|
+
|
|
2347
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
2348
|
+
return not (rhs == self)
|
|
2349
|
+
|
|
2350
|
+
def __repr__(self) -> str:
|
|
2351
|
+
return "AccessPolicyNameOptions(%s)" % ", ".join(
|
|
2352
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
2353
|
+
)
|
|
2354
|
+
|
|
2355
|
+
|
|
2356
|
+
@jsii.data_type(
|
|
2357
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessPolicyProps",
|
|
2358
|
+
jsii_struct_bases=[],
|
|
2359
|
+
name_mapping={"access_scope": "accessScope", "policy": "policy"},
|
|
2360
|
+
)
|
|
2361
|
+
class AccessPolicyProps:
|
|
2362
|
+
def __init__(
|
|
2363
|
+
self,
|
|
2364
|
+
*,
|
|
2365
|
+
access_scope: typing.Union["AccessScope", typing.Dict[builtins.str, typing.Any]],
|
|
2366
|
+
policy: AccessPolicyArn,
|
|
2367
|
+
) -> None:
|
|
2368
|
+
'''Properties for configuring an Amazon EKS Access Policy.
|
|
2369
|
+
|
|
2370
|
+
:param access_scope: The scope of the access policy, which determines the level of access granted.
|
|
2371
|
+
:param policy: The access policy itself, which defines the specific permissions.
|
|
2372
|
+
|
|
2373
|
+
:exampleMetadata: fixture=_generated
|
|
2374
|
+
|
|
2375
|
+
Example::
|
|
2376
|
+
|
|
2377
|
+
# The code below shows an example of how to instantiate this type.
|
|
2378
|
+
# The values are placeholders you should change.
|
|
2379
|
+
from aws_cdk import aws_eks as eks
|
|
2380
|
+
|
|
2381
|
+
# access_policy_arn: eks.AccessPolicyArn
|
|
2382
|
+
|
|
2383
|
+
access_policy_props = eks.AccessPolicyProps(
|
|
2384
|
+
access_scope=eks.AccessScope(
|
|
2385
|
+
type=eks.AccessScopeType.NAMESPACE,
|
|
2386
|
+
|
|
2387
|
+
# the properties below are optional
|
|
2388
|
+
namespaces=["namespaces"]
|
|
2389
|
+
),
|
|
2390
|
+
policy=access_policy_arn
|
|
2391
|
+
)
|
|
2392
|
+
'''
|
|
2393
|
+
if isinstance(access_scope, dict):
|
|
2394
|
+
access_scope = AccessScope(**access_scope)
|
|
2395
|
+
if __debug__:
|
|
2396
|
+
type_hints = typing.get_type_hints(_typecheckingstub__d76ffc136ce61df3ec4331aefef6219d2ab1e0d4a6c6da1cd604f5d3a29a1c20)
|
|
2397
|
+
check_type(argname="argument access_scope", value=access_scope, expected_type=type_hints["access_scope"])
|
|
2398
|
+
check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
|
|
2399
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2400
|
+
"access_scope": access_scope,
|
|
2401
|
+
"policy": policy,
|
|
2402
|
+
}
|
|
2403
|
+
|
|
2404
|
+
@builtins.property
|
|
2405
|
+
def access_scope(self) -> "AccessScope":
|
|
2406
|
+
'''The scope of the access policy, which determines the level of access granted.'''
|
|
2407
|
+
result = self._values.get("access_scope")
|
|
2408
|
+
assert result is not None, "Required property 'access_scope' is missing"
|
|
2409
|
+
return typing.cast("AccessScope", result)
|
|
2410
|
+
|
|
2411
|
+
@builtins.property
|
|
2412
|
+
def policy(self) -> AccessPolicyArn:
|
|
2413
|
+
'''The access policy itself, which defines the specific permissions.'''
|
|
2414
|
+
result = self._values.get("policy")
|
|
2415
|
+
assert result is not None, "Required property 'policy' is missing"
|
|
2416
|
+
return typing.cast(AccessPolicyArn, result)
|
|
2417
|
+
|
|
2418
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
2419
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
2420
|
+
|
|
2421
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
2422
|
+
return not (rhs == self)
|
|
2423
|
+
|
|
2424
|
+
def __repr__(self) -> str:
|
|
2425
|
+
return "AccessPolicyProps(%s)" % ", ".join(
|
|
2426
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
2427
|
+
)
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
@jsii.data_type(
|
|
2431
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessScope",
|
|
2432
|
+
jsii_struct_bases=[],
|
|
2433
|
+
name_mapping={"type": "type", "namespaces": "namespaces"},
|
|
2434
|
+
)
|
|
2435
|
+
class AccessScope:
|
|
2436
|
+
def __init__(
|
|
2437
|
+
self,
|
|
2438
|
+
*,
|
|
2439
|
+
type: "AccessScopeType",
|
|
2440
|
+
namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
2441
|
+
) -> None:
|
|
2442
|
+
'''Represents the scope of an access policy.
|
|
2443
|
+
|
|
2444
|
+
The scope defines the namespaces or cluster-level access granted by the policy.
|
|
2445
|
+
|
|
2446
|
+
:param type: The scope type of the policy, either 'namespace' or 'cluster'.
|
|
2447
|
+
:param namespaces: A Kubernetes namespace that an access policy is scoped to. A value is required if you specified namespace for Type. Default: - no specific namespaces for this scope.
|
|
2448
|
+
|
|
2449
|
+
:interface: AccessScope
|
|
2450
|
+
:property: {AccessScopeType} type - The scope type of the policy, either 'namespace' or 'cluster'.
|
|
2451
|
+
:exampleMetadata: fixture=_generated
|
|
2452
|
+
|
|
2453
|
+
Example::
|
|
2454
|
+
|
|
2455
|
+
# The code below shows an example of how to instantiate this type.
|
|
2456
|
+
# The values are placeholders you should change.
|
|
2457
|
+
from aws_cdk import aws_eks as eks
|
|
2458
|
+
|
|
2459
|
+
access_scope = eks.AccessScope(
|
|
2460
|
+
type=eks.AccessScopeType.NAMESPACE,
|
|
2461
|
+
|
|
2462
|
+
# the properties below are optional
|
|
2463
|
+
namespaces=["namespaces"]
|
|
2464
|
+
)
|
|
2465
|
+
'''
|
|
2466
|
+
if __debug__:
|
|
2467
|
+
type_hints = typing.get_type_hints(_typecheckingstub__5f979c2154a9a6bd2f77cf7ff51d6f83944d3c1290fcb70cdab0b403b6a0a8f8)
|
|
2468
|
+
check_type(argname="argument type", value=type, expected_type=type_hints["type"])
|
|
2469
|
+
check_type(argname="argument namespaces", value=namespaces, expected_type=type_hints["namespaces"])
|
|
2470
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2471
|
+
"type": type,
|
|
2472
|
+
}
|
|
2473
|
+
if namespaces is not None:
|
|
2474
|
+
self._values["namespaces"] = namespaces
|
|
2475
|
+
|
|
2476
|
+
@builtins.property
|
|
2477
|
+
def type(self) -> "AccessScopeType":
|
|
2478
|
+
'''The scope type of the policy, either 'namespace' or 'cluster'.'''
|
|
2479
|
+
result = self._values.get("type")
|
|
2480
|
+
assert result is not None, "Required property 'type' is missing"
|
|
2481
|
+
return typing.cast("AccessScopeType", result)
|
|
2482
|
+
|
|
2483
|
+
@builtins.property
|
|
2484
|
+
def namespaces(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
2485
|
+
'''A Kubernetes namespace that an access policy is scoped to.
|
|
2486
|
+
|
|
2487
|
+
A value is required if you specified
|
|
2488
|
+
namespace for Type.
|
|
2489
|
+
|
|
2490
|
+
:default: - no specific namespaces for this scope.
|
|
2491
|
+
'''
|
|
2492
|
+
result = self._values.get("namespaces")
|
|
2493
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
2494
|
+
|
|
2495
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
2496
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
2497
|
+
|
|
2498
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
2499
|
+
return not (rhs == self)
|
|
2500
|
+
|
|
2501
|
+
def __repr__(self) -> str:
|
|
2502
|
+
return "AccessScope(%s)" % ", ".join(
|
|
2503
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
2504
|
+
)
|
|
2505
|
+
|
|
2506
|
+
|
|
2507
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_eks.AccessScopeType")
|
|
2508
|
+
class AccessScopeType(enum.Enum):
|
|
2509
|
+
'''Represents the scope type of an access policy.
|
|
2510
|
+
|
|
2511
|
+
The scope type determines the level of access granted by the policy.
|
|
2512
|
+
|
|
2513
|
+
:enum: true
|
|
2514
|
+
:export: true
|
|
2515
|
+
:exampleMetadata: infused
|
|
2516
|
+
|
|
2517
|
+
Example::
|
|
2518
|
+
|
|
2519
|
+
# AmazonEKSClusterAdminPolicy with `cluster` scope
|
|
2520
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSClusterAdminPolicy",
|
|
2521
|
+
access_scope_type=eks.AccessScopeType.CLUSTER
|
|
2522
|
+
)
|
|
2523
|
+
# AmazonEKSAdminPolicy with `namespace` scope
|
|
2524
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
|
|
2525
|
+
access_scope_type=eks.AccessScopeType.NAMESPACE,
|
|
2526
|
+
namespaces=["foo", "bar"]
|
|
2527
|
+
)
|
|
2528
|
+
'''
|
|
2529
|
+
|
|
2530
|
+
NAMESPACE = "NAMESPACE"
|
|
2531
|
+
'''The policy applies to a specific namespace within the cluster.'''
|
|
2532
|
+
CLUSTER = "CLUSTER"
|
|
2533
|
+
'''The policy applies to the entire cluster.'''
|
|
2534
|
+
|
|
2535
|
+
|
|
1842
2536
|
class AlbController(
|
|
1843
2537
|
_constructs_77d1e7e8.Construct,
|
|
1844
2538
|
metaclass=jsii.JSIIMeta,
|
|
@@ -2386,6 +3080,34 @@ class AlbScheme(enum.Enum):
|
|
|
2386
3080
|
'''An internet-facing load balancer has a publicly resolvable DNS name, so it can route requests from clients over the internet to the EC2 instances that are registered with the load balancer.'''
|
|
2387
3081
|
|
|
2388
3082
|
|
|
3083
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_eks.AuthenticationMode")
|
|
3084
|
+
class AuthenticationMode(enum.Enum):
|
|
3085
|
+
'''Represents the authentication mode for an Amazon EKS cluster.
|
|
3086
|
+
|
|
3087
|
+
:exampleMetadata: infused
|
|
3088
|
+
|
|
3089
|
+
Example::
|
|
3090
|
+
|
|
3091
|
+
from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
|
|
3092
|
+
# vpc: ec2.Vpc
|
|
3093
|
+
|
|
3094
|
+
|
|
3095
|
+
eks.Cluster(self, "Cluster",
|
|
3096
|
+
vpc=vpc,
|
|
3097
|
+
version=eks.KubernetesVersion.V1_30,
|
|
3098
|
+
kubectl_layer=KubectlV30Layer(self, "KubectlLayer"),
|
|
3099
|
+
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
3100
|
+
)
|
|
3101
|
+
'''
|
|
3102
|
+
|
|
3103
|
+
CONFIG_MAP = "CONFIG_MAP"
|
|
3104
|
+
'''Authenticates using a Kubernetes ConfigMap.'''
|
|
3105
|
+
API_AND_CONFIG_MAP = "API_AND_CONFIG_MAP"
|
|
3106
|
+
'''Authenticates using both the Kubernetes API server and a ConfigMap.'''
|
|
3107
|
+
API = "API"
|
|
3108
|
+
'''Authenticates using the Kubernetes API server.'''
|
|
3109
|
+
|
|
3110
|
+
|
|
2389
3111
|
@jsii.data_type(
|
|
2390
3112
|
jsii_type="aws-cdk-lib.aws_eks.AutoScalingGroupCapacityOptions",
|
|
2391
3113
|
jsii_struct_bases=[_CommonAutoScalingGroupProps_808bbf2d],
|
|
@@ -4243,7 +4965,7 @@ class CfnAddon(
|
|
|
4243
4965
|
:param cluster_name: The name of your cluster.
|
|
4244
4966
|
:param addon_version: The version of the add-on.
|
|
4245
4967
|
:param configuration_values: The configuration values that you provided.
|
|
4246
|
-
:param pod_identity_associations: An array of
|
|
4968
|
+
:param pod_identity_associations: An array of Pod Identity Assocations owned by the Addon. Each EKS Pod Identity association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the EKS User Guide.
|
|
4247
4969
|
:param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.
|
|
4248
4970
|
:param resolve_conflicts: How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: - *None* – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. - *Overwrite* – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. - *Preserve* – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see `UpdateAddon <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html>`_ . If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.
|
|
4249
4971
|
:param 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. 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* . .. epigraph:: 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* .
|
|
@@ -4374,7 +5096,7 @@ class CfnAddon(
|
|
|
4374
5096
|
def pod_identity_associations(
|
|
4375
5097
|
self,
|
|
4376
5098
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]]:
|
|
4377
|
-
'''An array of
|
|
5099
|
+
'''An array of Pod Identity Assocations owned by the Addon.'''
|
|
4378
5100
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]], jsii.get(self, "podIdentityAssociations"))
|
|
4379
5101
|
|
|
4380
5102
|
@pod_identity_associations.setter
|
|
@@ -4456,10 +5178,10 @@ class CfnAddon(
|
|
|
4456
5178
|
role_arn: builtins.str,
|
|
4457
5179
|
service_account: builtins.str,
|
|
4458
5180
|
) -> None:
|
|
4459
|
-
'''
|
|
5181
|
+
'''Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that Amazon EC2 instance profiles provide credentials to Amazon EC2 instances.
|
|
4460
5182
|
|
|
4461
|
-
:param role_arn: The IAM role
|
|
4462
|
-
:param service_account: The Kubernetes service account
|
|
5183
|
+
:param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.
|
|
5184
|
+
:param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
|
|
4463
5185
|
|
|
4464
5186
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html
|
|
4465
5187
|
:exampleMetadata: fixture=_generated
|
|
@@ -4486,7 +5208,9 @@ class CfnAddon(
|
|
|
4486
5208
|
|
|
4487
5209
|
@builtins.property
|
|
4488
5210
|
def role_arn(self) -> builtins.str:
|
|
4489
|
-
'''The
|
|
5211
|
+
'''The Amazon Resource Name (ARN) of the IAM role to associate with the service account.
|
|
5212
|
+
|
|
5213
|
+
The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.
|
|
4490
5214
|
|
|
4491
5215
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-rolearn
|
|
4492
5216
|
'''
|
|
@@ -4496,7 +5220,7 @@ class CfnAddon(
|
|
|
4496
5220
|
|
|
4497
5221
|
@builtins.property
|
|
4498
5222
|
def service_account(self) -> builtins.str:
|
|
4499
|
-
'''The Kubernetes service account
|
|
5223
|
+
'''The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
|
|
4500
5224
|
|
|
4501
5225
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-serviceaccount
|
|
4502
5226
|
'''
|
|
@@ -4551,7 +5275,7 @@ class CfnAddonProps:
|
|
|
4551
5275
|
:param cluster_name: The name of your cluster.
|
|
4552
5276
|
:param addon_version: The version of the add-on.
|
|
4553
5277
|
:param configuration_values: The configuration values that you provided.
|
|
4554
|
-
:param pod_identity_associations: An array of
|
|
5278
|
+
:param pod_identity_associations: An array of Pod Identity Assocations owned by the Addon. Each EKS Pod Identity association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the EKS User Guide.
|
|
4555
5279
|
:param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.
|
|
4556
5280
|
:param resolve_conflicts: How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: - *None* – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. - *Overwrite* – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. - *Preserve* – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see `UpdateAddon <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html>`_ . If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.
|
|
4557
5281
|
:param 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. 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* . .. epigraph:: 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* .
|
|
@@ -4658,7 +5382,11 @@ class CfnAddonProps:
|
|
|
4658
5382
|
def pod_identity_associations(
|
|
4659
5383
|
self,
|
|
4660
5384
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]]:
|
|
4661
|
-
'''An array of
|
|
5385
|
+
'''An array of Pod Identity Assocations owned by the Addon.
|
|
5386
|
+
|
|
5387
|
+
Each EKS Pod Identity association maps a role to a service account in a namespace in the cluster.
|
|
5388
|
+
|
|
5389
|
+
For more information, see `Attach an IAM Role to an Amazon EKS add-on using Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the EKS User Guide.
|
|
4662
5390
|
|
|
4663
5391
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-podidentityassociations
|
|
4664
5392
|
'''
|
|
@@ -10907,34 +11635,144 @@ class HelmChartProps(HelmChartOptions):
|
|
|
10907
11635
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
10908
11636
|
|
|
10909
11637
|
@builtins.property
|
|
10910
|
-
def wait(self) -> typing.Optional[builtins.bool]:
|
|
10911
|
-
'''Whether or not Helm should wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful.
|
|
10912
|
-
|
|
10913
|
-
:default: - Helm will not wait before marking release as successful
|
|
10914
|
-
'''
|
|
10915
|
-
result = self._values.get("wait")
|
|
10916
|
-
return typing.cast(typing.Optional[builtins.bool], result)
|
|
11638
|
+
def wait(self) -> typing.Optional[builtins.bool]:
|
|
11639
|
+
'''Whether or not Helm should wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful.
|
|
11640
|
+
|
|
11641
|
+
:default: - Helm will not wait before marking release as successful
|
|
11642
|
+
'''
|
|
11643
|
+
result = self._values.get("wait")
|
|
11644
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
11645
|
+
|
|
11646
|
+
@builtins.property
|
|
11647
|
+
def cluster(self) -> "ICluster":
|
|
11648
|
+
'''The EKS cluster to apply this configuration to.
|
|
11649
|
+
|
|
11650
|
+
[disable-awslint:ref-via-interface]
|
|
11651
|
+
'''
|
|
11652
|
+
result = self._values.get("cluster")
|
|
11653
|
+
assert result is not None, "Required property 'cluster' is missing"
|
|
11654
|
+
return typing.cast("ICluster", result)
|
|
11655
|
+
|
|
11656
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
11657
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
11658
|
+
|
|
11659
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
11660
|
+
return not (rhs == self)
|
|
11661
|
+
|
|
11662
|
+
def __repr__(self) -> str:
|
|
11663
|
+
return "HelmChartProps(%s)" % ", ".join(
|
|
11664
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
11665
|
+
)
|
|
11666
|
+
|
|
11667
|
+
|
|
11668
|
+
@jsii.interface(jsii_type="aws-cdk-lib.aws_eks.IAccessEntry")
|
|
11669
|
+
class IAccessEntry(_IResource_c80c4260, typing_extensions.Protocol):
|
|
11670
|
+
'''Represents an access entry in an Amazon EKS cluster.
|
|
11671
|
+
|
|
11672
|
+
An access entry defines the permissions and scope for a user or role to access an Amazon EKS cluster.
|
|
11673
|
+
|
|
11674
|
+
:extends: IResource *
|
|
11675
|
+
:interface: IAccessEntry
|
|
11676
|
+
:property: {string} accessEntryArn - The Amazon Resource Name (ARN) of the access entry.
|
|
11677
|
+
'''
|
|
11678
|
+
|
|
11679
|
+
@builtins.property
|
|
11680
|
+
@jsii.member(jsii_name="accessEntryArn")
|
|
11681
|
+
def access_entry_arn(self) -> builtins.str:
|
|
11682
|
+
'''The Amazon Resource Name (ARN) of the access entry.
|
|
11683
|
+
|
|
11684
|
+
:attribute: true
|
|
11685
|
+
'''
|
|
11686
|
+
...
|
|
11687
|
+
|
|
11688
|
+
@builtins.property
|
|
11689
|
+
@jsii.member(jsii_name="accessEntryName")
|
|
11690
|
+
def access_entry_name(self) -> builtins.str:
|
|
11691
|
+
'''The name of the access entry.
|
|
11692
|
+
|
|
11693
|
+
:attribute: true
|
|
11694
|
+
'''
|
|
11695
|
+
...
|
|
11696
|
+
|
|
11697
|
+
|
|
11698
|
+
class _IAccessEntryProxy(
|
|
11699
|
+
jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
|
|
11700
|
+
):
|
|
11701
|
+
'''Represents an access entry in an Amazon EKS cluster.
|
|
11702
|
+
|
|
11703
|
+
An access entry defines the permissions and scope for a user or role to access an Amazon EKS cluster.
|
|
11704
|
+
|
|
11705
|
+
:extends: IResource *
|
|
11706
|
+
:interface: IAccessEntry
|
|
11707
|
+
:property: {string} accessEntryArn - The Amazon Resource Name (ARN) of the access entry.
|
|
11708
|
+
'''
|
|
11709
|
+
|
|
11710
|
+
__jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_eks.IAccessEntry"
|
|
11711
|
+
|
|
11712
|
+
@builtins.property
|
|
11713
|
+
@jsii.member(jsii_name="accessEntryArn")
|
|
11714
|
+
def access_entry_arn(self) -> builtins.str:
|
|
11715
|
+
'''The Amazon Resource Name (ARN) of the access entry.
|
|
11716
|
+
|
|
11717
|
+
:attribute: true
|
|
11718
|
+
'''
|
|
11719
|
+
return typing.cast(builtins.str, jsii.get(self, "accessEntryArn"))
|
|
11720
|
+
|
|
11721
|
+
@builtins.property
|
|
11722
|
+
@jsii.member(jsii_name="accessEntryName")
|
|
11723
|
+
def access_entry_name(self) -> builtins.str:
|
|
11724
|
+
'''The name of the access entry.
|
|
11725
|
+
|
|
11726
|
+
:attribute: true
|
|
11727
|
+
'''
|
|
11728
|
+
return typing.cast(builtins.str, jsii.get(self, "accessEntryName"))
|
|
11729
|
+
|
|
11730
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
11731
|
+
typing.cast(typing.Any, IAccessEntry).__jsii_proxy_class__ = lambda : _IAccessEntryProxy
|
|
11732
|
+
|
|
11733
|
+
|
|
11734
|
+
@jsii.interface(jsii_type="aws-cdk-lib.aws_eks.IAccessPolicy")
|
|
11735
|
+
class IAccessPolicy(typing_extensions.Protocol):
|
|
11736
|
+
'''Represents an access policy that defines the permissions and scope for a user or role to access an Amazon EKS cluster.
|
|
11737
|
+
|
|
11738
|
+
:interface: IAccessPolicy
|
|
11739
|
+
'''
|
|
11740
|
+
|
|
11741
|
+
@builtins.property
|
|
11742
|
+
@jsii.member(jsii_name="accessScope")
|
|
11743
|
+
def access_scope(self) -> AccessScope:
|
|
11744
|
+
'''The scope of the access policy, which determines the level of access granted.'''
|
|
11745
|
+
...
|
|
10917
11746
|
|
|
10918
11747
|
@builtins.property
|
|
10919
|
-
|
|
10920
|
-
|
|
11748
|
+
@jsii.member(jsii_name="policy")
|
|
11749
|
+
def policy(self) -> builtins.str:
|
|
11750
|
+
'''The access policy itself, which defines the specific permissions.'''
|
|
11751
|
+
...
|
|
10921
11752
|
|
|
10922
|
-
[disable-awslint:ref-via-interface]
|
|
10923
|
-
'''
|
|
10924
|
-
result = self._values.get("cluster")
|
|
10925
|
-
assert result is not None, "Required property 'cluster' is missing"
|
|
10926
|
-
return typing.cast("ICluster", result)
|
|
10927
11753
|
|
|
10928
|
-
|
|
10929
|
-
|
|
11754
|
+
class _IAccessPolicyProxy:
|
|
11755
|
+
'''Represents an access policy that defines the permissions and scope for a user or role to access an Amazon EKS cluster.
|
|
10930
11756
|
|
|
10931
|
-
|
|
10932
|
-
|
|
11757
|
+
:interface: IAccessPolicy
|
|
11758
|
+
'''
|
|
10933
11759
|
|
|
10934
|
-
|
|
10935
|
-
|
|
10936
|
-
|
|
10937
|
-
|
|
11760
|
+
__jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_eks.IAccessPolicy"
|
|
11761
|
+
|
|
11762
|
+
@builtins.property
|
|
11763
|
+
@jsii.member(jsii_name="accessScope")
|
|
11764
|
+
def access_scope(self) -> AccessScope:
|
|
11765
|
+
'''The scope of the access policy, which determines the level of access granted.'''
|
|
11766
|
+
return typing.cast(AccessScope, jsii.get(self, "accessScope"))
|
|
11767
|
+
|
|
11768
|
+
@builtins.property
|
|
11769
|
+
@jsii.member(jsii_name="policy")
|
|
11770
|
+
def policy(self) -> builtins.str:
|
|
11771
|
+
'''The access policy itself, which defines the specific permissions.'''
|
|
11772
|
+
return typing.cast(builtins.str, jsii.get(self, "policy"))
|
|
11773
|
+
|
|
11774
|
+
# Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
|
|
11775
|
+
typing.cast(typing.Any, IAccessPolicy).__jsii_proxy_class__ = lambda : _IAccessPolicyProxy
|
|
10938
11776
|
|
|
10939
11777
|
|
|
10940
11778
|
@jsii.interface(jsii_type="aws-cdk-lib.aws_eks.ICluster")
|
|
@@ -11027,6 +11865,15 @@ class ICluster(_IResource_c80c4260, _IConnectable_10015a05, typing_extensions.Pr
|
|
|
11027
11865
|
'''The VPC in which this Cluster was created.'''
|
|
11028
11866
|
...
|
|
11029
11867
|
|
|
11868
|
+
@builtins.property
|
|
11869
|
+
@jsii.member(jsii_name="authenticationMode")
|
|
11870
|
+
def authentication_mode(self) -> typing.Optional[AuthenticationMode]:
|
|
11871
|
+
'''The authentication mode for the cluster.
|
|
11872
|
+
|
|
11873
|
+
:default: AuthenticationMode.CONFIG_MAP
|
|
11874
|
+
'''
|
|
11875
|
+
...
|
|
11876
|
+
|
|
11030
11877
|
@builtins.property
|
|
11031
11878
|
@jsii.member(jsii_name="awscliLayer")
|
|
11032
11879
|
def awscli_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
@@ -11378,6 +12225,15 @@ class _IClusterProxy(
|
|
|
11378
12225
|
'''The VPC in which this Cluster was created.'''
|
|
11379
12226
|
return typing.cast(_IVpc_f30d5663, jsii.get(self, "vpc"))
|
|
11380
12227
|
|
|
12228
|
+
@builtins.property
|
|
12229
|
+
@jsii.member(jsii_name="authenticationMode")
|
|
12230
|
+
def authentication_mode(self) -> typing.Optional[AuthenticationMode]:
|
|
12231
|
+
'''The authentication mode for the cluster.
|
|
12232
|
+
|
|
12233
|
+
:default: AuthenticationMode.CONFIG_MAP
|
|
12234
|
+
'''
|
|
12235
|
+
return typing.cast(typing.Optional[AuthenticationMode], jsii.get(self, "authenticationMode"))
|
|
12236
|
+
|
|
11381
12237
|
@builtins.property
|
|
11382
12238
|
@jsii.member(jsii_name="awscliLayer")
|
|
11383
12239
|
def awscli_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
@@ -12931,15 +13787,16 @@ class KubernetesVersion(
|
|
|
12931
13787
|
|
|
12932
13788
|
Example::
|
|
12933
13789
|
|
|
12934
|
-
|
|
12935
|
-
|
|
12936
|
-
|
|
13790
|
+
# or
|
|
13791
|
+
# vpc: ec2.Vpc
|
|
13792
|
+
eks.Cluster(self, "MyCluster",
|
|
13793
|
+
kubectl_memory=Size.gibibytes(4),
|
|
13794
|
+
version=eks.KubernetesVersion.V1_30
|
|
12937
13795
|
)
|
|
12938
|
-
|
|
12939
|
-
|
|
12940
|
-
|
|
12941
|
-
|
|
12942
|
-
disk_size=100
|
|
13796
|
+
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
13797
|
+
kubectl_memory=Size.gibibytes(4),
|
|
13798
|
+
vpc=vpc,
|
|
13799
|
+
cluster_name="cluster-name"
|
|
12943
13800
|
)
|
|
12944
13801
|
'''
|
|
12945
13802
|
|
|
@@ -15232,6 +16089,204 @@ class TaintSpec:
|
|
|
15232
16089
|
)
|
|
15233
16090
|
|
|
15234
16091
|
|
|
16092
|
+
@jsii.implements(IAccessEntry)
|
|
16093
|
+
class AccessEntry(
|
|
16094
|
+
_Resource_45bc6135,
|
|
16095
|
+
metaclass=jsii.JSIIMeta,
|
|
16096
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessEntry",
|
|
16097
|
+
):
|
|
16098
|
+
'''Represents an access entry in an Amazon EKS cluster.
|
|
16099
|
+
|
|
16100
|
+
An access entry defines the permissions and scope for a user or role to access an Amazon EKS cluster.
|
|
16101
|
+
|
|
16102
|
+
:implements: IAccessEntry
|
|
16103
|
+
:exampleMetadata: fixture=_generated
|
|
16104
|
+
|
|
16105
|
+
Example::
|
|
16106
|
+
|
|
16107
|
+
# The code below shows an example of how to instantiate this type.
|
|
16108
|
+
# The values are placeholders you should change.
|
|
16109
|
+
from aws_cdk import aws_eks as eks
|
|
16110
|
+
|
|
16111
|
+
# access_policy: eks.AccessPolicy
|
|
16112
|
+
# cluster: eks.Cluster
|
|
16113
|
+
|
|
16114
|
+
access_entry = eks.AccessEntry(self, "MyAccessEntry",
|
|
16115
|
+
access_policies=[access_policy],
|
|
16116
|
+
cluster=cluster,
|
|
16117
|
+
principal="principal",
|
|
16118
|
+
|
|
16119
|
+
# the properties below are optional
|
|
16120
|
+
access_entry_name="accessEntryName",
|
|
16121
|
+
access_entry_type=eks.AccessEntryType.STANDARD
|
|
16122
|
+
)
|
|
16123
|
+
'''
|
|
16124
|
+
|
|
16125
|
+
def __init__(
|
|
16126
|
+
self,
|
|
16127
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
16128
|
+
id: builtins.str,
|
|
16129
|
+
*,
|
|
16130
|
+
access_policies: typing.Sequence[IAccessPolicy],
|
|
16131
|
+
cluster: ICluster,
|
|
16132
|
+
principal: builtins.str,
|
|
16133
|
+
access_entry_name: typing.Optional[builtins.str] = None,
|
|
16134
|
+
access_entry_type: typing.Optional[AccessEntryType] = None,
|
|
16135
|
+
) -> None:
|
|
16136
|
+
'''
|
|
16137
|
+
:param scope: -
|
|
16138
|
+
:param id: -
|
|
16139
|
+
:param access_policies: The access policies that define the permissions and scope for the access entry.
|
|
16140
|
+
:param cluster: The Amazon EKS cluster to which the access entry applies.
|
|
16141
|
+
:param principal: The Amazon Resource Name (ARN) of the principal (user or role) to associate the access entry with.
|
|
16142
|
+
:param access_entry_name: The name of the AccessEntry. Default: - No access entry name is provided
|
|
16143
|
+
:param access_entry_type: The type of the AccessEntry. Default: STANDARD
|
|
16144
|
+
'''
|
|
16145
|
+
if __debug__:
|
|
16146
|
+
type_hints = typing.get_type_hints(_typecheckingstub__76acfe0dd4f79a87279c3d9cbf3bd8c7327733233aec66908901483da7f17d5b)
|
|
16147
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
16148
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
16149
|
+
props = AccessEntryProps(
|
|
16150
|
+
access_policies=access_policies,
|
|
16151
|
+
cluster=cluster,
|
|
16152
|
+
principal=principal,
|
|
16153
|
+
access_entry_name=access_entry_name,
|
|
16154
|
+
access_entry_type=access_entry_type,
|
|
16155
|
+
)
|
|
16156
|
+
|
|
16157
|
+
jsii.create(self.__class__, self, [scope, id, props])
|
|
16158
|
+
|
|
16159
|
+
@jsii.member(jsii_name="fromAccessEntryAttributes")
|
|
16160
|
+
@builtins.classmethod
|
|
16161
|
+
def from_access_entry_attributes(
|
|
16162
|
+
cls,
|
|
16163
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
16164
|
+
id: builtins.str,
|
|
16165
|
+
*,
|
|
16166
|
+
access_entry_arn: builtins.str,
|
|
16167
|
+
access_entry_name: builtins.str,
|
|
16168
|
+
) -> IAccessEntry:
|
|
16169
|
+
'''Imports an ``AccessEntry`` from its attributes.
|
|
16170
|
+
|
|
16171
|
+
:param scope: - The parent construct.
|
|
16172
|
+
:param id: - The ID of the imported construct.
|
|
16173
|
+
:param access_entry_arn: The Amazon Resource Name (ARN) of the access entry.
|
|
16174
|
+
:param access_entry_name: The name of the access entry.
|
|
16175
|
+
|
|
16176
|
+
:return: The imported access entry.
|
|
16177
|
+
'''
|
|
16178
|
+
if __debug__:
|
|
16179
|
+
type_hints = typing.get_type_hints(_typecheckingstub__f179e9982369f73f3bb7a13ff87f073fda0da2cd11932479d54f6d69d8849141)
|
|
16180
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
16181
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
16182
|
+
attrs = AccessEntryAttributes(
|
|
16183
|
+
access_entry_arn=access_entry_arn, access_entry_name=access_entry_name
|
|
16184
|
+
)
|
|
16185
|
+
|
|
16186
|
+
return typing.cast(IAccessEntry, jsii.sinvoke(cls, "fromAccessEntryAttributes", [scope, id, attrs]))
|
|
16187
|
+
|
|
16188
|
+
@jsii.member(jsii_name="addAccessPolicies")
|
|
16189
|
+
def add_access_policies(
|
|
16190
|
+
self,
|
|
16191
|
+
new_access_policies: typing.Sequence[IAccessPolicy],
|
|
16192
|
+
) -> None:
|
|
16193
|
+
'''Add the access policies for this entry.
|
|
16194
|
+
|
|
16195
|
+
:param new_access_policies: - The new access policies to add.
|
|
16196
|
+
'''
|
|
16197
|
+
if __debug__:
|
|
16198
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e1007432e51c3db7b596578b73c0068b372fc6af638d2adb2faa12db70799372)
|
|
16199
|
+
check_type(argname="argument new_access_policies", value=new_access_policies, expected_type=type_hints["new_access_policies"])
|
|
16200
|
+
return typing.cast(None, jsii.invoke(self, "addAccessPolicies", [new_access_policies]))
|
|
16201
|
+
|
|
16202
|
+
@builtins.property
|
|
16203
|
+
@jsii.member(jsii_name="accessEntryArn")
|
|
16204
|
+
def access_entry_arn(self) -> builtins.str:
|
|
16205
|
+
'''The Amazon Resource Name (ARN) of the access entry.'''
|
|
16206
|
+
return typing.cast(builtins.str, jsii.get(self, "accessEntryArn"))
|
|
16207
|
+
|
|
16208
|
+
@builtins.property
|
|
16209
|
+
@jsii.member(jsii_name="accessEntryName")
|
|
16210
|
+
def access_entry_name(self) -> builtins.str:
|
|
16211
|
+
'''The name of the access entry.'''
|
|
16212
|
+
return typing.cast(builtins.str, jsii.get(self, "accessEntryName"))
|
|
16213
|
+
|
|
16214
|
+
|
|
16215
|
+
@jsii.implements(IAccessPolicy)
|
|
16216
|
+
class AccessPolicy(
|
|
16217
|
+
metaclass=jsii.JSIIMeta,
|
|
16218
|
+
jsii_type="aws-cdk-lib.aws_eks.AccessPolicy",
|
|
16219
|
+
):
|
|
16220
|
+
'''Represents an Amazon EKS Access Policy that implements the IAccessPolicy interface.
|
|
16221
|
+
|
|
16222
|
+
:implements: IAccessPolicy
|
|
16223
|
+
:exampleMetadata: infused
|
|
16224
|
+
|
|
16225
|
+
Example::
|
|
16226
|
+
|
|
16227
|
+
# AmazonEKSClusterAdminPolicy with `cluster` scope
|
|
16228
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSClusterAdminPolicy",
|
|
16229
|
+
access_scope_type=eks.AccessScopeType.CLUSTER
|
|
16230
|
+
)
|
|
16231
|
+
# AmazonEKSAdminPolicy with `namespace` scope
|
|
16232
|
+
eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
|
|
16233
|
+
access_scope_type=eks.AccessScopeType.NAMESPACE,
|
|
16234
|
+
namespaces=["foo", "bar"]
|
|
16235
|
+
)
|
|
16236
|
+
'''
|
|
16237
|
+
|
|
16238
|
+
def __init__(
|
|
16239
|
+
self,
|
|
16240
|
+
*,
|
|
16241
|
+
access_scope: typing.Union[AccessScope, typing.Dict[builtins.str, typing.Any]],
|
|
16242
|
+
policy: AccessPolicyArn,
|
|
16243
|
+
) -> None:
|
|
16244
|
+
'''Constructs a new instance of the AccessPolicy class.
|
|
16245
|
+
|
|
16246
|
+
:param access_scope: The scope of the access policy, which determines the level of access granted.
|
|
16247
|
+
:param policy: The access policy itself, which defines the specific permissions.
|
|
16248
|
+
'''
|
|
16249
|
+
props = AccessPolicyProps(access_scope=access_scope, policy=policy)
|
|
16250
|
+
|
|
16251
|
+
jsii.create(self.__class__, self, [props])
|
|
16252
|
+
|
|
16253
|
+
@jsii.member(jsii_name="fromAccessPolicyName")
|
|
16254
|
+
@builtins.classmethod
|
|
16255
|
+
def from_access_policy_name(
|
|
16256
|
+
cls,
|
|
16257
|
+
policy_name: builtins.str,
|
|
16258
|
+
*,
|
|
16259
|
+
access_scope_type: AccessScopeType,
|
|
16260
|
+
namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
16261
|
+
) -> IAccessPolicy:
|
|
16262
|
+
'''Import AccessPolicy by name.
|
|
16263
|
+
|
|
16264
|
+
:param policy_name: -
|
|
16265
|
+
:param access_scope_type: The scope of the access policy. This determines the level of access granted by the policy.
|
|
16266
|
+
:param namespaces: An optional array of Kubernetes namespaces to which the access policy applies. Default: - no specific namespaces for this scope
|
|
16267
|
+
'''
|
|
16268
|
+
if __debug__:
|
|
16269
|
+
type_hints = typing.get_type_hints(_typecheckingstub__a928f26a921cd1d01ec556e4421fe3bf4a1ac17a9b598a554215bfae5af842aa)
|
|
16270
|
+
check_type(argname="argument policy_name", value=policy_name, expected_type=type_hints["policy_name"])
|
|
16271
|
+
options = AccessPolicyNameOptions(
|
|
16272
|
+
access_scope_type=access_scope_type, namespaces=namespaces
|
|
16273
|
+
)
|
|
16274
|
+
|
|
16275
|
+
return typing.cast(IAccessPolicy, jsii.sinvoke(cls, "fromAccessPolicyName", [policy_name, options]))
|
|
16276
|
+
|
|
16277
|
+
@builtins.property
|
|
16278
|
+
@jsii.member(jsii_name="accessScope")
|
|
16279
|
+
def access_scope(self) -> AccessScope:
|
|
16280
|
+
'''The scope of the access policy, which determines the level of access granted.'''
|
|
16281
|
+
return typing.cast(AccessScope, jsii.get(self, "accessScope"))
|
|
16282
|
+
|
|
16283
|
+
@builtins.property
|
|
16284
|
+
@jsii.member(jsii_name="policy")
|
|
16285
|
+
def policy(self) -> builtins.str:
|
|
16286
|
+
'''The access policy itself, which defines the specific permissions.'''
|
|
16287
|
+
return typing.cast(builtins.str, jsii.get(self, "policy"))
|
|
16288
|
+
|
|
16289
|
+
|
|
15235
16290
|
@jsii.implements(ICluster)
|
|
15236
16291
|
class Cluster(
|
|
15237
16292
|
_Resource_45bc6135,
|
|
@@ -15247,18 +16302,16 @@ class Cluster(
|
|
|
15247
16302
|
|
|
15248
16303
|
Example::
|
|
15249
16304
|
|
|
15250
|
-
|
|
15251
|
-
|
|
15252
|
-
|
|
15253
|
-
|
|
15254
|
-
version=eks.KubernetesVersion.
|
|
15255
|
-
cluster_name="myEksCluster"
|
|
16305
|
+
# or
|
|
16306
|
+
# vpc: ec2.Vpc
|
|
16307
|
+
eks.Cluster(self, "MyCluster",
|
|
16308
|
+
kubectl_memory=Size.gibibytes(4),
|
|
16309
|
+
version=eks.KubernetesVersion.V1_30
|
|
15256
16310
|
)
|
|
15257
|
-
|
|
15258
|
-
|
|
15259
|
-
|
|
15260
|
-
|
|
15261
|
-
http_path="/api/v1/namespaces/default/pods"
|
|
16311
|
+
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
16312
|
+
kubectl_memory=Size.gibibytes(4),
|
|
16313
|
+
vpc=vpc,
|
|
16314
|
+
cluster_name="cluster-name"
|
|
15262
16315
|
)
|
|
15263
16316
|
'''
|
|
15264
16317
|
|
|
@@ -15267,12 +16320,14 @@ class Cluster(
|
|
|
15267
16320
|
scope: _constructs_77d1e7e8.Construct,
|
|
15268
16321
|
id: builtins.str,
|
|
15269
16322
|
*,
|
|
16323
|
+
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
15270
16324
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
15271
16325
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
15272
16326
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
15273
16327
|
kubectl_lambda_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
15274
16328
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
15275
16329
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
16330
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
15276
16331
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
15277
16332
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
15278
16333
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -15303,12 +16358,14 @@ class Cluster(
|
|
|
15303
16358
|
|
|
15304
16359
|
:param scope: a Construct, most likely a cdk.Stack created.
|
|
15305
16360
|
:param id: the id of the Construct to create.
|
|
16361
|
+
:param bootstrap_cluster_creator_admin_permissions: Whether or not IAM principal of the cluster creator was set as a cluster admin access entry during cluster creation time. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
|
|
15306
16362
|
:param default_capacity: Number of instances to allocate as an initial capacity for this cluster. Instance type can be configured through ``defaultCapacityInstanceType``, which defaults to ``m5.large``. Use ``cluster.addAutoScalingGroupCapacity`` to add additional customized capacity. Set this to ``0`` is you wish to avoid the initial capacity allocation. Default: 2
|
|
15307
16363
|
:param default_capacity_instance: The instance type to use for the default capacity. This will only be taken into account if ``defaultCapacity`` is > 0. Default: m5.large
|
|
15308
16364
|
:param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
|
|
15309
16365
|
:param kubectl_lambda_role: The IAM role to pass to the Kubectl Lambda Handler. Default: - Default Lambda IAM Execution Role
|
|
15310
16366
|
:param tags: The tags assigned to the EKS cluster. Default: - none
|
|
15311
16367
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
16368
|
+
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
15312
16369
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
15313
16370
|
:param cluster_handler_environment: Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle. Default: - No environment variables.
|
|
15314
16371
|
:param cluster_handler_security_group: A security group to associate with the Cluster Handler's Lambdas. The Cluster Handler's Lambdas are responsible for calling AWS's EKS API. Requires ``placeClusterHandlerInVpc`` to be set to true. Default: - No security group.
|
|
@@ -15340,12 +16397,14 @@ class Cluster(
|
|
|
15340
16397
|
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
15341
16398
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
15342
16399
|
props = ClusterProps(
|
|
16400
|
+
bootstrap_cluster_creator_admin_permissions=bootstrap_cluster_creator_admin_permissions,
|
|
15343
16401
|
default_capacity=default_capacity,
|
|
15344
16402
|
default_capacity_instance=default_capacity_instance,
|
|
15345
16403
|
default_capacity_type=default_capacity_type,
|
|
15346
16404
|
kubectl_lambda_role=kubectl_lambda_role,
|
|
15347
16405
|
tags=tags,
|
|
15348
16406
|
alb_controller=alb_controller,
|
|
16407
|
+
authentication_mode=authentication_mode,
|
|
15349
16408
|
awscli_layer=awscli_layer,
|
|
15350
16409
|
cluster_handler_environment=cluster_handler_environment,
|
|
15351
16410
|
cluster_handler_security_group=cluster_handler_security_group,
|
|
@@ -15933,6 +16992,30 @@ class Cluster(
|
|
|
15933
16992
|
|
|
15934
16993
|
return typing.cast(builtins.str, jsii.invoke(self, "getServiceLoadBalancerAddress", [service_name, options]))
|
|
15935
16994
|
|
|
16995
|
+
@jsii.member(jsii_name="grantAccess")
|
|
16996
|
+
def grant_access(
|
|
16997
|
+
self,
|
|
16998
|
+
id: builtins.str,
|
|
16999
|
+
principal: builtins.str,
|
|
17000
|
+
access_policies: typing.Sequence[IAccessPolicy],
|
|
17001
|
+
) -> None:
|
|
17002
|
+
'''Grants the specified IAM principal access to the EKS cluster based on the provided access policies.
|
|
17003
|
+
|
|
17004
|
+
This method creates an ``AccessEntry`` construct that grants the specified IAM principal the access permissions
|
|
17005
|
+
defined by the provided ``IAccessPolicy`` array. This allows the IAM principal to perform the actions permitted
|
|
17006
|
+
by the access policies within the EKS cluster.
|
|
17007
|
+
|
|
17008
|
+
:param id: - The ID of the ``AccessEntry`` construct to be created.
|
|
17009
|
+
:param principal: - The IAM principal (role or user) to be granted access to the EKS cluster.
|
|
17010
|
+
:param access_policies: - An array of ``IAccessPolicy`` objects that define the access permissions to be granted to the IAM principal.
|
|
17011
|
+
'''
|
|
17012
|
+
if __debug__:
|
|
17013
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c595337c9bbbcf6eb001ec015e579e32f72cb323ae83c9fa92eef98034ea8936)
|
|
17014
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
17015
|
+
check_type(argname="argument principal", value=principal, expected_type=type_hints["principal"])
|
|
17016
|
+
check_type(argname="argument access_policies", value=access_policies, expected_type=type_hints["access_policies"])
|
|
17017
|
+
return typing.cast(None, jsii.invoke(self, "grantAccess", [id, principal, access_policies]))
|
|
17018
|
+
|
|
15936
17019
|
@builtins.property
|
|
15937
17020
|
@jsii.member(jsii_name="adminRole")
|
|
15938
17021
|
def admin_role(self) -> _Role_e8c6e11f:
|
|
@@ -16070,6 +17153,19 @@ class Cluster(
|
|
|
16070
17153
|
'''
|
|
16071
17154
|
return typing.cast(typing.Optional[AlbController], jsii.get(self, "albController"))
|
|
16072
17155
|
|
|
17156
|
+
@builtins.property
|
|
17157
|
+
@jsii.member(jsii_name="authenticationMode")
|
|
17158
|
+
def authentication_mode(self) -> typing.Optional[AuthenticationMode]:
|
|
17159
|
+
'''The authentication mode for the Amazon EKS cluster.
|
|
17160
|
+
|
|
17161
|
+
The authentication mode determines how users and applications authenticate to the Kubernetes API server.
|
|
17162
|
+
|
|
17163
|
+
:default: CONFIG_MAP.
|
|
17164
|
+
|
|
17165
|
+
:property: {AuthenticationMode} [authenticationMode] - The authentication mode for the Amazon EKS cluster.
|
|
17166
|
+
'''
|
|
17167
|
+
return typing.cast(typing.Optional[AuthenticationMode], jsii.get(self, "authenticationMode"))
|
|
17168
|
+
|
|
16073
17169
|
@builtins.property
|
|
16074
17170
|
@jsii.member(jsii_name="awscliLayer")
|
|
16075
17171
|
def awscli_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
@@ -16223,6 +17319,7 @@ class Cluster(
|
|
|
16223
17319
|
"vpc": "vpc",
|
|
16224
17320
|
"vpc_subnets": "vpcSubnets",
|
|
16225
17321
|
"alb_controller": "albController",
|
|
17322
|
+
"authentication_mode": "authenticationMode",
|
|
16226
17323
|
"awscli_layer": "awscliLayer",
|
|
16227
17324
|
"cluster_handler_environment": "clusterHandlerEnvironment",
|
|
16228
17325
|
"cluster_handler_security_group": "clusterHandlerSecurityGroup",
|
|
@@ -16255,6 +17352,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16255
17352
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
16256
17353
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
16257
17354
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17355
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
16258
17356
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
16259
17357
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
16260
17358
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -16284,6 +17382,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16284
17382
|
:param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
|
|
16285
17383
|
:param vpc_subnets: Where to place EKS Control Plane ENIs. For example, to only select private subnets, supply the following: ``vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }]`` Default: - All public and private subnets
|
|
16286
17384
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
17385
|
+
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
16287
17386
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
16288
17387
|
:param cluster_handler_environment: Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle. Default: - No environment variables.
|
|
16289
17388
|
:param cluster_handler_security_group: A security group to associate with the Cluster Handler's Lambdas. The Cluster Handler's Lambdas are responsible for calling AWS's EKS API. Requires ``placeClusterHandlerInVpc`` to be set to true. Default: - No security group.
|
|
@@ -16339,6 +17438,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16339
17438
|
policy=policy,
|
|
16340
17439
|
repository="repository"
|
|
16341
17440
|
),
|
|
17441
|
+
authentication_mode=eks.AuthenticationMode.CONFIG_MAP,
|
|
16342
17442
|
awscli_layer=layer_version,
|
|
16343
17443
|
cluster_handler_environment={
|
|
16344
17444
|
"cluster_handler_environment_key": "clusterHandlerEnvironment"
|
|
@@ -16389,6 +17489,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16389
17489
|
check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
|
|
16390
17490
|
check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
|
|
16391
17491
|
check_type(argname="argument alb_controller", value=alb_controller, expected_type=type_hints["alb_controller"])
|
|
17492
|
+
check_type(argname="argument authentication_mode", value=authentication_mode, expected_type=type_hints["authentication_mode"])
|
|
16392
17493
|
check_type(argname="argument awscli_layer", value=awscli_layer, expected_type=type_hints["awscli_layer"])
|
|
16393
17494
|
check_type(argname="argument cluster_handler_environment", value=cluster_handler_environment, expected_type=type_hints["cluster_handler_environment"])
|
|
16394
17495
|
check_type(argname="argument cluster_handler_security_group", value=cluster_handler_security_group, expected_type=type_hints["cluster_handler_security_group"])
|
|
@@ -16425,6 +17526,8 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16425
17526
|
self._values["vpc_subnets"] = vpc_subnets
|
|
16426
17527
|
if alb_controller is not None:
|
|
16427
17528
|
self._values["alb_controller"] = alb_controller
|
|
17529
|
+
if authentication_mode is not None:
|
|
17530
|
+
self._values["authentication_mode"] = authentication_mode
|
|
16428
17531
|
if awscli_layer is not None:
|
|
16429
17532
|
self._values["awscli_layer"] = awscli_layer
|
|
16430
17533
|
if cluster_handler_environment is not None:
|
|
@@ -16548,6 +17651,15 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16548
17651
|
result = self._values.get("alb_controller")
|
|
16549
17652
|
return typing.cast(typing.Optional[AlbControllerOptions], result)
|
|
16550
17653
|
|
|
17654
|
+
@builtins.property
|
|
17655
|
+
def authentication_mode(self) -> typing.Optional[AuthenticationMode]:
|
|
17656
|
+
'''The desired authentication mode for the cluster.
|
|
17657
|
+
|
|
17658
|
+
:default: AuthenticationMode.CONFIG_MAP
|
|
17659
|
+
'''
|
|
17660
|
+
result = self._values.get("authentication_mode")
|
|
17661
|
+
return typing.cast(typing.Optional[AuthenticationMode], result)
|
|
17662
|
+
|
|
16551
17663
|
@builtins.property
|
|
16552
17664
|
def awscli_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
16553
17665
|
'''An AWS Lambda layer that contains the ``aws`` CLI.
|
|
@@ -16786,6 +17898,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16786
17898
|
"vpc": "vpc",
|
|
16787
17899
|
"vpc_subnets": "vpcSubnets",
|
|
16788
17900
|
"alb_controller": "albController",
|
|
17901
|
+
"authentication_mode": "authenticationMode",
|
|
16789
17902
|
"awscli_layer": "awscliLayer",
|
|
16790
17903
|
"cluster_handler_environment": "clusterHandlerEnvironment",
|
|
16791
17904
|
"cluster_handler_security_group": "clusterHandlerSecurityGroup",
|
|
@@ -16803,6 +17916,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
16803
17916
|
"prune": "prune",
|
|
16804
17917
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
16805
17918
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
17919
|
+
"bootstrap_cluster_creator_admin_permissions": "bootstrapClusterCreatorAdminPermissions",
|
|
16806
17920
|
"default_capacity": "defaultCapacity",
|
|
16807
17921
|
"default_capacity_instance": "defaultCapacityInstance",
|
|
16808
17922
|
"default_capacity_type": "defaultCapacityType",
|
|
@@ -16823,6 +17937,7 @@ class ClusterProps(ClusterOptions):
|
|
|
16823
17937
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
16824
17938
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
16825
17939
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17940
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
16826
17941
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
16827
17942
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
16828
17943
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -16840,6 +17955,7 @@ class ClusterProps(ClusterOptions):
|
|
|
16840
17955
|
prune: typing.Optional[builtins.bool] = None,
|
|
16841
17956
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
16842
17957
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
17958
|
+
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
16843
17959
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
16844
17960
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
16845
17961
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -16857,6 +17973,7 @@ class ClusterProps(ClusterOptions):
|
|
|
16857
17973
|
:param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
|
|
16858
17974
|
:param vpc_subnets: Where to place EKS Control Plane ENIs. For example, to only select private subnets, supply the following: ``vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }]`` Default: - All public and private subnets
|
|
16859
17975
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
17976
|
+
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
16860
17977
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
16861
17978
|
:param cluster_handler_environment: Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle. Default: - No environment variables.
|
|
16862
17979
|
:param cluster_handler_security_group: A security group to associate with the Cluster Handler's Lambdas. The Cluster Handler's Lambdas are responsible for calling AWS's EKS API. Requires ``placeClusterHandlerInVpc`` to be set to true. Default: - No security group.
|
|
@@ -16874,6 +17991,7 @@ class ClusterProps(ClusterOptions):
|
|
|
16874
17991
|
:param prune: Indicates whether Kubernetes resources added through ``addManifest()`` can be automatically pruned. When this is enabled (default), prune labels will be allocated and injected to each resource. These labels will then be used when issuing the ``kubectl apply`` operation with the ``--prune`` switch. Default: true
|
|
16875
17992
|
:param secrets_encryption_key: KMS secret for envelope encryption for Kubernetes secrets. Default: - By default, Kubernetes stores all secret object data within etcd and all etcd volumes used by Amazon EKS are encrypted at the disk-level using AWS-Managed encryption keys.
|
|
16876
17993
|
:param service_ipv4_cidr: The CIDR block to assign Kubernetes service IP addresses from. Default: - Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks
|
|
17994
|
+
:param bootstrap_cluster_creator_admin_permissions: Whether or not IAM principal of the cluster creator was set as a cluster admin access entry during cluster creation time. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
|
|
16877
17995
|
:param default_capacity: Number of instances to allocate as an initial capacity for this cluster. Instance type can be configured through ``defaultCapacityInstanceType``, which defaults to ``m5.large``. Use ``cluster.addAutoScalingGroupCapacity`` to add additional customized capacity. Set this to ``0`` is you wish to avoid the initial capacity allocation. Default: 2
|
|
16878
17996
|
:param default_capacity_instance: The instance type to use for the default capacity. This will only be taken into account if ``defaultCapacity`` is > 0. Default: m5.large
|
|
16879
17997
|
:param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
|
|
@@ -16909,6 +18027,7 @@ class ClusterProps(ClusterOptions):
|
|
|
16909
18027
|
check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
|
|
16910
18028
|
check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
|
|
16911
18029
|
check_type(argname="argument alb_controller", value=alb_controller, expected_type=type_hints["alb_controller"])
|
|
18030
|
+
check_type(argname="argument authentication_mode", value=authentication_mode, expected_type=type_hints["authentication_mode"])
|
|
16912
18031
|
check_type(argname="argument awscli_layer", value=awscli_layer, expected_type=type_hints["awscli_layer"])
|
|
16913
18032
|
check_type(argname="argument cluster_handler_environment", value=cluster_handler_environment, expected_type=type_hints["cluster_handler_environment"])
|
|
16914
18033
|
check_type(argname="argument cluster_handler_security_group", value=cluster_handler_security_group, expected_type=type_hints["cluster_handler_security_group"])
|
|
@@ -16926,6 +18045,7 @@ class ClusterProps(ClusterOptions):
|
|
|
16926
18045
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
16927
18046
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
16928
18047
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
18048
|
+
check_type(argname="argument bootstrap_cluster_creator_admin_permissions", value=bootstrap_cluster_creator_admin_permissions, expected_type=type_hints["bootstrap_cluster_creator_admin_permissions"])
|
|
16929
18049
|
check_type(argname="argument default_capacity", value=default_capacity, expected_type=type_hints["default_capacity"])
|
|
16930
18050
|
check_type(argname="argument default_capacity_instance", value=default_capacity_instance, expected_type=type_hints["default_capacity_instance"])
|
|
16931
18051
|
check_type(argname="argument default_capacity_type", value=default_capacity_type, expected_type=type_hints["default_capacity_type"])
|
|
@@ -16950,6 +18070,8 @@ class ClusterProps(ClusterOptions):
|
|
|
16950
18070
|
self._values["vpc_subnets"] = vpc_subnets
|
|
16951
18071
|
if alb_controller is not None:
|
|
16952
18072
|
self._values["alb_controller"] = alb_controller
|
|
18073
|
+
if authentication_mode is not None:
|
|
18074
|
+
self._values["authentication_mode"] = authentication_mode
|
|
16953
18075
|
if awscli_layer is not None:
|
|
16954
18076
|
self._values["awscli_layer"] = awscli_layer
|
|
16955
18077
|
if cluster_handler_environment is not None:
|
|
@@ -16984,6 +18106,8 @@ class ClusterProps(ClusterOptions):
|
|
|
16984
18106
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
16985
18107
|
if service_ipv4_cidr is not None:
|
|
16986
18108
|
self._values["service_ipv4_cidr"] = service_ipv4_cidr
|
|
18109
|
+
if bootstrap_cluster_creator_admin_permissions is not None:
|
|
18110
|
+
self._values["bootstrap_cluster_creator_admin_permissions"] = bootstrap_cluster_creator_admin_permissions
|
|
16987
18111
|
if default_capacity is not None:
|
|
16988
18112
|
self._values["default_capacity"] = default_capacity
|
|
16989
18113
|
if default_capacity_instance is not None:
|
|
@@ -17083,6 +18207,15 @@ class ClusterProps(ClusterOptions):
|
|
|
17083
18207
|
result = self._values.get("alb_controller")
|
|
17084
18208
|
return typing.cast(typing.Optional[AlbControllerOptions], result)
|
|
17085
18209
|
|
|
18210
|
+
@builtins.property
|
|
18211
|
+
def authentication_mode(self) -> typing.Optional[AuthenticationMode]:
|
|
18212
|
+
'''The desired authentication mode for the cluster.
|
|
18213
|
+
|
|
18214
|
+
:default: AuthenticationMode.CONFIG_MAP
|
|
18215
|
+
'''
|
|
18216
|
+
result = self._values.get("authentication_mode")
|
|
18217
|
+
return typing.cast(typing.Optional[AuthenticationMode], result)
|
|
18218
|
+
|
|
17086
18219
|
@builtins.property
|
|
17087
18220
|
def awscli_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
17088
18221
|
'''An AWS Lambda layer that contains the ``aws`` CLI.
|
|
@@ -17296,6 +18429,19 @@ class ClusterProps(ClusterOptions):
|
|
|
17296
18429
|
result = self._values.get("service_ipv4_cidr")
|
|
17297
18430
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
17298
18431
|
|
|
18432
|
+
@builtins.property
|
|
18433
|
+
def bootstrap_cluster_creator_admin_permissions(
|
|
18434
|
+
self,
|
|
18435
|
+
) -> typing.Optional[builtins.bool]:
|
|
18436
|
+
'''Whether or not IAM principal of the cluster creator was set as a cluster admin access entry during cluster creation time.
|
|
18437
|
+
|
|
18438
|
+
Changing this value after the cluster has been created will result in the cluster being replaced.
|
|
18439
|
+
|
|
18440
|
+
:default: true
|
|
18441
|
+
'''
|
|
18442
|
+
result = self._values.get("bootstrap_cluster_creator_admin_permissions")
|
|
18443
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
18444
|
+
|
|
17299
18445
|
@builtins.property
|
|
17300
18446
|
def default_capacity(self) -> typing.Optional[jsii.Number]:
|
|
17301
18447
|
'''Number of instances to allocate as an initial capacity for this cluster.
|
|
@@ -17389,6 +18535,7 @@ class FargateCluster(
|
|
|
17389
18535
|
*,
|
|
17390
18536
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17391
18537
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
18538
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
17392
18539
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
17393
18540
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
17394
18541
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -17420,6 +18567,7 @@ class FargateCluster(
|
|
|
17420
18567
|
:param id: -
|
|
17421
18568
|
:param default_profile: Fargate Profile to create along with the cluster. Default: - A profile called "default" with 'default' and 'kube-system' selectors will be created if this is left undefined.
|
|
17422
18569
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
18570
|
+
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
17423
18571
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
17424
18572
|
:param cluster_handler_environment: Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle. Default: - No environment variables.
|
|
17425
18573
|
:param cluster_handler_security_group: A security group to associate with the Cluster Handler's Lambdas. The Cluster Handler's Lambdas are responsible for calling AWS's EKS API. Requires ``placeClusterHandlerInVpc`` to be set to true. Default: - No security group.
|
|
@@ -17453,6 +18601,7 @@ class FargateCluster(
|
|
|
17453
18601
|
props = FargateClusterProps(
|
|
17454
18602
|
default_profile=default_profile,
|
|
17455
18603
|
alb_controller=alb_controller,
|
|
18604
|
+
authentication_mode=authentication_mode,
|
|
17456
18605
|
awscli_layer=awscli_layer,
|
|
17457
18606
|
cluster_handler_environment=cluster_handler_environment,
|
|
17458
18607
|
cluster_handler_security_group=cluster_handler_security_group,
|
|
@@ -17502,6 +18651,7 @@ class FargateCluster(
|
|
|
17502
18651
|
"vpc": "vpc",
|
|
17503
18652
|
"vpc_subnets": "vpcSubnets",
|
|
17504
18653
|
"alb_controller": "albController",
|
|
18654
|
+
"authentication_mode": "authenticationMode",
|
|
17505
18655
|
"awscli_layer": "awscliLayer",
|
|
17506
18656
|
"cluster_handler_environment": "clusterHandlerEnvironment",
|
|
17507
18657
|
"cluster_handler_security_group": "clusterHandlerSecurityGroup",
|
|
@@ -17535,6 +18685,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
17535
18685
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
17536
18686
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
17537
18687
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
18688
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
17538
18689
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
17539
18690
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
17540
18691
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -17565,6 +18716,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
17565
18716
|
:param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
|
|
17566
18717
|
:param vpc_subnets: Where to place EKS Control Plane ENIs. For example, to only select private subnets, supply the following: ``vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }]`` Default: - All public and private subnets
|
|
17567
18718
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
18719
|
+
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
17568
18720
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
17569
18721
|
:param cluster_handler_environment: Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle. Default: - No environment variables.
|
|
17570
18722
|
:param cluster_handler_security_group: A security group to associate with the Cluster Handler's Lambdas. The Cluster Handler's Lambdas are responsible for calling AWS's EKS API. Requires ``placeClusterHandlerInVpc`` to be set to true. Default: - No security group.
|
|
@@ -17607,6 +18759,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
17607
18759
|
check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
|
|
17608
18760
|
check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
|
|
17609
18761
|
check_type(argname="argument alb_controller", value=alb_controller, expected_type=type_hints["alb_controller"])
|
|
18762
|
+
check_type(argname="argument authentication_mode", value=authentication_mode, expected_type=type_hints["authentication_mode"])
|
|
17610
18763
|
check_type(argname="argument awscli_layer", value=awscli_layer, expected_type=type_hints["awscli_layer"])
|
|
17611
18764
|
check_type(argname="argument cluster_handler_environment", value=cluster_handler_environment, expected_type=type_hints["cluster_handler_environment"])
|
|
17612
18765
|
check_type(argname="argument cluster_handler_security_group", value=cluster_handler_security_group, expected_type=type_hints["cluster_handler_security_group"])
|
|
@@ -17644,6 +18797,8 @@ class FargateClusterProps(ClusterOptions):
|
|
|
17644
18797
|
self._values["vpc_subnets"] = vpc_subnets
|
|
17645
18798
|
if alb_controller is not None:
|
|
17646
18799
|
self._values["alb_controller"] = alb_controller
|
|
18800
|
+
if authentication_mode is not None:
|
|
18801
|
+
self._values["authentication_mode"] = authentication_mode
|
|
17647
18802
|
if awscli_layer is not None:
|
|
17648
18803
|
self._values["awscli_layer"] = awscli_layer
|
|
17649
18804
|
if cluster_handler_environment is not None:
|
|
@@ -17769,6 +18924,15 @@ class FargateClusterProps(ClusterOptions):
|
|
|
17769
18924
|
result = self._values.get("alb_controller")
|
|
17770
18925
|
return typing.cast(typing.Optional[AlbControllerOptions], result)
|
|
17771
18926
|
|
|
18927
|
+
@builtins.property
|
|
18928
|
+
def authentication_mode(self) -> typing.Optional[AuthenticationMode]:
|
|
18929
|
+
'''The desired authentication mode for the cluster.
|
|
18930
|
+
|
|
18931
|
+
:default: AuthenticationMode.CONFIG_MAP
|
|
18932
|
+
'''
|
|
18933
|
+
result = self._values.get("authentication_mode")
|
|
18934
|
+
return typing.cast(typing.Optional[AuthenticationMode], result)
|
|
18935
|
+
|
|
17772
18936
|
@builtins.property
|
|
17773
18937
|
def awscli_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
17774
18938
|
'''An AWS Lambda layer that contains the ``aws`` CLI.
|
|
@@ -18078,11 +19242,22 @@ class IngressLoadBalancerAddressOptions(ServiceLoadBalancerAddressOptions):
|
|
|
18078
19242
|
|
|
18079
19243
|
|
|
18080
19244
|
__all__ = [
|
|
19245
|
+
"AccessEntry",
|
|
19246
|
+
"AccessEntryAttributes",
|
|
19247
|
+
"AccessEntryProps",
|
|
19248
|
+
"AccessEntryType",
|
|
19249
|
+
"AccessPolicy",
|
|
19250
|
+
"AccessPolicyArn",
|
|
19251
|
+
"AccessPolicyNameOptions",
|
|
19252
|
+
"AccessPolicyProps",
|
|
19253
|
+
"AccessScope",
|
|
19254
|
+
"AccessScopeType",
|
|
18081
19255
|
"AlbController",
|
|
18082
19256
|
"AlbControllerOptions",
|
|
18083
19257
|
"AlbControllerProps",
|
|
18084
19258
|
"AlbControllerVersion",
|
|
18085
19259
|
"AlbScheme",
|
|
19260
|
+
"AuthenticationMode",
|
|
18086
19261
|
"AutoScalingGroupCapacityOptions",
|
|
18087
19262
|
"AutoScalingGroupOptions",
|
|
18088
19263
|
"AwsAuth",
|
|
@@ -18124,6 +19299,8 @@ __all__ = [
|
|
|
18124
19299
|
"HelmChart",
|
|
18125
19300
|
"HelmChartOptions",
|
|
18126
19301
|
"HelmChartProps",
|
|
19302
|
+
"IAccessEntry",
|
|
19303
|
+
"IAccessPolicy",
|
|
18127
19304
|
"ICluster",
|
|
18128
19305
|
"IKubectlProvider",
|
|
18129
19306
|
"INodegroup",
|
|
@@ -18162,6 +19339,61 @@ __all__ = [
|
|
|
18162
19339
|
|
|
18163
19340
|
publication.publish()
|
|
18164
19341
|
|
|
19342
|
+
def _typecheckingstub__ea57d074f938dd093d38b977c20869681c2abd3bacc2931046328147dc4d8d72(
|
|
19343
|
+
*,
|
|
19344
|
+
access_entry_arn: builtins.str,
|
|
19345
|
+
access_entry_name: builtins.str,
|
|
19346
|
+
) -> None:
|
|
19347
|
+
"""Type checking stubs"""
|
|
19348
|
+
pass
|
|
19349
|
+
|
|
19350
|
+
def _typecheckingstub__0cc467f068aa2e977dd81e9c0227cfe45f7381ea6d31cea9c6f7f80e6d83e048(
|
|
19351
|
+
*,
|
|
19352
|
+
access_policies: typing.Sequence[IAccessPolicy],
|
|
19353
|
+
cluster: ICluster,
|
|
19354
|
+
principal: builtins.str,
|
|
19355
|
+
access_entry_name: typing.Optional[builtins.str] = None,
|
|
19356
|
+
access_entry_type: typing.Optional[AccessEntryType] = None,
|
|
19357
|
+
) -> None:
|
|
19358
|
+
"""Type checking stubs"""
|
|
19359
|
+
pass
|
|
19360
|
+
|
|
19361
|
+
def _typecheckingstub__0ac946189967c669f9d1c47c0772f99ed1ce20197e6c76e4496836bbe19d2a72(
|
|
19362
|
+
policy_name: builtins.str,
|
|
19363
|
+
) -> None:
|
|
19364
|
+
"""Type checking stubs"""
|
|
19365
|
+
pass
|
|
19366
|
+
|
|
19367
|
+
def _typecheckingstub__23236f8d1dae1650ef58623c900288d55afe1fd4ead26b7b1aff290d073de854(
|
|
19368
|
+
policy_name: builtins.str,
|
|
19369
|
+
) -> None:
|
|
19370
|
+
"""Type checking stubs"""
|
|
19371
|
+
pass
|
|
19372
|
+
|
|
19373
|
+
def _typecheckingstub__249ef277acd24f14314e76608ae6685b8ec176bb0872ba8327c446714e5afaee(
|
|
19374
|
+
*,
|
|
19375
|
+
access_scope_type: AccessScopeType,
|
|
19376
|
+
namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
19377
|
+
) -> None:
|
|
19378
|
+
"""Type checking stubs"""
|
|
19379
|
+
pass
|
|
19380
|
+
|
|
19381
|
+
def _typecheckingstub__d76ffc136ce61df3ec4331aefef6219d2ab1e0d4a6c6da1cd604f5d3a29a1c20(
|
|
19382
|
+
*,
|
|
19383
|
+
access_scope: typing.Union[AccessScope, typing.Dict[builtins.str, typing.Any]],
|
|
19384
|
+
policy: AccessPolicyArn,
|
|
19385
|
+
) -> None:
|
|
19386
|
+
"""Type checking stubs"""
|
|
19387
|
+
pass
|
|
19388
|
+
|
|
19389
|
+
def _typecheckingstub__5f979c2154a9a6bd2f77cf7ff51d6f83944d3c1290fcb70cdab0b403b6a0a8f8(
|
|
19390
|
+
*,
|
|
19391
|
+
type: AccessScopeType,
|
|
19392
|
+
namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
19393
|
+
) -> None:
|
|
19394
|
+
"""Type checking stubs"""
|
|
19395
|
+
pass
|
|
19396
|
+
|
|
18165
19397
|
def _typecheckingstub__5e2ca421e3f17c3114d53057ba096ab3f90bd3b8ed6c2e0f75f61c88dd5aed4b(
|
|
18166
19398
|
scope: _constructs_77d1e7e8.Construct,
|
|
18167
19399
|
id: builtins.str,
|
|
@@ -19715,16 +20947,56 @@ def _typecheckingstub__be119d20277d81d5cacb542dcf0ff7927e8c934305e8be443e95ce321
|
|
|
19715
20947
|
"""Type checking stubs"""
|
|
19716
20948
|
pass
|
|
19717
20949
|
|
|
20950
|
+
def _typecheckingstub__76acfe0dd4f79a87279c3d9cbf3bd8c7327733233aec66908901483da7f17d5b(
|
|
20951
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
20952
|
+
id: builtins.str,
|
|
20953
|
+
*,
|
|
20954
|
+
access_policies: typing.Sequence[IAccessPolicy],
|
|
20955
|
+
cluster: ICluster,
|
|
20956
|
+
principal: builtins.str,
|
|
20957
|
+
access_entry_name: typing.Optional[builtins.str] = None,
|
|
20958
|
+
access_entry_type: typing.Optional[AccessEntryType] = None,
|
|
20959
|
+
) -> None:
|
|
20960
|
+
"""Type checking stubs"""
|
|
20961
|
+
pass
|
|
20962
|
+
|
|
20963
|
+
def _typecheckingstub__f179e9982369f73f3bb7a13ff87f073fda0da2cd11932479d54f6d69d8849141(
|
|
20964
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
20965
|
+
id: builtins.str,
|
|
20966
|
+
*,
|
|
20967
|
+
access_entry_arn: builtins.str,
|
|
20968
|
+
access_entry_name: builtins.str,
|
|
20969
|
+
) -> None:
|
|
20970
|
+
"""Type checking stubs"""
|
|
20971
|
+
pass
|
|
20972
|
+
|
|
20973
|
+
def _typecheckingstub__e1007432e51c3db7b596578b73c0068b372fc6af638d2adb2faa12db70799372(
|
|
20974
|
+
new_access_policies: typing.Sequence[IAccessPolicy],
|
|
20975
|
+
) -> None:
|
|
20976
|
+
"""Type checking stubs"""
|
|
20977
|
+
pass
|
|
20978
|
+
|
|
20979
|
+
def _typecheckingstub__a928f26a921cd1d01ec556e4421fe3bf4a1ac17a9b598a554215bfae5af842aa(
|
|
20980
|
+
policy_name: builtins.str,
|
|
20981
|
+
*,
|
|
20982
|
+
access_scope_type: AccessScopeType,
|
|
20983
|
+
namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
20984
|
+
) -> None:
|
|
20985
|
+
"""Type checking stubs"""
|
|
20986
|
+
pass
|
|
20987
|
+
|
|
19718
20988
|
def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c575cac9(
|
|
19719
20989
|
scope: _constructs_77d1e7e8.Construct,
|
|
19720
20990
|
id: builtins.str,
|
|
19721
20991
|
*,
|
|
20992
|
+
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
19722
20993
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
19723
20994
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
19724
20995
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
19725
20996
|
kubectl_lambda_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
19726
20997
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
19727
20998
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20999
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
19728
21000
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
19729
21001
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
19730
21002
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -19939,6 +21211,14 @@ def _typecheckingstub__1125553e51a293d46862ded8c9242c2427ed871d469da6db3ac9d9ace
|
|
|
19939
21211
|
"""Type checking stubs"""
|
|
19940
21212
|
pass
|
|
19941
21213
|
|
|
21214
|
+
def _typecheckingstub__c595337c9bbbcf6eb001ec015e579e32f72cb323ae83c9fa92eef98034ea8936(
|
|
21215
|
+
id: builtins.str,
|
|
21216
|
+
principal: builtins.str,
|
|
21217
|
+
access_policies: typing.Sequence[IAccessPolicy],
|
|
21218
|
+
) -> None:
|
|
21219
|
+
"""Type checking stubs"""
|
|
21220
|
+
pass
|
|
21221
|
+
|
|
19942
21222
|
def _typecheckingstub__0b45b97fda36b43e872f90f9fe4cde65de855b50b3acfd236c1f400ef40c0cb1(
|
|
19943
21223
|
*,
|
|
19944
21224
|
version: KubernetesVersion,
|
|
@@ -19950,6 +21230,7 @@ def _typecheckingstub__0b45b97fda36b43e872f90f9fe4cde65de855b50b3acfd236c1f400ef
|
|
|
19950
21230
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
19951
21231
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19952
21232
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
21233
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
19953
21234
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
19954
21235
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
19955
21236
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -19982,6 +21263,7 @@ def _typecheckingstub__ce7a73a63de29ba5e5b5cd5cabde7aca1c4bc7d119de52fc4c0f11d99
|
|
|
19982
21263
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
19983
21264
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19984
21265
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
21266
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
19985
21267
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
19986
21268
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
19987
21269
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -19999,6 +21281,7 @@ def _typecheckingstub__ce7a73a63de29ba5e5b5cd5cabde7aca1c4bc7d119de52fc4c0f11d99
|
|
|
19999
21281
|
prune: typing.Optional[builtins.bool] = None,
|
|
20000
21282
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
20001
21283
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
21284
|
+
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
20002
21285
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
20003
21286
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
20004
21287
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -20014,6 +21297,7 @@ def _typecheckingstub__ae166d791f5d5176f3386726c22bc44afedf5d336437a3513e3740387
|
|
|
20014
21297
|
*,
|
|
20015
21298
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20016
21299
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
21300
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
20017
21301
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
20018
21302
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
20019
21303
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
@@ -20054,6 +21338,7 @@ def _typecheckingstub__f11c7f989209f6213cb855d2846bb0b2b79a6a2b85eb0d65939e981df
|
|
|
20054
21338
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
20055
21339
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20056
21340
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
21341
|
+
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
20057
21342
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
20058
21343
|
cluster_handler_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
20059
21344
|
cluster_handler_security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|