Skip to content

Commit 3127552

Browse files
authored
Fix msc old schema type and update docs (#1223)
1 parent aa51f6a commit 3127552

2 files changed

Lines changed: 69 additions & 85 deletions

File tree

docs/resources/cluster_v2.md

Lines changed: 68 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -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
1616
resource "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" {
2525
resource "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" {
4949
resource "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
6262
resource "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
9999
resource "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
121121
resource "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" {
145145
resource "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
154154
resource "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
166166
resource "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
250250
resource "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
279279
resource "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
}
319306
EOF
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
335324
locals {
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
341330
resource "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

rancher2/schema_cluster_v2_rke_config_system_config.go

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -66,29 +66,9 @@ func clusterV2RKEConfigSystemConfigFieldsV0() map[string]*schema.Schema {
6666
},
6767
},
6868
"config": {
69-
Type: schema.TypeString,
69+
Type: schema.TypeMap,
7070
Optional: true,
7171
Description: "Machine selector config",
72-
ValidateFunc: func(val interface{}, key string) (warns []string, errs []error) {
73-
v, ok := val.(string)
74-
if !ok || len(v) == 0 {
75-
return
76-
}
77-
_, err := ghodssyamlToMapInterface(v)
78-
if err != nil {
79-
errs = append(errs, fmt.Errorf("%q must be in yaml format, error: %v", key, err))
80-
return
81-
}
82-
return
83-
},
84-
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
85-
if old == "" || new == "" {
86-
return false
87-
}
88-
oldMap, _ := ghodssyamlToMapInterface(old)
89-
newMap, _ := ghodssyamlToMapInterface(new)
90-
return reflect.DeepEqual(oldMap, newMap)
91-
},
9272
},
9373
}
9474

0 commit comments

Comments
 (0)