From d7379257a033b83a7069f6c74e5e97a9cd952b93 Mon Sep 17 00:00:00 2001 From: Admin1 Date: Tue, 21 Nov 2023 14:29:34 +0530 Subject: [PATCH] updated cluster_create.yaml --- .github/workflows/create_cluster.yaml | 392 +++++++++++++------------- 1 file changed, 196 insertions(+), 196 deletions(-) diff --git a/.github/workflows/create_cluster.yaml b/.github/workflows/create_cluster.yaml index ea88506e..ee89865f 100644 --- a/.github/workflows/create_cluster.yaml +++ b/.github/workflows/create_cluster.yaml @@ -50,103 +50,6 @@ jobs: with: name: config-as-code-artifact path: config-as-code.tar.gz - # - name: Install AWS IAM Authenticator - # run: | - # curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator - # chmod +x ./aws-iam-authenticator - # sudo mv ./aws-iam-authenticator /usr/local/bin/aws-iam-authenticator - # aws-iam-authenticator version - # - name: Generate kubeconfig - # run: | - # aws eks update-kubeconfig --region ${{ secrets.AWS_REGION }} --name $CLUSTER_NAME - # cat ~/.kube/config > kubeconfig - # - name: Deleting Loadbalancer - # run: kubectl delete svc nginx-ingress-controller -n egov - # - name: Terraform Init - remotestate - # run: terraform init - # working-directory: infra-as-code/terraform/sample-aws/remote-state - # - name: Terraform Validate - remotestate - # run: terraform validate -no-color - # working-directory: infra-as-code/terraform/sample-aws/remote-state - # - name: Terraform Init - Infra destruction - # run: terraform init - # working-directory: infra-as-code/terraform/sample-aws - # - name: Terraform Validate - Infra destruction - # run: terraform validate -no-color - # working-directory: infra-as-code/terraform/sample-aws - # - name: Terraform Plan - Infra destruction - # run: terraform plan -destroy -no-color -input=false -var db_password=demo123456 - # working-directory: infra-as-code/terraform/sample-aws - # - name: Terraform Destroy - Infra destruction - # run: terraform destroy -no-color -auto-approve -var db_password=demo123456 - # working-directory: infra-as-code/terraform/sample-aws - - Terraform_Infra_Creation: - needs: input_validation - runs-on: ubuntu-latest - env: - TF_IN_AUTOMATION: "true" - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_REGION: ${{ secrets.AWS_REGION }} - steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Download infra-as-code folder from artifacts - uses: actions/download-artifact@v2 - with: - name: infra-as-code-artifact - path: . - - name: Download config-as-code folder from artifacts - uses: actions/download-artifact@v2 - with: - name: config-as-code-artifact - path: . - - name: Extract infra-as-code folder - run: tar -xzf infra-as-code.tar.gz - - name: Extract config-as-code folder - run: tar -xzf config-as-code.tar.gz - - name: Convert YAML to ENV - uses: dcarbone/yaml-to-env-action@main - with: - yaml-file: infra-as-code/terraform/sample-aws/input.yaml - debug: true # Optional: set to true to output some debug information - # Now, use the env vars in subsequent steps - - name: Terraform Init - remotestate - id: init - run: terraform init - working-directory: infra-as-code/terraform/sample-aws/remote-state - - name: Terraform Validate - remotestate - id: validate - run: terraform validate -no-color - working-directory: infra-as-code/terraform/sample-aws/remote-state - - name: Terraform Plan - remotestate - id: plan - run: terraform plan -no-color -input=false - working-directory: infra-as-code/terraform/sample-aws/remote-state - - name: Terraform Apply - remotestate - id: apply - run: terraform apply -no-color -input=false -auto-approve - continue-on-error: true - working-directory: infra-as-code/terraform/sample-aws/remote-state - - name: Terraform init - Infra creation - id: init-Infra - run: terraform init - working-directory: infra-as-code/terraform/sample-aws - - name: Terraform Validate - Infra creation - id: validate-Infra - run: terraform validate -no-color - working-directory: infra-as-code/terraform/sample-aws - - name: Terraform Plan - Infra creation - id: plan-Infra - run: terraform plan -no-color -input=false -var db_password=demo123456 - working-directory: infra-as-code/terraform/sample-aws - - name: Terraform Apply - Infra creation - id: apply-Infra - run: terraform apply -no-color -input=false -auto-approve -var db_password=demo123456 - continue-on-error: true - working-directory: infra-as-code/terraform/sample-aws - name: Install AWS IAM Authenticator run: | curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator @@ -157,107 +60,204 @@ jobs: run: | aws eks update-kubeconfig --region ${{ secrets.AWS_REGION }} --name $CLUSTER_NAME cat ~/.kube/config > kubeconfig - - name: Verify kubectl configuration - run: kubectl config view - - name: Verfiy kubectl get nodes - run: | - kubectl get nodes - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_REGION: ${{ secrets.AWS_REGION }} - - name: Updating the terraform output data in environment.yaml files for deployment - run: terraform output -json | go run ../scripts/envYAMLUpdater.go + - name: Deleting Loadbalancer + run: kubectl delete svc nginx-ingress-controller -n egov + - name: Terraform Init - remotestate + run: terraform init + working-directory: infra-as-code/terraform/sample-aws/remote-state + - name: Terraform Validate - remotestate + run: terraform validate -no-color + working-directory: infra-as-code/terraform/sample-aws/remote-state + - name: Terraform Init - Infra destruction + run: terraform init working-directory: infra-as-code/terraform/sample-aws - - name: Archive infra-as-code folder - run: tar -czf infra-as-code.tar.gz infra-as-code/ - - name: Archive config-as-code folder - run: tar -czf config-as-code.tar.gz config-as-code/ - - name: Upload infra-as-code folder as artifact - uses: actions/upload-artifact@v2 - with: - name: infra-as-code-artifact - path: infra-as-code.tar.gz - - name: Upload config-as-code folder as artifact - uses: actions/upload-artifact@v2 - with: - name: config-as-code-artifact - path: config-as-code.tar.gz + - name: Terraform Validate - Infra destruction + run: terraform validate -no-color + working-directory: infra-as-code/terraform/sample-aws + - name: Terraform Plan - Infra destruction + run: terraform plan -destroy -no-color -input=false -var db_password=demo123456 + working-directory: infra-as-code/terraform/sample-aws + - name: Terraform Destroy - Infra destruction + run: terraform destroy -no-color -auto-approve -var db_password=demo123456 + working-directory: infra-as-code/terraform/sample-aws - DIGIT-deployment: - needs: Terraform_Infra_Creation - runs-on: ubuntu-latest - env: - TF_IN_AUTOMATION: "true" - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_REGION: ${{ secrets.AWS_REGION }} - steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Download infra-as-code folder from artifacts - uses: actions/download-artifact@v2 - with: - name: infra-as-code-artifact - path: . - - name: Download config-as-code folder from artifacts - uses: actions/download-artifact@v2 - with: - name: config-as-code-artifact - path: . - - name: Extract infra-as-code folder - run: tar -xzf infra-as-code.tar.gz - - name: Extract config-as-code folder - run: tar -xzf config-as-code.tar.gz - - name: Convert YAML to ENV - uses: dcarbone/yaml-to-env-action@main - with: - yaml-file: infra-as-code/terraform/sample-aws/input.yaml - debug: true # Optional: set to true to output some debug information - # Now, use the env vars in subsequent steps - - name: Install AWS IAM Authenticator - run: | - curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator - chmod +x ./aws-iam-authenticator - sudo mv ./aws-iam-authenticator /usr/local/bin/aws-iam-authenticator - aws-iam-authenticator version - - name: Generate kubeconfig - run: | - aws eks update-kubeconfig --region ${{ secrets.AWS_REGION }} --name $CLUSTER_NAME - cat ~/.kube/config > kubeconfig - - name: Verify kubectl configuration - run: kubectl config view - - name: Verfiy kubectl get nodes - run: | - kubectl get nodes - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_REGION: ${{ secrets.AWS_REGION }} - - name: Install sops - run: | - sudo apt update - sudo apt install -y gnupg - wget https://github.com/mozilla/sops/releases/download/v3.7.1/sops-v3.7.1.linux - chmod +x sops-v3.7.1.linux - sudo mv sops-v3.7.1.linux /usr/local/bin/sops - - name: digit deployment - run: go run digit_installer.go - working-directory: deploy-as-code/deployer - - name: Displaying the Loadbalancer ID - run: | - LB_ID=$(kubectl get svc nginx-ingress-controller -n egov -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') - echo "LoadBalancer ID: $LB_ID" - echo "Thank you for installing DIGIT! 🙏 Your installation is complete and ready to roll! 🚀" - echo "Please map the LoadBalancer ID ($LB_ID) with the domain provided in input.yaml to access the DIGIT UI" - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - AWS_REGION: ${{ secrets.AWS_REGION }} + # Terraform_Infra_Creation: + # needs: input_validation + # runs-on: ubuntu-latest + # env: + # TF_IN_AUTOMATION: "true" + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + # AWS_REGION: ${{ secrets.AWS_REGION }} + # steps: + # - name: Checkout code + # uses: actions/checkout@v2 + # - name: Download infra-as-code folder from artifacts + # uses: actions/download-artifact@v2 + # with: + # name: infra-as-code-artifact + # path: . + # - name: Download config-as-code folder from artifacts + # uses: actions/download-artifact@v2 + # with: + # name: config-as-code-artifact + # path: . + # - name: Extract infra-as-code folder + # run: tar -xzf infra-as-code.tar.gz + # - name: Extract config-as-code folder + # run: tar -xzf config-as-code.tar.gz + # - name: Convert YAML to ENV + # uses: dcarbone/yaml-to-env-action@main + # with: + # yaml-file: infra-as-code/terraform/sample-aws/input.yaml + # debug: true # Optional: set to true to output some debug information + # # Now, use the env vars in subsequent steps + # - name: Terraform Init - remotestate + # id: init + # run: terraform init + # working-directory: infra-as-code/terraform/sample-aws/remote-state + # - name: Terraform Validate - remotestate + # id: validate + # run: terraform validate -no-color + # working-directory: infra-as-code/terraform/sample-aws/remote-state + # - name: Terraform Plan - remotestate + # id: plan + # run: terraform plan -no-color -input=false + # working-directory: infra-as-code/terraform/sample-aws/remote-state + # - name: Terraform Apply - remotestate + # id: apply + # run: terraform apply -no-color -input=false -auto-approve + # continue-on-error: true + # working-directory: infra-as-code/terraform/sample-aws/remote-state + # - name: Terraform init - Infra creation + # id: init-Infra + # run: terraform init + # working-directory: infra-as-code/terraform/sample-aws + # - name: Terraform Validate - Infra creation + # id: validate-Infra + # run: terraform validate -no-color + # working-directory: infra-as-code/terraform/sample-aws + # - name: Terraform Plan - Infra creation + # id: plan-Infra + # run: terraform plan -no-color -input=false -var db_password=demo123456 + # working-directory: infra-as-code/terraform/sample-aws + # - name: Terraform Apply - Infra creation + # id: apply-Infra + # run: terraform apply -no-color -input=false -auto-approve -var db_password=demo123456 + # continue-on-error: true + # working-directory: infra-as-code/terraform/sample-aws + # - name: Install AWS IAM Authenticator + # run: | + # curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator + # chmod +x ./aws-iam-authenticator + # sudo mv ./aws-iam-authenticator /usr/local/bin/aws-iam-authenticator + # aws-iam-authenticator version + # - name: Generate kubeconfig + # run: | + # aws eks update-kubeconfig --region ${{ secrets.AWS_REGION }} --name $CLUSTER_NAME + # cat ~/.kube/config > kubeconfig + # - name: Verify kubectl configuration + # run: kubectl config view + # - name: Verfiy kubectl get nodes + # run: | + # kubectl get nodes + # env: + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + # AWS_REGION: ${{ secrets.AWS_REGION }} + # - name: Updating the terraform output data in environment.yaml files for deployment + # run: terraform output -json | go run ../scripts/envYAMLUpdater.go + # working-directory: infra-as-code/terraform/sample-aws + # - name: Archive infra-as-code folder + # run: tar -czf infra-as-code.tar.gz infra-as-code/ + # - name: Archive config-as-code folder + # run: tar -czf config-as-code.tar.gz config-as-code/ + # - name: Upload infra-as-code folder as artifact + # uses: actions/upload-artifact@v2 + # with: + # name: infra-as-code-artifact + # path: infra-as-code.tar.gz + # - name: Upload config-as-code folder as artifact + # uses: actions/upload-artifact@v2 + # with: + # name: config-as-code-artifact + # path: config-as-code.tar.gz + + # DIGIT-deployment: + # needs: Terraform_Infra_Creation + # runs-on: ubuntu-latest + # env: + # TF_IN_AUTOMATION: "true" + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + # AWS_REGION: ${{ secrets.AWS_REGION }} + # steps: + # - name: Checkout code + # uses: actions/checkout@v2 + # - name: Download infra-as-code folder from artifacts + # uses: actions/download-artifact@v2 + # with: + # name: infra-as-code-artifact + # path: . + # - name: Download config-as-code folder from artifacts + # uses: actions/download-artifact@v2 + # with: + # name: config-as-code-artifact + # path: . + # - name: Extract infra-as-code folder + # run: tar -xzf infra-as-code.tar.gz + # - name: Extract config-as-code folder + # run: tar -xzf config-as-code.tar.gz + # - name: Convert YAML to ENV + # uses: dcarbone/yaml-to-env-action@main + # with: + # yaml-file: infra-as-code/terraform/sample-aws/input.yaml + # debug: true # Optional: set to true to output some debug information + # # Now, use the env vars in subsequent steps + # - name: Install AWS IAM Authenticator + # run: | + # curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator + # chmod +x ./aws-iam-authenticator + # sudo mv ./aws-iam-authenticator /usr/local/bin/aws-iam-authenticator + # aws-iam-authenticator version + # - name: Generate kubeconfig + # run: | + # aws eks update-kubeconfig --region ${{ secrets.AWS_REGION }} --name $CLUSTER_NAME + # cat ~/.kube/config > kubeconfig + # - name: Verify kubectl configuration + # run: kubectl config view + # - name: Verfiy kubectl get nodes + # run: | + # kubectl get nodes + # env: + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + # AWS_REGION: ${{ secrets.AWS_REGION }} + # - name: Install sops + # run: | + # sudo apt update + # sudo apt install -y gnupg + # wget https://github.com/mozilla/sops/releases/download/v3.7.1/sops-v3.7.1.linux + # chmod +x sops-v3.7.1.linux + # sudo mv sops-v3.7.1.linux /usr/local/bin/sops + # - name: digit deployment + # run: go run digit_installer.go + # working-directory: deploy-as-code/deployer + # - name: Displaying the Loadbalancer ID + # run: | + # LB_ID=$(kubectl get svc nginx-ingress-controller -n egov -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') + # echo "LoadBalancer ID: $LB_ID" + # echo "Thank you for installing DIGIT! 🙏 Your installation is complete and ready to roll! 🚀" + # echo "Please map the LoadBalancer ID ($LB_ID) with the domain provided in input.yaml to access the DIGIT UI" + # env: + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + # AWS_REGION: ${{ secrets.AWS_REGION }} # terraform_infra_destruction: