Compare commits
10 Commits
4eb7eff790
...
63eacd7406
| Author | SHA1 | Date | |
|---|---|---|---|
| 63eacd7406 | |||
| 719018e0d6 | |||
| bf5417aa4c | |||
| 5e6f5a1523 | |||
| f729e23a9f | |||
| cc54a82cee | |||
| 806bfe7ae5 | |||
| 7aa1367a46 | |||
| 362750ad08 | |||
| 0657acd0c8 |
@@ -57,14 +57,14 @@
|
|||||||
echo '
|
echo '
|
||||||
- |
|
- |
|
||||||
pwsh -c "Install-Module -Name powershell-yaml -Confirm:\$false -Force
|
pwsh -c "Install-Module -Name powershell-yaml -Confirm:\$false -Force
|
||||||
\$template = (Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -Uri \"https://gitlab.com/api/v4/projects/45028985/repository/files/durpapi%2FChart.yaml/raw?ref=dev\") | ConvertFrom-Yaml
|
\$template = (Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -Uri \"\$ENV:CI_API_V4_URL/projects/\$ENV:GITLAB_PROJECT_ID/repository/files/\$ENV:GITLAB_CHART_PATH/raw?ref=\$ENV:ENVIRONMENT\") | ConvertFrom-Yaml
|
||||||
\$template.version = \$ENV:VERSION
|
\$template.version = \$ENV:VERSION
|
||||||
\$body = @{
|
\$body = @{
|
||||||
branch = \"dev\"
|
branch = \"\$ENV:ENVIRONMENT\"
|
||||||
commit_message = \"Update Chart\"
|
commit_message = \"Update Chart\"
|
||||||
content = \"\$(\$template | convertto-yaml)\"
|
content = \"\$(\$template | convertto-yaml)\"
|
||||||
} | ConvertTo-Json
|
} | ConvertTo-Json
|
||||||
Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -ContentType \"application/json\" -Method Put -body \$body -Uri \"https://gitlab.com/api/v4/projects/45028985/repository/files/durpapi%2FChart.yaml\""
|
Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -ContentType \"application/json\" -Method Put -body \$body -Uri \"\$ENV:CI_API_V4_URL/projects/\$ENV:GITLAB_PROJECT_ID/repository/files/\$ENV:GITLAB_CHART_PATH\""
|
||||||
needs:
|
needs:
|
||||||
- pipeline: $PARENT_PIPELINE_ID
|
- pipeline: $PARENT_PIPELINE_ID
|
||||||
job: version
|
job: version
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
# Begin of fmt.sh
|
# Begin of fmt.sh
|
||||||
- |
|
- |
|
||||||
#Terraform fmt
|
#Terraform fmt
|
||||||
terraform fmt -diff -check -write=false
|
tofu fmt -diff -check -write=false
|
||||||
# End of fmt.sh
|
# End of fmt.sh
|
||||||
.terraform_validate:
|
.terraform_validate:
|
||||||
script:
|
script:
|
||||||
@@ -20,11 +20,11 @@
|
|||||||
# End of cd-workdir.sh
|
# End of cd-workdir.sh
|
||||||
|
|
||||||
# Begin of init.sh
|
# Begin of init.sh
|
||||||
- "#Terraform init \nterraform init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
- "#Terraform init \ntofu init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
||||||
# End of init.sh
|
# End of init.sh
|
||||||
|
|
||||||
# Begin of validate.sh
|
# Begin of validate.sh
|
||||||
- "#Terraform validate\nterraform validate \n"
|
- "#Terraform validate\ntofu validate \n"
|
||||||
# End of validate.sh
|
# End of validate.sh
|
||||||
.terraform_plan:
|
.terraform_plan:
|
||||||
variables:
|
variables:
|
||||||
@@ -38,11 +38,11 @@
|
|||||||
# End of cd-workdir.sh
|
# End of cd-workdir.sh
|
||||||
|
|
||||||
# Begin of init.sh
|
# Begin of init.sh
|
||||||
- "#Terraform init \nterraform init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
- "#Terraform init \ntofu init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
||||||
# End of init.sh
|
# End of init.sh
|
||||||
|
|
||||||
# Begin of plan.sh
|
# Begin of plan.sh
|
||||||
- "#Terraform plan \napk add --update curl jq\nalias convert_report=\"jq -r '([.resource_changes[].change.actions?]|flatten)|{\\\"create\\\":(map(select(.==\\\"create\\\"))|length),\\\"update\\\":(map(select(.==\\\"update\\\"))|length),\\\"delete\\\":(map(select(.==\\\"delete\\\"))|length)}'\"\nterraform plan -out=$PLAN $ARGUMENTS\nterraform show --json $PLAN | convert_report > $JSON_PLAN_FILE\n"
|
- "#Terraform plan \napk add --update curl jq \nalias convert_report=\"jq -r '([.resource_changes[].change.actions?]|flatten)|{\\\"create\\\":(map(select(.==\\\"create\\\"))|length),\\\"update\\\":(map(select(.==\\\"update\\\"))|length),\\\"delete\\\":(map(select(.==\\\"delete\\\"))|length)}'\"\ntofu plan -out=$PLAN $ARGUMENTS\ntofu show --json $PLAN | jq -r '([.resource_changes[].change.actions?]|flatten)|{\"create\":(map(select(.==\"create\"))|length),\"update\":(map(select(.==\"update\"))|length),\"delete\":(map(select(.==\"delete\"))|length)}' > $JSON_PLAN_FILE\n"
|
||||||
# End of plan.sh
|
# End of plan.sh
|
||||||
artifacts:
|
artifacts:
|
||||||
reports:
|
reports:
|
||||||
@@ -56,13 +56,13 @@
|
|||||||
# End of cd-workdir.sh
|
# End of cd-workdir.sh
|
||||||
|
|
||||||
# Begin of init.sh
|
# Begin of init.sh
|
||||||
- "#Terraform init \nterraform init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
- "#Terraform init \ntofu init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
||||||
# End of init.sh
|
# End of init.sh
|
||||||
|
|
||||||
# Begin of apply.sh
|
# Begin of apply.sh
|
||||||
- |
|
- |
|
||||||
#Terraform validate
|
#Terraform validate
|
||||||
terraform apply -auto-approve $ARGUMENTS
|
tofu apply -auto-approve $ARGUMENTS
|
||||||
# End of apply.sh
|
# End of apply.sh
|
||||||
.terraform_destroy:
|
.terraform_destroy:
|
||||||
script:
|
script:
|
||||||
@@ -73,11 +73,11 @@
|
|||||||
# End of cd-workdir.sh
|
# End of cd-workdir.sh
|
||||||
|
|
||||||
# Begin of init.sh
|
# Begin of init.sh
|
||||||
- "#Terraform init \nterraform init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
- "#Terraform init \ntofu init -reconfigure -backend-config=\"address=${GITLAB_TF_ADDRESS}\" -backend-config=\"lock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"unlock_address=${GITLAB_TF_ADDRESS}/lock\" -backend-config=\"username=gitlab-ci-token\" -backend-config=\"password=${CI_JOB_TOKEN}\" -backend-config=\"lock_method=POST\" -backend-config=\"unlock_method=DELETE\" -backend-config=\"retry_wait_min=5\" \n"
|
||||||
# End of init.sh
|
# End of init.sh
|
||||||
|
|
||||||
# Begin of destroy.sh
|
# Begin of destroy.sh
|
||||||
- |
|
- |
|
||||||
#Terraform validate
|
#Terraform validate
|
||||||
terraform destroy -auto-approve $ARGUMENTS
|
tofu destroy -auto-approve $ARGUMENTS
|
||||||
# End of destroy.sh
|
# End of destroy.sh
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ golang-lint:
|
|||||||
- !reference [.mr_only_rules, rules]
|
- !reference [.mr_only_rules, rules]
|
||||||
|
|
||||||
docker-build:
|
docker-build:
|
||||||
extends: .docker_build
|
extends: .docker-build-container
|
||||||
stage: build
|
stage: build
|
||||||
needs:
|
needs:
|
||||||
- job: gobuild
|
- job: gobuild
|
||||||
@@ -39,13 +39,23 @@ gobuild:
|
|||||||
rules:
|
rules:
|
||||||
- !reference [.default_mr_rules, rules]
|
- !reference [.default_mr_rules, rules]
|
||||||
|
|
||||||
docker-push:
|
#docker-build:
|
||||||
extends: .docker_push_gitlab
|
# extends: .docker_build
|
||||||
stage: publish
|
# stage: build
|
||||||
needs:
|
# needs:
|
||||||
- job: docker-build
|
# - job: gobuild
|
||||||
artifacts: true
|
# artifacts: true
|
||||||
- pipeline: $PARENT_PIPELINE_ID
|
# - pipeline: $PARENT_PIPELINE_ID
|
||||||
job: version
|
# job: version
|
||||||
rules:
|
# rules:
|
||||||
- !reference [.docker_publish_rules, rules]
|
# - !reference [.docker_rules, rules]
|
||||||
|
#docker-push:
|
||||||
|
# extends: .docker_push_gitlab
|
||||||
|
# stage: publish
|
||||||
|
# needs:
|
||||||
|
# - job: docker-build
|
||||||
|
# artifacts: true
|
||||||
|
# - pipeline: $PARENT_PIPELINE_ID
|
||||||
|
# job: version
|
||||||
|
# rules:
|
||||||
|
# - !reference [.docker_publish_rules, rules]
|
||||||
|
|||||||
@@ -8,8 +8,7 @@ variables:
|
|||||||
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${ENVIRONMENT_NAME}
|
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${ENVIRONMENT_NAME}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
name: registry.internal.durp.info/hashicorp/terraform:light
|
name: registry.internal.durp.info/opentofu/opentofu:latest
|
||||||
#name: hashicorp/terraform:light
|
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
|
|
||||||
include:
|
include:
|
||||||
@@ -33,8 +32,7 @@ plan-development:
|
|||||||
environment:
|
environment:
|
||||||
name: development
|
name: development
|
||||||
variables:
|
variables:
|
||||||
ARGUMENTS: -var-file=terraform.tfvars
|
ENVIRONMENT_NAME: dev
|
||||||
ENVIRONMENT_NAME: development
|
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
extends: .terraform_plan
|
extends: .terraform_plan
|
||||||
needs: ["validate","format"]
|
needs: ["validate","format"]
|
||||||
@@ -44,8 +42,7 @@ plan-production:
|
|||||||
environment:
|
environment:
|
||||||
name: production
|
name: production
|
||||||
variables:
|
variables:
|
||||||
ARGUMENTS: -var-file=terraform.tfvars
|
ENVIRONMENT_NAME: prd
|
||||||
ENVIRONMENT_NAME: production
|
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
extends: .terraform_plan
|
extends: .terraform_plan
|
||||||
needs: ["validate","format"]
|
needs: ["validate","format"]
|
||||||
@@ -55,8 +52,7 @@ apply-development:
|
|||||||
environment:
|
environment:
|
||||||
name: development
|
name: development
|
||||||
variables:
|
variables:
|
||||||
ARGUMENTS: -var-file=terraform.tfvars
|
ENVIRONMENT_NAME: dev
|
||||||
ENVIRONMENT_NAME: development
|
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
extends: .terraform_apply
|
extends: .terraform_apply
|
||||||
rules:
|
rules:
|
||||||
@@ -67,8 +63,7 @@ apply-production:
|
|||||||
environment:
|
environment:
|
||||||
name: production
|
name: production
|
||||||
variables:
|
variables:
|
||||||
ARGUMENTS: -var-file=terraform.tfvars
|
ENVIRONMENT_NAME: prd
|
||||||
ENVIRONMENT_NAME: production
|
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
extends: .terraform_apply
|
extends: .terraform_apply
|
||||||
rules:
|
rules:
|
||||||
@@ -79,8 +74,7 @@ destroy-development:
|
|||||||
environment:
|
environment:
|
||||||
name: development
|
name: development
|
||||||
variables:
|
variables:
|
||||||
ARGUMENTS: -var-file=terraform.tfvars
|
ENVIRONMENT_NAME: dev
|
||||||
ENVIRONMENT_NAME: development
|
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
extends: .terraform_destroy
|
extends: .terraform_destroy
|
||||||
needs: ["apply-development"]
|
needs: ["apply-development"]
|
||||||
@@ -92,8 +86,7 @@ destroy-production:
|
|||||||
environment:
|
environment:
|
||||||
name: production
|
name: production
|
||||||
variables:
|
variables:
|
||||||
ARGUMENTS: -var-file=terraform.tfvars
|
ENVIRONMENT_NAME: prd
|
||||||
ENVIRONMENT_NAME: production
|
|
||||||
allow_failure: false
|
allow_failure: false
|
||||||
extends: .terraform_destroy
|
extends: .terraform_destroy
|
||||||
needs: ["apply-production"]
|
needs: ["apply-production"]
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ $VERSION:
|
|||||||
echo '
|
echo '
|
||||||
- |
|
- |
|
||||||
pwsh -c "Install-Module -Name powershell-yaml -Confirm:\$false -Force
|
pwsh -c "Install-Module -Name powershell-yaml -Confirm:\$false -Force
|
||||||
\$template = (Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -Uri \"https://gitlab.com/api/v4/projects/45028985/repository/files/durpapi%2FChart.yaml/raw?ref=dev\") | ConvertFrom-Yaml
|
\$template = (Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -Uri \"\$ENV:CI_API_V4_URL/projects/\$ENV:GITLAB_PROJECT_ID/repository/files/\$ENV:GITLAB_CHART_PATH/raw?ref=\$ENV:ENVIRONMENT\") | ConvertFrom-Yaml
|
||||||
\$template.version = \$ENV:VERSION
|
\$template.version = \$ENV:VERSION
|
||||||
\$body = @{
|
\$body = @{
|
||||||
branch = \"dev\"
|
branch = \"\$ENV:ENVIRONMENT\"
|
||||||
commit_message = \"Update Chart\"
|
commit_message = \"Update Chart\"
|
||||||
content = \"\$(\$template | convertto-yaml)\"
|
content = \"\$(\$template | convertto-yaml)\"
|
||||||
} | ConvertTo-Json
|
} | ConvertTo-Json
|
||||||
Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -ContentType \"application/json\" -Method Put -body \$body -Uri \"https://gitlab.com/api/v4/projects/45028985/repository/files/durpapi%2FChart.yaml\""
|
Invoke-RestMethod -Headers @{ \"PRIVATE-TOKEN\"= \$ENV:GITLAB_TOKEN } -ContentType \"application/json\" -Method Put -body \$body -Uri \"\$ENV:CI_API_V4_URL/projects/\$ENV:GITLAB_PROJECT_ID/repository/files/\$ENV:GITLAB_CHART_PATH\""
|
||||||
needs:
|
needs:
|
||||||
- pipeline: $PARENT_PIPELINE_ID
|
- pipeline: $PARENT_PIPELINE_ID
|
||||||
job: version
|
job: version
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#%%MULTILINE_YAML_START
|
#%%MULTILINE_YAML_START
|
||||||
#Terraform validate
|
#Terraform validate
|
||||||
terraform apply -auto-approve $ARGUMENTS
|
tofu apply -auto-approve $ARGUMENTS
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#%%MULTILINE_YAML_START
|
#%%MULTILINE_YAML_START
|
||||||
#Terraform validate
|
#Terraform validate
|
||||||
terraform destroy -auto-approve $ARGUMENTS
|
tofu destroy -auto-approve $ARGUMENTS
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#%%MULTILINE_YAML_START
|
#%%MULTILINE_YAML_START
|
||||||
#Terraform fmt
|
#Terraform fmt
|
||||||
terraform fmt -diff -check -write=false
|
tofu fmt -diff -check -write=false
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#%%MULTILINE_YAML_START
|
#%%MULTILINE_YAML_START
|
||||||
#Terraform init
|
#Terraform init
|
||||||
terraform init -reconfigure -backend-config="address=${GITLAB_TF_ADDRESS}" -backend-config="lock_address=${GITLAB_TF_ADDRESS}/lock" -backend-config="unlock_address=${GITLAB_TF_ADDRESS}/lock" -backend-config="username=gitlab-ci-token" -backend-config="password=${CI_JOB_TOKEN}" -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE" -backend-config="retry_wait_min=5"
|
tofu init -reconfigure -backend-config="address=${GITLAB_TF_ADDRESS}" -backend-config="lock_address=${GITLAB_TF_ADDRESS}/lock" -backend-config="unlock_address=${GITLAB_TF_ADDRESS}/lock" -backend-config="username=gitlab-ci-token" -backend-config="password=${CI_JOB_TOKEN}" -backend-config="lock_method=POST" -backend-config="unlock_method=DELETE" -backend-config="retry_wait_min=5"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#%%MULTILINE_YAML_START
|
#%%MULTILINE_YAML_START
|
||||||
#Terraform plan
|
#Terraform plan
|
||||||
apk add --update curl jq
|
apk add --update curl jq
|
||||||
alias convert_report="jq -r '([.resource_changes[].change.actions?]|flatten)|{\"create\":(map(select(.==\"create\"))|length),\"update\":(map(select(.==\"update\"))|length),\"delete\":(map(select(.==\"delete\"))|length)}'"
|
alias convert_report="jq -r '([.resource_changes[].change.actions?]|flatten)|{\"create\":(map(select(.==\"create\"))|length),\"update\":(map(select(.==\"update\"))|length),\"delete\":(map(select(.==\"delete\"))|length)}'"
|
||||||
terraform plan -out=$PLAN $ARGUMENTS
|
tofu plan -out=$PLAN $ARGUMENTS
|
||||||
terraform show --json $PLAN | convert_report > $JSON_PLAN_FILE
|
tofu show --json $PLAN | jq -r '([.resource_changes[].change.actions?]|flatten)|{"create":(map(select(.=="create"))|length),"update":(map(select(.=="update"))|length),"delete":(map(select(.=="delete"))|length)}' > $JSON_PLAN_FILE
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#%%MULTILINE_YAML_START
|
#%%MULTILINE_YAML_START
|
||||||
#Terraform validate
|
#Terraform validate
|
||||||
terraform validate
|
tofu validate
|
||||||
|
|||||||
Reference in New Issue
Block a user