Update Helm values for Kiln API deployment; add GitHub Actions workfl… #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Kiln API via Helm | ||
Check failure on line 1 in .github/workflows/deploy-kiln-api-ocp.yml
|
||
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 | ||
jobs: | ||
deploy: | ||
runs-on: ubuntu-20.04 | ||
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' | ||
# 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: ${{ secrets.OPENSHIFT_SERVER }} | ||
openshift_token: ${{ secrets.OPENSHIFT_TOKEN }} | ||
insecure_skip_tls_verify: true | ||
namespace: ${{ env.LICENSE_PLATE }}-${{ env.PROD_NAMESPACE }} | ||
if: ${{ secrets.OPENSHIFT_SERVER != '' && secrets.OPENSHIFT_TOKEN != '' }} | ||
- name: Deploy with Helm | ||
run: | | ||
helm upgrade --install kiln-api ./helm \ | ||
--namespace ${{ steps.setns.outputs.namespace }} \ | ||
-f helm/values.yaml | ||