Convenção de Nomenclatura
Namespaces Kubernetes
{project}-{env}-{service}
payments-dev-api
payments-staging-worker
payments-prod-frontend
platform-mgmt-monitoring
Recursos ArgoCD
AppProject: {project} → payments
ApplicationSet: {system} → gateway
Application: {system}-{service}-{env} → gateway-api-prod
Entidades Backstage
Domain: {project} → payments
System: {system} → gateway
Component: {system}-{service} → gateway-api
Resource: {provider}-{project}-{env}-{type}-{name} → gcp-payments-prod-gke-main
Group: {slug} → team-payments
User: {username} → jane-doe
Crossplane
Namespace de infra: {project}-{env}-infra → payments-prod-infra
Nome do Claim: {resourceType}-{name} → cloudsql-main
Nome do XR: {project}-{env}-{type}-{name} → payments-prod-cloudsql-main
App ArgoCD: crossplane-{project}-{env}-{type}-{name}
Entidade Backstage: {provider}-{project}-{env}-{type}-{name}
Regras que se Aplicam em Todos os Lugares
| Regra | Razão |
|---|---|
| Minúsculas, separadas por hífen | Seguro para DNS e válido em todos os sistemas |
| Máximo de 63 caracteres por segmento | Limite de namespace Kubernetes |
| Sem versão ou região nos nomes | Use labels para essas dimensões |
Sem env nos nomes de entidades Backstage | Entidades são agnósticas de env; env é observado em tempo de execução |
Prefixo platform-* para infra compartilhada | Separa visualmente namespaces de app dos de infra |
Namespaces Reservados
| Namespace | Status | Motivo |
|---|---|---|
argocd | Fixo | ArgoCD usa esse nome internamente |
kube-system | Reservado | Internos do Kubernetes |
default | Evitar | Nunca implantar cargas de trabalho de aplicação aqui |
crossplane-system | Fixo | Controladores Crossplane |
platform-mgmt-* | Convenção | Serviços de plataforma no cluster de gerenciamento |
platform-{env}-* | Convenção | Serviços de plataforma por ambiente |
{project}-{env}-{service} | Convenção | Cargas de trabalho de aplicação |
{project}-{env}-infra | Convenção | Claims Crossplane por domínio por ambiente |