Skip to content

Commit 0fcc074

Browse files
authored
Support rke2 volume device and lb type configuration (#12)
* added config option for lb provider and rke2 volume device * unified naming of vars, prevent lb_provider and rke2_volume_device from being null to ensure default value to be used
1 parent 46d8f7d commit 0fcc074

File tree

7 files changed

+32
-14
lines changed

7 files changed

+32
-14
lines changed

loadbalancer.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ resource "openstack_lb_loadbalancer_v2" "lb" {
1010
vip_network_id = openstack_networking_network_v2.net.id
1111
vip_address = local.internal_ip
1212
admin_state_up = "true"
13-
loadbalancer_provider = "octavia"
13+
loadbalancer_provider = "${var.lb_provider}"
1414

1515
depends_on = [
1616
openstack_networking_subnet_v2.lb

main.tf

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,12 @@ module "servers" {
3535
availability_zones = coalesce(each.value.availability_zones, [])
3636
affinity = coalesce(each.value.affinity, "soft-anti-affinity")
3737

38-
rke2_version = each.value.rke2_version
39-
rke2_config = each.value.rke2_config
40-
rke2_token = random_string.rke2_token.result
41-
rke2_volume_size = each.value.rke2_volume_size
42-
rke2_volume_type = each.value.rke2_volume_type
38+
rke2_version = each.value.rke2_version
39+
rke2_config = each.value.rke2_config
40+
rke2_token = random_string.rke2_token.result
41+
rke2_volume_size = each.value.rke2_volume_size
42+
rke2_volume_type = each.value.rke2_volume_type
43+
rke2_volume_device = each.value.rke2_volume_device
4344

4445
s3 = local.s3
4546

@@ -85,6 +86,7 @@ module "servers" {
8586
network_id = openstack_networking_network_v2.net.id
8687
subnet_id = openstack_networking_subnet_v2.lb.id
8788
floating_network_id = data.openstack_networking_network_v2.floating_net.id
89+
lb_provider = var.lb_provider
8890
cluster_name = var.name
8991
}),
9092
"cilium.yml" : templatefile("${path.module}/manifests/cilium.yml.tpl", {
@@ -135,11 +137,12 @@ module "agents" {
135137
availability_zones = coalesce(each.value.availability_zones, [])
136138
affinity = coalesce(each.value.affinity, "soft-anti-affinity")
137139

138-
rke2_version = each.value.rke2_version
139-
rke2_config = each.value.rke2_config
140-
rke2_token = random_string.rke2_token.result
141-
rke2_volume_size = each.value.rke2_volume_size
142-
rke2_volume_type = each.value.rke2_volume_type
140+
rke2_version = each.value.rke2_version
141+
rke2_config = each.value.rke2_config
142+
rke2_token = random_string.rke2_token.result
143+
rke2_volume_size = each.value.rke2_volume_size
144+
rke2_volume_type = each.value.rke2_volume_type
145+
rke2_volume_device = each.value.rke2_volume_device
143146

144147
system_user = each.value.system_user
145148
keypair_name = openstack_compute_keypair_v2.key.name

manifests/cloud-controller-openstack.yml.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ spec:
3737
%{~ endif ~}
3838
subnet-id: ${subnet_id}
3939
network-id: ${network_id}
40-
lb-provider: octavia
40+
lb-provider: ${lb_provider}
4141
manage-security-groups: true
4242
max-shared-lb: 10
4343
controllerExtraArgs: |-

node/cloud-init.yml.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ growpart:
99
fs_setup:
1010
- label: None
1111
filesystem: ext4
12-
device: /dev/sdb
12+
device: ${rke2_device}
1313
mounts:
14-
- ["/dev/sdb", "/var/lib/rancher/rke2", "ext4", "defaults,nofail", "0", "2"]
14+
- [${rke2_device}, "/var/lib/rancher/rke2", "ext4", "defaults,nofail", "0", "2"]
1515

1616
package_update: true
1717
package_upgrade: true

node/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ resource "openstack_compute_instance_v2" "instance" {
7979
rke2_token = var.rke2_token
8080
rke2_version = var.rke2_version
8181
rke2_conf = var.rke2_config != null ? var.rke2_config : ""
82+
rke2_device = var.rke2_volume_device
8283
is_server = var.is_server
8384
is_first = var.is_first && count.index == 0
8485
bootstrap = var.bootstrap && var.is_first && count.index == 0

node/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ variable "rke2_volume_type" {
105105
type = string
106106
}
107107

108+
variable "rke2_volume_device" {
109+
type = string
110+
default = "/dev/sda"
111+
nullable = false
112+
}
113+
108114
variable "s3" {
109115
type = object({
110116
endpoint = string

variables.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ variable "dns_nameservers4" {
8585
default = ["1.1.1.1", "1.0.0.1"]
8686
}
8787

88+
variable "lb_provider" {
89+
type = string
90+
default = "octavia"
91+
nullable = false
92+
}
93+
8894
variable "bootstrap" {
8995
type = bool
9096
default = false
@@ -105,6 +111,7 @@ variable "servers" {
105111
rke2_config = optional(string)
106112
rke2_volume_size = number
107113
rke2_volume_type = optional(string)
114+
rke2_volume_device = optional(string)
108115
}))
109116
validation {
110117
condition = (
@@ -136,6 +143,7 @@ variable "agents" {
136143
rke2_config = optional(string)
137144
rke2_volume_size = number
138145
rke2_volume_type = optional(string)
146+
rke2_volume_device = optional(string)
139147
}))
140148
validation {
141149
condition = (

0 commit comments

Comments
 (0)