Configuré un clúster de kubernetes en AWS usando kops .
Estoy tratando de automatizar la implementación con acciones de github.
name: Build and Deploy on: push: branches: - develop jobs: build_docker_image: - uses: actions/checkout@v2 - name: Build the tagged Docker image run: docker build --target dev -t org/customer-service-backend:la push_docker_image_to_github-packages: - uses: docker/build-push-action@v2 with: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: docker.pkg.github.com repository: org/customer-service-backend:latest tag_with_ref: true deploy_to_kubernetes_cluster: ... what to do here?Puedo construir la imagen y enviar paquetes a gihub.
Creé deployment.yml en el directorio raíz del repositorio.
¿Cómo puedo implementar en el clúster de kubernetes?
Además, estoy etiquetando las imágenes con la latest . ¿Está bien o necesito usar GITHUB_REF para etiquetar?
Actualizar
Soy capaz de configurar todas las cosas. Solo necesito que kubeconfig se autentique en el clúster existente.
name: Build and Deploy on: push: branches: - develop jobs: build_docker_image: - uses: actions/checkout@v2 - name: Build the tagged Docker image run: docker build --target dev -t org/customer-service-backend:${{ github.sha }} push_docker_image_to_github_packages: needs: build_docker_image - uses: docker/build-push-action@v2 with: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: docker.pkg.github.com repository: org/customer-service-backend:${{ github.sha }} tag_with_ref: true deploy_to_kubernetes_cluster: needs: push_docker_image_to_github_packages name: Set Kubernetes Context uses: azure/k8s-set-context@v1 with: method: kubeconfig kubeconfig: ${{ secrets.KUBE_CONFIG }} # Use secret (https://developer.github.com/actions/managing-workflows/storing-secrets/) run: | sed -i'' -e 's/IMAGE_LABEL/${{ github.sha }}/g' deployment.yml kubectl apply -f deployment.ymlAl mirar el archivo de configuración de su flujo de trabajo, todos los trabajos se ejecutan en paralelo.
Pero, probablemente no es lo que quieres.
La imagen push necesita una imagen construida y el trabajo de implementación necesita una imagen construida actualizada.
En Acceder al clúster de kubernetes, solo acceda a su clúster y haga,
cat $HOME/.kube/configy copiar la salida.
Ahora, cree un secreto en github con KUBE_CONFIG como variable de entorno.
Notas: este es un método para acceder al clúster de kubernetes , también hay otros métodos, elija uno que se adapte a sus necesidades
name: Build and Deploy on: push: branches: - develop jobs: build_docker_image: name: Build Docker Image runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v2 - name: Build the tagged Docker image run: docker build --target dev -t your_org/customer-service-backend:${{ github.sha }} . push_docker_image_to_github_packages: name: Push Docker Image to Github Packages needs: build_docker_image runs-on: ubuntu-latest steps: - name: Push Docker Image uses: docker/build-push-action@v2 with: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} registry: docker.pkg.github.com repository: your_org/customer-service-backend:${{ github.sha }} deploy_to_kubernetes_cluster: name: Deploy to Kubernetes Cluster needs: push_docker_image_to_github_packages runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v2 - name: Set Kubernetes Context uses: azure/k8s-set-context@v1 with: method: kubeconfig kubeconfig: ${{ secrets.KUBE_CONFIG }} # Use secret (https://developer.github.com/actions/managing-workflows/storing-secrets/) - name: Deploy to Cluster run: | sed -i'' -e 's/IMAGE_LABEL/${{ github.sha }}/g' deployment.yml kubectl apply -f deployment.yml