3.8 KiB
Per AI Blitz Plan §6. Layer: 1-T.
05 — Naming Conventions
Naming in this repo is structural — names are routing identifiers used by ArgoCD, not cosmetic labels. A mismatch between a filename, metadata.name, and clusterSpec.destination.name can cause silent misrouting. See SANCTITY_RULES.md R9.
File naming
File naming and directory layout differ by environment:
| Env | Branch | Incubator dir | Incubator file prefix | Values dir |
|---|---|---|---|---|
| prd | main |
incubator/prd/ |
incubator-infra- |
values/prd/ |
| stg / dev (infra) | develop |
incubator/infra/ |
incubator-infra- |
values/dev/ |
| stg / dev (apps) | develop |
incubator/apps/ |
incubator-apps- |
values/dev/ |
| int | pre-prod |
(no incubator file — values only) | incubator-infra- |
values/int/ |
| admin | main / pre-prod |
incubator/admin/ |
incubator-infra- |
values/admin/ |
Full filename patterns:
| File type | Pattern | Example (prd) | Example (stg) |
|---|---|---|---|
| Incubator Application (infra) | incubator-infra-<gke-cluster>.yaml |
incubator-infra-k8s-central-prd-ase1.yaml |
incubator-infra-k8s-central-stg-ase1.yaml |
| Incubator Application (apps) | incubator-apps-<gke-cluster>.yaml |
(prd uses infra only) | incubator-apps-k8s-central-stg-ase1.yaml |
| Values file | incubator-infra-<gke-cluster>-values.yaml |
values/prd/incubator-infra-k8s-central-prd-ase1-values.yaml |
values/dev/incubator-infra-k8s-central-stg-ase1-values.yaml |
| AppProject | <team>-project.yaml |
sre-project.yaml |
— |
Incubator ↔ values file invariant
The incubator filename (without .yaml) must equal metadata.name inside it, and must have a matching values file. Directory prefix and env segment both vary by branch:
prd (main):
incubator/prd/incubator-infra-k8s-central-prd-ase1.yaml
metadata.name: incubator-infra-k8s-central-prd-ase1
valueFiles: ../values/prd/incubator-infra-k8s-central-prd-ase1-values.yaml
stg (develop):
incubator/infra/incubator-infra-k8s-central-stg-ase1.yaml
metadata.name: incubator-infra-k8s-central-stg-ase1
valueFiles: ../values/dev/incubator-infra-k8s-central-stg-ase1-values.yaml
int (pre-prod):
(no incubator file — values/int/incubator-infra-k8s-shared-int-ase1-values.yaml only)
ArgoCD Application name generation
Child Applications are named by the generic chart template:
<appSpec.name>-<mungedCluster>-<env>
Munging rules (applied in order):
| Input | Output |
|---|---|
Strip k8s- |
k8s-central-prd-ase1 → central-prd-ase1 |
Strip -ase1 |
central-prd-ase1 → central-prd |
Replace -ase1c → -c |
central-prd-ase1c → central-prd-c |
Strip prd-, int-, dev- |
prd-central → central |
Result: keda on k8s-central-prd-ase1 → keda-central-prd
Namespace convention
| Pattern | When | Example |
|---|---|---|
<tool>-<mungedCluster> |
Default | keda-central-prd |
| Shared namespace | Multi-component tools | victoriametrics (all VM stack apps) |
kube-system |
System-level tools | CoreDNS, kube-dns |
<tool>-role-<cluster> |
Multi-instance | contour-internal-0-central-prd |
GKE cluster naming pattern
k8s-<bu>-<env>-<region>
k8s-<workload>-<env>-<region>
prd examples: k8s-central-prd-ase1, k8s-demand-prd-ase1, k8s-datascience-prd-ase1
stg examples: k8s-central-stg-ase1, k8s-demand-stg-ase1, k8s-farmiso-stg-ase1
dev examples: k8s-central-dev-ase1, k8s-demand-dev-ase1, k8s-dengspark-dev-ase1
int examples: k8s-shared-int-ase1
admin examples: k8s-admin-prd-ase1, k8s-devops-admin-ase1, k8s-sec-admin-ase1