Create HC AWS

Par openshift · hypershift

Créez un HyperShift HostedCluster sur AWS pour le développement et les tests, avec des images CPO/HO personnalisées en option.

npx skills add https://github.com/openshift/hypershift --skill Create HC AWS

Créer HostedCluster

Cette skill crée un HostedCluster HyperShift sur AWS à des fins de développement et de test. Les clusters créés sont destinés aux workflows de développement local, non à un usage en production.

Quand utiliser cette skill

Utilisez cette skill quand :

  • Vous devez créer un HostedCluster de dev/test pour une vérification manuelle
  • Vous voulez tester les fonctionnalités de HyperShift sur un cluster en direct
  • Vous avez besoin d'un HostedCluster avec des images CPO ou HO personnalisées
  • Vous itérez sur des modifications de code et avez besoin d'un cluster pour les valider

Prérequis

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

source dev/claude-env.sh

Exigences supplémentaires :

  • Credentials AWS chargées (source $AWS_CREDS_SOURCE)
  • KUBECONFIG pointant vers le cluster de gestion ($MGMT_KUBECONFIG)
  • Binary hypershift compilé (./bin/hypershift ou exécutez make hypershift)
  • Pull secret disponible ($PULL_SECRET)

Configuration de l'environnement

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

Variable Description
AWS_CREDENTIALS Chemin vers le fichier de credentials AWS
AWS_CREDS_SOURCE Script pour sourcer les variables d'env AWS
BASE_DOMAIN Domaine DNS de base pour les clusters
PULL_SECRET Chemin vers le fichier pull secret
AWS_REGION Région AWS
MGMT_KUBECONFIG Chemin vers le kubeconfig du cluster de gestion
CPO_IMAGE_REPO Repository d'image CPO personnalisée

Commande de base

source $AWS_CREDS_SOURCE && \
KUBECONFIG=$MGMT_KUBECONFIG \
./bin/hypershift create cluster aws \
  --name <CLUSTER_NAME> \
  --namespace clusters \
  --base-domain $BASE_DOMAIN \
  --aws-creds $AWS_CREDENTIALS \
  --pull-secret $PULL_SECRET \
  --region $AWS_REGION \
  --release-image quay.io/openshift-release-dev/ocp-release:4.21.0-multi \
  --node-pool-replicas 2

Paramètres courants

Paramètre Description Défaut
--name Nom du HostedCluster Requis
--namespace Namespace pour le HostedCluster clusters
--base-domain Domaine DNS de base $BASE_DOMAIN
--aws-creds Chemin vers le fichier de credentials AWS $AWS_CREDENTIALS
--pull-secret Chemin vers le fichier pull secret $PULL_SECRET
--region Région AWS $AWS_REGION
--release-image Image de release OCP Dernier 4.21.0 multi-arch
--node-pool-replicas Nombre de nœuds initial 0 (ajouter les nœuds plus tard)
--control-plane-operator-image Image CPO personnalisée Optionnel

Avec une image CPO personnalisée

Lors du test de modifications CPO, ajoutez l'image personnalisée :

source $AWS_CREDS_SOURCE && \
KUBECONFIG=$MGMT_KUBECONFIG \
./bin/hypershift create cluster aws \
  --name my-test-cluster \
  --namespace clusters \
  --base-domain $BASE_DOMAIN \
  --aws-creds $AWS_CREDENTIALS \
  --pull-secret $PULL_SECRET \
  --region $AWS_REGION \
  --release-image quay.io/openshift-release-dev/ocp-release:4.21.0-multi \
  --node-pool-replicas 2 \
  --control-plane-operator-image $CPO_IMAGE_REPO:YOUR_TAG

Ce qui est créé

La commande crée :

  • VPC AWS avec subnets publics et privés
  • NAT gateway et internet gateway
  • Tables de routage
  • Zones hébergées privées (Route53)
  • Provider OIDC pour STS
  • Rôles IAM pour les composants du plan de contrôle
  • Profil d'instance worker
  • Ressources HostedCluster et NodePool

Étapes post-création

  1. Vérifier l'état du HostedCluster :

    KUBECONFIG=$MGMT_KUBECONFIG kubectl get hostedcluster -n clusters
  2. Attendre que le plan de contrôle soit disponible :

    KUBECONFIG=$MGMT_KUBECONFIG kubectl wait --for=condition=Available \
      hostedcluster/<CLUSTER_NAME> -n clusters --timeout=10m
  3. Mettre à l'échelle NodePool pour ajouter des nœuds :

    KUBECONFIG=$MGMT_KUBECONFIG kubectl scale nodepool <NODEPOOL_NAME> \
      -n clusters --replicas=1
  4. Obtenir le kubeconfig du cluster invité :

    KUBECONFIG=$MGMT_KUBECONFIG kubectl get secret <CLUSTER_NAME>-admin-kubeconfig \
      -n clusters -o jsonpath='{.data.kubeconfig}' | base64 -d > /tmp/guest-kubeconfig.yaml

Nettoyage

Utilisez la skill dev:destroy-hc-aws ou exécutez :

source $AWS_CREDS_SOURCE && \
KUBECONFIG=$MGMT_KUBECONFIG \
./bin/hypershift destroy cluster aws \
  --name <CLUSTER_NAME> \
  --namespace clusters \
  --aws-creds $AWS_CREDENTIALS \
  --region $AWS_REGION

Dépannage

La création du cluster échoue

  • Vérifiez que les credentials AWS sont valides
  • Vérifiez que le domaine de base existe dans Route53
  • Assurez-vous que le bucket S3 OIDC est accessible

Le plan de contrôle n'est pas disponible

  • Vérifiez les pods HCP : kubectl get pods -n clusters-<CLUSTER_NAME>
  • Vérifiez les conditions HCP : kubectl get hcp -n clusters-<CLUSTER_NAME> -o yaml

Les nœuds ne se joignent pas

  • Vérifiez les machines : kubectl get machines -n clusters-<CLUSTER_NAME>
  • Vérifiez les conditions NodePool : kubectl get nodepool -n clusters -o yaml

Skills similaires