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 :
- Apportez des changements de code dans
hypershift-operator/ - Construisez et poussez l'image avec un tag incrémenté (p. ex.,
fix-1,fix-2,fix-3) - Réinstallez HyperShift avec la nouvelle image
- Exécutez un test e2e ou une validation manuelle
- Analysez les résultats
- 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