From 90883e76af75e4f65f3b4a1f74a0a83d2394033b Mon Sep 17 00:00:00 2001 From: Christian Rohmann Date: Tue, 29 Mar 2022 09:07:11 +0200 Subject: [PATCH] terrform/openstack: Fix templating of ansible_ssh_common_args in no_floating.yml if used as TF module (#8646) * terraform/openstack: Use path.module for ansible_bastion_template.txt This extends on #7643 by not using path.root, but switching to path.module to allow use of the terraform code as a module itself. This change then keeps all calls to the template file stable even for that use-case. * terraform/openstack: Make sed calls fail on errors By using a single call with two replacements to use of sed will create proper exit codes and allowing for errors to be recognized by terraform. --- .../{ => modules/compute}/ansible_bastion_template.txt | 0 contrib/terraform/openstack/modules/compute/main.tf | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) rename contrib/terraform/openstack/{ => modules/compute}/ansible_bastion_template.txt (100%) diff --git a/contrib/terraform/openstack/ansible_bastion_template.txt b/contrib/terraform/openstack/modules/compute/ansible_bastion_template.txt similarity index 100% rename from contrib/terraform/openstack/ansible_bastion_template.txt rename to contrib/terraform/openstack/modules/compute/ansible_bastion_template.txt diff --git a/contrib/terraform/openstack/modules/compute/main.tf b/contrib/terraform/openstack/modules/compute/main.tf index 9f6fbc75b..10a41a99d 100644 --- a/contrib/terraform/openstack/modules/compute/main.tf +++ b/contrib/terraform/openstack/modules/compute/main.tf @@ -228,7 +228,7 @@ resource "openstack_compute_instance_v2" "bastion" { } provisioner "local-exec" { - 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" + command = "sed -e s/USER/${var.ssh_user}/ -e s/BASTION_ADDRESS/${var.bastion_fips[0]}/ ${path.module}/ansible_bastion_template.txt > ${var.group_vars_path}/no_floating.yml" } } @@ -284,7 +284,7 @@ resource "openstack_compute_instance_v2" "k8s_master" { } provisioner "local-exec" { - 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" + command = "sed -e s/USER/${var.ssh_user}/ -e s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ ${path.module}/ansible_bastion_template.txt > ${var.group_vars_path}/no_floating.yml" } } @@ -340,7 +340,7 @@ resource "openstack_compute_instance_v2" "k8s_master_no_etcd" { } provisioner "local-exec" { - 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" + command = "sed -e s/USER/${var.ssh_user}/ -e s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_master_fips), 0)}/ ${path.module}/ansible_bastion_template.txt > ${var.group_vars_path}/no_floating.yml" } } @@ -547,7 +547,7 @@ resource "openstack_compute_instance_v2" "k8s_node" { } provisioner "local-exec" { - 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" + command = "sed -e s/USER/${var.ssh_user}/ -e s/BASTION_ADDRESS/${element(concat(var.bastion_fips, var.k8s_node_fips), 0)}/ ${path.module}/ansible_bastion_template.txt > ${var.group_vars_path}/no_floating.yml" } } @@ -653,7 +653,7 @@ resource "openstack_compute_instance_v2" "k8s_nodes" { } provisioner "local-exec" { - 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}" + command = "%{if each.value.floating_ip}sed -e s/USER/${var.ssh_user}/ -e s/BASTION_ADDRESS/${element(concat(var.bastion_fips, [for key, value in var.k8s_nodes_fips : value.address]), 0)}/ ${path.module}/ansible_bastion_template.txt > ${var.group_vars_path}/no_floating.yml%{else}true%{endif}" } }