The pod was failing, and the logs gave nothing. The problem was the Ingress.
Git and Kubernetes Ingress work best when the workflow is declarative, versioned, and automated. Storing Ingress manifests in Git makes every change traceable. Combine this with GitOps tooling, and deployments become predictable and reversible. No guessing. No manual edits in production.
An Ingress is the Kubernetes resource that routes external HTTP(S) traffic to cluster services. Its spec defines hostnames, paths, and the backend services that serve each request. It sits at the edge of the cluster, behind a controller such as NGINX, HAProxy, or Traefik. These controllers watch for Ingress objects and update their routing configuration on the fly.
Keeping Kubernetes Ingress definitions in Git means applying the same code review, branching, and CI/CD process you use for application code. Create YAML manifests that define each Ingress rule. Commit them to the main branch once tested. A GitOps operator like Argo CD or Flux then applies those changes to the cluster, ensuring the live state matches your repository.
Common best practices:
- Use
pathType: Prefix for predictable routing. - Split large Ingress resources by domain or service for easier history tracking in Git.
- Apply TLS termination directly in the Ingress spec using
tls blocks. - Use annotations sparingly and document them; they are controller-specific.
Version control protects you from failed deployments. If a new Ingress rule breaks routing, rolling back is as simple as reverting a commit. This pairing of Git and Kubernetes Ingress removes the need for manual kubectl changes in production, which often create unseen drift.
The key steps to implement Git-managed Kubernetes Ingress:
- Define Ingress manifests in YAML.
- Store them in Git alongside service deployments.
- Sync changes with a GitOps tool.
- Monitor the Ingress controller logs for errors on apply.
- Automate tests for endpoint availability after merge.
With this workflow, infrastructure routing becomes as repeatable as code builds. You eliminate configuration sprawl, enforce reviews, and gain a full history of every change.
See this in action now. Deploy a Git-managed Kubernetes Ingress in minutes with hoop.dev.