Fundamentals & Principles
What is GitOps, and how does it work?
What are the core principles of GitOps?
What is the difference between GitOps and DevOps?
What are the key benefits of adopting GitOps for continuous delivery and operations?
What is the significance of declarative configuration in GitOps?
How does GitOps improve reproducibility?
What is OpenGitOps and what role does the CNCF play in standardizing the GitOps model?
Why is Git considered the 'single source of truth' in GitOps, and what are the implications of this principle?
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 meant by eventual consistency in the GitOps reconciliation model?
Push Vs Pull Models
Can you explain Argo CD's pull-based deployment model?
What are the advantages of pull-based deployments in GitOps?
Explain the fundamental difference between a pull-based and a push-based deployment model in GitOps, including their trade-offs.
How does GitOps differ from traditional push-based CI/CD or 'CIOps'?
What are the security advantages of the pull-based GitOps model?
How does pull-based GitOps ensure consistent and reproducible deployments?
How does pull-based GitOps provide better control and governance?
How does a webhook-triggered sync differ from polling-based reconciliation, and what are the trade-offs?
In which scenario would you recommend the push model over pull?
Can push and pull models be used together?
Tooling Landscape & Scope
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?
Can GitOps be used for non-Kubernetes environments?
What kinds of workloads, tasks, or operations are poorly suited to GitOps?
Infrastructure As Code
How does GitOps handle infrastructure as code (IaC)?
Explain declarative vs imperative infrastructure in the context of GitOps.
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?
Argo Cd Fundamentals
What is Argo CD, and how does it fit into GitOps?
What problem does Argo CD solve in Kubernetes-based application delivery?
What are the main features of Argo CD?
How does Argo CD integrate with Kubernetes?
Explain how Argo CD works and the benefits of using a GitOps approach for Kubernetes deployments.
What are the benefits of using Argo CD over traditional CI/CD tools?
Can you describe Argo CD's internal components — the API server, repo server, and application controller — and how they interact?
Reconciliation & Drift
What is configuration drift in a GitOps context, and how do GitOps controllers like Argo CD or Flux detect and correct it?
Describe the GitOps reconciliation loop. How does it ensure the desired state matches the actual state of the system?
How does GitOps enable self-healing of your infrastructure and applications?
How do Argo CD and Flux handle drift detection and reconciliation, and what are the differences in their default behavior?
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.
How do you deal with resources that are constantly modified by other controllers or mutating webhooks and appear as perpetual drift?
Sync Health & Hooks
What are health checks in Argo CD?
How does Argo CD handle synchronization, sync policies like auto-sync, prune, and self-heal, and sync waves?
What are the different sync policies in Argo CD?
What is a sync wave in Argo CD?
In Argo CD, what is the difference between sync status and health status?
What does pruning mean in a GitOps sync, and what are the risks of enabling automatic prune?
What are Argo CD resource hooks (PreSync, Sync, PostSync), and when would you use them?
Flux Cd
How do Flux CD and Argo CD implement GitOps principles?
What roles do Flux's GitRepository, Kustomization, and HelmRelease custom resources play in reconciliation?
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?
Describe how Flux CD's GitOps Toolkit controllers implement the pull-based reconciliation model.
Compare the architecture of Argo CD and Flux.
Repository Structure & Environment Promotion
What is the role of pull requests in GitOps?
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?
How do you balance DRY versus duplication when maintaining per-environment configuration in a GitOps repo?
Ci Cd Integration & Image Automation
How do GitOps pipelines work?
Where does the CI pipeline typically end and the GitOps-driven CD begin, and how do they interact?
Explain the concept of image automation/image updaters in GitOps and how they facilitate continuous deployment of new application versions.
How would you integrate Argo CD with a CI pipeline for continuous delivery?
How does GitOps help decouple deployment from release?
When image automation writes a new tag back to Git, what risks (like commit loops) does that introduce, and how do you mitigate them?
How would you handle ordering-sensitive operations like database schema migrations within a GitOps deployment?
Security Rbac & Policy
Who defines Argo CD RBAC policies?
How does GitOps contribute to auditability, traceability, and compliance in software delivery?
How does GitOps improve security in DevOps processes?
How does GitOps improve observability into your system's state and deployment processes?
How do you configure RBAC in Argo CD?
How does GitOps enable developer self-service while maintaining governance?
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?
Secrets Management
Why is secrets management often described as the hardest part of GitOps?
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?
Multi Cluster & Scaling
Explain the 'App-of-Apps' pattern in Argo CD and when you would use it.
What is ApplicationSet in Argo CD?
What is an AppProject in Argo CD and what problem does it solve?
Describe how GitOps can be applied to manage multiple Kubernetes clusters, and what patterns or tools like Argo CD ApplicationSets support this.
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?
How do you achieve multi-tenancy and team isolation in a GitOps setup?
What are the differences between the app-of-apps pattern and ApplicationSets, and when would you prefer one over the other?
Rollbacks Progressive Delivery & Disaster Recovery
How do you perform a rollback in Argo CD?
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 can GitOps be extended to support progressive delivery strategies like canary or blue/green deployments using tools like Argo Rollouts or Flagger?
How would you rebuild a cluster entirely from Git after a total loss, and what must live in Git for that to work?
How does automated analysis drive a rollback in progressive delivery tools like Flagger or Argo Rollouts?
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?
Collaboration Best Practices & Troubleshooting
How does GitOps enable better collaboration between development and operations teams?
Who is responsible for managing Argo CD in teams?
When would you choose Argo CD over Flux CD, or vice versa? What are the key differences and trade-offs between them?
How would you approach troubleshooting a deployment failure in a GitOps environment?
What are the best practices for GitOps deployment?
What are some best practices for managing Argo CD configurations and applications?
How does adopting GitOps affect delivery metrics like lead time, deployment frequency, and MTTR?
What are some common challenges or anti-patterns encountered when implementing GitOps, and how would you address them?
What GitOps-related challenges have you faced with GitHub Actions and Argo CD, such as sync issues, secret handling, or cluster drift?