name: Deploy to Kubernetes on: workflow_dispatch: inputs: image_tag: description: 'Docker image tag to deploy' required: true default: 'latest' type: string environment: description: 'Deployment environment' required: false default: 'production' type: string env: REGISTRY: ${{ secrets.CONTAINER_REGISTRY }} IMAGE_NAME: ${{ secrets.IMAGE_NAME }} APP_NAME: ${{ secrets.APP_NAME }} HOST: ${{ secrets.HOST }} NAMESPACE: ${{ secrets.K8S_NAMESPACE }} jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup kubectl uses: azure/setup-kubectl@v3 with: version: 'v1.28.0' - name: Configure kubectl run: | echo "${{ secrets.KUBECONFIG_BASE64 }}" | base64 -d > kubeconfig export KUBECONFIG=kubeconfig kubectl config current-context - name: Create namespace if not exists run: | export KUBECONFIG=kubeconfig kubectl create namespace ${{ env.NAMESPACE }} --dry-run=client -o yaml | kubectl apply -f - - name: Deploy to Kubernetes run: | export KUBECONFIG=kubeconfig # Create deployment cat <