Aller au contenu principal

Votre zone par défaut

Bêta

Fonctionnalité en cours de déploiement. L'interface décrite ici est celle de la prochaine livraison : elle peut encore évoluer, et n'est pas forcément activée sur votre tenant.

La zone par défaut et les URL des App sont disponibles ; les enregistrements libres et les noms à plusieurs niveaux arrivent progressivement sur les tenants.

Chaque tenant reçoit une zone DNS, <tenant>.dev.stackngo.app, sans rien configurer. Vos App exposées y publient leur nom automatiquement, et vous pouvez y ajouter vos propres enregistrements (A, AAAA, CNAME, TXT, MX) à n'importe quelle profondeur.

Prérequis​

  • La CLI sng installée et authentifiée : sng sso login, puis sng tenant use acme.
  • Un cluster et un tenant : sng config show.
  • Pour écrire des enregistrements : le droit dns:write, inclus dans les policies gérées readwrite et admin. Voir Identité et accès.

1. Connaître le nom de votre zone​

Le nom de la zone est celui de votre tenant suivi de dev.stackngo.app :

sng config show

Pour le tenant acme, la zone est acme.dev.stackngo.app. Vous n'avez pas à la créer, et aucune commande ne la liste : sng dns zone list ne montre que les domaines que vous apportez.

2. Les noms publiés par vos App​

Un service d'App qui déclare ingress est publié sous <service>-<app>.<tenant>.dev.stackngo.app, ou sous le nom choisi dans ingress.domain :

web.yml
apiVersion: deploy.stackngo.io/v1alpha1
kind: App
metadata:
name: web
spec:
services:
web:
image: nginxinc/nginx-unprivileged:1.27
ports: ["8080"]
ingress: { port: 8080 } # https://web-web.acme.dev.stackngo.app/
sng apply web.yml

La plateforme publie le nom (TTL de 300 s) et le retire quand l'exposition disparaît. Vous n'écrivez pas d'enregistrement pour une App. Détails : Domaines sur une App.

3. Ajouter un enregistrement​

Sans --zone, sng dns record set écrit dans votre zone par défaut. Le nom est relatif à la zone :

sng dns record set api.preview --type CNAME --target my-api.netlify.app
enregistrement api.preview.acme.dev.stackngo.app CNAME créé : my-api.netlify.app (id api-preview-cname-5e1d0c3a)
effectif dans quelques minutes : sng dns record describe api-preview-cname-5e1d0c3a

Le même enregistrement en manifeste :

preview-api.yml
apiVersion: dns.stackngo.io/v1alpha1
kind: DNSRecord
metadata:
name: preview-api
spec:
name: api.preview # → api.preview.acme.dev.stackngo.app
type: CNAME
targets: ["my-api.netlify.app"]
sng apply preview-api.yml

Le détail des types, des cibles et des conflits : Enregistrements.

Vérification​

sng dns record list
ID FQDN TYPE TARGETS TTL READY REASON
api-preview-cname-5e1d0c3a api.preview.acme.dev.stackngo.app CNAME my-api.netlify.app 300 yes Published

READY vaut no (sync…) tant que la plateforme n'a pas encore pris en compte l'enregistrement. Puis, depuis n'importe quel poste :

dig +short api.preview.acme.dev.stackngo.app CNAME
my-api.netlify.app.

Noms réservés​

Certains noms de votre zone appartiennent à la plateforme. Un enregistrement ou un ingress.domain qui les vise est refusé :

NomUsage
status.<tenant>.dev.stackngo.app et tout ce qui est dessouspage de statut du tenant
tout label _acme-challengevalidation des certificats TLS
tout label _stackngo-verifypreuve de propriété d'un domaine apporté
tout label commençant par extdns-enregistrements techniques de la plateforme
sng dns record set status --type TXT --target hello
status.acme.dev.stackngo.app : réservé aux status pages de la plateforme

Pour aller plus loin​

  • Profondeur : a.b.c.acme.dev.stackngo.app est permis, pour un enregistrement comme pour un ingress.domain. Seul l'apex acme.dev.stackngo.app est refusé à une App ; un enregistrement TXT ou MX à l'apex (@) est accepté.
  • Zone d'un autre tenant : un enregistrement ne peut viser que vos zones. Écrire --zone autre.dev.stackngo.app est refusé (la zone par défaut d'un autre client ne peut pas être visée) ; un manifeste qui le tente reste ZoneNotOwned et rien n'est publié.
  • Premier arrivé : un nom déjà publié par une App ou un autre enregistrement est en conflit. Voir Enregistrements.
  • Un seul périmètre : la zone est celle du tenant. Un même nom et type ne peut être déclaré qu'une fois dans le tenant.
  • Serveurs de noms, TTL des App : choisis par la plateforme, non modifiables.

Voir aussi​