name: Deploy to K3s on: push: branches: - main workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup kubectl run: | echo "Installing kubectl..." curl -LO "https://dl.k8s.io/release/v1.28.4/bin/linux/amd64/kubectl" chmod +x kubectl mv kubectl /usr/local/bin/ kubectl version --client - name: Setup kubeconfig run: | echo "Setting up kubeconfig..." mkdir -p /home/runner/.kube cat << 'KUBECONFIG_EOF' > /home/runner/.kube/config apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTnpBMU5ETTVOVE13SGhjTk1qWXdNakE0TURrME5UVXpXaGNOTXpZd01qQTJNRGswTlRVegpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTnpBMU5ETTVOVE13V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFSVWJYcUJDS0I3eVpBMDFXbm5FcSt1L2d4SWpmYmtQcHhjWXNxWEI4YjkKRTE1RFB1bU1pdmxzR0RXc1NCQXdvT2kxSHdDaXExb2JXeTFlc0FDODZXMk5vMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVTUzTFlhMVVYSjVHallxdHQ2NTdYCmg5ZnRtNkF3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnR0NGZzFqand4NXF1UXpZV2k4clByMHJiVTE1aVNXdTAKeUdzNmR0dGkzYnNDSVFESUFsTXdKb1F1NG1LNDgwZmFjaVVrZzNQaTBtYndSUk9EcFpYRnRRQzF3Zz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K server: https://192.168.1.139:6443 name: default contexts: - context: cluster: default user: default name: default current-context: default kind: Config preferences: {} users: - name: default user: client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrRENDQVRlZ0F3SUJBZ0lJV2hVUVhDTHZhVG93Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOemN3TlRRek9UVXpNQjRYRFRJMk1ESXdPREE1TkRVMU0xb1hEVEkzTURJdwpPREE1TkRVMU0xb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCclhtcEMwYXlKQjM3dU0KV2xDR2I5V3JhYXBWbHJwVmxpcFBOd0QzOUpMV2JMQTI2WElSWmJLRXJ2NUNzNFBWT2xBblg4TnZBaGN5UjBnSApwMFhvcWtTalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCU09GS0ZReWxvdkcwTzdiaENncEIvNDF4RlZ3REFLQmdncWhrak9QUVFEQWdOSEFEQkUKQWlBZVpCRUJXNnhhRDVyd2N3K3RJY05tZ2t4ZGl5ZXRRQng4YW9pMFVnZUIvQUlnYkd1MldNREdhVHpUd0tOUwp3OEVYTFBvN3RuTUo5bmFIckZpTjZ0YmlwYTA9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUzTnpBMU5ETTVOVE13SGhjTk1qWXdNakE0TURrME5UVXpXaGNOTXpZd01qQTJNRGswTlRVegpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUzTnpBMU5ETTVOVE13V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFSMUZzdENRS2NnMEt6dFhmK1hxZVpQNTBIdkVHbURHWHJCeXJaZC9PdHYKd0Z4ZVBzZ1AyUzZGa1VKSWt3K1J3NFdxelAyMktjd1BER2JyVXFuNUhaTE5vMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVWpoU2hVTXBhTHh0RHUyNFFvS1FmCitOY1JWY0F3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUsrVjNHM3dUVjVFSjYxNVNXeUlvd3NpelFkTVZQS1kKaHNHamVqelQzM080QWlFQXBQTm1HeHEvbXBzd3ZUejdCanBtMkMyUGRJeGNkMFhGTG9OL2d2Z0ZrQlk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUloY1kvdnArcW9Sd3J3QnY0K1BlNzdnc3dwSGlFSjRzM1ZOdFBmZ3RrZ1lvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFR3RlYWtMUnJJa0hmdTR4YVVJWnYxYXRwcWxXV3VsV1dLazgzQVBmMGt0WnNzRGJwY2hGbApzb1N1L2tLemc5VTZVQ2RmdzI4Q0Z6SkhTQWVuUmVpcVJBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= KUBECONFIG_EOF chmod 600 /home/runner/.kube/config kubectl config view - name: Deploy to K3s run: | echo "Deploying to K3s cluster..." kubectl apply -f k8s/deployment.yml - name: Verify deployment run: | echo "Verifying deployment..." kubectl get pods -n default kubectl get deployments -n default