-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata.tf
138 lines (124 loc) · 3.78 KB
/
data.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
data "oci_identity_compartment" "this" {
id = var.compartment_ocid
}
data "oci_identity_availability_domains" "availability_domains" {
#Required
compartment_id = var.tenancy_ocid
}
data "oci_core_image_shapes" "image_shapes" {
depends_on = [oci_core_shape_management.image_shape]
#Required
image_id = oci_core_image.talos_image.id
}
data "talos_image_factory_extensions_versions" "this" {
# get the latest talos version
talos_version = var.talos_version
filters = {
names = var.talos_extensions
}
}
data "talos_client_configuration" "talosconfig" {
cluster_name = var.cluster_name
client_configuration = talos_machine_secrets.machine_secrets.client_configuration
endpoints = [for k, v in oci_core_instance.controlplane : v.public_ip]
nodes = concat(
[for k, v in oci_core_instance.controlplane : v.public_ip],
[for k, v in oci_core_instance.worker : v.public_ip]
)
}
data "talos_machine_configuration" "controlplane" {
cluster_name = var.cluster_name
# cluster_endpoint = "https://${var.kube_apiserver_domain}:6443"
cluster_endpoint = "https://${oci_network_load_balancer_network_load_balancer.this.ip_addresses[0].ip_address}:6443"
machine_type = "controlplane"
machine_secrets = talos_machine_secrets.machine_secrets.machine_secrets
talos_version = var.talos_version
kubernetes_version = var.kubernetes_version
docs = false
examples = false
config_patches = [
local.talos_base_configuration,
<<-EOT
machine:
features:
kubernetesTalosAPIAccess:
enabled: true
allowedRoles:
- os:reader
allowedKubernetesNamespaces:
- kube-system
EOT
,
yamlencode({
machine = {
certSANs = concat([
var.kube_apiserver_domain,
oci_network_load_balancer_network_load_balancer.this.ip_addresses[0].ip_address,
],
[for k, v in oci_core_instance.controlplane : v.public_ip]
)
}
cluster = {
apiServer = {
certSANs = concat([
var.kube_apiserver_domain,
oci_network_load_balancer_network_load_balancer.this.ip_addresses[0].ip_address,
],
[for k, v in oci_core_instance.controlplane : v.public_ip]
)
}
}
}),
]
}
data "talos_machine_configuration" "worker" {
cluster_name = var.cluster_name
# cluster_endpoint = "https://${var.kube_apiserver_domain}:6443"
cluster_endpoint = "https://${oci_network_load_balancer_network_load_balancer.this.ip_addresses[0].ip_address}:6443"
machine_type = "worker"
machine_secrets = talos_machine_secrets.machine_secrets.machine_secrets
talos_version = var.talos_version
kubernetes_version = var.kubernetes_version
docs = false
examples = false
config_patches = [
local.talos_base_configuration,
<<EOF
machine:
disks:
- device: /dev/sdb
partitions:
- mountpoint: /var/lib/longhorn
kubelet:
extraMounts:
- destination: /var/lib/longhorn
type: bind
source: /var/lib/longhorn
options:
- bind
- rshared
- rw
EOF
,
yamlencode({
machine = {
certSANs = concat([
var.kube_apiserver_domain,
oci_network_load_balancer_network_load_balancer.this.ip_addresses[0].ip_address,
],
[for k, v in oci_core_instance.controlplane : v.public_ip]
)
}
cluster = {
apiServer = {
certSANs = concat([
var.kube_apiserver_domain,
oci_network_load_balancer_network_load_balancer.this.ip_addresses[0].ip_address,
],
[for k, v in oci_core_instance.controlplane : v.public_ip]
)
}
}
}),
]
}