diff --git a/bootstrap-ceph.sh b/bootstrap-ceph.sh index 44b5253..55dd3f6 100644 --- a/bootstrap-ceph.sh +++ b/bootstrap-ceph.sh @@ -52,5 +52,7 @@ ceph mon enable-msgr2 ceph mgr module enable pg_autoscaler ceph config set mon auth_allow_insecure_global_id_reclaim false #Create storage disk +sudo growpart --free-percent=80 /dev/sda 1 +#FIXME create partition ceph-volume lvm create --data /dev/sda2 diff --git a/main.tf b/main.tf index 7268ca4..2bb33e1 100644 --- a/main.tf +++ b/main.tf @@ -5,6 +5,7 @@ required_version = ">= 0.14.0" openstack = { source = "terraform-provider-openstack/openstack" version = "~> 1.53.0" + configuration_aliases = [ openstack.sto4 ] } } } @@ -13,11 +14,34 @@ required_version = ">= 0.14.0" provider "openstack" { cloud = "dco-platform" } +provider "openstack" { + cloud = "sto4-platform" + alias = "sto4" +} +resource "openstack_networking_secgroup_v2" "ssh-jump-tofu-sto4" { + provider = openstack.sto4 + description = "SSH from jumphost rule for SWAMID machine - managed by tofu" + name = "ssh-jump-tofu" + delete_default_rules = false +} resource "openstack_networking_secgroup_v2" "ssh-jump-tofu" { description = "SSH from jumphost rule for SWAMID machine - managed by tofu" name = "ssh-jump-tofu" delete_default_rules = false } + +resource "openstack_networking_secgroup_rule_v2" "v4-jump-sto4" { + provider = openstack.sto4 + for_each = var.jump_hosts + direction = "ingress" + ethertype = "IPv4" + port_range_min = 22 + port_range_max = 22 + protocol = "tcp" + remote_ip_prefix = each.value["v4"] + security_group_id = "${openstack_networking_secgroup_v2.ssh-jump-tofu-sto4.id}" + +} resource "openstack_networking_secgroup_rule_v2" "v4-jump" { for_each = var.jump_hosts direction = "ingress" @@ -29,6 +53,17 @@ resource "openstack_networking_secgroup_rule_v2" "v4-jump" { security_group_id = openstack_networking_secgroup_v2.ssh-jump-tofu.id } +resource "openstack_networking_secgroup_rule_v2" "v6-jump-sto4" { + provider = openstack.sto4 + for_each = var.jump_hosts + direction = "ingress" + ethertype = "IPv6" + port_range_min = 22 + port_range_max = 22 + protocol = "tcp" + remote_ip_prefix = each.value["v6"] + security_group_id = openstack_networking_secgroup_v2.ssh-jump-tofu-sto4.id +} resource "openstack_networking_secgroup_rule_v2" "v6-jump" { for_each = var.jump_hosts direction = "ingress" @@ -39,6 +74,28 @@ resource "openstack_networking_secgroup_rule_v2" "v6-jump" { remote_ip_prefix = each.value["v6"] security_group_id = openstack_networking_secgroup_v2.ssh-jump-tofu.id } +resource "openstack_compute_instance_v2" "ceph-nodes-sto4" { + provider = openstack.sto4 + count = var.instance_count + name = "${var.instance_name}-${count.index}.${var.dns_suffix}" + flavor_name = "${var.instance_type}" + key_pair = "mifr-yubi" + security_groups = ["ssh-jump-tofu",] + image_name = "debian-12" + user_data = "#cloud-config\ngrowpart:\nmode: false" + block_device { + boot_index = 0 + delete_on_termination = true + destination_type = "local" + source_type = "image" + uuid = "5d24aca9-11be-4de1-9770-4a097d68f361" + volume_size = 20 + } + + network { + name = "public" + } +} resource "openstack_compute_instance_v2" "ceph-nodes" { count = var.instance_count name = "${var.instance_name}-${count.index}.${var.dns_suffix}"