Skip to content

Refactor OpenShift login step to use environment variables for server… #6

Refactor OpenShift login step to use environment variables for server…

Refactor OpenShift login step to use environment variables for server… #6

name: Deploy Kiln API via Helm
on:
push:
branches: [ "main" ]
workflow_dispatch:
env:
APP_NAME: kiln-api
CHART_PATH: helm/kiln-api
LICENSE_PLATE: ed84ea
IMAGE_REPO: ghcr.io/bcgov/kiln-api
IMAGE_TAG: latest # Could be overridden by workflow_dispatch input
DEV_NAMESPACE: dev
TEST_NAMESPACE: test
PROD_NAMESPACE: tools # To be changed to prod when ready
TOOLS_NAMESPACE: tools
OPENSHIFT_SERVER: ${{ secrets.OPENSHIFT_SERVER }}
OPENSHIFT_TOKEN: ${{ secrets.OPENSHIFT_TOKEN }}
jobs:
deploy:
runs-on: ubuntu-latest
environment: production
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set target namespace
id: setns
run: |
if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then
echo "namespace=${{ env.PROD_NAMESPACE }}" >> $GITHUB_OUTPUT
elif [[ "${GITHUB_REF}" == "refs/heads/test" ]]; then
echo "namespace=${{ env.TEST_NAMESPACE }}" >> $GITHUB_OUTPUT
else
echo "namespace=${{ env.DEV_NAMESPACE }}" >> $GITHUB_OUTPUT
fi
# Optionally: You could fetch the image tag from previous workflow run or artifact. For now, defaulting to 'latest'.
# If you want to use the short SHA tag, you could set IMAGE_TAG: ${{ github.sha }}
- name: Set up kubectl
uses: azure/setup-kubectl@v3
with:
version: 'latest'
- name: Install Helm
uses: azure/setup-helm@v4
with:
version: 'latest'
- name: Install oc
uses: redhat-actions/oc-installer@v1
with:
oc_version: '4.6'
# Set environment variable for namespace which can be retrieved
# from commands `oc whoami --show-server` and `oc whoami -t`
- name: Log in to OpenShift
uses: redhat-actions/oc-login@v1
with:
openshift_server_url: ${{ env.OPENSHIFT_SERVER }}
openshift_token: ${{ env.OPENSHIFT_TOKEN }}
insecure_skip_tls_verify: true
namespace: ${{ env.LICENSE_PLATE }}-${{ env.PROD_NAMESPACE }}
if: ${{ env.OPENSHIFT_SERVER != '' && env.OPENSHIFT_TOKEN != '' }}
- name: Deploy with Helm
run: |
helm upgrade --install kiln-api helm \
--namespace ${{ steps.setns.outputs.namespace }} \
-f helm/values.yaml