Rootconf 2018

On scaling infrastructure and operations

Git Based Workflows for Deploying Applications on Kubernetes

Submitted by Shahidh K Muhammed (@shahidhk) on Thursday, 1 March 2018

videocam
Preview video

Technical level

Intermediate

Section

Full talk

Status

Submitted

Vote on this proposal

Login to vote

Total votes:  0

Abstract

Git is an integral part of every developer’s workflow. With platforms like Kubernetes, which focus on running applications as containers, developers need to take care of shipping their code on to these platforms by using tools like kubectl. Since git is already in every developer’s toolbox, building workflows around it makes it intuitive to use. This means that with a little bit of smart hacking you can use git for doing devops and remove the need for using kubectl or any other tooling in our regular workflows. An emerging pattern (called GitOps) revolves around managing ops using just git. K8s deployments are particularly easy to manage using git, as k8s can make devops declarative.

We’ll look into setting up such systems, especially using git-hooks, which can be used to mask the gory details of kubectl applys and docker builds. The demo will be useful for application developers as well as Kubernetes administrators for setting up their own customised flows.

Key takeaways:

  • Developers will learn how kubernetes makes devops declarative and thus amenable to GitOps
  • Developers will learn how to use git-hooks to build their own devops tooling so that git is the only tool required for devops

Outline

  • Why git-based workflows are useful for developer teams
  • Functional requirements for such workflows (templating, multiple environments, integration with existing CI/CD systems etc.)
  • DIY tooling setup for Kubernetes which allow developers to set-up their own workflows
  • Using git-pre-push and git-pre-receive hooks for git-push-to-deploy features
  • Demo of integrating such a system with a Kubernetes cluster, from scratch

Speaker bio

Shahidh is a senior platform engineer at Hasura and heads the development of the Hasura CLI. He has been working extensively with Kubernetes since the pre-1.0 versions, from building installers to writing developer tools.

Shahidh is a co-author of Gitkube (https://github.com/hasura/gitkube), an open-source tool to deploy applications onto Kubernetes using git. He, along with the team at Hasura, are exploring ways to make application deployment to Kubernetes easier, leveraging workflows around Git.

Shahidh is a regular speaker at many Golang and Kubernetes meetups. He also co-hosts the weekly CNCF certified meetup, Koffee with Kubernetes in Bengaluru.

Slides

https://speakerdeck.com/shahidhk/git-based-application-deployment-patterns-for-kubernetes

Preview video

https://youtu.be/YM_fjANYbfM

Comments

Login with Twitter or Google to leave a comment