Build HO Image

Par openshift · hypershift

Construit et pousse l'image de conteneur hypershift-operator. S'applique automatiquement lors des tests de modifications HO nécessitant un déploiement sur un cluster actif.

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

Construire l'Image HyperShift-Operator

Cette skill permet de construire et de pousser des images hypershift-operator (HO) personnalisées pour tester les changements dans un environnement HyperShift actif.

Quand Utiliser Cette Skill

Cette skill s'applique automatiquement quand :

  • Vous avez apporté des changements au code dans hypershift-operator/
  • Vous devez tester les changements HO sur un cluster actif
  • L'utilisateur demande de construire/pousser une image HO
  • Vous avez besoin d'itérer sur les corrections HO avec des tests e2e

Prérequis

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

source dev/claude-env.sh

Configuration du Registre d'Images

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

Variable Description
HO_IMAGE_REPO Registre de conteneurs pour les images HO
RUNTIME Runtime de conteneurs (podman/docker)

Construire l'Image HO

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

Utilisez un tag qui identifie le changement (nom de branche, fonctionnalité, ou timestamp) :

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

# Option 2 : Utiliser le hash de commit court
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 HO utilise le Dockerfile principal :

$RUNTIME build -f Dockerfile --platform linux/amd64 -t $HO_IMAGE_REPO:$TAG .

Note : La construction exécute make hypershift, make hypershift-operator, make karpenter-operator, et make product-cli dans le conteneur.

Étape 3 : Pousser l'Image

$RUNTIME push $HO_IMAGE_REPO:$TAG

One-Liner Rapide

Construire et pousser en une seule commande :

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

Workflow d'Itération

Quand vous itérez sur les corrections HO :

  1. Apportez des changements de code dans hypershift-operator/
  2. Construisez et poussez l'image avec un tag incrémenté (p. ex., fix-1, fix-2, fix-3)
  3. Réinstallez HyperShift avec la nouvelle image
  4. Exécutez un test e2e ou une validation manuelle
  5. Analysez les résultats
  6. Répétez jusqu'à ce que le test réussisse

Ce Qui Est Construit

Le Dockerfile principal construit :

  • Le binaire CLI hypershift
  • Le binaire hypershift-no-cgo
  • Le binaire hypershift-operator
  • Le binaire karpenter-operator
  • Le binaire hcp (product CLI)

Tous sont inclus dans l'image finale.

Dépannage

La Construction Échoue

  • Vérifiez que les dépendances vendorisées sont à jour : go mod vendor
  • Assurez-vous que le code compile localement : make hypershift-operator
  • Vérifiez les problèmes de génération d'API : make api

La Poussée Échoue

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

L'Opérateur N'est Pas en Exécution Après l'Installation

  • Vérifiez les logs de l'opérateur : kubectl logs -n hypershift deployment/operator
  • Vérifiez que le pull d'image a réussi : kubectl describe pod -n hypershift -l app=operator
  • Assurez-vous que le cluster peut tirer du registre

Les Changements Ne Sont Pas Reflétés

  • Assurez-vous d'utiliser le bon tag d'image
  • Vérifiez si les anciens pods sont toujours en exécution : kubectl get pods -n hypershift
  • Forcez le rollout : kubectl rollout restart deployment/operator -n hypershift

Skills similaires