Build CPO Image

Par openshift · hypershift

Construire et pousser l'image de conteneur control-plane-operator. S'applique automatiquement lors du test des changements CPO nécessitant un déploiement sur un cluster actif.

npx skills add https://github.com/openshift/hypershift --skill Build CPO Image

Construire l'Image Control-Plane-Operator

Cette skill permet de construire et pousser des images control-plane-operator (CPO) personnalisées pour tester des modifications dans un environnement HyperShift actif.

Quand Utiliser Cette Skill

Cette skill s'applique automatiquement quand :

  • Vous avez fait des modifications au code dans control-plane-operator/
  • Vous avez besoin de tester les modifications CPO sur un cluster actif
  • L'utilisateur demande de construire/pousser une image CPO
  • Vous avez besoin d'itérer sur les corrections CPO avec des tests e2e

Prérequis

Source le fichier d'environnement avant d'utiliser cette skill :

source dev/claude-env.sh

Configuration du Registre d'Images

Variables d'environnement de dev/claude-env.sh :

Variable Description
CPO_IMAGE_REPO Registre de conteneurs pour les images CPO
RUNTIME Runtime conteneur (podman/docker)

Construire l'Image CPO

Étape 1 : Générer un Tag Unique

Utilisez un tag qui identifie la modification (nom de branche, feature, ou timestamp) :

# Option 1 : Utiliser le nom de branche
TAG=$(git rev-parse --abbrev-ref HEAD | tr '/' '-')

# Option 2 : Utiliser le hash court du commit
TAG=$(git rev-parse --short HEAD)

# Option 3 : Utiliser un nom descriptif + numéro pour les itérations
TAG="feature-name-1"

Étape 2 : Construire l'Image

L'image CPO utilise Dockerfile.control-plane :

$RUNTIME build -f Dockerfile.control-plane --platform linux/amd64 -t $CPO_IMAGE_REPO:$TAG .

Note : La construction exécute make control-plane-operator et make control-plane-pki-operator à l'intérieur du conteneur, vous n'avez donc pas besoin de pré-construire localement.

Étape 3 : Pousser l'Image

$RUNTIME push $CPO_IMAGE_REPO:$TAG

One-Liner Rapide

Construire et pousser en une seule commande :

TAG="my-fix-1" && $RUNTIME build -f Dockerfile.control-plane --platform linux/amd64 -t $CPO_IMAGE_REPO:$TAG . && $RUNTIME push $CPO_IMAGE_REPO:$TAG

Workflow d'Itération

Lors de l'itération sur les corrections CPO :

  1. Faites des modifications au code dans control-plane-operator/
  2. Construisez et poussez l'image avec un tag incrémenté (par ex. fix-1, fix-2, fix-3)
  3. Exécutez le test e2e avec la nouvelle image
  4. Analysez les résultats
  5. Répétez jusqu'à ce que le test passe

Ce Qui Est Construit

Le Dockerfile.control-plane construit :

  • Le binaire control-plane-operator
  • Le binaire control-plane-pki-operator

Les deux sont inclus dans l'image finale.

Labels d'Image

L'image CPO inclut des labels de capacité importants que HyperShift utilise :

  • io.openshift.hypershift.control-plane-operator-subcommands=true
  • io.openshift.hypershift.control-plane-operator.v2-isdefault=true
  • Divers autres labels de capacités de features

Dépannage

La Construction Échoue

  • Vérifiez que les dépendances vendorisées sont à jour : go mod vendor
  • Assurez-vous que le code se compile localement : make control-plane-operator

La Poussée Échoue

  • Vérifiez la connexion au registre : $RUNTIME login quay.io
  • Vérifiez les permissions du référentiel

L'Image N'est Pas Utilisée par le Cluster

  • Vérifiez que le tag d'image est correct dans les flags e2e
  • Vérifiez que l'image a été poussée avec succès
  • Assurez-vous que le cluster peut extraire du registre (public ou authentifié)

Skills similaires