This repository contains 3 main folders that represent the devops's task requirements.
- Application: contains application files + dockerfile (more information at readme file).
- Helm chart: contains a helm chart for the application (more information at readme file).
- ArgoCD configuration: contains configuration for ArgoCD (more information at readme file).
-
Separation of concerns:
The repository is split intoapp/,chart/, andconfig/folders to mimic enterprise-style separation between application code, packaging (Helm), and GitOps configuration (ArgoCD).
This allows each part to be managed independently or even hosted in separate repositories in a real-world setup. -
Production-grade Helm chart:
The chart includes configurable probes, resources, optional ingress with TLS, and ConfigMap/Secret integration.
These reflect common production practices while keeping the chart lightweight and reusable. -
GitOps-first approach:
Theconfig/folder is designed for ArgoCD consumption, withapplications.yamland environment-specific overlays (values/secrets).
This demonstrates how changes flow from Git to cluster declaratively. -
Secrets management:
In this demo, theSecretis hardcoded underconfig/demo/secret-classified-token.yamlfor simplicity.
In a real-world production setup, secrets should be managed by a secure vault (e.g., HashiCorp Vault, AWS Secrets Manager, Kubernetes External Secrets).
The vault would inject secrets dynamically at deployment time, eliminating the need to store them in Git. -
Security and best practices:
- No hardcoded sensitive values in templates (all injected via ConfigMap/Secret).
automountServiceAccountToken: falseby default to reduce attack surface.- Resource requests/limits included to ensure scheduling stability.
- Added a
CODEOWNERSfile to enforce mandatory reviews for changes under theconfig/folder.
This simulates RBAC-like hardening in a real enterprise GitOps repo, where config changes must be explicitly reviewed and approved by DevOps/SRE owners.
-
Scalability and portability:
By using Helm + ArgoCD, the same application can be deployed across multiple environments (dev/staging/prod) with minimal changes.







