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 :
- Faites des modifications au code dans
control-plane-operator/ - Construisez et poussez l'image avec un tag incrémenté (par ex.
fix-1,fix-2,fix-3) - Exécutez le test e2e avec la nouvelle image
- Analysez les résultats
- 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=trueio.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é)