Slide 1

Slide 1 text

Managing Fleets of Kubernetes Clusters with GitOps ██ Adrian Kosmaczewski, Developer Relations, VSHN ▓▓▓ HipHops Automation Week, January 25th, 2024 ████████

Slide 2

Slide 2 text

About Adrian • In charge of Developer Relations at VSHN AG • Developer since 1996 • O'Reilly book author • LinkedIn Learning instructor • https://akos.ma/ ████████████████

Slide 3

Slide 3 text

VSHN • Pronounced ˈvɪʒn – like "vision" • "The DevOps Company" • Founded 2014 • Switzerland's leading DevOps, Docker, Kubernetes, OpenShift and 24/7 cloud operations partner • 45 VSHNeers, ~35 DevOps engineers • https://vshn.ch ████████████████████████

Slide 4

Slide 4 text

Clusters • Hundreds of clusters • Hyperscalers • On-Premise ███████████████████████████████

Slide 5

Slide 5 text

Evolution • 1995: Server • 2000: Servers as pets • 2005: Servers as cattle (VMs) • 2010: VMs as cattle (Containers) • 2015: Containers as cattle (Kubernetes) • 2020: Kubernetes as cattle (Federations) • 2025: Federations as cattle (???) ███████████████████████████████████████

Slide 6

Slide 6 text

What is Project Syn? ▍ Pre-integrated set of tools to provision, update, ▍ backup, observe, and react/alert production applications ▍ on Kubernetes and in the cloud. ▍ ▍ It supports DevOps through full self-service and automation ▍ using containers, Kubernetes, and GitOps. ███████████████████████████████████████████████

Slide 7

Slide 7 text

Open Source ▓▓▓ Websites • https://syn.tools • https://hub.syn.tools • https://github.com/projectsyn ▓▓▓ Based upon • Argo CD • Kapitan • Vault ██████████████████████████████████████████████████████

Slide 8

Slide 8 text

Website ██████████████████████████████████████████████████████████████

Slide 9

Slide 9 text

Major Components Name │ Latest Version │ Namespace │ Language │ Function ────────────────────┼────────────────┼────────────┼──────────┼───────────────────────────────────────────────────── Lieutenant Operator │ v1.5.0 │ lieutenant │ Go │ Central catalog of clusters and tenants Lieutenant API │ v0.11.0 │ lieutenant │ Go │ Steward │ v0.11.0 │ syn │ Go │ In-cluster agent Commodore │ v1.20.0 │ │ Python │ Command-line tool to manipulate clusters with GitOps ██████████████████████████████████████████████████████████████████████

Slide 10

Slide 10 text

Diagram █████████████████████████████████████████████████████████████████████████████

Slide 11

Slide 11 text

Custom Resource Definitions $ kubectl -n lieutenant get tenants NAME DISPLAY NAME AGE t-muddy-frog-1637 Tutorial Tenant 63m $ kubectl -n lieutenant get clusters NAME DISPLAY NAME TENANT AGE c-holy-wave-1079 Kind cluster t-muddy-frog-1637 60m c-tremendous-thing-954 K3s cluster t-muddy-frog-1637 58m c-wandering-leaf-7233 Minikube cluster t-muddy-frog-1637 63m █████████████████████████████████████████████████████████████████████████████████████

Slide 12

Slide 12 text

GitLab Projects $ export GITLAB_TOKEN=glpat-xxxxXxXXxXXxxXxxxxXx █████████████████████████████████████████████████████████████████████████████████████████████

Slide 13

Slide 13 text

Features • Multi-Cluster and Multi-Tenant Management • Full GitOps Operations • Configuration Management • Secret Management • Service Provisioning ████████████████████████████████████████████████████████████████████████████████████████████████████

Slide 14

Slide 14 text

Reusable Components ████████████████████████████████████████████████████████████████████████████████████████████████████████████

Slide 15

Slide 15 text

Demo ████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

Slide 16

Slide 16 text

Summary • … organizes fleets of Kubernetes clusters into tenants • … uses GitOps to distribute applications and configuration • … can be extended using Commodore Components • … compatible with all Kubernetes distributions • … is 100% open source ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

Slide 17

Slide 17 text

Join the Community! • https://syn.tools • https://hub.syn.tools • https://github.com/projectsyn ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

Slide 18

Slide 18 text

Introduction Video on https://vshn.tv ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

Slide 19

Slide 19 text

Thanks! ▓▓▓ Neugasse 10 – 8005 Zürich – Switzerland – https://vshn.ch ▓▓▓ [email protected] ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████