Traditional DevOps wisdom is to utilize automation tools for configuring all the systems, so all pieces of configuration should be described with code stored in version control. Then the people responsible for these systems can use standard Dev practices to collaborate on this code (reviews, tests, quality gates, etc.).
With the advent of cloud native systems, we now utilize containers and orchestrators to define how our applications should be operated.
The ubiquitous orchestrator - Kubernetes provides a declarative API, so you can describe the desired state of the system. And then it is the role of the control plane to operate the cluster (make the actual state match the desired state).
But we still need config mgmt for API objects to the point when they are applied to the cluster.
Helm helps organizing these configs into charts, template them, and manage releases. And GitOps lets you use a git repo as a single source of truth for the desired state of the whole system. Then all changes to this state are delivered as git commits instead of using kubectl apply or helm upgrade.
In this talk I will introduce the GitOps model for operating cloud native environments and give a short demo. VideoSlides