name: Validate K8S Modifications on: pull_request: branches: - main - beta jobs: extract_environment: runs-on: ubuntu-22.04 outputs: environment: ${{ steps.extract_environment.outputs.environment }} steps: - name: Extract Environment run: | if [ "${{ github.event.pull_request.base.ref }}" == "main" ]; then echo "environment=prd" >> $GITHUB_OUTPUT elif [ "${{ github.event.pull_request.base.ref }}" == "beta" ]; then echo "environment=stg" >> $GITHUB_OUTPUT fi id: extract_environment helmfile-check: env: HOME: /home/runner needs: [extract_environment] environment: ${{ needs.extract_environment.outputs.environment }} runs-on: [self-hosted, "prd-oracle"] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Helm uses: azure/setup-helm@v1 with: version: 'v3.9.0' - name: Determine DNS_HOST based on environment id: set_dns env: ENV: ${{ needs.extract_environment.outputs.environment }} run: | if [ "$ENV" = "prd" ]; then echo "dns_host=dadosfera.ai" >> $GITHUB_OUTPUT elif [ "$ENV" = "stg" ]; then echo "dns_host=stg.dadosfera.ai" >> $GITHUB_OUTPUT fi - 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: python-version: '3.8' - name: Install Helmfile run: | curl -fsSLO https://github.com/helmfile/helmfile/releases/download/v0.148.0/helmfile_0.148.0_linux_amd64.tar.gz tar -xzf helmfile_0.148.0_linux_amd64.tar.gz sudo mv helmfile /usr/local/bin/ helmfile --version - name: Debug Helm env run: | helm env echo "HOME=$HOME" ls -R $HOME/.local/share/helm || 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: Setup kubectl uses: azure/setup-kubectl@v1 with: version: 'v1.30.1' - name: Run Helmfile Diff env: ENV: ${{ needs.extract_environment.outputs.environment }} run: helmfile -f deploy/helmfiles/${ENV}.yaml diff