Prev Next

DevOps / Github Interview questions

How do you implement GitOps with GitHub Actions and Kubernetes?

GitOps means the desired state of a system, particularly Kubernetes manifests, lives in a Git repository as the single source of truth, and something continuously reconciles the live cluster to match what's declared in Git. GitHub Actions itself is push-based, so a pure GitOps setup typically pairs it with a pull-based reconciler running inside the cluster, like Argo CD or Flux, rather than having Actions apply manifests directly.

  1. Store Kubernetes manifests (or Helm charts) in a Git repository as the source of truth.
  2. Install a GitOps controller (Argo CD or Flux) inside the target cluster, configured to watch that repository.
  3. Use a GitHub Actions workflow only for what's push-appropriate: building and pushing a new container image, then updating the image tag in the manifests repository.
  4. The in-cluster controller detects the manifest change and reconciles the cluster automatically, without Actions ever needing direct cluster credentials.

This division of labor matters for security: Actions builds artifacts and updates declarative config, but the actual deployment step is pulled by an agent already inside the cluster, so cluster-admin credentials never need to be handed to an external CI system.

In GitOps, the source of truth for desired system state is:
Why is GitHub Actions typically paired with a tool like Argo CD or Flux for GitOps?

More Related questions...

What is GitHub? What is a GitHub repository? What is the difference between Git and GitHub? What is the difference between GitHub and GitLab? What are the main features of GitHub? What is a GitHub pull request? What is GitHub Actions? What is a GitHub Actions workflow file? What is a GitHub Actions runner? What are jobs and steps in a GitHub Actions workflow? What is GitHub Issues? What are GitHub Projects (boards)? What is a GitHub organization? What is GitHub Packages? What is GitHub Pages? What are branch protection rules in GitHub? What is GitHub Copilot? What is forking in GitHub? What are GitHub labels? What is the GitHub Wiki? What are the different GitHub plans? What is a GitHub Gist? What is GitHub Codespaces? What is a GitHub template repository? What are GitHub releases and tags? Explain the execution flow of a GitHub Actions workflow from push to deployment? Why would a team choose GitHub over GitLab for an open-source project? How does a GitHub pull request differ from a GitLab merge request? What is the difference between GitHub.com and GitHub Enterprise Server? How do you write a multi-job GitHub Actions workflow? When should you use repository secrets versus environment secrets in GitHub Actions? How do you troubleshoot a GitHub Actions job stuck queued? What is the difference between GitHub-hosted runners and self-hosted runners? How does GitHub enforce required reviewers with CODEOWNERS? Explain the internal working of GitHub Actions' merge queue? What is the difference between GitHub Actions and Jenkins? How do you implement GitOps with GitHub Actions and Kubernetes? Why use GitHub's Dependabot instead of manually tracking dependency updates? What is the difference between "uses" and "run" in a GitHub Actions step? How does GitHub Actions cache dependencies between workflow runs? When would you choose GitHub Enterprise Cloud over GitHub Team? How do you configure branch protection to enforce a pull-request-only workflow? What is the difference between GitHub Actions "on: pull_request" and "on: push" triggers? Explain the lifecycle of a GitHub issue from creation to closure? How do you optimize GitHub Actions workflow performance for a large monorepo? What is the difference between GitHub Packages and Docker Hub? How does GitHub Actions decide which workflow to trigger for a given event? Why should you use GitHub Environments to track deployments? What is the difference between repository-level and organization-level GitHub Actions secrets? How do you troubleshoot merge conflicts flagged in a GitHub pull request?
Show more question and Answers...


Comments & Discussions