GitOps 101

center

Last updated in February 2025

Intro - Lifecycle & CI/CD (Pega)

center

Intro - DevOps wall of confusion (Plutora)

center

Intro - Infrastructure automation dilemma

2020's need

  • Dynamic environments
  • Self-service portal
  • 1 env = n components
  • Single source of truth
  • Easy to maintain by many
  • Regular security patches
  • 99.9x% availability

2010's approach

  • CI/CD pipelines (push)
  • Dev flow != Prod updates
  • IaC complicated tooling
  • No IaC orchestration standard
  • Dev quality != Infra expertise

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? (Atlassian)

At its core, GitOps is code-based infrastructure and operational procedures that rely on Git as a source control system.
It’s an evolution of Infrastructure as Code (IaC) and a DevOps best practice that leverages Git as the single source of truth, and control mechanism for creating, updating, and deleting system architecture.

🌐 atlassian.com/git/tutorials/gitops

GitOps - When? (Weaveworks)

center

GitOps - When? (VMware)

center

GitOps - Why?

Action Reason
SIMPLIFY Small YAML declarative files
OPEN Much larger collaboration
RESPONSIBILIZE The right profile for the right action
SCALE Same effort for 10 or 10 000 env
SECURE Processes fully automated & versioned
MONITOR Cloud Native observability

GitOps & Kubernetes - What? (ClickIT)

center

GitOps & Kubernetes - How? (1/4)

Kubernetes definition format:

GitOps & Kubernetes - How? (2/4)

Environment strategy:

  • one per folder
  • one per git branch
  • one per git repository

GitOps & Kubernetes - How? (3/4)

⚠️ No secret values in git!

Secret management tool for Kubernetes:

GitOps & Kubernetes - How? (4/4)

GitOps continuous delivery tool for Kubernetes:

Argo CD

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

🌐 argoproj.github.io/cd (argoproj/argo-cd)

πŸ“ Akuity Enterprise for Argo

Fleet

Fleet is a container management and deployment engine designed to offer users more control on the local cluster and constant monitoring through GitOps

🌐 fleet.rancher.io (rancher/fleet)

πŸ“ CustomResourceDefinition toolbox, Rancher integration

Flux

Flux is a set of continuous and progressive delivery solutions for Kubernetes that are open and extensible

🌐 fluxcd.io (fluxcd/flux2)

πŸ“ GitLab Integration

CNCF projects (2024 report)

center

Outro - Getting started

  • Enforce good practices in source code management (git)
  • Split integration/delivery/deployment tasks in pipelines
  • Get comfortable with Helm charts
  • Evaluate a set of tools and practices (ADRs)
  • Start small in a non-production environment
  • Add one component at a time
  • Share regularly, get feedbacks and improve (Agile :D)
  • Get people onboard (DevOps \o/)

Outro - Advices for your GitOps journey

  • NEVER store a secret value in git
    • Git never forgets (it it happens, generate a new one)
  • Encourage Build & Run COLLABORATION
    • Dev & Ops can help each other (Dockerfile, Helm charts)
  • Follow a STANDARD: Git Flow, GitHub Flow, GitLab Flow
    • Many issues come from a wrong usage of git branches
  • Host and manage your OWN application catalog
    • Validate & share the applications that can be used

OpenGitOps - What?

OpenGitOps is a set of open-source standards, best practices, and community-focused education to help organizations adopt a structured, standardized approach to implementing GitOps.

🌐 opengitops.dev (open-gitops/project)

References

marp src/gitops-101.md --theme css/dracula.css paginate: false

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

--- ## Argo CD - Discovery > [Argo CD](https://argoproj.github.io/cd/) is a declarative, GitOps continuous delivery tool for Kubernetes. ![ArgoCD Sealed Secrets screenshot](./img/ArgoCD%20Sealed%20Secrets.png) --- ## Demonstration ![h:400 center](./img/argocd-demo.png) β†’ [devpro/gitops-samples](https://github.com/devpro/gitops-samples)

--- ## Appendix - Helm chart stores * General * [ArtifactHub](https://artifacthub.io/) * [Bitnami](https://bitnami.com/stacks/helm) * [Devpro](https://github.com/devpro/helm-charts) * Dedicated (examples) * [Grafana](https://grafana.github.io/helm-charts/) * [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-helm-charts) * [Prometheus](https://prometheus-community.github.io/helm-charts/)