GitOps 101

center

Updated in July 2023

GitOps - What? (GitLab)

GitOps is an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance, and CI/CD, and applies them to infrastructure automation.

gitlab.com/gitops

GitOps - What? (Red Hat)

GitOps is a set of practices to manage infrastructure and application configurations using Git, an open source version control system.
GitOps works by using Git as a single source of truth for declarative infrastructure and applications.

redhat.com/what-is-gitops

GitOps - When?

center

GitOps - Why?

  • Split application and infrastructure code
  • Enable full automation from version control
  • Simplify environment creation and configuration
  • Apply people responsibility ("Dev", "Ops") to code management

GitOps - How?

center

Buzzword fight

Word Main challenge Breakdown
CI/CD Technical Continuous automation (pipelines)
DevOps People Collaboration practices
GitOps Processes Operational framework
IaC Technical Repositories with infrastructure code

CNCF - Projects

The CNCF (Cloud Native Computing Foundation) serves as the vendor-neutral home for many of the fastest-growing open source projects.

CNCF projects 2021 activity diagram

ArgoCD - Discovery

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.

ArgoCD Sealed Secrets screenshot

Demonstration

center

devpro/gitops-samples

Choices of implementation (1/4)

Choices of implementation (2/4)

  • Environment strategy
    • one per folder
    • one per git branche
    • one per git repository

Choices of implementation (3/4)

⚠️ No secret values in git!

Choices of implementation (4/4)

Getting started

  • Get familiar with Helm charts
  • Evaluate a set of tools
  • Start small in a non-production environment
  • Add one new component at a time
  • Get regular feedbacks and keep improving

References

Appendix - Helm chart stores