Add force restart option to deployment workflow and script

This commit is contained in:
2025-10-04 23:26:26 +08:00
parent 98d83ec852
commit 18483c8978
2 changed files with 15 additions and 0 deletions

View File

@@ -23,6 +23,11 @@ on:
required: false
default: ''
type: string
force_restart:
description: 'Force rollout restart (restarts pods even if no changes)'
required: false
default: true
type: boolean
# Environment variables available to all jobs
env:
@@ -39,6 +44,7 @@ env:
CONTAINER_REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
CONTAINER_IMAGE_NAME: ${{ secrets.CONTAINER_IMAGE_NAME }}
CONTAINER_IMAGE_TAG: ${{ inputs.image_tag || 'latest' }}
FORCE_RESTART: ${{ inputs.force_restart }}
jobs:
deploy:

View File

@@ -20,6 +20,7 @@ CONTAINER_REGISTRY_NAMESPACE="${CONTAINER_REGISTRY_NAMESPACE:-username}"
CONTAINER_REGISTRY_PASSWORD="${CONTAINER_REGISTRY_PASSWORD:-password}"
CONTAINER_IMAGE_NAME="${CONTAINER_IMAGE_NAME:-image-name}"
CONTAINER_IMAGE_TAG="${CONTAINER_IMAGE_TAG:-latest}"
FORCE_RESTART="${FORCE_RESTART:-true}"
# =============================================================================
# Functions
@@ -46,6 +47,7 @@ print_help() {
echo " CONTAINER_REGISTRY_PASSWORD"
echo " CONTAINER_IMAGE_NAME"
echo " CONTAINER_IMAGE_TAG"
echo " FORCE_RESTART Force rollout restart (default: true)"
echo ""
echo "Examples:"
echo " $0 deploy"
@@ -156,6 +158,13 @@ deploy_application() {
# Wait for deployment to be ready
echo "Waiting for deployment to be ready..."
# Force restart if enabled
if [ "${FORCE_RESTART}" = "true" ]; then
echo "Forcing rollout restart..."
kubectl rollout restart deployment/${CONTAINER_IMAGE_NAME} -n ${KUBERNETES_NAMESPACE}
fi
kubectl rollout status deployment/${CONTAINER_IMAGE_NAME} \
-n ${KUBERNETES_NAMESPACE} \
--timeout=300s