added repo
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
# DevOps Infra ArgoCD Config
|
||||
|
||||
> Wiki entity page for the `devops-infra-argo-config` repository.
|
||||
|
||||
---
|
||||
|
||||
## Identity
|
||||
|
||||
| Field | Value |
|
||||
| ----- | ----- |
|
||||
| **Repository** | [Meesho/devops-infra-argo-config](https://github.com/Meesho/devops-infra-argo-config) |
|
||||
| **Purpose** | Infrastructure tooling GitOps control plane — ArgoCD App-of-Applications pattern |
|
||||
| **Layer** | Layer 1-T (Tool-Mediated) |
|
||||
| **Owner** | DevOps / Platform team |
|
||||
| **Related repos** | `devops-infra-helm-charts` (charts + values), `devops-argo-config` (service workloads), `terraform-google-modules` (cluster provisioning) |
|
||||
|
||||
---
|
||||
|
||||
## What it does
|
||||
|
||||
This repo is the **source of truth** for every ArgoCD `Application` and `AppProject` that manages **infrastructure tooling** across Meesho's Kubernetes fleet. A merge to `main` immediately deploys via ArgoCD auto-sync.
|
||||
|
||||
Unlike `devops-argo-config` (which manages service/application workloads), this repo manages **cluster tooling**: ingress controllers (Contour), observability stacks (VictoriaMetrics, Grafana, Loki), policy engines (Kyverno), autoscalers (KEDA), secrets management (external-secrets), AI gateways, and more.
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
### App-of-Applications pattern
|
||||
|
||||
```
|
||||
incubator/<env>/<cluster>.yaml ← Parent Application (one per cluster)
|
||||
│
|
||||
│ points at
|
||||
▼
|
||||
generic-argo-apps-chart/ ← Single Helm chart
|
||||
│
|
||||
│ rendered with
|
||||
▼
|
||||
values/<env>/<cluster>-values.yaml ← appSpec[] list
|
||||
│
|
||||
│ produces
|
||||
▼
|
||||
One ArgoCD Application per appSpec entry ← Child Applications (tools)
|
||||
│
|
||||
│ sources charts + values from
|
||||
▼
|
||||
devops-infra-helm-charts ← Sister repo (Helm charts + overrides)
|
||||
```
|
||||
|
||||
### Key directories
|
||||
|
||||
| Directory | Purpose |
|
||||
| --------- | ------- |
|
||||
| `incubator/<env>/` | Parent ArgoCD Application YAML per cluster |
|
||||
| `values/<env>/` | Values files defining which tools deploy per cluster |
|
||||
| `generic-argo-apps-chart/` | Helm chart that renders child Applications |
|
||||
| `projects/` | ArgoCD AppProject definitions (`sre`, `sec`) |
|
||||
| `external-name-service-*` | Cross-cluster DNS routing (MCS topology) |
|
||||
|
||||
---
|
||||
|
||||
## Scale
|
||||
|
||||
| Metric | Count |
|
||||
| ------ | ----- |
|
||||
| Clusters managed (values files) | ~19 |
|
||||
| Production clusters | k8s-central, k8s-demand, k8s-supply, k8s-dataengg, k8s-datascience, k8s-dengspark, k8s-dscispark, k8s-dsgpu, k8s-farmiso, k8s-ml-platform (ase1 + ase1c variants) |
|
||||
| Admin clusters | k8s-admin-prd, k8s-devops-admin, k8s-sec-admin |
|
||||
| Tools per cluster | ~20-50 (varies by cluster role) |
|
||||
| ArgoCD projects | `sre` (all namespaces/clusters), `sec` (security-scoped) |
|
||||
|
||||
---
|
||||
|
||||
## Relationships
|
||||
|
||||
### Depends on
|
||||
|
||||
| System | How |
|
||||
| ------ | --- |
|
||||
| `devops-infra-helm-charts` | Every `appSpec[].chartDir` and `valuesDir` must exist here |
|
||||
| ArgoCD (admin cluster) | Reads incubator Applications and syncs child Applications |
|
||||
| GKE clusters | Target destinations for deployed tools |
|
||||
|
||||
### Depended on by
|
||||
|
||||
| System | How |
|
||||
| ------ | --- |
|
||||
| All infrastructure tools | This repo controls their deployment lifecycle |
|
||||
| Platform team operations | Adding/removing/upgrading tools goes through this repo |
|
||||
|
||||
### Sibling
|
||||
|
||||
| Repo | Relationship |
|
||||
| ---- | ------------ |
|
||||
| `devops-argo-config` | Same pattern but for service workloads, not infra tooling |
|
||||
|
||||
---
|
||||
|
||||
## Key constraints
|
||||
|
||||
1. **Auto-sync:** Merge to `main` = immediate deploy. No staging gate.
|
||||
2. **No CI:** Pre-commit hooks are the only client-side guard.
|
||||
3. **Cross-repo dependency:** Chart and values must exist in `devops-infra-helm-charts` before `appSpec` can reference them.
|
||||
4. **Naming is structural:** Cluster names, Application names, and file names are routing identifiers, not cosmetic labels.
|
||||
|
||||
---
|
||||
|
||||
## Entry points
|
||||
|
||||
| Audience | Start here |
|
||||
| -------- | ---------- |
|
||||
| Agents | [CLAUDE.md](../../CLAUDE.md) |
|
||||
| New team members | [index.md](../../index.md) |
|
||||
| PR reviewers | [docs/global/coding-guidelines/infra-argo.md](../../docs/global/coding-guidelines/infra-argo.md) |
|
||||
Reference in New Issue
Block a user