Skip to content

GitOps Tooling: CGOA practice questions

GitOps tooling is 14% of the CGOA curriculum and covers four things: manifest format and packaging, state store systems (Git and alternatives), reconciliation engines (Argo CD, Flux and alternatives), and interoperability with notification, observability and continuous integration tools.

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What GitOps Tooling covers in CGOA

GitOps tooling is 14% of the CGOA curriculum and covers four things: manifest format and packaging, state store systems (Git and alternatives), reconciliation engines (Argo CD, Flux and alternatives), and interoperability with notification, observability and continuous integration tools.

Manifest format and packaging decide how desired state is written. Plain YAML manifests work, but two tools dominate. Helm calls itself the package manager for Kubernetes: a chart is a Helm package containing the resource definitions needed to run an application, the configuration is a set of values usually taken from a values.yaml file, and a release is an instance of a chart running in a cluster. Kustomize customizes plain manifests without templates. A base is a directory with a kustomization.yaml and a set of resources; an overlay is a directory with its own kustomization.yaml that refers to other kustomization directories, and a base can be reused by several overlays, which is how per-environment variations are expressed. Patches are applied through the patches field, and configMapGenerator and secretGenerator create ConfigMaps and Secrets. kubectl has supported kustomization files since 1.14 through kubectl apply -k.

Reconciliation engines run the loop. Argo CD describes itself as a declarative, GitOps continuous delivery tool for Kubernetes. It is a controller that compares each application's live state with the target state in Git, marks a deviating application OutOfSync, and can sync manually or automatically. An Application is a custom resource whose source names a repository, revision and path and whose destination names a cluster and namespace; it understands Kustomize, Helm, Jsonnet and plain directories of YAML or JSON, and ships a web UI and CLI. Automated sync does not delete resources removed from Git unless prune is enabled, and it does not react to live edits unless selfHeal is enabled.

Flux is built as the GitOps Toolkit, a set of controllers configured through custom resources. Source controllers produce artifacts from GitRepository, OCIRepository, HelmRepository and Bucket objects; the kustomize controller reconciles Kustomization objects; the helm controller reconciles HelmRelease objects; and image automation controllers use ImageRepository, ImagePolicy and ImageUpdateAutomation. A Flux Kustomization reconciles every five minutes by default, set by spec.interval, and manual edits to resources it manages are reverted.

Interoperability means the engine reports to and listens for other systems. Flux's notification controller sends events from the source, kustomize and helm controllers to tools such as Slack and Microsoft Teams, and receives webhooks from GitHub, GitLab, Bitbucket, Harbor or Jenkins. Argo CD exposes Prometheus metrics and supports PreSync, Sync and PostSync hooks.

Secrets need a tool of their own because a plain Secret manifest in Git exposes its value to everyone who can read the repository. Sealed Secrets, documented in the Flux guides, encrypts a Secret with a cluster's public key into a SealedSecret custom resource that only the controller in that cluster can decrypt.

Key points

  • A Helm chart is a package, its configuration is a set of values, and a release is an installed instance of a chart.
  • A Kustomize overlay refers to one or more bases; a base knows nothing about the overlays that use it.
  • Argo CD automated sync neither prunes deleted resources nor self-heals live edits unless prune and selfHeal are enabled.
  • Flux is composed of source, kustomize, helm, notification and image automation controllers configured through custom resources.
  • A SealedSecret can be decrypted only by the controller in the cluster whose public key encrypted it.

Three sample questions

29 CGOA questions on GitOps Tooling, 12 with explanations. How practice works

Question 1

Which tool is specifically designed for GitOps implementations?
  1. A.Jenkins
  2. B.Docker
  3. C.Flux CD
  4. D.Terraform

Correct answer: C

Flux CD is designed specifically for GitOps implementations, automating the deployment of applications from Git repositories.

Question 2

What is the primary purpose of Helm in GitOps?
  1. A.Package management
  2. B.Version control
  3. C.Monitoring
  4. D.Testing

Correct answer: A

Helm is primarily used for package management in Kubernetes, providing templating and versioned releases of applications.

Question 3

Which tool provides native Kubernetes configuration management?
  1. A.Helm
  2. B.Kustomize
  3. C.Jenkins
  4. D.ArgoCD

Correct answer: B

Kustomize provides native Kubernetes configuration management through base configurations and customizable overlays.

Practice this topic

Focus mode keeps every question on GitOps Tooling until you leave it. 10 free guest answers, then a free account; no credit card.

Or open CGOA practice across all topics.

Sources

The explanation above was checked against these official documents.

Frequently asked questions

How often does a GitOps engine check for changes?

It depends on the tool and its settings. Argo CD polls Git every 120 seconds plus up to 60 seconds of jitter by default (timeout.reconciliation in argocd-cm). A Flux Kustomization reconciles every five minutes by default, set per object with spec.interval. Both can also be triggered early by webhooks.