cdktf-cdktf-provider-upcloud 15.8.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.
- cdktf_cdktf_provider_upcloud/__init__.py +247 -0
- cdktf_cdktf_provider_upcloud/_jsii/__init__.py +45 -0
- cdktf_cdktf_provider_upcloud/_jsii/provider-upcloud@15.8.0.jsii.tgz +0 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_hosts/__init__.py +894 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_ip_addresses/__init__.py +633 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_kubernetes_cluster/__init__.py +384 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_load_balancer_dns_challenge_domain/__init__.py +319 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_mysql_sessions/__init__.py +853 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_opensearch_indices/__init__.py +717 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_postgresql_sessions/__init__.py +1084 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_managed_database_valkey_sessions/__init__.py +898 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_policies/__init__.py +647 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_managed_object_storage_regions/__init__.py +600 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_networks/__init__.py +1093 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_storage/__init__.py +725 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_tags/__init__.py +558 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_zone/__init__.py +421 -0
- cdktf_cdktf_provider_upcloud/data_upcloud_zones/__init__.py +364 -0
- cdktf_cdktf_provider_upcloud/file_storage/__init__.py +1683 -0
- cdktf_cdktf_provider_upcloud/firewall_rules/__init__.py +1233 -0
- cdktf_cdktf_provider_upcloud/floating_ip_address/__init__.py +552 -0
- cdktf_cdktf_provider_upcloud/gateway/__init__.py +1167 -0
- cdktf_cdktf_provider_upcloud/gateway_connection/__init__.py +1299 -0
- cdktf_cdktf_provider_upcloud/gateway_connection_tunnel/__init__.py +1357 -0
- cdktf_cdktf_provider_upcloud/kubernetes_cluster/__init__.py +801 -0
- cdktf_cdktf_provider_upcloud/kubernetes_node_group/__init__.py +2674 -0
- cdktf_cdktf_provider_upcloud/loadbalancer/__init__.py +2113 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_backend/__init__.py +1426 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_backend_tls_config/__init__.py +442 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_backend_member/__init__.py +633 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_dynamic_certificate_bundle/__init__.py +459 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_frontend/__init__.py +1290 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_frontend_rule/__init__.py +11486 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_frontend_tls_config/__init__.py +442 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_manual_certificate_bundle/__init__.py +504 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_resolver/__init__.py +659 -0
- cdktf_cdktf_provider_upcloud/loadbalancer_static_backend_member/__init__.py +633 -0
- cdktf_cdktf_provider_upcloud/managed_database_logical_database/__init__.py +536 -0
- cdktf_cdktf_provider_upcloud/managed_database_mysql/__init__.py +4644 -0
- cdktf_cdktf_provider_upcloud/managed_database_opensearch/__init__.py +13812 -0
- cdktf_cdktf_provider_upcloud/managed_database_postgresql/__init__.py +7734 -0
- cdktf_cdktf_provider_upcloud/managed_database_user/__init__.py +1541 -0
- cdktf_cdktf_provider_upcloud/managed_database_valkey/__init__.py +3355 -0
- cdktf_cdktf_provider_upcloud/managed_object_storage/__init__.py +1198 -0
- cdktf_cdktf_provider_upcloud/managed_object_storage_bucket/__init__.py +409 -0
- cdktf_cdktf_provider_upcloud/managed_object_storage_custom_domain/__init__.py +446 -0
- cdktf_cdktf_provider_upcloud/managed_object_storage_policy/__init__.py +521 -0
- cdktf_cdktf_provider_upcloud/managed_object_storage_user/__init__.py +454 -0
- cdktf_cdktf_provider_upcloud/managed_object_storage_user_access_key/__init__.py +505 -0
- cdktf_cdktf_provider_upcloud/managed_object_storage_user_policy/__init__.py +485 -0
- cdktf_cdktf_provider_upcloud/network/__init__.py +1554 -0
- cdktf_cdktf_provider_upcloud/network_peering/__init__.py +1084 -0
- cdktf_cdktf_provider_upcloud/provider/__init__.py +544 -0
- cdktf_cdktf_provider_upcloud/py.typed +1 -0
- cdktf_cdktf_provider_upcloud/router/__init__.py +1030 -0
- cdktf_cdktf_provider_upcloud/server/__init__.py +4542 -0
- cdktf_cdktf_provider_upcloud/server_group/__init__.py +571 -0
- cdktf_cdktf_provider_upcloud/storage/__init__.py +1850 -0
- cdktf_cdktf_provider_upcloud/storage_backup/__init__.py +483 -0
- cdktf_cdktf_provider_upcloud/storage_template/__init__.py +478 -0
- cdktf_cdktf_provider_upcloud/tag/__init__.py +493 -0
- cdktf_cdktf_provider_upcloud-15.8.0.dist-info/LICENSE +355 -0
- cdktf_cdktf_provider_upcloud-15.8.0.dist-info/METADATA +120 -0
- cdktf_cdktf_provider_upcloud-15.8.0.dist-info/RECORD +66 -0
- cdktf_cdktf_provider_upcloud-15.8.0.dist-info/WHEEL +5 -0
- cdktf_cdktf_provider_upcloud-15.8.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,801 @@
|
|
|
1
|
+
r'''
|
|
2
|
+
# `upcloud_kubernetes_cluster`
|
|
3
|
+
|
|
4
|
+
Refer to the Terraform Registry for docs: [`upcloud_kubernetes_cluster`](https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster).
|
|
5
|
+
'''
|
|
6
|
+
from pkgutil import extend_path
|
|
7
|
+
__path__ = extend_path(__path__, __name__)
|
|
8
|
+
|
|
9
|
+
import abc
|
|
10
|
+
import builtins
|
|
11
|
+
import datetime
|
|
12
|
+
import enum
|
|
13
|
+
import typing
|
|
14
|
+
|
|
15
|
+
import jsii
|
|
16
|
+
import publication
|
|
17
|
+
import typing_extensions
|
|
18
|
+
|
|
19
|
+
import typeguard
|
|
20
|
+
from importlib.metadata import version as _metadata_package_version
|
|
21
|
+
TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
|
|
22
|
+
|
|
23
|
+
def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
|
|
24
|
+
if TYPEGUARD_MAJOR_VERSION <= 2:
|
|
25
|
+
return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
|
|
26
|
+
else:
|
|
27
|
+
if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
|
|
28
|
+
pass
|
|
29
|
+
else:
|
|
30
|
+
if TYPEGUARD_MAJOR_VERSION == 3:
|
|
31
|
+
typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
|
|
32
|
+
typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
|
|
33
|
+
else:
|
|
34
|
+
typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
|
|
35
|
+
|
|
36
|
+
from .._jsii import *
|
|
37
|
+
|
|
38
|
+
import cdktf as _cdktf_9a9027ec
|
|
39
|
+
import constructs as _constructs_77d1e7e8
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class KubernetesCluster(
|
|
43
|
+
_cdktf_9a9027ec.TerraformResource,
|
|
44
|
+
metaclass=jsii.JSIIMeta,
|
|
45
|
+
jsii_type="@cdktf/provider-upcloud.kubernetesCluster.KubernetesCluster",
|
|
46
|
+
):
|
|
47
|
+
'''Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster upcloud_kubernetes_cluster}.'''
|
|
48
|
+
|
|
49
|
+
def __init__(
|
|
50
|
+
self,
|
|
51
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
52
|
+
id: builtins.str,
|
|
53
|
+
*,
|
|
54
|
+
control_plane_ip_filter: typing.Sequence[builtins.str],
|
|
55
|
+
name: builtins.str,
|
|
56
|
+
network: builtins.str,
|
|
57
|
+
zone: builtins.str,
|
|
58
|
+
labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
59
|
+
plan: typing.Optional[builtins.str] = None,
|
|
60
|
+
private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
|
|
61
|
+
storage_encryption: typing.Optional[builtins.str] = None,
|
|
62
|
+
upgrade_strategy_type: typing.Optional[builtins.str] = None,
|
|
63
|
+
version: typing.Optional[builtins.str] = None,
|
|
64
|
+
connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
65
|
+
count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
|
|
66
|
+
depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
|
|
67
|
+
for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
|
|
68
|
+
lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
69
|
+
provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
|
|
70
|
+
provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
|
|
71
|
+
) -> None:
|
|
72
|
+
'''Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster upcloud_kubernetes_cluster} Resource.
|
|
73
|
+
|
|
74
|
+
:param scope: The scope in which to define this construct.
|
|
75
|
+
:param id: The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
76
|
+
:param control_plane_ip_filter: IP addresses or IP ranges in CIDR format which are allowed to access the cluster control plane. To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
|
|
77
|
+
:param name: Cluster name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
|
|
78
|
+
:param network: Network ID for the cluster to run in. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
|
|
79
|
+
:param zone: Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
|
|
80
|
+
:param labels: User defined key-value pairs to classify the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
|
|
81
|
+
:param plan: The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
|
|
82
|
+
:param private_node_groups: Enable private node groups. Private node groups requires a network that is routed through NAT gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
|
|
83
|
+
:param storage_encryption: Set default storage encryption strategy for all nodes in the cluster. Valid values are ``data-at-rest`` and ``none``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
|
|
84
|
+
:param upgrade_strategy_type: The upgrade strategy to use when changing the cluster ``version``. If not set, ``manual`` strategy will be used by default. When using ``manual`` strategy, you must replace the existing node-groups to update them. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#upgrade_strategy_type KubernetesCluster#upgrade_strategy_type}
|
|
85
|
+
:param version: Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``. Note that when changing the cluster version, ``upgrade_strategy`` will be taken into account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
|
|
86
|
+
:param connection:
|
|
87
|
+
:param count:
|
|
88
|
+
:param depends_on:
|
|
89
|
+
:param for_each:
|
|
90
|
+
:param lifecycle:
|
|
91
|
+
:param provider:
|
|
92
|
+
:param provisioners:
|
|
93
|
+
'''
|
|
94
|
+
if __debug__:
|
|
95
|
+
type_hints = typing.get_type_hints(_typecheckingstub__8a9b711fc0d4f95af1581b8c47ef51571908b57197927d077ddbf475a99293e0)
|
|
96
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
97
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
98
|
+
config = KubernetesClusterConfig(
|
|
99
|
+
control_plane_ip_filter=control_plane_ip_filter,
|
|
100
|
+
name=name,
|
|
101
|
+
network=network,
|
|
102
|
+
zone=zone,
|
|
103
|
+
labels=labels,
|
|
104
|
+
plan=plan,
|
|
105
|
+
private_node_groups=private_node_groups,
|
|
106
|
+
storage_encryption=storage_encryption,
|
|
107
|
+
upgrade_strategy_type=upgrade_strategy_type,
|
|
108
|
+
version=version,
|
|
109
|
+
connection=connection,
|
|
110
|
+
count=count,
|
|
111
|
+
depends_on=depends_on,
|
|
112
|
+
for_each=for_each,
|
|
113
|
+
lifecycle=lifecycle,
|
|
114
|
+
provider=provider,
|
|
115
|
+
provisioners=provisioners,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
jsii.create(self.__class__, self, [scope, id, config])
|
|
119
|
+
|
|
120
|
+
@jsii.member(jsii_name="generateConfigForImport")
|
|
121
|
+
@builtins.classmethod
|
|
122
|
+
def generate_config_for_import(
|
|
123
|
+
cls,
|
|
124
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
125
|
+
import_to_id: builtins.str,
|
|
126
|
+
import_from_id: builtins.str,
|
|
127
|
+
provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
|
|
128
|
+
) -> _cdktf_9a9027ec.ImportableResource:
|
|
129
|
+
'''Generates CDKTF code for importing a KubernetesCluster resource upon running "cdktf plan ".
|
|
130
|
+
|
|
131
|
+
:param scope: The scope in which to define this construct.
|
|
132
|
+
:param import_to_id: The construct id used in the generated config for the KubernetesCluster to import.
|
|
133
|
+
:param import_from_id: The id of the existing KubernetesCluster that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#import import section} in the documentation of this resource for the id to use
|
|
134
|
+
:param provider: ? Optional instance of the provider where the KubernetesCluster to import is found.
|
|
135
|
+
'''
|
|
136
|
+
if __debug__:
|
|
137
|
+
type_hints = typing.get_type_hints(_typecheckingstub__3920d985ca4d5b1c9f6d89b891ca033b258ae3e0ccad607090396c654e47ecae)
|
|
138
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
139
|
+
check_type(argname="argument import_to_id", value=import_to_id, expected_type=type_hints["import_to_id"])
|
|
140
|
+
check_type(argname="argument import_from_id", value=import_from_id, expected_type=type_hints["import_from_id"])
|
|
141
|
+
check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
|
|
142
|
+
return typing.cast(_cdktf_9a9027ec.ImportableResource, jsii.sinvoke(cls, "generateConfigForImport", [scope, import_to_id, import_from_id, provider]))
|
|
143
|
+
|
|
144
|
+
@jsii.member(jsii_name="resetLabels")
|
|
145
|
+
def reset_labels(self) -> None:
|
|
146
|
+
return typing.cast(None, jsii.invoke(self, "resetLabels", []))
|
|
147
|
+
|
|
148
|
+
@jsii.member(jsii_name="resetPlan")
|
|
149
|
+
def reset_plan(self) -> None:
|
|
150
|
+
return typing.cast(None, jsii.invoke(self, "resetPlan", []))
|
|
151
|
+
|
|
152
|
+
@jsii.member(jsii_name="resetPrivateNodeGroups")
|
|
153
|
+
def reset_private_node_groups(self) -> None:
|
|
154
|
+
return typing.cast(None, jsii.invoke(self, "resetPrivateNodeGroups", []))
|
|
155
|
+
|
|
156
|
+
@jsii.member(jsii_name="resetStorageEncryption")
|
|
157
|
+
def reset_storage_encryption(self) -> None:
|
|
158
|
+
return typing.cast(None, jsii.invoke(self, "resetStorageEncryption", []))
|
|
159
|
+
|
|
160
|
+
@jsii.member(jsii_name="resetUpgradeStrategyType")
|
|
161
|
+
def reset_upgrade_strategy_type(self) -> None:
|
|
162
|
+
return typing.cast(None, jsii.invoke(self, "resetUpgradeStrategyType", []))
|
|
163
|
+
|
|
164
|
+
@jsii.member(jsii_name="resetVersion")
|
|
165
|
+
def reset_version(self) -> None:
|
|
166
|
+
return typing.cast(None, jsii.invoke(self, "resetVersion", []))
|
|
167
|
+
|
|
168
|
+
@jsii.member(jsii_name="synthesizeAttributes")
|
|
169
|
+
def _synthesize_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
170
|
+
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeAttributes", []))
|
|
171
|
+
|
|
172
|
+
@jsii.member(jsii_name="synthesizeHclAttributes")
|
|
173
|
+
def _synthesize_hcl_attributes(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
174
|
+
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "synthesizeHclAttributes", []))
|
|
175
|
+
|
|
176
|
+
@jsii.python.classproperty
|
|
177
|
+
@jsii.member(jsii_name="tfResourceType")
|
|
178
|
+
def TF_RESOURCE_TYPE(cls) -> builtins.str:
|
|
179
|
+
return typing.cast(builtins.str, jsii.sget(cls, "tfResourceType"))
|
|
180
|
+
|
|
181
|
+
@builtins.property
|
|
182
|
+
@jsii.member(jsii_name="id")
|
|
183
|
+
def id(self) -> builtins.str:
|
|
184
|
+
return typing.cast(builtins.str, jsii.get(self, "id"))
|
|
185
|
+
|
|
186
|
+
@builtins.property
|
|
187
|
+
@jsii.member(jsii_name="networkCidr")
|
|
188
|
+
def network_cidr(self) -> builtins.str:
|
|
189
|
+
return typing.cast(builtins.str, jsii.get(self, "networkCidr"))
|
|
190
|
+
|
|
191
|
+
@builtins.property
|
|
192
|
+
@jsii.member(jsii_name="nodeGroups")
|
|
193
|
+
def node_groups(self) -> typing.List[builtins.str]:
|
|
194
|
+
return typing.cast(typing.List[builtins.str], jsii.get(self, "nodeGroups"))
|
|
195
|
+
|
|
196
|
+
@builtins.property
|
|
197
|
+
@jsii.member(jsii_name="state")
|
|
198
|
+
def state(self) -> builtins.str:
|
|
199
|
+
return typing.cast(builtins.str, jsii.get(self, "state"))
|
|
200
|
+
|
|
201
|
+
@builtins.property
|
|
202
|
+
@jsii.member(jsii_name="controlPlaneIpFilterInput")
|
|
203
|
+
def control_plane_ip_filter_input(
|
|
204
|
+
self,
|
|
205
|
+
) -> typing.Optional[typing.List[builtins.str]]:
|
|
206
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "controlPlaneIpFilterInput"))
|
|
207
|
+
|
|
208
|
+
@builtins.property
|
|
209
|
+
@jsii.member(jsii_name="labelsInput")
|
|
210
|
+
def labels_input(
|
|
211
|
+
self,
|
|
212
|
+
) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
213
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "labelsInput"))
|
|
214
|
+
|
|
215
|
+
@builtins.property
|
|
216
|
+
@jsii.member(jsii_name="nameInput")
|
|
217
|
+
def name_input(self) -> typing.Optional[builtins.str]:
|
|
218
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "nameInput"))
|
|
219
|
+
|
|
220
|
+
@builtins.property
|
|
221
|
+
@jsii.member(jsii_name="networkInput")
|
|
222
|
+
def network_input(self) -> typing.Optional[builtins.str]:
|
|
223
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "networkInput"))
|
|
224
|
+
|
|
225
|
+
@builtins.property
|
|
226
|
+
@jsii.member(jsii_name="planInput")
|
|
227
|
+
def plan_input(self) -> typing.Optional[builtins.str]:
|
|
228
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "planInput"))
|
|
229
|
+
|
|
230
|
+
@builtins.property
|
|
231
|
+
@jsii.member(jsii_name="privateNodeGroupsInput")
|
|
232
|
+
def private_node_groups_input(
|
|
233
|
+
self,
|
|
234
|
+
) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
|
|
235
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], jsii.get(self, "privateNodeGroupsInput"))
|
|
236
|
+
|
|
237
|
+
@builtins.property
|
|
238
|
+
@jsii.member(jsii_name="storageEncryptionInput")
|
|
239
|
+
def storage_encryption_input(self) -> typing.Optional[builtins.str]:
|
|
240
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "storageEncryptionInput"))
|
|
241
|
+
|
|
242
|
+
@builtins.property
|
|
243
|
+
@jsii.member(jsii_name="upgradeStrategyTypeInput")
|
|
244
|
+
def upgrade_strategy_type_input(self) -> typing.Optional[builtins.str]:
|
|
245
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "upgradeStrategyTypeInput"))
|
|
246
|
+
|
|
247
|
+
@builtins.property
|
|
248
|
+
@jsii.member(jsii_name="versionInput")
|
|
249
|
+
def version_input(self) -> typing.Optional[builtins.str]:
|
|
250
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "versionInput"))
|
|
251
|
+
|
|
252
|
+
@builtins.property
|
|
253
|
+
@jsii.member(jsii_name="zoneInput")
|
|
254
|
+
def zone_input(self) -> typing.Optional[builtins.str]:
|
|
255
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "zoneInput"))
|
|
256
|
+
|
|
257
|
+
@builtins.property
|
|
258
|
+
@jsii.member(jsii_name="controlPlaneIpFilter")
|
|
259
|
+
def control_plane_ip_filter(self) -> typing.List[builtins.str]:
|
|
260
|
+
return typing.cast(typing.List[builtins.str], jsii.get(self, "controlPlaneIpFilter"))
|
|
261
|
+
|
|
262
|
+
@control_plane_ip_filter.setter
|
|
263
|
+
def control_plane_ip_filter(self, value: typing.List[builtins.str]) -> None:
|
|
264
|
+
if __debug__:
|
|
265
|
+
type_hints = typing.get_type_hints(_typecheckingstub__93a87bbc915dd5fa01b944063ae4f03861f927743d8bd0e811ded1b50a775513)
|
|
266
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
267
|
+
jsii.set(self, "controlPlaneIpFilter", value) # pyright: ignore[reportArgumentType]
|
|
268
|
+
|
|
269
|
+
@builtins.property
|
|
270
|
+
@jsii.member(jsii_name="labels")
|
|
271
|
+
def labels(self) -> typing.Mapping[builtins.str, builtins.str]:
|
|
272
|
+
return typing.cast(typing.Mapping[builtins.str, builtins.str], jsii.get(self, "labels"))
|
|
273
|
+
|
|
274
|
+
@labels.setter
|
|
275
|
+
def labels(self, value: typing.Mapping[builtins.str, builtins.str]) -> None:
|
|
276
|
+
if __debug__:
|
|
277
|
+
type_hints = typing.get_type_hints(_typecheckingstub__7b9fb1189cc7bea21771f655e6f7d40e2b84a7ccedb6b706bd861ad34f2a71e8)
|
|
278
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
279
|
+
jsii.set(self, "labels", value) # pyright: ignore[reportArgumentType]
|
|
280
|
+
|
|
281
|
+
@builtins.property
|
|
282
|
+
@jsii.member(jsii_name="name")
|
|
283
|
+
def name(self) -> builtins.str:
|
|
284
|
+
return typing.cast(builtins.str, jsii.get(self, "name"))
|
|
285
|
+
|
|
286
|
+
@name.setter
|
|
287
|
+
def name(self, value: builtins.str) -> None:
|
|
288
|
+
if __debug__:
|
|
289
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c69847aa2809c05a6052b083ccd5ca5d9c7dc69ef91c872bb1912acd0884cf14)
|
|
290
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
291
|
+
jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
|
|
292
|
+
|
|
293
|
+
@builtins.property
|
|
294
|
+
@jsii.member(jsii_name="network")
|
|
295
|
+
def network(self) -> builtins.str:
|
|
296
|
+
return typing.cast(builtins.str, jsii.get(self, "network"))
|
|
297
|
+
|
|
298
|
+
@network.setter
|
|
299
|
+
def network(self, value: builtins.str) -> None:
|
|
300
|
+
if __debug__:
|
|
301
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b6a7b0ed76a96de39c59699be8d67bc580fdf1c14ae64b9711ac30f3d69ae37c)
|
|
302
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
303
|
+
jsii.set(self, "network", value) # pyright: ignore[reportArgumentType]
|
|
304
|
+
|
|
305
|
+
@builtins.property
|
|
306
|
+
@jsii.member(jsii_name="plan")
|
|
307
|
+
def plan(self) -> builtins.str:
|
|
308
|
+
return typing.cast(builtins.str, jsii.get(self, "plan"))
|
|
309
|
+
|
|
310
|
+
@plan.setter
|
|
311
|
+
def plan(self, value: builtins.str) -> None:
|
|
312
|
+
if __debug__:
|
|
313
|
+
type_hints = typing.get_type_hints(_typecheckingstub__04fa3a378e45d0014b1d148124a7ea27e53d6fce1e52acbce0b79a572d803d02)
|
|
314
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
315
|
+
jsii.set(self, "plan", value) # pyright: ignore[reportArgumentType]
|
|
316
|
+
|
|
317
|
+
@builtins.property
|
|
318
|
+
@jsii.member(jsii_name="privateNodeGroups")
|
|
319
|
+
def private_node_groups(
|
|
320
|
+
self,
|
|
321
|
+
) -> typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]:
|
|
322
|
+
return typing.cast(typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable], jsii.get(self, "privateNodeGroups"))
|
|
323
|
+
|
|
324
|
+
@private_node_groups.setter
|
|
325
|
+
def private_node_groups(
|
|
326
|
+
self,
|
|
327
|
+
value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
|
|
328
|
+
) -> None:
|
|
329
|
+
if __debug__:
|
|
330
|
+
type_hints = typing.get_type_hints(_typecheckingstub__f49f70d8405be1fa26fe8c061357eb2ec81b867b995db8ff053c4f9a5fdca1b9)
|
|
331
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
332
|
+
jsii.set(self, "privateNodeGroups", value) # pyright: ignore[reportArgumentType]
|
|
333
|
+
|
|
334
|
+
@builtins.property
|
|
335
|
+
@jsii.member(jsii_name="storageEncryption")
|
|
336
|
+
def storage_encryption(self) -> builtins.str:
|
|
337
|
+
return typing.cast(builtins.str, jsii.get(self, "storageEncryption"))
|
|
338
|
+
|
|
339
|
+
@storage_encryption.setter
|
|
340
|
+
def storage_encryption(self, value: builtins.str) -> None:
|
|
341
|
+
if __debug__:
|
|
342
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cedce06cdd644121d16e8723f1b12d6b73c8a3982cac05b297172fec86ac6b6c)
|
|
343
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
344
|
+
jsii.set(self, "storageEncryption", value) # pyright: ignore[reportArgumentType]
|
|
345
|
+
|
|
346
|
+
@builtins.property
|
|
347
|
+
@jsii.member(jsii_name="upgradeStrategyType")
|
|
348
|
+
def upgrade_strategy_type(self) -> builtins.str:
|
|
349
|
+
return typing.cast(builtins.str, jsii.get(self, "upgradeStrategyType"))
|
|
350
|
+
|
|
351
|
+
@upgrade_strategy_type.setter
|
|
352
|
+
def upgrade_strategy_type(self, value: builtins.str) -> None:
|
|
353
|
+
if __debug__:
|
|
354
|
+
type_hints = typing.get_type_hints(_typecheckingstub__39381f85985080b338f976b7fa444c5a767a6551ec022d808ec631b10e994809)
|
|
355
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
356
|
+
jsii.set(self, "upgradeStrategyType", value) # pyright: ignore[reportArgumentType]
|
|
357
|
+
|
|
358
|
+
@builtins.property
|
|
359
|
+
@jsii.member(jsii_name="version")
|
|
360
|
+
def version(self) -> builtins.str:
|
|
361
|
+
return typing.cast(builtins.str, jsii.get(self, "version"))
|
|
362
|
+
|
|
363
|
+
@version.setter
|
|
364
|
+
def version(self, value: builtins.str) -> None:
|
|
365
|
+
if __debug__:
|
|
366
|
+
type_hints = typing.get_type_hints(_typecheckingstub__776ba3ef3b832d50876fe4a1d205b0bbe70e283570bc607f5f3709b3061f153f)
|
|
367
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
368
|
+
jsii.set(self, "version", value) # pyright: ignore[reportArgumentType]
|
|
369
|
+
|
|
370
|
+
@builtins.property
|
|
371
|
+
@jsii.member(jsii_name="zone")
|
|
372
|
+
def zone(self) -> builtins.str:
|
|
373
|
+
return typing.cast(builtins.str, jsii.get(self, "zone"))
|
|
374
|
+
|
|
375
|
+
@zone.setter
|
|
376
|
+
def zone(self, value: builtins.str) -> None:
|
|
377
|
+
if __debug__:
|
|
378
|
+
type_hints = typing.get_type_hints(_typecheckingstub__70f488b5c223cfa038f56985e1d22e4c38a93cbe80f0a3a2fb36e7395578336e)
|
|
379
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
380
|
+
jsii.set(self, "zone", value) # pyright: ignore[reportArgumentType]
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
@jsii.data_type(
|
|
384
|
+
jsii_type="@cdktf/provider-upcloud.kubernetesCluster.KubernetesClusterConfig",
|
|
385
|
+
jsii_struct_bases=[_cdktf_9a9027ec.TerraformMetaArguments],
|
|
386
|
+
name_mapping={
|
|
387
|
+
"connection": "connection",
|
|
388
|
+
"count": "count",
|
|
389
|
+
"depends_on": "dependsOn",
|
|
390
|
+
"for_each": "forEach",
|
|
391
|
+
"lifecycle": "lifecycle",
|
|
392
|
+
"provider": "provider",
|
|
393
|
+
"provisioners": "provisioners",
|
|
394
|
+
"control_plane_ip_filter": "controlPlaneIpFilter",
|
|
395
|
+
"name": "name",
|
|
396
|
+
"network": "network",
|
|
397
|
+
"zone": "zone",
|
|
398
|
+
"labels": "labels",
|
|
399
|
+
"plan": "plan",
|
|
400
|
+
"private_node_groups": "privateNodeGroups",
|
|
401
|
+
"storage_encryption": "storageEncryption",
|
|
402
|
+
"upgrade_strategy_type": "upgradeStrategyType",
|
|
403
|
+
"version": "version",
|
|
404
|
+
},
|
|
405
|
+
)
|
|
406
|
+
class KubernetesClusterConfig(_cdktf_9a9027ec.TerraformMetaArguments):
|
|
407
|
+
def __init__(
|
|
408
|
+
self,
|
|
409
|
+
*,
|
|
410
|
+
connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
411
|
+
count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
|
|
412
|
+
depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
|
|
413
|
+
for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
|
|
414
|
+
lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
415
|
+
provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
|
|
416
|
+
provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
|
|
417
|
+
control_plane_ip_filter: typing.Sequence[builtins.str],
|
|
418
|
+
name: builtins.str,
|
|
419
|
+
network: builtins.str,
|
|
420
|
+
zone: builtins.str,
|
|
421
|
+
labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
422
|
+
plan: typing.Optional[builtins.str] = None,
|
|
423
|
+
private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
|
|
424
|
+
storage_encryption: typing.Optional[builtins.str] = None,
|
|
425
|
+
upgrade_strategy_type: typing.Optional[builtins.str] = None,
|
|
426
|
+
version: typing.Optional[builtins.str] = None,
|
|
427
|
+
) -> None:
|
|
428
|
+
'''
|
|
429
|
+
:param connection:
|
|
430
|
+
:param count:
|
|
431
|
+
:param depends_on:
|
|
432
|
+
:param for_each:
|
|
433
|
+
:param lifecycle:
|
|
434
|
+
:param provider:
|
|
435
|
+
:param provisioners:
|
|
436
|
+
:param control_plane_ip_filter: IP addresses or IP ranges in CIDR format which are allowed to access the cluster control plane. To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
|
|
437
|
+
:param name: Cluster name. Needs to be unique within the account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
|
|
438
|
+
:param network: Network ID for the cluster to run in. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
|
|
439
|
+
:param zone: Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
|
|
440
|
+
:param labels: User defined key-value pairs to classify the cluster. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
|
|
441
|
+
:param plan: The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
|
|
442
|
+
:param private_node_groups: Enable private node groups. Private node groups requires a network that is routed through NAT gateway. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
|
|
443
|
+
:param storage_encryption: Set default storage encryption strategy for all nodes in the cluster. Valid values are ``data-at-rest`` and ``none``. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
|
|
444
|
+
:param upgrade_strategy_type: The upgrade strategy to use when changing the cluster ``version``. If not set, ``manual`` strategy will be used by default. When using ``manual`` strategy, you must replace the existing node-groups to update them. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#upgrade_strategy_type KubernetesCluster#upgrade_strategy_type}
|
|
445
|
+
:param version: Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``. Note that when changing the cluster version, ``upgrade_strategy`` will be taken into account. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
|
|
446
|
+
'''
|
|
447
|
+
if isinstance(lifecycle, dict):
|
|
448
|
+
lifecycle = _cdktf_9a9027ec.TerraformResourceLifecycle(**lifecycle)
|
|
449
|
+
if __debug__:
|
|
450
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e268687db9e34ae4b03f85f7b2bdf19564690fdaacf69cdb2c9bd3f765aefe0f)
|
|
451
|
+
check_type(argname="argument connection", value=connection, expected_type=type_hints["connection"])
|
|
452
|
+
check_type(argname="argument count", value=count, expected_type=type_hints["count"])
|
|
453
|
+
check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
|
|
454
|
+
check_type(argname="argument for_each", value=for_each, expected_type=type_hints["for_each"])
|
|
455
|
+
check_type(argname="argument lifecycle", value=lifecycle, expected_type=type_hints["lifecycle"])
|
|
456
|
+
check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
|
|
457
|
+
check_type(argname="argument provisioners", value=provisioners, expected_type=type_hints["provisioners"])
|
|
458
|
+
check_type(argname="argument control_plane_ip_filter", value=control_plane_ip_filter, expected_type=type_hints["control_plane_ip_filter"])
|
|
459
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
460
|
+
check_type(argname="argument network", value=network, expected_type=type_hints["network"])
|
|
461
|
+
check_type(argname="argument zone", value=zone, expected_type=type_hints["zone"])
|
|
462
|
+
check_type(argname="argument labels", value=labels, expected_type=type_hints["labels"])
|
|
463
|
+
check_type(argname="argument plan", value=plan, expected_type=type_hints["plan"])
|
|
464
|
+
check_type(argname="argument private_node_groups", value=private_node_groups, expected_type=type_hints["private_node_groups"])
|
|
465
|
+
check_type(argname="argument storage_encryption", value=storage_encryption, expected_type=type_hints["storage_encryption"])
|
|
466
|
+
check_type(argname="argument upgrade_strategy_type", value=upgrade_strategy_type, expected_type=type_hints["upgrade_strategy_type"])
|
|
467
|
+
check_type(argname="argument version", value=version, expected_type=type_hints["version"])
|
|
468
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
469
|
+
"control_plane_ip_filter": control_plane_ip_filter,
|
|
470
|
+
"name": name,
|
|
471
|
+
"network": network,
|
|
472
|
+
"zone": zone,
|
|
473
|
+
}
|
|
474
|
+
if connection is not None:
|
|
475
|
+
self._values["connection"] = connection
|
|
476
|
+
if count is not None:
|
|
477
|
+
self._values["count"] = count
|
|
478
|
+
if depends_on is not None:
|
|
479
|
+
self._values["depends_on"] = depends_on
|
|
480
|
+
if for_each is not None:
|
|
481
|
+
self._values["for_each"] = for_each
|
|
482
|
+
if lifecycle is not None:
|
|
483
|
+
self._values["lifecycle"] = lifecycle
|
|
484
|
+
if provider is not None:
|
|
485
|
+
self._values["provider"] = provider
|
|
486
|
+
if provisioners is not None:
|
|
487
|
+
self._values["provisioners"] = provisioners
|
|
488
|
+
if labels is not None:
|
|
489
|
+
self._values["labels"] = labels
|
|
490
|
+
if plan is not None:
|
|
491
|
+
self._values["plan"] = plan
|
|
492
|
+
if private_node_groups is not None:
|
|
493
|
+
self._values["private_node_groups"] = private_node_groups
|
|
494
|
+
if storage_encryption is not None:
|
|
495
|
+
self._values["storage_encryption"] = storage_encryption
|
|
496
|
+
if upgrade_strategy_type is not None:
|
|
497
|
+
self._values["upgrade_strategy_type"] = upgrade_strategy_type
|
|
498
|
+
if version is not None:
|
|
499
|
+
self._values["version"] = version
|
|
500
|
+
|
|
501
|
+
@builtins.property
|
|
502
|
+
def connection(
|
|
503
|
+
self,
|
|
504
|
+
) -> typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]]:
|
|
505
|
+
'''
|
|
506
|
+
:stability: experimental
|
|
507
|
+
'''
|
|
508
|
+
result = self._values.get("connection")
|
|
509
|
+
return typing.cast(typing.Optional[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, _cdktf_9a9027ec.WinrmProvisionerConnection]], result)
|
|
510
|
+
|
|
511
|
+
@builtins.property
|
|
512
|
+
def count(
|
|
513
|
+
self,
|
|
514
|
+
) -> typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]]:
|
|
515
|
+
'''
|
|
516
|
+
:stability: experimental
|
|
517
|
+
'''
|
|
518
|
+
result = self._values.get("count")
|
|
519
|
+
return typing.cast(typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]], result)
|
|
520
|
+
|
|
521
|
+
@builtins.property
|
|
522
|
+
def depends_on(
|
|
523
|
+
self,
|
|
524
|
+
) -> typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]]:
|
|
525
|
+
'''
|
|
526
|
+
:stability: experimental
|
|
527
|
+
'''
|
|
528
|
+
result = self._values.get("depends_on")
|
|
529
|
+
return typing.cast(typing.Optional[typing.List[_cdktf_9a9027ec.ITerraformDependable]], result)
|
|
530
|
+
|
|
531
|
+
@builtins.property
|
|
532
|
+
def for_each(self) -> typing.Optional[_cdktf_9a9027ec.ITerraformIterator]:
|
|
533
|
+
'''
|
|
534
|
+
:stability: experimental
|
|
535
|
+
'''
|
|
536
|
+
result = self._values.get("for_each")
|
|
537
|
+
return typing.cast(typing.Optional[_cdktf_9a9027ec.ITerraformIterator], result)
|
|
538
|
+
|
|
539
|
+
@builtins.property
|
|
540
|
+
def lifecycle(self) -> typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle]:
|
|
541
|
+
'''
|
|
542
|
+
:stability: experimental
|
|
543
|
+
'''
|
|
544
|
+
result = self._values.get("lifecycle")
|
|
545
|
+
return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformResourceLifecycle], result)
|
|
546
|
+
|
|
547
|
+
@builtins.property
|
|
548
|
+
def provider(self) -> typing.Optional[_cdktf_9a9027ec.TerraformProvider]:
|
|
549
|
+
'''
|
|
550
|
+
:stability: experimental
|
|
551
|
+
'''
|
|
552
|
+
result = self._values.get("provider")
|
|
553
|
+
return typing.cast(typing.Optional[_cdktf_9a9027ec.TerraformProvider], result)
|
|
554
|
+
|
|
555
|
+
@builtins.property
|
|
556
|
+
def provisioners(
|
|
557
|
+
self,
|
|
558
|
+
) -> typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]]:
|
|
559
|
+
'''
|
|
560
|
+
:stability: experimental
|
|
561
|
+
'''
|
|
562
|
+
result = self._values.get("provisioners")
|
|
563
|
+
return typing.cast(typing.Optional[typing.List[typing.Union[_cdktf_9a9027ec.FileProvisioner, _cdktf_9a9027ec.LocalExecProvisioner, _cdktf_9a9027ec.RemoteExecProvisioner]]], result)
|
|
564
|
+
|
|
565
|
+
@builtins.property
|
|
566
|
+
def control_plane_ip_filter(self) -> typing.List[builtins.str]:
|
|
567
|
+
'''IP addresses or IP ranges in CIDR format which are allowed to access the cluster control plane.
|
|
568
|
+
|
|
569
|
+
To allow access from any source, use ``["0.0.0.0/0"]``. To deny access from all sources, use ``[]``. Values set here do not restrict access to node groups or exposed Kubernetes services.
|
|
570
|
+
|
|
571
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#control_plane_ip_filter KubernetesCluster#control_plane_ip_filter}
|
|
572
|
+
'''
|
|
573
|
+
result = self._values.get("control_plane_ip_filter")
|
|
574
|
+
assert result is not None, "Required property 'control_plane_ip_filter' is missing"
|
|
575
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
576
|
+
|
|
577
|
+
@builtins.property
|
|
578
|
+
def name(self) -> builtins.str:
|
|
579
|
+
'''Cluster name. Needs to be unique within the account.
|
|
580
|
+
|
|
581
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#name KubernetesCluster#name}
|
|
582
|
+
'''
|
|
583
|
+
result = self._values.get("name")
|
|
584
|
+
assert result is not None, "Required property 'name' is missing"
|
|
585
|
+
return typing.cast(builtins.str, result)
|
|
586
|
+
|
|
587
|
+
@builtins.property
|
|
588
|
+
def network(self) -> builtins.str:
|
|
589
|
+
'''Network ID for the cluster to run in.
|
|
590
|
+
|
|
591
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#network KubernetesCluster#network}
|
|
592
|
+
'''
|
|
593
|
+
result = self._values.get("network")
|
|
594
|
+
assert result is not None, "Required property 'network' is missing"
|
|
595
|
+
return typing.cast(builtins.str, result)
|
|
596
|
+
|
|
597
|
+
@builtins.property
|
|
598
|
+
def zone(self) -> builtins.str:
|
|
599
|
+
'''Zone in which the Kubernetes cluster will be hosted, e.g. ``de-fra1``. You can list available zones with ``upctl zone list``.
|
|
600
|
+
|
|
601
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#zone KubernetesCluster#zone}
|
|
602
|
+
'''
|
|
603
|
+
result = self._values.get("zone")
|
|
604
|
+
assert result is not None, "Required property 'zone' is missing"
|
|
605
|
+
return typing.cast(builtins.str, result)
|
|
606
|
+
|
|
607
|
+
@builtins.property
|
|
608
|
+
def labels(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
609
|
+
'''User defined key-value pairs to classify the cluster.
|
|
610
|
+
|
|
611
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#labels KubernetesCluster#labels}
|
|
612
|
+
'''
|
|
613
|
+
result = self._values.get("labels")
|
|
614
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
615
|
+
|
|
616
|
+
@builtins.property
|
|
617
|
+
def plan(self) -> typing.Optional[builtins.str]:
|
|
618
|
+
'''The pricing plan used for the cluster. You can list available plans with ``upctl kubernetes plans``.
|
|
619
|
+
|
|
620
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#plan KubernetesCluster#plan}
|
|
621
|
+
'''
|
|
622
|
+
result = self._values.get("plan")
|
|
623
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
624
|
+
|
|
625
|
+
@builtins.property
|
|
626
|
+
def private_node_groups(
|
|
627
|
+
self,
|
|
628
|
+
) -> typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]]:
|
|
629
|
+
'''Enable private node groups. Private node groups requires a network that is routed through NAT gateway.
|
|
630
|
+
|
|
631
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#private_node_groups KubernetesCluster#private_node_groups}
|
|
632
|
+
'''
|
|
633
|
+
result = self._values.get("private_node_groups")
|
|
634
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]], result)
|
|
635
|
+
|
|
636
|
+
@builtins.property
|
|
637
|
+
def storage_encryption(self) -> typing.Optional[builtins.str]:
|
|
638
|
+
'''Set default storage encryption strategy for all nodes in the cluster. Valid values are ``data-at-rest`` and ``none``.
|
|
639
|
+
|
|
640
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#storage_encryption KubernetesCluster#storage_encryption}
|
|
641
|
+
'''
|
|
642
|
+
result = self._values.get("storage_encryption")
|
|
643
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
644
|
+
|
|
645
|
+
@builtins.property
|
|
646
|
+
def upgrade_strategy_type(self) -> typing.Optional[builtins.str]:
|
|
647
|
+
'''The upgrade strategy to use when changing the cluster ``version``.
|
|
648
|
+
|
|
649
|
+
If not set, ``manual`` strategy will be used by default. When using ``manual`` strategy, you must replace the existing node-groups to update them.
|
|
650
|
+
|
|
651
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#upgrade_strategy_type KubernetesCluster#upgrade_strategy_type}
|
|
652
|
+
'''
|
|
653
|
+
result = self._values.get("upgrade_strategy_type")
|
|
654
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
655
|
+
|
|
656
|
+
@builtins.property
|
|
657
|
+
def version(self) -> typing.Optional[builtins.str]:
|
|
658
|
+
'''Kubernetes version ID, e.g. ``1.31``. You can list available version IDs with ``upctl kubernetes versions``.
|
|
659
|
+
|
|
660
|
+
Note that when changing the cluster version, ``upgrade_strategy`` will be taken into account.
|
|
661
|
+
|
|
662
|
+
Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.31.0/docs/resources/kubernetes_cluster#version KubernetesCluster#version}
|
|
663
|
+
'''
|
|
664
|
+
result = self._values.get("version")
|
|
665
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
666
|
+
|
|
667
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
668
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
669
|
+
|
|
670
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
671
|
+
return not (rhs == self)
|
|
672
|
+
|
|
673
|
+
def __repr__(self) -> str:
|
|
674
|
+
return "KubernetesClusterConfig(%s)" % ", ".join(
|
|
675
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
676
|
+
)
|
|
677
|
+
|
|
678
|
+
|
|
679
|
+
__all__ = [
|
|
680
|
+
"KubernetesCluster",
|
|
681
|
+
"KubernetesClusterConfig",
|
|
682
|
+
]
|
|
683
|
+
|
|
684
|
+
publication.publish()
|
|
685
|
+
|
|
686
|
+
def _typecheckingstub__8a9b711fc0d4f95af1581b8c47ef51571908b57197927d077ddbf475a99293e0(
|
|
687
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
688
|
+
id: builtins.str,
|
|
689
|
+
*,
|
|
690
|
+
control_plane_ip_filter: typing.Sequence[builtins.str],
|
|
691
|
+
name: builtins.str,
|
|
692
|
+
network: builtins.str,
|
|
693
|
+
zone: builtins.str,
|
|
694
|
+
labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
695
|
+
plan: typing.Optional[builtins.str] = None,
|
|
696
|
+
private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
|
|
697
|
+
storage_encryption: typing.Optional[builtins.str] = None,
|
|
698
|
+
upgrade_strategy_type: typing.Optional[builtins.str] = None,
|
|
699
|
+
version: typing.Optional[builtins.str] = None,
|
|
700
|
+
connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
701
|
+
count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
|
|
702
|
+
depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
|
|
703
|
+
for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
|
|
704
|
+
lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
705
|
+
provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
|
|
706
|
+
provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
|
|
707
|
+
) -> None:
|
|
708
|
+
"""Type checking stubs"""
|
|
709
|
+
pass
|
|
710
|
+
|
|
711
|
+
def _typecheckingstub__3920d985ca4d5b1c9f6d89b891ca033b258ae3e0ccad607090396c654e47ecae(
|
|
712
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
713
|
+
import_to_id: builtins.str,
|
|
714
|
+
import_from_id: builtins.str,
|
|
715
|
+
provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
|
|
716
|
+
) -> None:
|
|
717
|
+
"""Type checking stubs"""
|
|
718
|
+
pass
|
|
719
|
+
|
|
720
|
+
def _typecheckingstub__93a87bbc915dd5fa01b944063ae4f03861f927743d8bd0e811ded1b50a775513(
|
|
721
|
+
value: typing.List[builtins.str],
|
|
722
|
+
) -> None:
|
|
723
|
+
"""Type checking stubs"""
|
|
724
|
+
pass
|
|
725
|
+
|
|
726
|
+
def _typecheckingstub__7b9fb1189cc7bea21771f655e6f7d40e2b84a7ccedb6b706bd861ad34f2a71e8(
|
|
727
|
+
value: typing.Mapping[builtins.str, builtins.str],
|
|
728
|
+
) -> None:
|
|
729
|
+
"""Type checking stubs"""
|
|
730
|
+
pass
|
|
731
|
+
|
|
732
|
+
def _typecheckingstub__c69847aa2809c05a6052b083ccd5ca5d9c7dc69ef91c872bb1912acd0884cf14(
|
|
733
|
+
value: builtins.str,
|
|
734
|
+
) -> None:
|
|
735
|
+
"""Type checking stubs"""
|
|
736
|
+
pass
|
|
737
|
+
|
|
738
|
+
def _typecheckingstub__b6a7b0ed76a96de39c59699be8d67bc580fdf1c14ae64b9711ac30f3d69ae37c(
|
|
739
|
+
value: builtins.str,
|
|
740
|
+
) -> None:
|
|
741
|
+
"""Type checking stubs"""
|
|
742
|
+
pass
|
|
743
|
+
|
|
744
|
+
def _typecheckingstub__04fa3a378e45d0014b1d148124a7ea27e53d6fce1e52acbce0b79a572d803d02(
|
|
745
|
+
value: builtins.str,
|
|
746
|
+
) -> None:
|
|
747
|
+
"""Type checking stubs"""
|
|
748
|
+
pass
|
|
749
|
+
|
|
750
|
+
def _typecheckingstub__f49f70d8405be1fa26fe8c061357eb2ec81b867b995db8ff053c4f9a5fdca1b9(
|
|
751
|
+
value: typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable],
|
|
752
|
+
) -> None:
|
|
753
|
+
"""Type checking stubs"""
|
|
754
|
+
pass
|
|
755
|
+
|
|
756
|
+
def _typecheckingstub__cedce06cdd644121d16e8723f1b12d6b73c8a3982cac05b297172fec86ac6b6c(
|
|
757
|
+
value: builtins.str,
|
|
758
|
+
) -> None:
|
|
759
|
+
"""Type checking stubs"""
|
|
760
|
+
pass
|
|
761
|
+
|
|
762
|
+
def _typecheckingstub__39381f85985080b338f976b7fa444c5a767a6551ec022d808ec631b10e994809(
|
|
763
|
+
value: builtins.str,
|
|
764
|
+
) -> None:
|
|
765
|
+
"""Type checking stubs"""
|
|
766
|
+
pass
|
|
767
|
+
|
|
768
|
+
def _typecheckingstub__776ba3ef3b832d50876fe4a1d205b0bbe70e283570bc607f5f3709b3061f153f(
|
|
769
|
+
value: builtins.str,
|
|
770
|
+
) -> None:
|
|
771
|
+
"""Type checking stubs"""
|
|
772
|
+
pass
|
|
773
|
+
|
|
774
|
+
def _typecheckingstub__70f488b5c223cfa038f56985e1d22e4c38a93cbe80f0a3a2fb36e7395578336e(
|
|
775
|
+
value: builtins.str,
|
|
776
|
+
) -> None:
|
|
777
|
+
"""Type checking stubs"""
|
|
778
|
+
pass
|
|
779
|
+
|
|
780
|
+
def _typecheckingstub__e268687db9e34ae4b03f85f7b2bdf19564690fdaacf69cdb2c9bd3f765aefe0f(
|
|
781
|
+
*,
|
|
782
|
+
connection: typing.Optional[typing.Union[typing.Union[_cdktf_9a9027ec.SSHProvisionerConnection, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.WinrmProvisionerConnection, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
783
|
+
count: typing.Optional[typing.Union[jsii.Number, _cdktf_9a9027ec.TerraformCount]] = None,
|
|
784
|
+
depends_on: typing.Optional[typing.Sequence[_cdktf_9a9027ec.ITerraformDependable]] = None,
|
|
785
|
+
for_each: typing.Optional[_cdktf_9a9027ec.ITerraformIterator] = None,
|
|
786
|
+
lifecycle: typing.Optional[typing.Union[_cdktf_9a9027ec.TerraformResourceLifecycle, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
787
|
+
provider: typing.Optional[_cdktf_9a9027ec.TerraformProvider] = None,
|
|
788
|
+
provisioners: typing.Optional[typing.Sequence[typing.Union[typing.Union[_cdktf_9a9027ec.FileProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.LocalExecProvisioner, typing.Dict[builtins.str, typing.Any]], typing.Union[_cdktf_9a9027ec.RemoteExecProvisioner, typing.Dict[builtins.str, typing.Any]]]]] = None,
|
|
789
|
+
control_plane_ip_filter: typing.Sequence[builtins.str],
|
|
790
|
+
name: builtins.str,
|
|
791
|
+
network: builtins.str,
|
|
792
|
+
zone: builtins.str,
|
|
793
|
+
labels: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
794
|
+
plan: typing.Optional[builtins.str] = None,
|
|
795
|
+
private_node_groups: typing.Optional[typing.Union[builtins.bool, _cdktf_9a9027ec.IResolvable]] = None,
|
|
796
|
+
storage_encryption: typing.Optional[builtins.str] = None,
|
|
797
|
+
upgrade_strategy_type: typing.Optional[builtins.str] = None,
|
|
798
|
+
version: typing.Optional[builtins.str] = None,
|
|
799
|
+
) -> None:
|
|
800
|
+
"""Type checking stubs"""
|
|
801
|
+
pass
|