Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Practical GitOps on Kubernetes


Published on

ArgoCD showcase

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Practical GitOps on Kubernetes

  1. 1. ArgoCD showcase Practical GitOps on Kubernetes
  2. 2. TABLE OF CONTENTS Whoami Who is this dude GitOps basics What? Why? How? 00 02 01 03 04 05 GitOps in Kubernetes Kubernetes specifics in modern world ArgoCD in details AKA i’ve read the docs, so you don’t need to do it yourself ArgoCD in action That’s enough talking, let’s do some live demos What’s next Another things that worth checking
  3. 3. About me 00 Who is this dude?
  4. 4. Whoami ● Only boring, pure technical talks ● Infra janitor at ● special interest group member ● I don’t have blog, Telegram or YouTube channel ● Sometimes consulting people for money, and for free at ukrops Slack ● Co-author of
  5. 5. GitOps basics 01 What? Why? How?
  6. 6. What is GitOps? ➔ Versioned CI/CD on top of declarative infrastructure ➔ Same (unified) tooling and flow for code and deployments (possibly - for CI) ➔ Current state is always in current commit of git repository ➔ Continuous reconciliation loop of the actual state with the desired state
  7. 7. Why does GitOps worth it? ➔ Every change has its full history and papertrail ➔ Issues and regressions are easily identifiable and rollbacks can be just “git revert” ➔ Neither CI/CD nor developers should have permissions to apply changes ➔ Sharing knowledge by code review ➔ State drifts are basically non-existent
  8. 8. CI Ops vs GitOps CI Ops is a centralized proto-GitOps with various maturity levels, heavily scripted, with push model GitOps is pull-based, decentralized, and controllerized
  9. 9. GitOps flow
  10. 10. State of GitOps in Kubernetes 02 Kubernetes specifics in modern world
  11. 11. Comparison of top 999 tools on the market? ➔ Weave Flux and ArgoCD are the two market leaders in general purpose tooling ➔ Both of them do share the vast majority of the features, but still have lots of differences
  12. 12. Weave Flux vs ArgoCD Weave Flux ➔ Repo-level syncs ➔ Native Helm and YAML support ➔ fluxctl as a separate tool ➔ Polling of Docker registries, state update auto-commit to git ➔ Minimalistic “one-purpose tool”, can incorporate other tools (Argo Workflow, GitHub Actions, Flagger, OpenFaas etc.) ➔ Simple architecture ArgoCD ➔ More granular syncs (app-level) ➔ “Helmless” Helm, YAML, kustomize, ksonnet, jsonnet, replicated ship support ➔ Extensive management UI and CLI ➔ Granular access control with SSO ➔ Multi-tenancy ➔ Complex, multi-component architecture, “almost” HA-capable ➔ Has more hidden flavours under the hood
  13. 13. Getting the best of both worlds soon! ➔ Intuit and Weave are finally decided to stop implementing the same functionality and to join efforts to deliver industry standard ➔ Argo Flux is going to be CNCF project ➔ AWS EKS team is going to help them ➔ Their first “child” is already being developed under code name “GitOps Engine”
  14. 14. ArgoCD in details 03 AKA i’ve read the docs, so you don’t need to do it yourself
  15. 15. What is ArgoCD? ➔ Currently the most powerful GitOps tool for Kubernetes CD ➔ Automates application lifecycle management ➔ Developed by Intuit, used in production by Mirantis, Red Hat, Ticketmaster, SendGrid, Tesla, Volvo etc.
  16. 16. ArgoCD components ➔ TODO: restore accidentally deleted slide
  17. 17. ArgoCD flavours ➔ Vanilla Helm and ArgoCD hooks ➔ Sync waves for multiple sequential actions ➔ Automagical CRDs management ➔ Granular project security settings and validations ➔ Manage ArgoCD by ArgoCD 乁( ⁰͡ Ĺ̯ ⁰͡ ㄏ
  18. 18. ArgoCD flavours ➔ Unforking Helm charts with other config management plugins ➔ BYO config management plugin ➔ “Preview” environments with manual “sync” ➔ Custom resource health checks with Lua ➔ Tight integration with Argo Rollouts via Lua healthcheck wiring (Flagger alternative)
  19. 19. Argo Rollouts ➔ Can be considered as Flagger competitor ➔ Preserves declarative nature of Kubernetes deployment manifests ➔ Augments blue-green and canary strategies into Kubernetes built-in objects
  20. 20. Argo Workflows ➔ Combined with ArgoCD can be considered as Tekton Pipelines competitor ➔ Works nice with ArgoCD, enables GitOps-based headless CI ➔ Meant to be used not just for CI, but can also be used to implement any container-native workflow
  21. 21. ArgoCD in action! 04 That’s enough talking, let’s do some live demos
  22. 22. What’s next? 05 Another things that worth checking
  23. 23. What future holds ➔ Wait for Argo+Flux+EKS collab to get bigger ➔ Try Argo Rollouts, Flagger ➔ Check Argo Events, Argo Workflows ➔ Feel how cool Atlantis for Terraform is ➔ Configure Jenkins X in a GitOps way via Tekton ➔ Manage Kubernetes clusters via GitOps using Cluster API ➔ Try creating Pulumi ArgoCD config provider?