Aller au contenu principal

Vue d'ensemble

Disponible

Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.

Chaque tenant dispose d'un registre d'images OCI privé, à l'adresse <cluster>.registry.dev.stackngo.fr : l'hôte porte le nom du cluster où vit votre tenant (par exemple ovh-gra-0.registry.dev.stackngo.fr), celui que choisit sng config use-cluster. Chaque cluster a son propre registre : il n'y a pas de réplication, une image se pousse sur le registre de chaque cluster qui la déploie, et une App ne tire que depuis le registre de son propre cluster. Vous y poussez les images de vos applications avec docker, sng registry ou n'importe quel client OCI, et vos App les tirent depuis le même registre.

En bref​

sng registry create web # 1. déclarer le dépôt (manifeste RegistryRepository)
sng registry login # 2. docker utilise votre session, sans mot de passe
docker build -t ovh-gra-0.registry.dev.stackngo.fr/acme/web:1.0.0 .
docker push ovh-gra-0.registry.dev.stackngo.fr/acme/web:1.0.0

L'image est alors adressable sous ovh-gra-0.registry.dev.stackngo.fr/acme/web:1.0.0, où acme est votre tenant.

Les notions​

NotionCe que c'estOù c'est décrit
Imageovh-gra-0.registry.dev.stackngo.fr/<tenant>/<dépôt>:<tag>Pousser et tirer
DépôtUn nom déclaré par un manifeste RegistryRepository. Sans déclaration, le registre refuse tout accès, même avec tous les droitsDépôts et rétention
DroitsActions registry:pull, registry:push, registry:delete sur repository/<dépôt>, accordées par les policies du tenantIdentité et accès
Clé d'accèsUn identifiant machine (RegistryAccessKey) limité à des dépôts et à pull / push, pour que vos App tirent vos images privées ; avec ci: true, lisible par une application du tenant (un job de CI, par exemple)Clés d'accès au registre
RétentionLes tags à garder (N derniers, N jours, motifs) ; le reste est effacé automatiquementDépôts et rétention

Trois façons de s'authentifier​

QuiIdentifiantMot de passeUsage typique
Vous, sur votre postegéré par sng registry loginvotre session de tenant, renouvelée automatiquementdocker push, docker pull, sng registry
Une clé d'accèsaccesskey/<tenant>/<nom>généré et renouvelé par la plateformeimagePullSecrets d'une App ; variables d'environnement d'une App si ci: true
Personneaucunaucunpull d'un dépôt déclaré public: true

Il n'existe pas de mot de passe propre au registre : une session sng suffit, et ses droits sont ceux de vos policies.

Qui peut faire quoi​

Les policies gérées du tenant couvrent les cas courants :

Policyregistry:pullregistry:pushregistry:delete
readonlyouinonnon
readwriteouiouioui
adminouiouioui

Pour un réglage plus fin (par exemple push sur un seul dépôt), écrivez une policy avec la ressource repository/<dépôt> ; voir Identité et accès. Déclarer un dépôt ou une clé d'accès passe par sng apply, donc par l'action deploy:write.

Limites de cette version​

  • Un dépôt est un seul nom sous le tenant : acme/web est valide, acme/web/cache ne l'est pas.
  • Pas d'interface web du registre.
  • Le registre n'analyse pas encore les vulnérabilités des images ; sng registry build les analyse sur votre poste avec trivy (voir sng registry build).
  • La rotation immédiate d'une clé d'accès n'est pas encore disponible ; la rotation périodique l'est (Clés d'accès au registre).

Voir aussi​