diff --git a/.github/workflows/deploy-manually.yml b/.github/workflows/deploy-manually.yml index 5f95da0..5b18a1c 100644 --- a/.github/workflows/deploy-manually.yml +++ b/.github/workflows/deploy-manually.yml @@ -142,11 +142,16 @@ jobs: docker system prune --volumes -a -f docker system df + k8s-setup: + uses: ./.github/workflows/k8s-setup.yml + with: + cloud: azure + environment: ${{ needs.extract_environment.outputs.environment }} + secrets: inherit + helmfile-deploy: - needs: [extract_environment, semantic_release, build_ecr_image] - env: - HOME: /home/runner - runs-on: [self-hosted, "prd-oracle"] + needs: [extract_environment, semantic_release, build_ecr_image, k8s-setup] + runs-on: [self-hosted, "prd-azure"] environment: ${{ needs.extract_environment.outputs.environment }} steps: @@ -158,18 +163,6 @@ jobs: with: version: 'v3.9.0' - - name: Install OCI CLI - run: | - bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" -- --accept-all-defaults - echo "$HOME/bin" >> $GITHUB_PATH - - - name: Configure OCI CLI - run: | - mkdir -p ~/.oci || true - echo "${{ secrets.OCI_CONFIG }}" > ~/.oci/config - echo "${{ secrets.OCI_PRIVATE_KEY }}" > ~/.oci/oci_api_key.pem - chmod 600 ~/.oci/oci_api_key.pem - - name: Set up Python uses: actions/setup-python@v4 with: @@ -185,23 +178,6 @@ jobs: - name: Install Helm Diff Plugin run: helm plugin install https://github.com/databus23/helm-diff || true - - name: Authenticate with OKE cluster - env: - ENV: ${{ needs.extract_environment.outputs.environment }} - STG_CLUSTER_ID: "ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaagh3jvln52a3ebm3dodx6emmhv5bmfs7i7sv2k4zkbcbrzcl6v37q" - PRD_CLUSTER_ID: "ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaanf3vptl6hc2tzd4enfd2hfpsht3wikxww5xejc3l7cwfm6l3sndq" - run: | - if [ "$ENV" = "stg" ]; then - CLUSTER_ID=$STG_CLUSTER_ID - elif [ "$ENV" = "prd" ]; then - CLUSTER_ID=$PRD_CLUSTER_ID - else - echo "Unknown environment: $ENV" - exit 1 - fi - - oci ce cluster create-kubeconfig --cluster-id ${CLUSTER_ID} --file $HOME/.kube/config --region sa-saopaulo-1 --token-version 2.0.0 --kube-endpoint PRIVATE_ENDPOINT - - name: Run Helmfile Apply env: ENV: ${{ needs.extract_environment.outputs.environment }} diff --git a/.github/workflows/k8s-setup.yml b/.github/workflows/k8s-setup.yml new file mode 100644 index 0000000..126b2b8 --- /dev/null +++ b/.github/workflows/k8s-setup.yml @@ -0,0 +1,68 @@ +name : K8s Setup kube config to deploy + +on: + workflow_call: + inputs: + cloud: + description: "Cloud provider for the deployment" + required: true + default: "azure" + type: string + environment: + description: "Deployment environment" + required: true + default: "prd" + type: string + +jobs: + azure: + if: inputs.cloud == 'azure' + runs-on: [self-hosted, "prd-azure"] + steps: + - name: Install Azure ClI + run: | + curl -sL https://aka.ms/InstallAzureCLIDeb | bash + + - uses: azure/login@v2 + with: + creds: '{"clientId":"${{ secrets.ARM_CLIENT_ID }}","clientSecret":"${{ secrets.ARM_CLIENT_SECRET }}","subscriptionId":"${{ secrets.ARM_SUBSCRIPTION_ID }}","tenantId":"${{ secrets.ARM_TENANT_ID }}"}' + + - name: Authenticate with cluster + env: + CLUSTER_NAME: platform-${{ inputs.environment }} + run: az aks get-credentials --resource-group dadosfera-prd --name ${CLUSTER_NAME} --overwrite-existing + + oci: + if: inputs.cloud == 'oci' + runs-on: [self-hosted, "prd-oracle"] + steps: + - name: Install OCI CLI + run: | + bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" -- --accept-all-defaults + echo "$HOME/bin" >> $GITHUB_PATH + + - name: Configure OCI CLI + run: | + mkdir -p ~/.oci || true + echo "${{ secrets.OCI_CONFIG }}" > ~/.oci/config + echo "${{ secrets.OCI_PRIVATE_KEY }}" > ~/.oci/oci_api_key.pem + chmod 600 ~/.oci/oci_api_key.pem + + - name: Authenticate with OKE cluster + env: + ENV: ${{ inputs.environment }} + STG_CLUSTER_ID: "ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaagh3jvln52a3ebm3dodx6emmhv5bmfs7i7sv2k4zkbcbrzcl6v37q" + PRD_CLUSTER_ID: "ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaanf3vptl6hc2tzd4enfd2hfpsht3wikxww5xejc3l7cwfm6l3sndq" + HOME: /home/runner + run: | + if [ "$ENV" = "stg" ]; then + CLUSTER_ID=$STG_CLUSTER_ID + elif [ "$ENV" = "prd" ]; then + CLUSTER_ID=$PRD_CLUSTER_ID + else + echo "Unknown environment: $ENV" + exit 1 + fi + + oci ce cluster create-kubeconfig --cluster-id ${CLUSTER_ID} --file $HOME/.kube/config --region sa-saopaulo-1 --token-version 2.0.0 --kube-endpoint PRIVATE_ENDPOINT +