Compare commits

...

6 Commits

Author SHA1 Message Date
ccostino
a907a63a97 Merge pull request #2056 from GSA/terraform_upgrade1
restore module redis-v70
2025-10-23 14:23:16 -04:00
Kenneth Kehl
9fa3db8a95 restore module redis-v70 2025-10-23 11:06:17 -07:00
Kenneth Kehl
6d644a9e41 restore module redis-v70 2025-10-23 10:57:25 -07:00
ccostino
f686fee2eb Merge pull request #2055 from GSA/terraform_upgrade1
start upgrading terraform provider
2025-10-23 13:29:45 -04:00
Kenneth Kehl
41f12cce1f whoops 2025-10-23 09:54:27 -07:00
Kenneth Kehl
1af8e7ccfb start upgrading terraform provider 2025-10-23 09:50:56 -07:00
3 changed files with 65 additions and 4 deletions

View File

@@ -36,6 +36,35 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.TERRAFORM_STATE_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.TERRAFORM_STATE_SECRET_ACCESS_KEY }}
run: terraform init
# Some excitement for later. When we have a module we cannot just delete
# (db, csv_bucket) we need to modify the state in the tfstate file.
#
# Once both providers are defined in the providers.tf, the order of operations should be
#
# 1. Uncomment this command and let it run as part of CI/CD. This alters the state,
# but the module will be temporarily unusable
# 2. Go back to main.tf and update the module syntax and parameters for the new provider
# 3. Go through the CI/CD again, at this point it should work.
#
# - name: Terraform change provider
# working-directory: terraform/staging
# env:
# AWS_ACCESS_KEY_ID: ${{ secrets.TERRAFORM_STATE_ACCESS_KEY }}
# AWS_SECRET_ACCESS_KEY: ${{ secrets.TERRAFORM_STATE_SECRET_ACCESS_KEY }}
# TF_VAR_cf_user: ${{ secrets.CLOUDGOV_USERNAME }}
# TF_VAR_cf_password: ${{ secrets.CLOUDGOV_PASSWORD }}
# run: |
# terraform state pull | jq '
# .resources |= map(select(.module == "module.csv_upload_bucket"))
# ' > module-csv_upload_bucket.tfstate
# terraform state replace-provider \
# -state=module-csv_upload_bucket.tfstate \
# 'registry.terraform.io/cloudfoundry-community/cloudfoundry' \
# 'registry.terraform.io/cloudfoundry/cloudfoundry'
# terraform state push module-csv_upload_bucket.tfstate
- name: Terraform apply
working-directory: terraform/staging
env:

View File

@@ -12,6 +12,13 @@ resource "null_resource" "prevent_destroy" {
}
}
data "cloudfoundry_space" "space" {
provider = cloudfoundry.official
org = "9e428562-a2d9-41b4-9c23-1ef5237fb44e"
name = local.cf_space_name
}
module "database" {
source = "github.com/GSA-TTS/terraform-cloudgov//database?ref=v1.0.0"
@@ -21,11 +28,14 @@ module "database" {
rds_plan_name = "small-psql"
}
module "redis-v70" {
source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0"
cf_org_name = local.cf_org_name
cf_space_name = local.cf_space_name
module "redis-v70" {
source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v2.4.0"
# Right now the default is cfcommunity, remove this when default is cloudfoundry
providers = {
cloudfoundry = cloudfoundry.official
}
cf_space_id = data.cloudfoundry_space.space.id
name = "${local.app_name}-redis-v70-${local.env}"
redis_plan_name = "redis-dev"
json_params = jsonencode(
@@ -43,6 +53,15 @@ module "csv_upload_bucket" {
name = "${local.app_name}-csv-upload-bucket-${local.env}"
}
# module "csv_upload_bucket_new" {
# source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v2.4.0"
# providers = {
# cloudfoundry = cloudfoundry.official
# }
# cf_space_id = data.cloudfoundry_space.space.id
# name = "${local.app_name}-csv-upload-bucket-${local.env}"
# }
module "egress-space" {
source = "../shared/egress_space"

View File

@@ -2,6 +2,10 @@ terraform {
required_version = "~> 1.7"
required_providers {
cloudfoundry = {
source = "cloudfoundry/cloudfoundry"
version = "1.9.0"
}
cfcommunity = {
source = "cloudfoundry-community/cloudfoundry"
version = "0.53.1"
}
@@ -16,7 +20,16 @@ terraform {
}
}
# Official provider (should be default but aliased for now)
provider "cloudfoundry" {
alias = "official"
api_url = "https://api.fr.cloud.gov"
user = var.cf_user
password = var.cf_password
}
# Community provider (should be aliased but default for now)
provider "cfcommunity" {
api_url = "https://api.fr.cloud.gov"
user = var.cf_user
password = var.cf_password