How project-ktb/side-project-gitops works
Purpose and Delivery Model
This is a GitOps repository for deploying a Kubernetes platform and a single side-project-backend workload. Argo CD application manifests define the reconciliation entry points; Helm charts and pinned dependencies define desired cluster state. There is no application source code or README guidance in the repository.
GitOps Control Plane
Argo CD continuously deploys both platform services and the backend from this repository. Each application is independently declared, allowing lifecycle separation between workload, observability, storage, and logging.
• argocd/applications/side-project-backend.yaml
• argocd/applications/monitoring-stack.yaml
• argocd/applications/loki.yaml
Backend Workload Chart
The custom Helm chart packages the backend’s Kubernetes-facing contract: deployment, service discovery, ingress exposure, runtime configuration, and Prometheus scraping. Production settings are separated from defaults, making the chart the primary workload deployment boundary.
• charts/side-project-backend/templates/deployment.yaml
• charts/side-project-backend/templates/configmap.yaml
• charts/side-project-backend/templates/ingress.yaml
• charts/side-project-backend/values.yaml
• charts/side-project-backend/values-prod.yaml
Traffic and Observability Boundary
The backend is exposed through a Kubernetes Service and Ingress, while a ServiceMonitor connects it to the Prometheus operator’s discovery model. Metrics therefore flow from backend pods through the ServiceMonitor into the monitoring stack.
• charts/side-project-backend/templates/service.yaml
• charts/side-project-backend/templates/ingress.yaml
• charts/side-project-backend/templates/servicemonitor.yaml
• platform/monitoring/kube-prometheus-stack/values.yaml
Monitoring Platform
The repository deploys a kube-prometheus-stack for metrics collection, alerting, and visualization components supplied by the upstream Helm dependency. Metrics Server provides Kubernetes resource metrics. A MySQL exporter exposes database metrics to the same Prometheus-based monitoring plane.
• argocd/applications/monitoring-stack.yaml
• platform/monitoring/kube-prometheus-stack/Chart.yaml
• argocd/applications/metrics-server.yaml
• platform/monitoring/mysql-exporter/values.yaml
Logging Platform
Grafana Alloy is deployed as the log collection/forwarding agent, and Loki is the centralized log backend. Their charts are locally vendored with locked versions, so log ingestion and retention behavior is controlled through repository values rather than floating remote chart versions.
• argocd/applications/alloy.yaml
• platform/logging/alloy/values.yaml
• argocd/applications/loki.yaml
• platform/logging/loki/values.yaml
Persistent Storage and AWS Dependency
Persistent-volume provisioning is delegated to the AWS EBS CSI driver. The repository also defines a StorageClass, establishing AWS EBS as the expected durable block-storage provider for stateful platform components such as Loki or monitoring storage when configured to use persistence.
• argocd/applications/aws-ebs-csi-driver.yaml
• platform/storage/aws-ebs-csi-driver/templates/storageclass.yaml
• platform/storage/aws-ebs-csi-driver/values.yaml
Runtime and Dependency Boundaries
The runtime is Kubernetes with Helm rendering and Argo CD reconciliation. External infrastructure assumptions are AWS EBS storage and a MySQL instance reachable by the MySQL exporter; the database itself is not provisioned here. Upstream platform charts are vendored as .tgz dependencies and version-locked, while the backend chart is maintained directly in-repo.
• platform/monitoring/mysql-exporter/Chart.lock
• platform/logging/loki/Chart.lock
• platform/storage/aws-ebs-csi-driver/Chart.lock
Components 22
GitOps Control Plane
- Argo CD · Continuously applies declared platform and workload state.
- Backend Application
argocd/applications/side-project-backend.yaml - Monitoring Application
argocd/applications/monitoring-stack.yaml - Metrics Server Application
argocd/applications/metrics-server.yaml - Alloy Application
argocd/applications/alloy.yaml - Loki Application
argocd/applications/loki.yaml - EBS CSI Application
argocd/applications/aws-ebs-csi-driver.yaml
Backend Workload
- Backend Chart · Defines the backend Kubernetes deployment contract.
charts/side-project-backend/values.yaml - Backend Pods
charts/side-project-backend/templates/deployment.yaml - Runtime Config
charts/side-project-backend/templates/configmap.yaml - Backend Service
charts/side-project-backend/templates/service.yaml - Backend Ingress
charts/side-project-backend/templates/ingress.yaml - Backend ServiceMonitor
charts/side-project-backend/templates/servicemonitor.yaml
Monitoring
- kube-prometheus-stack · Provides Prometheus, alerting, and Grafana components.
platform/monitoring/kube-prometheus-stack/Chart.yaml - Metrics Server
argocd/applications/metrics-server.yaml - MySQL Exporter
platform/monitoring/mysql-exporter/values.yaml
Logging
- Grafana Alloy
platform/logging/alloy/values.yaml - Loki · Vendored chart with locked dependency versions.
platform/logging/loki/values.yaml
Storage
- AWS EBS CSI Driver
platform/storage/aws-ebs-csi-driver/values.yaml - EBS StorageClass
platform/storage/aws-ebs-csi-driver/templates/storageclass.yaml
External Dependencies
- AWS EBS
- MySQL Instance · Not provisioned by this repository.
Connections 30
- Argo CD → Backend Application: reconciles
- Argo CD → Monitoring Application: reconciles
- Argo CD → Metrics Server Application: reconciles
- Argo CD → Alloy Application: reconciles
- Argo CD → Loki Application: reconciles
- Argo CD → EBS CSI Application: reconciles
- Backend Application → Backend Chart: deploys
- Backend Chart → Backend Pods: renders
- Backend Chart → Runtime Config: renders
- Runtime Config → Backend Pods: configures
- Backend Chart → Backend Service: renders
- Backend Chart → Backend Ingress: renders
- Backend Ingress → Backend Service: routes traffic
- Backend Service → Backend Pods: selects
- Backend Chart → Backend ServiceMonitor: renders
- Backend ServiceMonitor → Backend Service: discovers
- Monitoring Application → kube-prometheus-stack: deploys
- Backend ServiceMonitor → kube-prometheus-stack: scrapes metrics
- Metrics Server Application → Metrics Server: deploys
- Metrics Server → kube-prometheus-stack: resource metrics
- MySQL Instance → MySQL Exporter: database metrics
- MySQL Exporter → kube-prometheus-stack: exports metrics
- Alloy Application → Grafana Alloy: deploys
- Backend Pods → Grafana Alloy: logs
- Grafana Alloy → Loki: forwards logs
- Loki Application → Loki: deploys
- EBS CSI Application → AWS EBS CSI Driver: deploys
- AWS EBS CSI Driver → EBS StorageClass: provisions for
- EBS StorageClass → AWS EBS: uses
- Loki → EBS StorageClass: persistent volumes