Skip to content
cccskills
FreePublished on GitHub

hypershift:cluster

Create and destroy HyperShift clusters on AWS for testing Rossoctl platform. Manages ephemeral OpenShift clusters.

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303 stars(GitHub 303 + cccskills 0)
Works withAWS

Run score Not tested

See how to install

Files included (1)

  • SKILL.md5.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

HyperShift Cluster Management Skill

Create, destroy, and manage HyperShift clusters on AWS for testing.

When to Use

  • Need to create a test OpenShift cluster on AWS
  • Destroying a cluster after testing
  • User asks "create hypershift cluster" or "destroy cluster"
  • Testing Rossoctl on real OpenShift (not Kind)

Prerequisites

Before creating clusters, ensure setup is complete:

# 1. Run preflight check
./.github/scripts/hypershift/preflight-check.sh

# 2. Setup credentials (first time only, requires IAM admin)
./.github/scripts/hypershift/setup-hypershift-ci-credentials.sh

# 3. Setup local tools (hcp CLI, ansible, etc.)
./.github/scripts/hypershift/local-setup.sh

Create Cluster

Quick Create (Default Suffix)

# Creates: rossoctl-hypershift-custom-<username>
./.github/scripts/hypershift/create-cluster.sh

Create with Custom Suffix

# Creates: rossoctl-hypershift-custom-pr529
./.github/scripts/hypershift/create-cluster.sh pr529

# Creates: rossoctl-hypershift-custom-mytest
./.github/scripts/hypershift/create-cluster.sh mytest

Create with Custom Configuration

# More worker nodes and larger instances
REPLICAS=3 INSTANCE_TYPE=m5.2xlarge ./.github/scripts/hypershift/create-cluster.sh

# Specific OCP version
OCP_VERSION=4.19.5 ./.github/scripts/hypershift/create-cluster.sh

Environment Variables

VariableDefaultDescription
REPLICAS2Number of worker nodes
INSTANCE_TYPEm5.xlargeAWS instance type
OCP_VERSION4.20.11OpenShift version
CLUSTER_SUFFIXusernameSuffix for cluster name
MANAGED_BY_TAGrossoctl-hypershift-customIAM scope prefix

Destroy Cluster

Quick Destroy

# Destroy by suffix
./.github/scripts/hypershift/destroy-cluster.sh <suffix>

# Examples:
./.github/scripts/hypershift/destroy-cluster.sh pr529
./.github/scripts/hypershift/destroy-cluster.sh ladas

Destroy by Full Name

./.github/scripts/hypershift/destroy-cluster.sh rossoctl-hypershift-custom-pr529

After Cluster Creation

The create script outputs next steps. Typical workflow:

# 1. Set kubeconfig to new cluster
export KUBECONFIG=~/clusters/hcp/<cluster-name>/auth/kubeconfig

# 2. Verify cluster access
oc get nodes
oc get clusterversion

# 3. Deploy Rossoctl platform
./.github/scripts/operator/30-run-installer.sh --env ocp
./.github/scripts/operator/41-wait-crds.sh

# 4. Deploy demo agents
./.github/scripts/operator/71-build-weather-tool.sh
./.github/scripts/operator/72-deploy-weather-tool.sh
./.github/scripts/operator/74-deploy-weather-agent.sh

# 5. Run E2E tests
export AGENT_URL="https://$(oc get route -n team1 weather-service -o jsonpath='{.spec.host}')"
export ROSSOCTL_CONFIG_FILE=deployments/envs/ocp_values.yaml
./.github/scripts/operator/90-run-e2e-tests.sh

Full Test Workflow

Use the full test script for complete workflow:

# Full test: create cluster -> deploy -> test -> keep cluster
./.github/scripts/local-setup/hypershift-full-test.sh --skip-cluster-destroy

# With custom suffix
./.github/scripts/local-setup/hypershift-full-test.sh pr123 --skip-cluster-destroy

# Include cleanup after test
./.github/scripts/local-setup/hypershift-full-test.sh --include-cluster-destroy

Cluster Naming

Clusters are named: ${MANAGED_BY_TAG}-${CLUSTER_SUFFIX}

MANAGED_BY_TAGUse CaseExample
rossoctl-hypershift-customLocal development (default)rossoctl-hypershift-custom-ladas
rossoctl-hypershift-ciCI/CD pipelinesrossoctl-hypershift-ci-pr529

Troubleshooting

Cluster Creation Stuck

# Check HostedCluster status (use management cluster kubeconfig)
source .env.rossoctl-hypershift-custom  # or .env.hypershift-ci
oc get hostedcluster -n clusters

# Check conditions
oc get hostedcluster -n clusters <cluster-name> -o jsonpath='{range .status.conditions[*]}{.type}{": "}{.status}{" - "}{.message}{"\n"}{end}'

# Check NodePool
oc get nodepool -n clusters <cluster-name>

Cluster Deletion Stuck

# Debug AWS resources
./.github/scripts/hypershift/debug-aws-hypershift.sh <cluster-name>

# Force remove finalizer (only if AWS resources are cleaned)
oc patch hostedcluster -n clusters <cluster-name> -p '{"metadata":{"finalizers":null}}' --type=merge

Control Plane Namespace Issues

# If namespace is stuck terminating
oc delete ns clusters-<cluster-name> --wait=false
oc patch ns clusters-<cluster-name> -p '{"metadata":{"finalizers":null}}' --type=merge

Check AWS Quotas

# Before creating clusters, check capacity
./.github/scripts/hypershift/check-quotas.sh

Related Skills

  • hypershift:setup: Setup local environment for HyperShift
  • hypershift:preflight: Run pre-flight checks
  • hypershift:quotas: Check AWS quotas
  • hypershift:debug: Debug AWS resources for stuck clusters

Related Documentation

  • .github/scripts/local-setup/README.md - Local setup documentation
  • docs/hypershift-hcp-research.md - HyperShift research and architecture

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

auth

Free

Authentication and authorization patterns for Rossoctl services

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Create confidential OAuth2 clients in Keycloak for server-to-service authentication

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Configure OpenTelemetry Collector with OAuth2 authentication for trace export

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

ci

Free

CI pipeline monitoring, status checks, and PR validation workflows

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

Monitor running CI jobs, wait for completion, create tasks for results

The English summary is being prepared. Showing the original description.

rossoctl/rossoctl303Updated Oct 25, 2026

See all skills by rossoctl

Report a problem with this skill