feat: add kubernetes deployment step via SSH
This commit is contained in:
@@ -11,6 +11,7 @@ env:
|
||||
NEXUS_URL: http://194.5.195.53:32081/repository/foursat-nuget-hosted/index.json
|
||||
NEXUS_USER: admin
|
||||
NEXUS_PASS: 87zH26nbqT
|
||||
K8S_SERVER: 194.5.195.53
|
||||
|
||||
jobs:
|
||||
# Job 1: Pack and Push Protobuf packages
|
||||
@@ -133,11 +134,37 @@ jobs:
|
||||
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
|
||||
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
||||
|
||||
- name: Deploy to Kubernetes
|
||||
run: |
|
||||
echo "🚀 Deploying to Kubernetes via SSH..."
|
||||
|
||||
# Install SSH client
|
||||
apk add --no-cache openssh-client sshpass
|
||||
|
||||
# Set variables
|
||||
IMAGE_TAG="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}"
|
||||
|
||||
# Deploy via SSH to k8s master
|
||||
export SSHPASS="${{ secrets.SERVER_PASSWORD }}"
|
||||
sshpass -e ssh -o StrictHostKeyChecking=no root@${{ env.K8S_SERVER }} "
|
||||
set -e
|
||||
echo '📦 Updating deployment...'
|
||||
|
||||
# Update image
|
||||
kubectl set image deployment/cms cms=${IMAGE_TAG} --record 2>/dev/null || \
|
||||
kubectl set image deployment/cms cms=${IMAGE_TAG}
|
||||
|
||||
# Wait for rollout
|
||||
echo '⏳ Waiting for rollout...'
|
||||
kubectl rollout status deployment/cms --timeout=180s
|
||||
|
||||
echo ''
|
||||
echo '✅ Deployment successful!'
|
||||
echo '📊 Pod status:'
|
||||
kubectl get pods -l app=cms -o wide
|
||||
"
|
||||
|
||||
- name: Build and Push Complete
|
||||
run: |
|
||||
echo "🎉 Build and push completed successfully!"
|
||||
echo "📦 Image pushed to: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}"
|
||||
echo "📦 Latest tag: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest"
|
||||
echo ""
|
||||
echo "🚀 To deploy manually on server:"
|
||||
echo "kubectl set image deployment/cms cms=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}"
|
||||
echo "🎉 Build, Push, and Deploy completed successfully!"
|
||||
echo "📦 Image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}"
|
||||
|
||||
Reference in New Issue
Block a user