Aller au contenu

NGOT zones, DNS et namespaces#

NGOT utilise la notion de zones déjà exploitée dans Caascad. Elle propose 4 types de zones:

  • contrat
  • service
  • cluster
  • admin

Ces zones sont déployées dans des lignes de production étanches.

Lines#

Ce sont les lignes qui définissent le fournisseur de secret ainsi que le nom de la zone d'admin.

staging#

prod#

Zone cluster#

Une zone de type cluster incarne un cluster Kubernetes avec quelques applications cluster centriques. Elle est destinée à héberger des zones de type service.

  • nom de la zone : kub-[0-9]{1,5}
    Ex: kub-10000
    • De 0 à X on trouve les clusters de prod
    • De 10000 à X on trouve les clusters de staging
  • domaine DNS : <nom de la zone>\.<line_dns_domain>
    Plus de détails sur la partition des index de clusters seront disponibles sur la documentation IPAM Ngot (TODO)

  • namespaces : .* (ne doit pas recouper les namespaces de zones de service).

Zone contrat#

Les zones de type contrat servent simplement à grouper des zones services. Elles ne sont pas rattachées à des clusters Kubernetes.

  • domaine DNS : obs-.+\.<line_dns_domain>
  • nom de la zone : obs-.+. Il est préconisé d'indiquer la line en suffixe. Exemple : obs-corp-stg sur staging.
  • namespaces : N/A.

Zone service#

Les zones de type service sont les objets de configuration qui nous permettent de créer des bundles d'applications et de services. Ils fournissent la brique de base des services NGOT. Les objets sont rattachés à un cluster Kubernetes mais peuvent aussi configurer des infrastructures tierces.

  • domaine DNS : svc-.+\.<line_dns_domain>
  • nom de la zone : svc-.+. Il est préconisé d'indiquer la line en suffixe. Exemple : svc-grafana-central-stg sur staging.
  • namespaces :
    • Si le service n'est déployé qu'une seul fois par cluster, il n'y a pas de restriction
    • Si le service peut potentiellement être déployé plusieurs fois sur un même cluster, dans des namespaces différents, il est préconisé de suivre la nomenclature <subtype de la zone service>-<nom de la zone contrat>. Exemple : grafana-obs-corp-stg.
  • FQDN des applications : <nom ou protocole de l'appli>.<domaine DNS de la zone contrat>
    • lorsque l'application respecte un protocole et qu'elle peut être remplacée par une autre respectant le même protocole (exemple : Prometheus remote-write, incarné par Prometheus ou Mimir ou VictoriaMetrics), on choisira un nom basé sur le protocole (exemple : remote-write.obs-corp-stg.csfpriv.com).
    • lorsque l'application caractérise le service (exemple : Grafana), on choisira le nom de l'application (exemple : grafana.obs-corp-stg.csfpriv.com).

Zone admin#

Les zones de type admin sont des objets de configuration responsables du bootstrap des secrets, des zones dns, et du réseau de l'ensemble de la ligne. Elles ne sont pas rattachées à des clusters Kubernetes.

  • domaine DNS : admin-(stg|prd)\.<line_dns_domain>
  • nom de la zone : admin-(stg|prd)
  • namespaces : N/A