Files
athletic-map-deploy/platform/00-application-platform.yaml

56 lines
2.6 KiB
YAML

# =============================================================================
# A pasta `platform/` passa a ser GITOPS (2026-09-21).
#
# ── O QUE ESTAVA ACONTECENDO ────────────────────────────────────────────────
#
# As cinco Applications cobrem `tenants/<tenant>`; a `monitoring` e o chart do
# Helm. **Ninguem cobria `platform/`** — regras de alerta, ServiceMonitor,
# dashboard e o Ingress do ArgoCD eram aplicados com `kubectl apply` a mao.
# Consequencia: o repositorio podia dizer uma coisa e o cluster outra, e nada
# avisava. Foi o que aconteceu: o clone tinha 2 regras de alerta e o cluster, 8.
#
# ── POR QUE ESTE ARQUIVO VIVE AQUI DENTRO ───────────────────────────────────
#
# A Application que sincroniza `platform/` esta DENTRO de `platform/`: depois do
# primeiro `kubectl apply`, ela passa a se manter sozinha. Mudanca nela vira
# commit, como todo o resto.
#
# ── prune: false ────────────────────────────────────────────────────────────
#
# Mesma escolha das outras Applications do projeto: arquivo removido do git NAO
# apaga o recurso no cluster. Para remover de verdade, `kubectl delete` explicito
# — apagar por esquecimento aqui derrubaria monitoramento ou o proprio Ingress do
# ArgoCD.
#
# ── O `.tmpl` que fica de fora ──────────────────────────────────────────────
#
# `monitoring-netpol-template.yaml.tmpl` e MOLDE, com `__NS__` no lugar do
# namespace: nao e manifesto valido. A extensao `.tmpl` ja o deixa fora do que o
# ArgoCD le, e o `exclude` abaixo torna isso explicito para quem renomear.
# =============================================================================
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: atm-platform
namespace: argocd
spec:
project: default
source:
repoURL: http://gitea-http.gitea.svc:3000/atmadmin/athletic-map-deploy.git
targetRevision: main
path: platform
directory:
recurse: true
exclude: "*.tmpl"
destination:
server: https://kubernetes.default.svc
# Os recursos trazem o proprio `namespace` (monitoring, argocd). Este e so o
# destino de quem vier sem.
namespace: monitoring
syncPolicy:
automated:
prune: false
selfHeal: true
syncOptions:
- CreateNamespace=false