Reportez-vous à cette rubrique pour transférer les modules standard du registre de conteneur public vers un registre Harbor privé qui s'exécute en tant que service de Superviseur.

Conditions requises

Complétez les conditions préalables suivantes :

Installer l'utilitaire de module d'images Carvel

Installez l'utilitaire Carvel imgpkg sur le client Ubuntu sur lequel kubectl est installé.
  1. Installez imgpkg.
    wget -O- https://carvel.dev/install.sh > install.sh
    sudo bash install.sh
  2. Vérifiez l'installation.
    imgpkg version
    Résultat attendu :
    imgpkg version 0.41.1

Répertorier les images disponibles pour chaque module standard

Gestionnaire de certificats
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/cert-manager
Contour avec Envoy
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/contour
ExternalDNS
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/external-dns
Prometheus avec Alertmanager
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/prometheus
Grafana
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/grafana
Fluent Bit
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/fluent-bit
Port
imgpkg tag list -i projects.registry.vmware.com/tkg/packages/standard/harbor

Extraire les images de module standard à partir du registre VMware public

Extrayez les modules Tanzu standard du registre VMware public à l'adresse https://projects.registry.vmware.com/. Mettez à jour la version pour qu'elle corresponde à la version que vous souhaitez extraire.

Gestionnaire de certificats
docker pull projects.registry.vmware.com/tkg/packages/standard/cert-manager:v1.7.2_vmware.3-tkg.3
Contour avec Envoy
docker pull projects.registry.vmware.com/tkg/packages/standard/contour:v1.23.5_vmware.1-tkg.1
ExternalDNS
docker pull projects.registry.vmware.com/tkg/packages/standard/external-dns:v0.12.2_vmware.5-tkg.1
Prometheus avec Alertmanager
docker pull projects.registry.vmware.com/tkg/packages/standard/prometheus:v2.37.0_vmware.3-tkg.1
Grafana
docker pull projects.registry.vmware.com/tkg/packages/standard/grafana:v7.5.17_vmware.2-tkg.1
Fluent Bit
docker pull projects.registry.vmware.com/tkg/packages/standard/fluent-bit:v1.9.5_vmware.1-tkg.2
Port
docker pull projects.registry.vmware.com/tkg/packages/standard/harbor:v2.7.1_vmware.1-tkg.1

Créer un projet dans le registre Harbor privé

Créez un projet public dans Harbor pour héberger les modules Tanzu.
  1. Connectez-vous au registre Harbor intégré.
  2. Dans Harbor, sélectionnez Projets > Nouveau projet.
  3. Créez un projet public nommé tanzu-packages.

Baliser les images du module standard

Balisez les images à l'aide de la syntaxe suivante.
docker tag SOURCE_IMAGE[:TAG] harbordomain.com/tanzu-packages/REPOSITORY[:TAG]
Où :
  • SOURCE_IMAGE[:TAG] est le nom de l'image que vous avez extraite
  • harbordomain.com est le nom DNS de votre serveur Harbor
  • REPOSITORY[:TAG] est le nom de la balise d'image
Gestionnaire de certificats
docker tag projects.registry.vmware.com/tkg/packages/standard/cert-manager:v1.7.2_vmware.3-tkg.3 harbordomain.com/tanzu-packages/cert-manager:v1.7.2
Contour avec Envoy
docker tag projects.registry.vmware.com/tkg/packages/standard/contour:v1.23.5_vmware.1-tkg.1 harbordomain.com/tanzu-packages/contour:v1.23.5
ExternalDNS
docker tag projects.registry.vmware.com/tkg/packages/standard/external-dns:v0.12.2_vmware.5-tkg.1 harbordomain.com/tanzu-packages/external-dns:v0.12.2
Prometheus avec Alertmanager
docker tag projects.registry.vmware.com/tkg/packages/standard/prometheus:v2.37.0_vmware.3-tkg.1 harbordomain.com/tanzu-packages/prometheus:v2.37.0
Grafana
docker tag projects.registry.vmware.com/tkg/packages/standard/grafana:v7.5.17_vmware.2-tkg.1 harbordomain.com/tanzu-packages/grafana:v7.5.17
Fluent Bit
docker tag projects.registry.vmware.com/tkg/packages/standard/fluent-bit:v1.9.5_vmware.1-tkg.2 harbordomain.com/tanzu-packages/fluent-bit:v1.9.5
Port
docker tag projects.registry.vmware.com/tkg/packages/standard/harbor:v2.7.1_vmware.1-tkg.1 harbordomain.com/tanzu-packages/harbor:v2.7.1

Transférer les images de module standard vers le registre Harbor privé

Transférez les images en utilisant la syntaxe suivante.
docker push harbordomain.com/tanzu-packages/PACKAGE
Où :
  • harbordomain.com est le nom DNS de votre serveur Harbor
  • tanzu-packages est le nom du projet Harbor
  • PACKAGE est le nom du module Tanzu
  • vX.X.X est la version de balise du module
Gestionnaire de certificats
docker push harbordomain.com/tanzu-packages/cert-manager:v1.7.2
Contour avec Envoy
docker push harbordomain.com/tanzu-packages/contour:v1.23.5
ExternalDNS
docker push harbordomain.com/tanzu-packages/external-dns:v0.12.2
Prometheus avec Alertmanager
docker push harbordomain.com/tanzu-packages/prometheus:v2.37.0
Grafana
docker push harbordomain.com/tanzu-packages/grafana:v7.5.17
Fluent Bit
docker push harbordomain.com/tanzu-packages/fluent-bit:v1.9.5
Port
docker push harbordomain.com/tanzu-packages/harbor:v2.7.1
Après avoir transféré les images vers le registre Harbor privé, vérifiez que vous voyez chaque image dans l'interface Web de Harbor.
Figure 1. Modules Tanzu Standard dans le registre Harbor privé
Modules Tanzu Standard dans le registre Harbor privé

Extraire une image de conteneur pour le déploiement

Pour vérifier que les images se trouvent dans le registre Harbor privé, extrayez une image à partir de cet emplacement en utilisant la syntaxe suivante :
docker pull harbordomain.com/tanzu-packages/PACKAGE:TAG

Par exemple :

docker pull harbordomain.com/tanzu-packages/fluent-bit:v1.9.5
Vous pouvez utiliser cURL pour appeler l'API Harbor et répertorier les modules. Pour ce faire, téléchargez le certificat Harbor à partir de l'interface Web de Harbor, puis exécutez la commande suivante :
curl -X 'GET' 'https://harbordomain.com/api/v2.0/projects/tanzu-packages/repositories?page=1&page_size=-1' -H 'accept: application/json' --cacert ca.crt | jq '.[].name'
La commande renvoie les modules Tanzu disponibles.
"tanzu-packages/harbor"
"tanzu-packages/fluent-bit"
"tanzu-packages/grafana"
"tanzu-packages/prometheus"
"tanzu-packages/external-dns"
"tanzu-packages/contour"
"tanzu-packages/cert-manager"