Reconciliation & Drift
A production engineer made a manual change directly to a Kubernetes Deployment during an emergency and the GitOps controller later reverted it — explain why this happened, the implications, and how it highlights GitOps principles.
Describe the GitOps reconciliation loop. How does it ensure the desired state matches the actual state of the system?
How do Argo CD and Flux handle drift detection and reconciliation, and what are the differences in their default behavior?
How do you deal with resources that are constantly modified by other controllers or mutating webhooks and appear as perpetual drift?
How does GitOps enable self-healing of your infrastructure and applications?
What is configuration drift in a GitOps context, and how do GitOps controllers like Argo CD or Flux detect and correct it?
Tooling Landscape & Scope
Can GitOps be used for non-Kubernetes environments?
Name some common GitOps tools and briefly explain their role in a GitOps workflow.
What is the role of a GitOps operator in a Kubernetes cluster?
What kinds of workloads, tasks, or operations are poorly suited to GitOps?
Push Vs Pull Models
Can push and pull models be used together?
Can you explain Argo CD's pull-based deployment model?
Explain the fundamental difference between a pull-based and a push-based deployment model in GitOps, including their trade-offs.
How does a webhook-triggered sync differ from polling-based reconciliation, and what are the trade-offs?
How does GitOps differ from traditional push-based CI/CD or 'CIOps'?
How does pull-based GitOps ensure consistent and reproducible deployments?
How does pull-based GitOps provide better control and governance?
In which scenario would you recommend the push model over pull?
What are the advantages of pull-based deployments in GitOps?
What are the security advantages of the pull-based GitOps model?
Argo Cd Fundamentals
Can you describe Argo CD's internal components — the API server, repo server, and application controller — and how they interact?
Explain how Argo CD works and the benefits of using a GitOps approach for Kubernetes deployments.
How does Argo CD integrate with Kubernetes?
What are the benefits of using Argo CD over traditional CI/CD tools?
What are the main features of Argo CD?
What is Argo CD, and how does it fit into GitOps?
What problem does Argo CD solve in Kubernetes-based application delivery?
Flux Cd
Compare the architecture of Argo CD and Flux.
Describe how Flux CD's GitOps Toolkit controllers implement the pull-based reconciliation model.
How do Flux CD and Argo CD implement GitOps principles?
What does 'flux bootstrap' do, and why is bootstrapping needed to get GitOps running on a cluster?
What role does Flux's notification-controller play in a GitOps workflow?
What roles do Flux's GitRepository, Kustomization, and HelmRelease custom resources play in reconciliation?
Multi Cluster & Scaling
Describe how GitOps can be applied to manage multiple Kubernetes clusters, and what patterns or tools like Argo CD ApplicationSets support this.
Explain the 'App-of-Apps' pattern in Argo CD and when you would use it.
How do you achieve multi-tenancy and team isolation in a GitOps setup?
How would you implement a GitOps workflow using Argo CD for a microservices architecture?
How would you scale Argo CD to manage thousands of applications across many clusters, and what is controller sharding?
What are the differences between the app-of-apps pattern and ApplicationSets, and when would you prefer one over the other?
What is an AppProject in Argo CD and what problem does it solve?
What is ApplicationSet in Argo CD?
Secrets Management
Discuss various strategies for handling secrets securely in a GitOps workflow, and the pros and cons of Sealed Secrets, SOPS, or External Secrets Operator.
How does integrating secrets management into GitOps across clouds promote a strong security posture?
What are the limitations and operational challenges of the Sealed Secrets approach specifically?
Why is secrets management often described as the hardest part of GitOps?
Infrastructure As Code
Explain declarative vs imperative infrastructure in the context of GitOps.
How does GitOps handle infrastructure as code (IaC)?
How is GitOps different from Infrastructure as Code — isn't GitOps just IaC in a repo?
What are the challenges of managing infrastructure-as-code using GitOps principles?
What are the limits of applying GitOps to infrastructure (e.g. Terraform reconciliation) compared to application delivery?
Ci Cd Integration & Image Automation
Explain the concept of image automation/image updaters in GitOps and how they facilitate continuous deployment of new application versions.
How do GitOps pipelines work?
How does GitOps help decouple deployment from release?
How would you handle ordering-sensitive operations like database schema migrations within a GitOps deployment?
How would you integrate Argo CD with a CI pipeline for continuous delivery?
When image automation writes a new tag back to Git, what risks (like commit loops) does that introduce, and how do you mitigate them?
Where does the CI pipeline typically end and the GitOps-driven CD begin, and how do they interact?
Rollbacks Progressive Delivery & Disaster Recovery
How can GitOps be extended to support progressive delivery strategies like canary or blue/green deployments using tools like Argo Rollouts or Flagger?
How do you perform a rollback in Argo CD?
How does automated analysis drive a rollback in progressive delivery tools like Flagger or Argo Rollouts?
How does GitOps facilitate reliable rollbacks, and what is the mechanism for performing a rollback in a GitOps system?
How does GitOps handle automated rollbacks and disaster recovery?
How would you rebuild a cluster entirely from Git after a total loss, and what must live in Git for that to work?
If a rollback via git revert doesn't fully restore the system because Git and actual state have diverged, how do you reason about and handle that?
Repository Structure & Environment Promotion
How do you balance DRY versus duplication when maintaining per-environment configuration in a GitOps repo?
How do you manage and promote configurations across different environments using GitOps principles?
How do you manage configuration differences across multiple Kubernetes environments using Helm or Kustomize in a GitOps setup?
How do you typically structure Git repositories for GitOps, such as mono-repo vs multi-repo or environment-per-branch vs environment-per-directory, and what are the trade-offs of each?
What is the rendered/hydrated manifests pattern, and what advantages does it offer over reconciling raw templated sources?
What is the role of pull requests in GitOps?
Security Rbac & Policy
How do you configure RBAC in Argo CD?
How does GitOps contribute to auditability, traceability, and compliance in software delivery?
How does GitOps enable developer self-service while maintaining governance?
How does GitOps improve observability into your system's state and deployment processes?
How does GitOps improve security in DevOps processes?
How does policy-as-code enforcement fit into a GitOps workflow?
What are best practices for ensuring the security of your GitOps repository and the GitOps agents?
Who defines Argo CD RBAC policies?
Collaboration Best Practices & Troubleshooting
How does adopting GitOps affect delivery metrics like lead time, deployment frequency, and MTTR?
How does GitOps enable better collaboration between development and operations teams?
How would you approach troubleshooting a deployment failure in a GitOps environment?
What are some best practices for managing Argo CD configurations and applications?
What are some common challenges or anti-patterns encountered when implementing GitOps, and how would you address them?
What are the best practices for GitOps deployment?
What GitOps-related challenges have you faced with GitHub Actions and Argo CD, such as sync issues, secret handling, or cluster drift?
When would you choose Argo CD over Flux CD, or vice versa? What are the key differences and trade-offs between them?
Who is responsible for managing Argo CD in teams?
Sync Health & Hooks
How does Argo CD handle synchronization, sync policies like auto-sync, prune, and self-heal, and sync waves?
In Argo CD, what is the difference between sync status and health status?
What are Argo CD resource hooks (PreSync, Sync, PostSync), and when would you use them?
What are health checks in Argo CD?
What are the different sync policies in Argo CD?
What does pruning mean in a GitOps sync, and what are the risks of enabling automatic prune?
What is a sync wave in Argo CD?
Fundamentals & Principles
How does GitOps improve reproducibility?
What are the core principles of GitOps?
What are the key benefits of adopting GitOps for continuous delivery and operations?
What does the OpenGitOps 'versioned and immutable' principle mean, and why does it matter?
What does the phrase 'the environment is a pure function of the Git repository' mean in GitOps?
What is GitOps, and how does it work?
What is meant by eventual consistency in the GitOps reconciliation model?
What is OpenGitOps and what role does the CNCF play in standardizing the GitOps model?
What is the difference between GitOps and DevOps?
What is the significance of declarative configuration in GitOps?
Why is Git considered the 'single source of truth' in GitOps, and what are the implications of this principle?