Search code examples
kubernetescontinuous-integrationpipelinegithub-actionscontinuous-deployment

CI/CD Kubernetes Deployment using Github Actions


We are thinking about migrating our infrastructure to Kubernetes. All our Source-code is in GitHub, Docker containers are in Docker Hub.

I would like to have a CI/CD pipeline for Kubernetes only using GitHub and Docker Hub. Is there a way?

If not, what tools (as few as possible) should we use?


Solution

  • You can go it as per need using the Github Action and Docker hub only.

    You should also checkout the keel with GitHub :https://github.com/keel-hq/keel

    Step: 1

    name: Stable Build
    on:
      push:
        tags:
          - "*.*.*"
    ...
          - name: Set tag in env
            run: echo "TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
    ...
              tags: runq/go-kube:${{ env.TAG }}, runq/go-kube:latest
    

    Step : 2

    Once build is done you can push it to Docker Hub

    Step : 3

    Keel can auto-update the deployment, but if you don't want that you can each time apply the YAML config from Github action also.

    Read more at : https://dev.to/achu1612/ci-cd-for-kubernetes-using-github-actions-and-keel-4b7c

    If you are planning to use Azure you should checkout : https://github.com/marketplace/actions/deploy-to-kubernetes-cluster