You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 00-variables.tf
+52-2Lines changed: 52 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,28 @@ variable "cluster_id" {
9
9
type=number
10
10
}
11
11
12
+
variable"iam_instance_profile_control_plane" {
13
+
description="IAM instance profile to attach to the control plane instances to give AWS CCM the sufficient rights to execute."
14
+
type=string
15
+
default=null
16
+
}
17
+
18
+
variable"iam_instance_profile_worker" {
19
+
description="IAM instance profile to attach to the worker instances to give AWS CCM the sufficient rights to execute."
20
+
type=string
21
+
default=null
22
+
}
23
+
24
+
variable"metadata_options" {
25
+
description="Metadata to attach to the instances."
26
+
type=map(string)
27
+
default={
28
+
http_endpoint ="enabled"
29
+
http_tokens ="optional"
30
+
http_put_response_hop_limit =1
31
+
}
32
+
}
33
+
12
34
variable"cluster_architecture" {
13
35
default="amd64"
14
36
description="Cluster architecture. Choose 'arm64' or 'amd64'. If you choose 'arm64', ensure to also override the control_plane.instance_type and worker_groups.instance_type with an ARM64-based instance type like 'm7g.large'."
@@ -55,7 +77,7 @@ variable "disable_kube_proxy" {
55
77
56
78
variable"allow_workload_on_cp_nodes" {
57
79
default=false
58
-
description="Allow workloads on CP nodes or not. Allowing it means Talos Linux default taints are removed from CP nodes. More details here: https://www.talos.dev/v1.5/talos-guides/howto/workers-on-controlplane/"
80
+
description="Allow workloads on CP nodes or not. Allowing it means Talos Linux default taints are removed from CP nodes which is typically required for single-node clusters. More details here: https://www.talos.dev/v1.5/talos-guides/howto/workers-on-controlplane/"
description="Whether to enable or disable externalCloudProvider support. See https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/."
description="externalCloudProvider manifest to be applied if var.enable_external_cloud_provider is enabled. If you want to deploy it manually (e.g., via Helm chart), enable var.enable_external_cloud_provider but set this value to an empty string (\"\"). See https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/."
Copy file name to clipboardExpand all lines: README.md
+11-1Lines changed: 11 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ A Terraform module to manage a Talos-based Kubernetes on AWS (EC2 instances). Is
14
14
-[Talos' KubePrism](https://www.talos.dev/v1.5/kubernetes-guides/configuration/kubeprism/) to get an internal endpoint for the KAPI (used for [Cilium Kube-Proxy replacement](https://docs.cilium.io/en/stable/network/kubernetes/kubeproxy-free/))
| <aname="input_admission_plugins"></a> [admission\_plugins](#input\_admission\_plugins)| List of admission plugins to enable |`string`|`"MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ServiceAccount"`| no |
96
100
| <aname="input_allocate_node_cidrs"></a> [allocate\_node\_cidrs](#input\_allocate\_node\_cidrs)| Whether to assign PodCIDRs to Node resources or not. Only needed in case Cilium runs in 'kubernetes' IPAM mode. |`bool`|`true`| no |
97
-
| <aname="input_allow_workload_on_cp_nodes"></a> [allow\_workload\_on\_cp\_nodes](#input\_allow\_workload\_on\_cp\_nodes)| Allow workloads on CP nodes or not. Allowing it means Talos Linux default taints are removed from CP nodes. More details here: https://www.talos.dev/v1.5/talos-guides/howto/workers-on-controlplane/|`bool`|`false`| no |
101
+
| <aname="input_allow_workload_on_cp_nodes"></a> [allow\_workload\_on\_cp\_nodes](#input\_allow\_workload\_on\_cp\_nodes)| Allow workloads on CP nodes or not. Allowing it means Talos Linux default taints are removed from CP nodes which is typically required for single-node clusters. More details here: https://www.talos.dev/v1.5/talos-guides/howto/workers-on-controlplane/|`bool`|`false`| no |
98
102
| <aname="input_cluster_architecture"></a> [cluster\_architecture](#input\_cluster\_architecture)| Cluster architecture. Choose 'arm64' or 'amd64'. If you choose 'arm64', ensure to also override the control\_plane.instance\_type and worker\_groups.instance\_type with an ARM64-based instance type like 'm7g.large'. |`string`|`"amd64"`| no |
99
103
| <aname="input_cluster_id"></a> [cluster\_id](#input\_cluster\_id)| The ID of the cluster. |`number`|`"1"`| no |
100
104
| <aname="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name)| Name of cluster |`string`| n/a | yes |
101
105
| <aname="input_config_patch_files"></a> [config\_patch\_files](#input\_config\_patch\_files)| Path to talos config path files that applies to all nodes |`list(string)`|`[]`| no |
102
106
| <aname="input_control_plane"></a> [control\_plane](#input\_control\_plane)| Info for control plane that will be created | <pre>object({<br/> instance_type = optional(string, "m5.large")<br/> config_patch_files = optional(list(string), [])<br/> tags = optional(map(string), {})<br/> })</pre> |`{}`| no |
103
107
| <aname="input_controlplane_count"></a> [controlplane\_count](#input\_controlplane\_count)| Defines how many controlplane nodes are deployed in the cluster. |`number`|`3`| no |
108
+
| <aname="input_deploy_external_cloud_provider_iam_policies"></a> [deploy\_external\_cloud\_provider\_iam\_policies](#input\_deploy\_external\_cloud\_provider\_iam\_policies)| Whether to auto-deploy the externalCloudProvider-required IAM policies. See https://cloud-provider-aws.sigs.k8s.io/prerequisites/.|`bool`|`false`| no |
104
109
| <aname="input_disable_kube_proxy"></a> [disable\_kube\_proxy](#input\_disable\_kube\_proxy)| Whether to deploy Kube-Proxy or not. By default, KP shouldn't be deployed. |`bool`|`true`| no |
110
+
| <aname="input_enable_external_cloud_provider"></a> [enable\_external\_cloud\_provider](#input\_enable\_external\_cloud\_provider)| Whether to enable or disable externalCloudProvider support. See https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/.|`bool`|`false`| no |
111
+
| <aname="input_external_cloud_provider_manifest"></a> [external\_cloud\_provider\_manifest](#input\_external\_cloud\_provider\_manifest)| externalCloudProvider manifest to be applied if var.enable\_external\_cloud\_provider is enabled. If you want to deploy it manually (e.g., via Helm chart), enable var.enable\_external\_cloud\_provider but set this value to an empty string (""). See https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/.|`string`|`"https://raw.githubusercontent.com/isovalent/terraform-aws-talos/main/aws-cloud-controller.yaml"`| no |
112
+
| <aname="input_iam_instance_profile_control_plane"></a> [iam\_instance\_profile\_control\_plane](#input\_iam\_instance\_profile\_control\_plane)| IAM instance profile to attach to the control plane instances to give AWS CCM the sufficient rights to execute. |`string`|`null`| no |
113
+
| <aname="input_iam_instance_profile_worker"></a> [iam\_instance\_profile\_worker](#input\_iam\_instance\_profile\_worker)| IAM instance profile to attach to the worker instances to give AWS CCM the sufficient rights to execute. |`string`|`null`| no |
105
114
| <aname="input_kubernetes_api_allowed_cidr"></a> [kubernetes\_api\_allowed\_cidr](#input\_kubernetes\_api\_allowed\_cidr)| The CIDR from which to allow to access the Kubernetes API |`string`|`"0.0.0.0/0"`| no |
106
115
| <aname="input_kubernetes_version"></a> [kubernetes\_version](#input\_kubernetes\_version)| Kubernetes version to use for the Talos cluster, if not set, the K8s version shipped with the selected Talos version will be used. Check https://www.talos.dev/latest/introduction/support-matrix/. For example '1.29.3'. |`string`|`""`| no |
116
+
| <aname="input_metadata_options"></a> [metadata\_options](#input\_metadata\_options)| Metadata to attach to the instances. |`map(string)`| <pre>{<br/> "http_endpoint": "enabled",<br/> "http_put_response_hop_limit": 1,<br/> "http_tokens": "optional"<br/>}</pre> | no |
107
117
| <aname="input_pod_cidr"></a> [pod\_cidr](#input\_pod\_cidr)| The CIDR to use for Pods. Only required in case allocate\_node\_cidrs is set to 'true'. Otherwise, simply configure it inside Cilium's Helm values. |`string`|`"100.64.0.0/14"`| no |
108
118
| <aname="input_region"></a> [region](#input\_region)| The region in which to create the Talos Linux cluster. |`string`| n/a | yes |
109
119
| <aname="input_service_cidr"></a> [service\_cidr](#input\_service\_cidr)| The CIDR to use for services. |`string`|`"100.68.0.0/16"`| no |
0 commit comments