Votre zone par défaut
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
snginstallée et authentifiée :sng sso login, puissng 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éesreadwriteetadmin. 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 :
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 :
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é :
| Nom | Usage |
|---|---|
status.<tenant>.dev.stackngo.app et tout ce qui est dessous | page de statut du tenant |
tout label _acme-challenge | validation des certificats TLS |
tout label _stackngo-verify | preuve 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.appest permis, pour un enregistrement comme pour uningress.domain. Seul l'apexacme.dev.stackngo.appest refusé à une App ; un enregistrementTXTouMXà l'apex (@) est accepté. - Zone d'un autre tenant : un enregistrement ne peut viser que vos zones. Écrire
--zone autre.dev.stackngo.appest refusé (la zone par défaut d'un autre client ne peut pas être visée) ; un manifeste qui le tente resteZoneNotOwnedet 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.