change pipeline generation + add tf dockerfile

This commit is contained in:
kochetkov.s 2026-01-23 17:41:12 +03:00
parent 4c72a2855d
commit 56d0152dc5
2 changed files with 31 additions and 30 deletions

View File

@ -1,6 +1,3 @@
# Глобальная конфигурация Terragrunt
# Настройка удаленного бэкенда для хранения состояния
remote_state { remote_state {
backend = "s3" backend = "s3"
generate = { generate = {
@ -12,8 +9,8 @@ remote_state {
bucket = "tfstate-terragrunt-stage" bucket = "tfstate-terragrunt-stage"
key = "${path_relative_to_include()}/terraform.tfstate" key = "${path_relative_to_include()}/terraform.tfstate"
region = "ru-central1" region = "ru-central1"
access_key = get_env("S3_ACCESS_KEY", "") access_key = get_env("S3_ACCESS_KEY", get_env("AWS_ACCESS_KEY_ID", ""))
secret_key = get_env("S3_SECRET_KEY", "") secret_key = get_env("S3_SECRET_KEY", get_env("AWS_SECRET_ACCESS_KEY", ""))
skip_region_validation = true skip_region_validation = true
skip_credentials_validation = true skip_credentials_validation = true
skip_metadata_api_check = true skip_metadata_api_check = true

View File

@ -63,24 +63,26 @@ find live -name "terragrunt.hcl" -not -path "*/.terragrunt-cache/*" | sort | whi
;; ;;
esac esac
# Get the folder ID variable name and use it in the generated YAML
cat >> "$OUTPUT_FILE" << EOF cat >> "$OUTPUT_FILE" << EOF
validate-${job_prefix}: validate-${job_prefix}:
stage: validate stage: validate
image: ${TERRAFORM_IMAGE_NAME} image: \${TERRAFORM_IMAGE_NAME}
variables: variables:
TG_ROOT: "${component_dir}" TG_ROOT: "${component_dir}"
ENVIRONMENT: "${env}" ENVIRONMENT: "${env}"
YC_FOLDER_ID: "\${${folder_var}}" YC_FOLDER_ID: "\${${folder_var}}"
YC_TOKEN: "${YC_IAM_TOKEN}" YC_TOKEN: "\${YC_IAM_TOKEN}"
S3_ACCESS_KEY: "${S3_ACCESS_KEY}" S3_ACCESS_KEY: "\${S3_ACCESS_KEY}"
S3_SECRET_KEY: "${S3_SECRET_KEY}" S3_SECRET_KEY: "\${S3_SECRET_KEY}"
S3_STATE_BUCKET: "${S3_STATE_BUCKET}" S3_STATE_BUCKET: "\${S3_STATE_BUCKET}"
TG_TF_PATH: "/usr/local/bin/terraform" TG_TF_PATH: "/usr/local/bin/terraform"
before_script: before_script:
- echo "DEBUG: S3_ACCESS_KEY=\${S3_ACCESS_KEY}" - echo "${S3_ACCESS_KEY}"
- echo "DEBUG: S3_SECRET_KEY=\${S3_SECRET_KEY}" - echo "${S3_SECRET_KEY}"
- export AWS_EC2_METADATA_DISABLED=true - export S3_ACCESS_KEY="\${S3_ACCESS_KEY}"
- export S3_SECRET_KEY="\${S3_SECRET_KEY}"
- export AWS_ACCESS_KEY_ID="\${S3_ACCESS_KEY}"
- export AWS_SECRET_ACCESS_KEY="\${S3_SECRET_KEY}"
- cd \${TG_ROOT} - cd \${TG_ROOT}
script: script:
- terragrunt init -reconfigure - terragrunt init -reconfigure
@ -98,20 +100,21 @@ EOF
cat >> "$OUTPUT_FILE" << EOF cat >> "$OUTPUT_FILE" << EOF
plan-${job_prefix}: plan-${job_prefix}:
stage: plan stage: plan
image: ${TERRAFORM_IMAGE_NAME} image: \${TERRAFORM_IMAGE_NAME}
variables: variables:
TG_ROOT: "${component_dir}" TG_ROOT: "${component_dir}"
ENVIRONMENT: "${env}" ENVIRONMENT: "${env}"
YC_FOLDER_ID: "\${${folder_var}}" YC_FOLDER_ID: "\${${folder_var}}"
YC_TOKEN: "${YC_IAM_TOKEN}" YC_TOKEN: "\${YC_IAM_TOKEN}"
S3_ACCESS_KEY: "${S3_ACCESS_KEY}" S3_ACCESS_KEY: "\${S3_ACCESS_KEY}"
S3_SECRET_KEY: "${S3_SECRET_KEY}" S3_SECRET_KEY: "\${S3_SECRET_KEY}"
S3_STATE_BUCKET: "${S3_STATE_BUCKET}" S3_STATE_BUCKET: "\${S3_STATE_BUCKET}"
TG_TF_PATH: "/usr/local/bin/terraform" TG_TF_PATH: "/usr/local/bin/terraform"
before_script: before_script:
- echo "DEBUG: S3_ACCESS_KEY=\${S3_ACCESS_KEY}" - export S3_ACCESS_KEY="\${S3_ACCESS_KEY}"
- echo "DEBUG: S3_SECRET_KEY=\${S3_SECRET_KEY}" - export S3_SECRET_KEY="\${S3_SECRET_KEY}"
- export AWS_EC2_METADATA_DISABLED=true - export AWS_ACCESS_KEY_ID="\${S3_ACCESS_KEY}"
- export AWS_SECRET_ACCESS_KEY="\${S3_SECRET_KEY}"
- cd \${TG_ROOT} - cd \${TG_ROOT}
script: script:
- terragrunt init -reconfigure - terragrunt init -reconfigure
@ -140,20 +143,21 @@ EOF
cat >> "$OUTPUT_FILE" << EOF cat >> "$OUTPUT_FILE" << EOF
apply-${job_prefix}: apply-${job_prefix}:
stage: apply stage: apply
image: ${TERRAFORM_IMAGE_NAME} image: \${TERRAFORM_IMAGE_NAME}
variables: variables:
TG_ROOT: "${component_dir}" TG_ROOT: "${component_dir}"
ENVIRONMENT: "${env}" ENVIRONMENT: "${env}"
YC_FOLDER_ID: "\${${folder_var}}" YC_FOLDER_ID: "\${${folder_var}}"
YC_TOKEN: "${YC_IAM_TOKEN}" YC_TOKEN: "\${YC_IAM_TOKEN}"
S3_ACCESS_KEY: "${S3_ACCESS_KEY}" S3_ACCESS_KEY: "\${S3_ACCESS_KEY}"
S3_SECRET_KEY: "${S3_SECRET_KEY}" S3_SECRET_KEY: "\${S3_SECRET_KEY}"
S3_STATE_BUCKET: "${S3_STATE_BUCKET}" S3_STATE_BUCKET: "\${S3_STATE_BUCKET}"
TG_TF_PATH: "/usr/local/bin/terraform" TG_TF_PATH: "/usr/local/bin/terraform"
before_script: before_script:
- echo "DEBUG: S3_ACCESS_KEY=\${S3_ACCESS_KEY}" - export S3_ACCESS_KEY="\${S3_ACCESS_KEY}"
- echo "DEBUG: S3_SECRET_KEY=\${S3_SECRET_KEY}" - export S3_SECRET_KEY="\${S3_SECRET_KEY}"
- export AWS_EC2_METADATA_DISABLED=true - export AWS_ACCESS_KEY_ID="\${S3_ACCESS_KEY}"
- export AWS_SECRET_ACCESS_KEY="\${S3_SECRET_KEY}"
- cd \${TG_ROOT} - cd \${TG_ROOT}
script: script:
- terragrunt init -reconfigure - terragrunt init -reconfigure