terraform-deploy.yml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. name: "Infra: Terraform deploy"
  2. on:
  3. workflow_dispatch:
  4. inputs:
  5. applyTerraform:
  6. description: 'Do you want to apply the infra-repo terraform? Possible values [plan/apply].'
  7. required: true
  8. default: 'plan'
  9. KafkaUIInfraBranch:
  10. description: 'Branch name of Kafka-UI-Infra repo, tf will be executed from this branch'
  11. required: true
  12. default: 'master'
  13. jobs:
  14. terraform:
  15. name: Terraform
  16. runs-on: ubuntu-latest
  17. steps:
  18. - name: Clone infra repo
  19. run: |
  20. echo "Cloning repo..."
  21. git clone https://kafka-ui-infra:${{ secrets.KAFKA_UI_INFRA_TOKEN }}@gitlab.provectus.com/provectus-internals/kafka-ui-infra.git --branch ${{ github.event.inputs.KafkaUIInfraBranch }}
  22. echo "Cd to deployment..."
  23. cd kafka-ui-infra/aws-infrastructure4eks/deployment
  24. echo "TF_DIR=$(pwd)" >> $GITHUB_ENV
  25. echo "Terraform will be triggered in this dir $TF_DIR"
  26. - name: Configure AWS credentials for Kafka-UI account
  27. uses: aws-actions/configure-aws-credentials@v3
  28. with:
  29. aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
  30. aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  31. aws-region: eu-central-1
  32. - name: Terraform Install
  33. uses: hashicorp/setup-terraform@v2
  34. - name: Terraform init
  35. id: init
  36. run: cd $TF_DIR && terraform init --backend-config="../envs/pro/terraform-backend.tfvars"
  37. - name: Terraform validate
  38. id: validate
  39. run: cd $TF_DIR && terraform validate -no-color
  40. - name: Terraform plan
  41. id: plan
  42. run: |
  43. cd $TF_DIR
  44. export TF_VAR_github_connector_access_token=${{ secrets.SOURCE_CONNECTOR_GITHUB_TOKEN }}
  45. export TF_VAR_repo_secret=${{ secrets.KAFKA_UI_INFRA_TOKEN }}
  46. terraform plan --var-file="../envs/pro/eks.tfvars"
  47. - name: Terraform apply
  48. id: apply
  49. if: ${{ github.event.inputs.applyTerraform == 'apply' }}
  50. run: |
  51. cd $TF_DIR
  52. export TF_VAR_github_connector_access_token=${{ secrets.SOURCE_CONNECTOR_GITHUB_TOKEN }}
  53. export TF_VAR_repo_secret=${{ secrets.KAFKA_UI_INFRA_TOKEN }}
  54. terraform apply --var-file="../envs/pro/eks.tfvars" -auto-approve