@@ -15,7 +15,7 @@ Provides a Rancher v2 Cluster v2 resource. This can be used to create RKE2 and K
1515# Create a new rancher v2 RKE2 custom Cluster v2
1616resource "rancher2_cluster_v2" "foo" {
1717 name = "foo"
18- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
18+ kubernetes_version = "rancher-kubernetes-version "
1919 fleet_namespace = "fleet-ns"
2020 enable_network_policy = false
2121 default_cluster_role_for_project_members = "user"
@@ -25,15 +25,15 @@ resource "rancher2_cluster_v2" "foo" {
2525resource "rancher2_cluster_v2" "foo" {
2626 name = "foo"
2727 fleet_namespace = "fleet-ns"
28- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
28+ kubernetes_version = "rancher-kubernetes-version "
2929 enable_network_policy = false
3030 default_cluster_role_for_project_members = "user"
3131}
3232```
3333
3434** Note:** Once created, get the node command from ` rancher2_cluster_v2.foo.cluster_registration_token `
3535
36- ### Creating Rancher v2 amazonec2 cluster v2
36+ ### Creating Rancher v2 AmazonEC2 cluster v2
3737
3838``` hcl
3939# Create amazonec2 cloud credential
@@ -49,19 +49,19 @@ resource "rancher2_cloud_credential" "foo" {
4949resource "rancher2_machine_config_v2" "foo" {
5050 generate_name = "test-foo"
5151 amazonec2_config {
52- ami = "<AMI_ID> "
53- region = "<REGION> "
54- security_group = [<AWS_SG> ]
55- subnet_id = "<SUBNET_ID> "
56- vpc_id = "<VPC_ID> "
57- zone = "<ZONE> "
52+ ami = "ami-id "
53+ region = "region "
54+ security_group = ["security-group" ]
55+ subnet_id = "subnet-id "
56+ vpc_id = "vpc-id "
57+ zone = "zone "
5858 }
5959}
6060
6161# Create a new rancher v2 Cluster with multiple machine pools
6262resource "rancher2_cluster_v2" "foo-rke2" {
6363 name = "foo-rke2"
64- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
64+ kubernetes_version = "rancher-kubernetes-version "
6565 enable_network_policy = false
6666 default_cluster_role_for_project_members = "user"
6767 rke_config {
@@ -98,7 +98,7 @@ resource "rancher2_cluster_v2" "foo-rke2" {
9898# Create a new rancher v2 amazonec2 RKE2 Cluster v2
9999resource "rancher2_cluster_v2" "foo-rke2" {
100100 name = "foo-rke2"
101- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
101+ kubernetes_version = "rancher-kubernetes-version "
102102 enable_network_policy = false
103103 default_cluster_role_for_project_members = "user"
104104 rke_config {
@@ -120,7 +120,7 @@ resource "rancher2_cluster_v2" "foo-rke2" {
120120# Create a new rancher v2 amazonec2 K3S Cluster v2
121121resource "rancher2_cluster_v2" "foo-k3s" {
122122 name = "foo-k3s"
123- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
123+ kubernetes_version = "rancher-kubernetes-version "
124124 enable_network_policy = false
125125 default_cluster_role_for_project_members = "user"
126126 rke_config {
@@ -145,27 +145,27 @@ resource "rancher2_cluster_v2" "foo-k3s" {
145145resource "rancher2_cloud_credential" "foo" {
146146 name = "foo"
147147 amazonec2_credential_config {
148- access_key = "<ACCESS_KEY> "
149- secret_key = "<SECRET_KEY> "
148+ access_key = "access-key "
149+ secret_key = "secret-key "
150150 }
151151}
152152
153153# Create amazonec2 machine config v2
154154resource "rancher2_machine_config_v2" "foo" {
155155 generate_name = "test-foo"
156156 amazonec2_config {
157- ami = "<AMI_ID> "
158- region = "<REGION> "
159- security_group = [<AWS_SG> ]
160- subnet_id = "<SUBNET_ID> "
161- vpc_id = "<VPC_ID> "
162- zone = "<ZONE> "
157+ ami = "ami-id "
158+ region = "region "
159+ security_group = ["security-group" ]
160+ subnet_id = "subnet-id "
161+ vpc_id = "vpc-id "
162+ zone = "zone "
163163 }
164164}
165165
166166resource "rancher2_cluster_v2" "foo" {
167167 name = "foo"
168- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
168+ kubernetes_version = "rancher-kubernetes-version "
169169 enable_network_policy = false
170170 rke_config {
171171 machine_pools {
@@ -249,18 +249,18 @@ EOF
249249``` hcl
250250resource "rancher2_cluster_v2" "foo_cluster_v2" {
251251 name = "cluster-with-custom-registry"
252- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
252+ kubernetes_version = "rancher-kubernetes-version "
253253 rke_config {
254254 machine_selector_config {
255255 config = {
256- system-default-registry: "<CUSTOM_REGISTRY_HOSTNAME> "
256+ system-default-registry: "custom-registry-hostname "
257257 }
258258 }
259259 registries {
260260 configs {
261- hostname = "<CUSTOM_REGISTRY_HOSTNAME> "
262- auth_config_secret_name = "<AUTH_CONFIG_SECRET_NAME> "
263- insecure = <TLS_INSECURE_BOOL >
261+ hostname = "custom-registry-hostname "
262+ auth_config_secret_name = "auth-config-secret-name "
263+ insecure = <tls-insecure-bool >
264264 tls_secret_name = ""
265265 ca_bundle = ""
266266 }
@@ -278,29 +278,16 @@ Many registries may be specified in the `rke_config`s `registries` section, howe
278278``` hcl
279279resource "rancher2_cluster_v2" "foo" {
280280 name = "foo"
281- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
281+ kubernetes_version = "rancher-kubernetes-version "
282282 enable_network_policy = false
283283 rke_config {
284- machine_pools {
285- name = "pool1"
286- cloud_credential_secret_name = rancher2_cloud_credential.foo.id
287- control_plane_role = true
288- etcd_role = true
289- worker_role = true
290- quantity = 1
291- machine_config {
292- kind = rancher2_machine_config_v2.foo.kind
293- name = rancher2_machine_config_v2.foo.name
294- }
295- }
284+ cluster_agent_deployment_customization {
285+ append_tolerations {
286+ effect = "NoSchedule"
287+ key = "tolerate/control-plane"
288+ value = "true"
296289 }
297- cluster_agent_deployment_customization {
298- append_tolerations {
299- effect = "NoSchedule"
300- key = "tolerate/control-plane"
301- value = "true"
302- }
303- override_affinity = <<EOF
290+ override_affinity = <<EOF
304291{
305292 "nodeAffinity": {
306293 "requiredDuringSchedulingIgnoredDuringExecution": {
@@ -317,12 +304,14 @@ resource "rancher2_cluster_v2" "foo" {
317304 }
318305}
319306EOF
320- override_resource_requirements {
321- cpu_limit = "800"
322- cpu_request = "500"
323- memory_limit = "800"
324- memory_request = "500"
307+ override_resource_requirements {
308+ cpu_limit = "800"
309+ cpu_request = "500"
310+ memory_limit = "800"
311+ memory_request = "500"
312+ }
325313 }
314+ machine_pools ...
326315 }
327316}
328317```
@@ -333,14 +322,14 @@ EOF
333322
334323``` hcl
335324locals {
336- version = "rke2" // will be k3s for K3s clusters
325+ version = "rke2" // k3s for K3s clusters
337326 rancher_psact_mount_path = "/etc/rancher/${local.version}/config/rancher-psact.yaml"
338327 kube_apiserver_arg = var.default_psa_template != null && var.default_psa_template != "" ? ["admission-control-config-file=${local.rancher_psact_mount_path}"] : []
339328}
340329
341330resource "rancher2_cluster_v2" "foo" {
342331 name = "foo"
343- kubernetes_version = "<RANCHER_KUBERNETES_VERSION> "
332+ kubernetes_version = "rancher-kubernetes-version "
344333 enable_network_policy = false
345334 default_pod_security_admission_configuration_template_name = "rancher-restricted"
346335 rke_config {
@@ -350,18 +339,33 @@ resource "rancher2_cluster_v2" "foo" {
350339 etcd-expose-metrics = false
351340 kube-apiserver-arg = local.kube_apiserver_arg
352341 })
353- machine_pools {
354- name = "pool1"
355- cloud_credential_secret_name = rancher2_cloud_credential.foo.id
356- control_plane_role = true
357- etcd_role = true
358- worker_role = true
359- quantity = 1
360- machine_config {
361- kind = rancher2_machine_config_v2.foo.kind
362- name = rancher2_machine_config_v2.foo.name
342+ machine_pools ...
343+ }
344+ }
345+ ```
346+
347+ ### Creating Rancher V2 cluster with Machine Selector Config. For Rancher 2.7.7 and above.
348+
349+ ``` hcl
350+ resource "rancher2_cluster_v2" "foo" {
351+ name = "foo"
352+ kubernetes_version = "rancher-kubernetes-version"
353+ enable_network_policy = false
354+ rke_config {
355+ machine_selector_config {
356+ machine_label_selector {
357+ match_expressions {
358+ key = "node-label-key"
359+ operator = "In"
360+ values = ["node-label-value"]
361+ }
363362 }
363+ config = <<EOF
364+ kubelet-arg:
365+ - cloud-provider-name=external
366+ EOF
364367 }
368+ machine_pools ...
365369 }
366370}
367371```
@@ -743,7 +747,7 @@ The following attributes are exported:
743747##### Arguments
744748
745749* ` machine_label_selector ` - (Optional) Machine selector label (list maxitems:1)
746- * ` config ` - (Optional) Machine selector config (map )
750+ * ` config ` - (Optional) Machine selector config. Must be in YAML format (string )
747751
748752##### ` machine_label_selector `
749753
0 commit comments