Commit ddfd5286 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

Merge branch 'feat/env-url-improvement' into 'master'

Draft: Simplify environments url management in deployment templates

See merge request to-be-continuous/terraform!55
parents e9fead76 ca7a4090
Loading
Loading
Loading
Loading
+196 −179

File changed.

Preview size limit exceeded, changes collapsed.

+22 −22
Original line number Diff line number Diff line
@@ -40,22 +40,22 @@
    },
    {
      "name": "TF_INIT_OPTS",
      "description": "Default Terraform extra [init options](https://www.terraform.io/docs/cli/commands/init.html)",
      "description": "Default Terraform extra [init options](https://developer.hashicorp.com/terraform/cli/commands/init)",
      "advanced": true
    },
    {
      "name": "TF_PLAN_OPTS",
      "description": "Default Terraform extra [plan options](https://www.terraform.io/docs/cli/commands/plan.html)",
      "description": "Default Terraform extra [plan options](https://developer.hashicorp.com/terraform/cli/commands/plan)",
      "advanced": true
    },
    {
      "name": "TF_APPLY_OPTS",
      "description": "Default Terraform extra [apply options](https://www.terraform.io/docs/cli/commands/apply.html)",
      "description": "Default Terraform extra [apply options](https://developer.hashicorp.com/terraform/cli/commands/apply)",
      "advanced": true
    },
    {
      "name": "TF_DESTROY_OPTS",
      "description": "Default Terraform extra [destroy options](https://www.terraform.io/docs/cli/commands/destroy.html)",
      "description": "Default Terraform extra [destroy options](https://developer.hashicorp.com/terraform/cli/commands/destroy)",
      "advanced": true
    }
  ],
@@ -149,12 +149,12 @@
    {
      "id": "tffmt",
      "name": "tffmt",
      "description": "Check your Terraform code with [tffmt](https://www.terraform.io/cli/commands/fmt#usage)",
      "description": "Check your Terraform code with [tffmt](https://developer.hashicorp.com/terraform/cli/commands/fmt#usage)",
      "enable_with": "TF_FMT_ENABLED",
      "variables": [
        {
          "name": "TF_FMT_ARGS",
          "description": "terraform fmt extra [options](https://www.terraform.io/cli/commands/fmt#usage)",
          "description": "terraform fmt extra [options](https://developer.hashicorp.com/terraform/cli/commands/fmt#usage)",
          "default": "-diff -recursive"
        }
      ]
@@ -173,7 +173,7 @@
        },
        {
          "name": "TF_REVIEW_INIT_OPTS",
          "description": "Terraform extra [init options](https://www.terraform.io/docs/cli/commands/init.html) for `review` env",
          "description": "Terraform extra [init options](https://developer.hashicorp.com/terraform/cli/commands/init) for `review` env",
          "default": "$TF_INIT_OPTS",
          "advanced": true
        },
@@ -185,19 +185,19 @@
        },
        {
          "name": "TF_REVIEW_PLAN_OPTS",
          "description": "Terraform extra [plan options](https://www.terraform.io/docs/cli/commands/plan.html) for `review` env",
          "description": "Terraform extra [plan options](https://developer.hashicorp.com/terraform/cli/commands/plan) for `review` env",
          "default": "$TF_PLAN_OPTS",
          "advanced": true
        },
        {
          "name": "TF_REVIEW_APPLY_OPTS",
          "description": "Terraform extra [apply options](https://www.terraform.io/docs/cli/commands/apply.html) for `review` env",
          "description": "Terraform extra [apply options](https://developer.hashicorp.com/terraform/cli/commands/apply) for `review` env",
          "default": "$TF_APPLY_OPTS",
          "advanced": true
        },
        {
          "name": "TF_REVIEW_DESTROY_OPTS",
          "description": "Terraform extra [destroy options](https://www.terraform.io/docs/cli/commands/destroy.html) for `review` env",
          "description": "Terraform extra [destroy options](https://developer.hashicorp.com/terraform/cli/commands/destroy) for `review` env",
          "default": "$TF_DESTROY_OPTS",
          "advanced": true
        }
@@ -217,7 +217,7 @@
        },
        {
          "name": "TF_INTEG_INIT_OPTS",
          "description": "Terraform extra [init options](https://www.terraform.io/docs/cli/commands/init.html) for `integration` env",
          "description": "Terraform extra [init options](https://developer.hashicorp.com/terraform/cli/commands/init) for `integration` env",
          "default": "$TF_INIT_OPTS",
          "advanced": true
        },
@@ -229,19 +229,19 @@
        },
        {
          "name": "TF_INTEG_PLAN_OPTS",
          "description": "Terraform extra [plan options](https://www.terraform.io/docs/cli/commands/plan.html) for `integration` env",
          "description": "Terraform extra [plan options](https://developer.hashicorp.com/terraform/cli/commands/plan) for `integration` env",
          "default": "$TF_PLAN_OPTS",
          "advanced": true
        },
        {
          "name": "TF_INTEG_APPLY_OPTS",
          "description": "Terraform extra [apply options](https://www.terraform.io/docs/cli/commands/apply.html) for `integration` env",
          "description": "Terraform extra [apply options](https://developer.hashicorp.com/terraform/cli/commands/apply) for `integration` env",
          "default": "$TF_APPLY_OPTS",
          "advanced": true
        },
        {
          "name": "TF_INTEG_DESTROY_OPTS",
          "description": "Terraform extra [destroy options](https://www.terraform.io/docs/cli/commands/destroy.html) for `integration` env",
          "description": "Terraform extra [destroy options](https://developer.hashicorp.com/terraform/cli/commands/destroy) for `integration` env",
          "default": "$TF_DESTROY_OPTS",
          "advanced": true
        }
@@ -261,7 +261,7 @@
        },
        {
          "name": "TF_STAGING_INIT_OPTS",
          "description": "Terraform extra [init options](https://www.terraform.io/docs/cli/commands/init.html) for `staging` env",
          "description": "Terraform extra [init options](https://developer.hashicorp.com/terraform/cli/commands/init) for `staging` env",
          "default": "$TF_INIT_OPTS",
          "advanced": true
        },
@@ -273,19 +273,19 @@
        },
        {
          "name": "TF_STAGING_PLAN_OPTS",
          "description": "Terraform extra [plan options](https://www.terraform.io/docs/cli/commands/plan.html) for `staging` env",
          "description": "Terraform extra [plan options](https://developer.hashicorp.com/terraform/cli/commands/plan) for `staging` env",
          "default": "$TF_PLAN_OPTS",
          "advanced": true
        },
        {
          "name": "TF_STAGING_APPLY_OPTS",
          "description": "Terraform extra [apply options](https://www.terraform.io/docs/cli/commands/apply.html) for `staging` env",
          "description": "Terraform extra [apply options](https://developer.hashicorp.com/terraform/cli/commands/apply) for `staging` env",
          "default": "$TF_APPLY_OPTS",
          "advanced": true
        },
        {
          "name": "TF_STAGING_DESTROY_OPTS",
          "description": "Terraform extra [destroy options](https://www.terraform.io/docs/cli/commands/destroy.html) for `staging` env",
          "description": "Terraform extra [destroy options](https://developer.hashicorp.com/terraform/cli/commands/destroy) for `staging` env",
          "default": "$TF_DESTROY_OPTS",
          "advanced": true
        }
@@ -305,7 +305,7 @@
        },
        {
          "name": "TF_PROD_INIT_OPTS",
          "description": "Terraform extra [init options](https://www.terraform.io/docs/cli/commands/init.html) for `production` env",
          "description": "Terraform extra [init options](https://developer.hashicorp.com/terraform/cli/commands/init) for `production` env",
          "default": "$TF_INIT_OPTS",
          "advanced": true
        },
@@ -318,19 +318,19 @@
        },
        {
          "name": "TF_PROD_PLAN_OPTS",
          "description": "Terraform extra [plan options](https://www.terraform.io/docs/cli/commands/plan.html) for `production` env",
          "description": "Terraform extra [plan options](https://developer.hashicorp.com/terraform/cli/commands/plan) for `production` env",
          "default": "$TF_PLAN_OPTS",
          "advanced": true
        },
        {
          "name": "TF_PROD_APPLY_OPTS",
          "description": "Terraform extra [apply options](https://www.terraform.io/docs/cli/commands/apply.html) for `production` env",
          "description": "Terraform extra [apply options](https://developer.hashicorp.com/terraform/cli/commands/apply) for `production` env",
          "default": "$TF_APPLY_OPTS",
          "advanced": true
        },
        {
          "name": "TF_PROD_DESTROY_OPTS",
          "description": "Terraform extra [destroy options](https://www.terraform.io/docs/cli/commands/destroy.html) for `production` env",
          "description": "Terraform extra [destroy options](https://developer.hashicorp.com/terraform/cli/commands/destroy) for `production` env",
          "default": "$TF_DESTROY_OPTS",
          "advanced": true
        }
+7 −3
Original line number Diff line number Diff line
@@ -306,11 +306,11 @@ stages:
    log_info "--- \\e[32minit\\e[0m"
    log_info "--- Positioned environment (can also be used as TF vars):"
    # shellcheck disable=SC2154
    log_info "--- environment_type: \\e[33;1m${environment_type}\\e[0m"
    log_info "--- \$environment_type: \\e[33;1m${environment_type}\\e[0m"
    # shellcheck disable=SC2154
    log_info "--- environment_name: \\e[33;1m${environment_name}\\e[0m"
    log_info "--- \$environment_name: \\e[33;1m${environment_name}\\e[0m"
    # shellcheck disable=SC2154
    log_info "--- environment_slug: \\e[33;1m${environment_slug}\\e[0m"
    log_info "--- \$environment_slug: \\e[33;1m${environment_slug}\\e[0m"

    # maybe enable debug log
    if [[ "$TRACE" ]]; then
@@ -437,6 +437,9 @@ stages:
    # shellcheck disable=SC2154
    log_info "--- \\e[32mapply\\e[0m"

    # unset any upstream deployment env & artifacts
    rm -f terraform.env

    # maybe execute pre apply script
    prescript="$TF_SCRIPTS_DIR/tf-pre-apply.sh"
    if [[ -f "$prescript" ]]; then
@@ -475,6 +478,7 @@ stages:
    fi

    # finally propagate environment info
    # /!\ append is important here as it may have been created by a hook script
    echo -e "environment_type=$environment_type\\nenvironment_name=$CI_ENVIRONMENT_NAME\\nenvironment_slug=$CI_ENVIRONMENT_SLUG" >> terraform.env
  }