# path pattern # dev/prom-regional-service/envs/dev-aws-us-west-2 region_list = [ { "env": "dev", "regions": [ "dev-aws-us-east-1", "dev-aws-us-west-2", ] }, { "env": "staging", "regions": [ "stg-aws-us-east-1", "stg-aws-us-west-2", ] }, { "env": "prod", "regions": [ "prod-aws-ap-northeast-1", "prod-aws-ap-northeast-2", "prod-aws-ap-south-1", "prod-aws-ap-southeast-1", "prod-aws-ap-southeast-3", "prod-aws-eu-central-1", "prod-aws-us-east-1", "prod-aws-us-west-2", "prod-aws-ap-southeast-5", "prod-aws-ap-east-1", "prod-aws-eu-west-1", "prod-aws-af-south-1", "prod-aws-ap-northeast-3", "prod-aws-ap-southeast-2", "prod-aws-ap-southeast-7", "prod-aws-sa-east-1", "prod-aws-us-east-2", ] } ] # "us-west-2.aws.regional.dev.prom.integration.tidbcloud.com" # "dev.prom.integration.tidbcloud.com" for region_info in region_list: env = region_info["env"] for region in region_info["regions"]: if "aws" not in region: continue # region: dev-aws-us-east-1 -> us-east-1 region_short = region.split( '-')[-2] + '-' + region.split('-')[-1] if region.startswith(f"{env}-aws-") else region region_short = region.replace(f"{env}-aws-", "") if env == 'staging': region_short = region.replace(f"stg-aws-", "") domain_name = f"{region_short}.aws.{env}.prom.integration.tidbcloud.com" domain_zone = f"{env}.prom.integration.tidbcloud.com" plan_file = f"plan-{env}-{region_short}-cert.tfplan" state_file = f"state-{env}-{region_short}.tfstate" plan_cmd = ( f'terraform plan -input=false \\\n' f' -var "domain_name={domain_name}" \\\n' f' -var "domain_zone={domain_zone}" \\\n' f' -var "region={region_short}" \\\n' f' -out={plan_file} \\\n' f' -state={state_file}' ) apply_cmd = f"terraform apply -input=false -state={state_file} {plan_file} " print(f"# target {env} {region_short}") print(plan_cmd) print() print(apply_cmd) print("\n" + ("-" * 60) + "\n")