---
id: video/qqWj_2uM0ek
type: video
title: 20260420 - What is GitOps and why should you care
summary: GitOps for cloud infrastructure and Kubernetes, explained and demoed with Argo CD and Crossplane on Azure Kubernetes Service. It covers click-ops, infrastructure as code limits, pull-based drift reconciliation, and how the Cosmo Alpaca Business Central toolset uses GitOps across clusters.
tier: community
language: en
tags:
  - gitops
  - infrastructure as code
  - devops
  - click-ops
  - drift reconciliation
  - declarative configuration
  - git repository
  - pull-based deployment
  - azure
  - automation
  - kubernetes
  - argo cd
system: platform
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:20:56.786Z"
  flags: []
generated:
  at: "2026-10-07T23:20:56.848Z"
  pipeline: 0.2.0
  prompts:
    extract-video: 1
    summarize-video: 2
  input_hash: e7156e66d48344adc1af08b18f80a503942467eb6e2bdab6f2316aa7f0af9941
evidence:
  - kind: video
    url: https://www.youtube.com/watch?v=qqWj_2uM0ek&t=280s
    title: 20260420 - What is GitOps and why should you care
    date: "2026-04-21T15:05:40.000Z"
    commit: null
    t: 280
    quote: do you still do click ops or are you already using something like infrastructure as code?
  - kind: video
    url: https://www.youtube.com/watch?v=qqWj_2uM0ek&t=372s
    title: 20260420 - What is GitOps and why should you care
    date: "2026-04-21T15:05:40.000Z"
    commit: null
    t: 372
    quote: we don't have any versioning. So, if you decide at one point, okay, in the past we used to we used this template for
  - kind: video
    url: https://www.youtube.com/watch?v=qqWj_2uM0ek&t=492s
    title: 20260420 - What is GitOps and why should you care
    date: "2026-04-21T15:05:40.000Z"
    commit: null
    t: 492
    quote: of that definition because we can check that code into our git repository like we do with
  - kind: video
    url: https://www.youtube.com/watch?v=qqWj_2uM0ek&t=525s
    title: 20260420 - What is GitOps and why should you care
    date: "2026-04-21T15:05:40.000Z"
    commit: null
    t: 525
    quote: That's what we will refer to as drift for the rest of the of the presentation, where it basically could happen. I have automatically
  - kind: video
    url: https://www.youtube.com/watch?v=qqWj_2uM0ek&t=633s
    title: 20260420 - What is GitOps and why should you care
    date: "2026-04-21T15:05:40.000Z"
    commit: null
    t: 633
    quote: GitOps is always declarative, so you describe what you want, not how you get there
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
video_id: qqWj_2uM0ek
channel: yt-areopa
source_name: Areopa webinars
url: https://www.youtube.com/watch?v=qqWj_2uM0ek
published_at: "2026-04-21T15:05:40.000Z"
duration_s: 2356
captions: derived
audience:
  - administrator
  - developer
  - decision maker
chapters:
  - t: 0
    title: Introduction and housekeeping
  - t: 164
    title: Speaker introductions and agenda
  - t: 280
    title: The problems with click-ops
  - t: 437
    title: Infrastructure as code and its limitations
  - t: 620
    title: GitOps core concepts and principles
  - t: 747
    title: GitOps workflow and implementation
  - t: 832
    title: Drift reconciliation and tools overview
  - t: 1040
    title: Architecture and GitOps demo setup
  - t: 1235
    title: Creating, modifying and reverting infrastructure changes
  - t: 1507
    title: Drift detection workflow and real-world implementation
  - t: 1713
    title: Infrastructure, applications, and configurations as code
  - t: 1900
    title: When to use GitOps and implementation best practices
  - t: 2044
    title: Benefits of GitOps and Q&A on adoption
  - t: 2241
    title: Closing remarks and channel information
features:
  - name: GitOps declarative approach
    status: unclear
    t: 620
    verified: false
    status_source: video
  - name: GitOps pull-based reconciliation
    status: unclear
    t: 676
    verified: false
    status_source: video
  - name: GitOps drift detection and remediation
    status: unclear
    t: 707
    verified: false
    status_source: video
  - name: Infrastructure as Code with versioning
    status: unclear
    t: 451
    verified: false
    status_source: video
  - name: GitOps workflow
    status: unclear
    t: 787
    verified: false
    status_source: video
  - name: Argo CD
    status: unclear
    t: 1025
    verified: false
    status_source: video
  - name: Crossplane
    status: unclear
    t: 984
    verified: false
    status_source: video
  - name: Kubernetes container orchestration
    status: unclear
    t: 934
    verified: false
    status_source: video
  - name: Pull request and feature branch workflow
    status: unclear
    t: 1235
    verified: false
    status_source: video
  - name: Auto-sync capability
    status: unclear
    t: 1384
    verified: false
    status_source: video
  - name: Git revert for change rollback
    status: unclear
    t: 1468
    verified: false
    status_source: video
  - name: Resource pruning with safety check
    status: unclear
    t: 1568
    verified: false
    status_source: video
  - name: Git audit history for infrastructure changes
    status: unclear
    t: 1606
    verified: false
    status_source: video
  - name: Multi-cluster GitOps management
    status: unclear
    t: 1643
    verified: false
    status_source: video
  - name: Infrastructure as YAML in Git
    status: unclear
    t: 1713
    verified: false
    status_source: video
  - name: Application versioning and configuration in Git
    status: unclear
    t: 1736
    verified: false
    status_source: video
  - name: Encrypted secrets in Git repositories
    status: unclear
    t: 1782
    verified: false
    status_source: video
  - name: Automated API version updates via pull requests
    status: unclear
    t: 1819
    verified: false
    status_source: video
  - name: GitOps for infrastructure change reviews
    status: unclear
    t: 1874
    verified: false
    status_source: video
  - name: GitOps for cloud-native scenarios
    status: unclear
    t: 1900
    verified: false
    status_source: video
  - name: GitOps for similar multi-environment management
    status: unclear
    t: 1933
    verified: false
    status_source: video
  - name: GitOps implementation considerations
    status: unclear
    t: 1961
    verified: false
    status_source: video
  - name: Self-healing infrastructure with drift detection
    status: unclear
    t: 2054
    verified: false
    status_source: video
  - name: Git-based infrastructure workflow using Copilot
    status: unclear
    t: 2085
    verified: false
    status_source: video
  - name: Cosmo Alpaca
    status: unclear
    t: 1643
    verified: false
    status_source: video
objects_mentioned:
  - other storage account
  - other container
quotes:
  - t: 280
    text: do you still do click ops or are you already using something like infrastructure as code?
    check: exact
  - t: 372
    text: we don't have any versioning. So, if you decide at one point, okay, in the past we used to we used this template for
    check: exact
  - t: 492
    text: of that definition because we can check that code into our git repository like we do with
    check: fuzzy
  - t: 525
    text: That's what we will refer to as drift for the rest of the of the presentation, where it basically could happen. I have automatically
    check: exact
  - t: 633
    text: GitOps is always declarative, so you describe what you want, not how you get there
    check: exact
---

# 20260420 - What is GitOps and why should you care

> GitOps for cloud infrastructure and Kubernetes, explained and demoed with Argo CD and Crossplane on Azure Kubernetes Service. It covers click-ops, infrastructure as code limits, pull-based drift reconciliation, and how the Cosmo Alpaca Business Central toolset uses GitOps across clusters.

[Watch on YouTube](https://www.youtube.com/watch?v=qqWj_2uM0ek) · Areopa webinars · 2026-04-21 · 39:16 · tier community · reviewed (checked by Opus)

## Overview

The webinar from Areopa explains why click-ops and plain infrastructure as code fall short: manual drift, push-only updates and limited traceability. It then presents GitOps as a declarative, pull-based approach where Git is the single source of truth and a GitOps tool keeps reality matching the definition.

The demo uses Argo CD with Crossplane to create, change, revert and delete Azure Kubernetes Service resources defined as YAML in Git, and to detect drift. The speakers then describe their real-world use for Business Central containers and C# APIs across several clusters, with encrypted secrets, automated version-update pull requests, and advice on when to adopt GitOps and how to start.

## Key points

- GitOps is declarative (describe the desired state) and pull-based, unlike push-based infrastructure as code.
- Argo CD connects a Git repository to a cluster; with auto-sync, changes merged in Git are applied without manual steps.
- Drift between Git and actual infrastructure is detected and remediated automatically; when that is not possible (for example, a destructive change would be required), you can monitor it and get a notification.
- Argo CD pruning deletes resources removed from Git, with an optional checkbox confirmation as a safety check.
- Git revert undoes accidental infrastructure changes, and Git history serves as the audit trail.
- Business Central development licenses and other secrets can be stored encrypted in Git and decrypted by Argo CD during sync.
- GitOps suits cloud-native setups and multiple similar environments (test, staging, production); the advice is to research tools, repository structure and access control, then start with a small pilot.

## Chapters

- [0:00](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=0s) Introduction and housekeeping
- [2:44](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=164s) Speaker introductions and agenda
- [4:40](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=280s) The problems with click-ops
- [7:17](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=437s) Infrastructure as code and its limitations
- [10:20](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=620s) GitOps core concepts and principles
- [12:27](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=747s) GitOps workflow and implementation
- [13:52](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=832s) Drift reconciliation and tools overview
- [17:20](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1040s) Architecture and GitOps demo setup
- [20:35](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1235s) Creating, modifying and reverting infrastructure changes
- [25:07](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1507s) Drift detection workflow and real-world implementation
- [28:33](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1713s) Infrastructure, applications, and configurations as code
- [31:40](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1900s) When to use GitOps and implementation best practices
- [34:04](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=2044s) Benefits of GitOps and Q&A on adoption
- [37:21](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=2241s) Closing remarks and channel information

## Features

| Feature | Status | At |
|---|---|---|
| GitOps declarative approach | status not stated | [10:20](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=620s) |
| GitOps pull-based reconciliation | status not stated | [11:16](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=676s) |
| GitOps drift detection and remediation | status not stated, demoed | [11:47](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=707s) |
| Infrastructure as Code with versioning | status not stated | [7:31](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=451s) |
| GitOps workflow | status not stated, demoed | [13:07](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=787s) |
| Argo CD | status not stated, demoed | [17:05](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1025s) |
| Crossplane | status not stated, demoed | [16:24](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=984s) |
| Kubernetes container orchestration | status not stated, demoed | [15:34](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=934s) |
| Pull request and feature branch workflow | status not stated, demoed | [20:35](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1235s) |
| Auto-sync capability | status not stated, demoed | [23:04](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1384s) |
| Git revert for change rollback | status not stated, demoed | [24:28](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1468s) |
| Resource pruning with safety check | status not stated, demoed | [26:08](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1568s) |
| Git audit history for infrastructure changes | status not stated, demoed | [26:46](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1606s) |
| Multi-cluster GitOps management | status not stated, demoed | [27:23](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1643s) |
| Infrastructure as YAML in Git | status not stated, demoed | [28:33](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1713s) |
| Application versioning and configuration in Git | status not stated, demoed | [28:56](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1736s) |
| Encrypted secrets in Git repositories | status not stated, demoed | [29:42](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1782s) |
| Automated API version updates via pull requests | status not stated, demoed | [30:19](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1819s) |
| GitOps for infrastructure change reviews | status not stated, demoed | [31:14](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1874s) |
| GitOps for cloud-native scenarios | status not stated | [31:40](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1900s) |
| GitOps for similar multi-environment management | status not stated | [32:13](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1933s) |
| GitOps implementation considerations | status not stated | [32:41](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1961s) |
| Self-healing infrastructure with drift detection | status not stated | [34:14](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=2054s) |
| Git-based infrastructure workflow using Copilot | status not stated | [34:45](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=2085s) |
| Cosmo Alpaca | status not stated | [27:23](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1643s) |

## AL objects mentioned

As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.

- other "storage account" at [16:41](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1001s)
- other "container" at [17:05](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=1025s)

## Quotes

- [4:40](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=280s) "do you still do click ops or are you already using something like infrastructure as code?"
- [6:12](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=372s) "we don't have any versioning. So, if you decide at one point, okay, in the past we used to we used this template for"
- [8:12](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=492s) "of that definition because we can check that code into our git repository like we do with"
- [8:45](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=525s) "That's what we will refer to as drift for the rest of the of the presentation, where it basically could happen. I have automatically"
- [10:33](https://www.youtube.com/watch?v=qqWj_2uM0ek&t=633s) "GitOps is always declarative, so you describe what you want, not how you get there"

Presenters (as heard): Tina Starič, Marcus Littebrant, Tobias Fenster.
