Courseiva
Cloud Native Application DeliveryhardMultiple ChoiceObjective-mapped

KCNA Cloud Native Application Delivery Practice Question

A team wants to implement GitOps for their Kubernetes workloads using Argo CD. They have multiple environments (dev, staging, prod) in separate clusters. What is the best practice for structuring the Git repository?

⚠ Common exam trap

It's easy for candidates to choose Option B (separate repos) thinking it provides the best isolation, but the KCNA exam emphasizes that a monorepo with overlays is the recommended pattern for GitOps because it reduces duplication and simplifies cross-environment consistency.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

A monorepo with a directory per environment and overlays for differences

A monorepo with a directory per environment and overlays (e.g., using Kustomize or Helm) allows you to manage environment-specific differences declaratively while keeping a single source of truth. Argo CD can sync each environment's directory to its respective cluster, and overlays minimize duplication by applying only the necessary patches (e.g., replica counts, ingress hosts) on top of a common base. This approach aligns with GitOps best practices for multi-environment deployments.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • A single branch with all environment manifests in the same folder

    Why it's wrong here

    Hard to manage environment-specific changes and promotes accidental overrides.

  • Separate repositories per environment

    Why it's wrong here

    Separate repositories per environment fragment the single source of truth that GitOps requires for unified promotion across dev, staging, and prod clusters; Argo CD’s sync waves and application sets depend on a monorepo to propagate changes consistently. This approach is tempting because it isolates environment-specific secrets and configurations, and would be correct when teams need independent release cycles or strict regulatory separation between clusters.

  • Store all manifests in a single file with environment labels

    Why it's wrong here

    Becomes unmanageable and error-prone as the number of resources grows.

  • A monorepo with a directory per environment and overlays for differences

    Why this is correct

    Standard GitOps pattern; clear separation with shared base and overlays.

Go deeper

Related to this question

About these practice questions

One of 833 original KCNA practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This KCNA practice question is part of Courseiva's free CNCF certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the KCNA exam.