From d7039ef707f134b0d58d9a98b3255b0735698b1a Mon Sep 17 00:00:00 2001 From: Simon Kollberg Date: Fri, 25 Jun 2021 09:26:45 +0200 Subject: [PATCH] Openstack cwd (#7643) * terraform/openstack: Use path.root for ansible_bastion_template.txt The path.root variable points to the root module path. Using this instead of a relative path makes less assumptions about the current working directory. * terraform/openstack: Add group_vars_path variable Previously, the group_vars path was assumed to be in CWD. The default value for the group_vars_path variable is still relative to CWD and thus should be backwards compatible if unset. --- contrib/terraform/openstack/kubespray.tf | 1 + contrib/terraform/openstack/modules/compute/main.tf | 10 +++++----- .../terraform/openstack/modules/compute/variables.tf | 4 ++++ contrib/terraform/openstack/variables.tf | 6 ++++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/contrib/terraform/openstack/kubespray.tf b/contrib/terraform/openstack/kubespray.tf index 23c98552a..424c134dd 100644 --- a/contrib/terraform/openstack/kubespray.tf +++ b/contrib/terraform/openstack/kubespray.tf @@ -83,6 +83,7 @@ module "compute" { use_server_groups = var.use_server_groups extra_sec_groups = var.extra_sec_groups extra_sec_groups_name = var.extra_sec_groups_name + group_vars_path = var.group_vars_path network_id = module.network.router_id } diff --git a/contrib/terraform/openstack/modules/compute/main.tf b/contrib/terraform/openstack/modules/compute/main.tf index 9409be3c6..f803f2548 100644 --- a/contrib/terraform/openstack/modules/compute/main.tf +++ b/contrib/terraform/openstack/modules/compute/main.tf @@ -204,7 +204,7 @@ resource "openstack_compute_instance_v2" "bastion" { } provisioner "local-exec" { - command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${var.bastion_fips[0]}/ > group_vars/no_floating.yml" + command = "sed s/USER/${var.ssh_user}/ ${path.root}/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${var.bastion_fips[0]}/ > ${var.group_vars_path}/no_floating.yml" } } @@ -251,7 +251,7 @@ resource "openstack_compute_instance_v2" "k8s_master" { } provisioner "local-exec" { - command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > group_vars/no_floating.yml" + command = "sed s/USER/${var.ssh_user}/ ${path.root}/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > ${var.group_vars_path}/no_floating.yml" } } @@ -298,7 +298,7 @@ resource "openstack_compute_instance_v2" "k8s_master_no_etcd" { } provisioner "local-exec" { - command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > group_vars/no_floating.yml" + command = "sed s/USER/${var.ssh_user}/ ${path.root}/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ > ${var.group_vars_path}/no_floating.yml" } } @@ -468,7 +468,7 @@ resource "openstack_compute_instance_v2" "k8s_node" { } provisioner "local-exec" { - command = "sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_node_fips), 0)}/ > group_vars/no_floating.yml" + command = "sed s/USER/${var.ssh_user}/ ${path.root}/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_node_fips), 0)}/ > ${var.group_vars_path}/no_floating.yml" } } @@ -554,7 +554,7 @@ resource "openstack_compute_instance_v2" "k8s_nodes" { } provisioner "local-exec" { - command = "%{if each.value.floating_ip}sed s/USER/${var.ssh_user}/ ../../contrib/terraform/openstack/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, [for key, value in var.k8s_nodes_fips : value.address]), 0)}/ > group_vars/no_floating.yml%{else}true%{endif}" + command = "%{if each.value.floating_ip}sed s/USER/${var.ssh_user}/ ${path.root}/ansible_bastion_template.txt | sed s/BASTION_ADDRESS/${element(concat(var.bastion_fips, [for key, value in var.k8s_nodes_fips : value.address]), 0)}/ > ${var.group_vars_path}/no_floating.yml%{else}true%{endif}" } } diff --git a/contrib/terraform/openstack/modules/compute/variables.tf b/contrib/terraform/openstack/modules/compute/variables.tf index 8dcf72cd3..1f013205d 100644 --- a/contrib/terraform/openstack/modules/compute/variables.tf +++ b/contrib/terraform/openstack/modules/compute/variables.tf @@ -151,3 +151,7 @@ variable "image_master" { variable "image_master_uuid" { type = string } + +variable "group_vars_path" { + type = string +} diff --git a/contrib/terraform/openstack/variables.tf b/contrib/terraform/openstack/variables.tf index 35bd62b60..a6c3c6408 100644 --- a/contrib/terraform/openstack/variables.tf +++ b/contrib/terraform/openstack/variables.tf @@ -278,3 +278,9 @@ variable "image_master_uuid" { description = "uuid of image to be used on master nodes. If empty defaults to image_uuid" default = "" } + +variable "group_vars_path" { + description = "path to the inventory group vars directory" + type = string + default = "./group_vars" +}