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_URL: http://194.5.195.53:32081/repository/foursat-nuget-hosted/index.json
|
||||||
NEXUS_USER: admin
|
NEXUS_USER: admin
|
||||||
NEXUS_PASS: 87zH26nbqT
|
NEXUS_PASS: 87zH26nbqT
|
||||||
|
K8S_SERVER: 194.5.195.53
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Job 1: Pack and Push Protobuf packages
|
# 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 }}:${{ github.sha }}
|
||||||
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
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
|
- name: Build and Push Complete
|
||||||
run: |
|
run: |
|
||||||
echo "🎉 Build and push completed successfully!"
|
echo "🎉 Build, Push, and Deploy completed successfully!"
|
||||||
echo "📦 Image pushed to: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}"
|
echo "📦 Image: ${{ 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 }}"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user