Skip to content
Back to skills

Hypershift:Cluster

ASecurity

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

  • 299 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 20, 2026
devopsbashnodeawstestinggitci/cddocumentation

Works with

  • cli

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add rossoctl/rossoctl --skill hypershift:cluster --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hypershift:Cluster?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hypershift:Cluster
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rossoctl-hypershift-cluster/badge)](https://www.skillsdirectory.com/skills/rossoctl-hypershift-cluster)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hypershift:cluster
description: Create and destroy HyperShift clusters on AWS for testing Rossoctl platform. Manages ephemeral OpenShift clusters.
---

# 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:

```bash
# 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)

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

### Create with Custom Suffix

```bash
# 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

```bash
# 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

| Variable | Default | Description |
|----------|---------|-------------|
| `REPLICAS` | 2 | Number of worker nodes |
| `INSTANCE_TYPE` | m5.xlarge | AWS instance type |
| `OCP_VERSION` | 4.20.11 | OpenShift version |
| `CLUSTER_SUFFIX` | username | Suffix for cluster name |
| `MANAGED_BY_TAG` | rossoctl-hypershift-custom | IAM scope prefix |

## Destroy Cluster

### Quick Destroy

```bash
# 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

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

## After Cluster Creation

The create script outputs next steps. Typical workflow:

```bash
# 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:

```bash
# 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_TAG | Use Case | Example |
|----------------|----------|---------|
| `rossoctl-hypershift-custom` | Local development (default) | rossoctl-hypershift-custom-ladas |
| `rossoctl-hypershift-ci` | CI/CD pipelines | rossoctl-hypershift-ci-pr529 |

## Troubleshooting

### Cluster Creation Stuck

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.