diff --git a/.env.example b/.env.example index ecdf7fb9..1e97225b 100644 --- a/.env.example +++ b/.env.example @@ -19,7 +19,7 @@ PHP_NAME=php DB_SERVICE=db CRON_NAME=cron WEB_NAME=web -REDIS_NAME=redis +REDIS_NAME=redis-sentinel APP_ENV=production APP_KEY=base64:**Add_app_key_here** @@ -77,9 +77,8 @@ MEMCACHED_HOST=127.0.0.1 REDIS_REDIS_HOST_IP=127.0.0.1 # For Redis Sentinel to connect to Redis REDIS_REPO=oci://registry-1.docker.io/ -REDIS_NAME=redis REDIS_REPLICAS=3 -REDIS_HOST=redis +REDIS_HOST=redis-sentinel REDIS_PASSWORD=null REDIS_PORT=6379 REDIS_DATABASE=0 diff --git a/.env.example.versions b/.env.example.versions index e32d12c5..06747a50 100644 --- a/.env.example.versions +++ b/.env.example.versions @@ -20,7 +20,8 @@ DB_IMAGE=mariadb:10 WEB_IMAGE=nginxinc/nginx-unprivileged:1.25.4-alpine-slim BACKUP_HELM_CHART=bcgov/backup-storage BACKUP_IMAGE=bcgovimages/backup-container-mariadb:latest -REDIS_IMAGE=redis:7.2.5 +# REDIS_IMAGE=redis:7.2.5 # deprecated for helm chart use +REDIS_HELM_CHART=bitnami/redis MEMCACHED_IMAGE=memcached:1.6.9 # PHP extensions diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 902bd3f5..6ad9b6e8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -81,7 +81,7 @@ jobs: PHP_NAME: ${{ env.PHP_NAME }} CRON_NAME: ${{ env.CRON_NAME }} CRON_IMAGE: ${{ env.CRON_IMAGE}} - REDIS_IMAGE: ${{ env.REDIS_IMAGE }} + REDIS_HELM_CHART: ${{ env.REDIS_HELM_CHART }} REDIS_NAME: ${{ env.REDIS_NAME }} REDIS_REPLICAS: ${{ env.REDIS_REPLICAS }} DB_INIT_FILE_LOCATION: ${{ env.DB_INIT_FILE_LOCATION }} @@ -255,7 +255,7 @@ jobs: BACKUP_HELM_CHART: ${{ needs.checkEnv.outputs.BACKUP_HELM_CHART }} CRON_IMAGE: ${{ needs.checkEnv.outputs.CRON_IMAGE }} CRON_NAME: ${{ needs.checkEnv.outputs.CRON_NAME }} - REDIS_IMAGE: ${{ needs.checkEnv.outputs.REDIS_IMAGE }} + REDIS_HELM_CHART: ${{ needs.checkEnv.outputs.REDIS_HELM_CHART }} REDIS_NAME: ${{ needs.checkEnv.outputs.REDIS_NAME }} REDIS_REPLICAS: ${{ needs.checkEnv.outputs.REDIS_REPLICAS }} BUILD_NAMESPACE: ${{ needs.checkEnv.outputs.BUILD_NAMESPACE }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 17bc8106..a35c386d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -166,7 +166,7 @@ jobs: if: success() run: bash ./openshift/scripts/deploy-redis-sentinel.sh env: - REDIS_IMAGE: ${{ inputs.REDIS_IMAGE }} + REDIS_HELM_CHART: ${{ inputs.REDIS_HELM_CHART }} DEPLOY_NAMESPACE: ${{ inputs.DEPLOY_NAMESPACE }} REDIS_NAME: ${{ inputs.REDIS_NAME }} REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD }} diff --git a/openshift/scripts/deploy-redis-sentinel.sh b/openshift/scripts/deploy-redis-sentinel.sh index 3f729bcf..21355898 100644 --- a/openshift/scripts/deploy-redis-sentinel.sh +++ b/openshift/scripts/deploy-redis-sentinel.sh @@ -5,6 +5,7 @@ oc project $OC_PROJECT helm repo add bitnami https://charts.bitnami.com/bitnami +# Create a temporary values file cat > values.yml<&1` =~ "Error" ]]; then + echo "❌ Helm upgrade FAILED." + exit 1 + fi + + if [[ `oc describe deployment $REDIS_NAME 2>&1` =~ "NotFound" ]]; then + echo "Helm deployment ($REDIS_NAME) exists, but NOT FOUND." + exit 1 + fi +else + echo "Helm $REDIS_NAME NOT FOUND. Beginning deployment..." + + helm install $REDIS_NAME-sentinel $REDIS_HELM_CHART --values values.yml + + # Set best-effort resource limits for the deployment + echo "Setting best-effort resource limits for the deployment..." + oc set resources deployment/$REDIS_NAME --limits=cpu=0,memory=0 --requests=cpu=0,memory=0 +fi + +echo "Helm updates completed for $REDIS_NAME." + +# Clean up the temporary values file +rm values.yaml + +e ho "Deploying Redis Insight..." oc apply -f ./openshift/redis-insight.yml