sandbox-cli/skills/cluster-offboard/SKILL.md
This skill should be used when the user asks to "offboard a cluster", "remove a cluster from sandbox", "decommission a cluster", "sandbox offboard", "take a cluster offline", or "remove a shared cluster".
npx skillsauth add rhpds/rhdp-skills-marketplace sandbox-cli:cluster-offboardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Name: Sandbox Cluster Offboard Description: Offboard an existing OCP shared cluster from the RHDP Sandbox API.
Walk the user through safely offboarding an OCP shared cluster from the Sandbox API. This includes verifying VPN connectivity, identifying the cluster, checking active placements, running the offboard, and verifying cleanup.
Check that sandbox-cli is installed:
which sandbox-cli
If sandbox-cli is not installed, tell the user to run /sandbox-cli:sandbox-setup first and stop.
CRITICAL: Always verify VPN connectivity before any sandbox-cli operation.
host squid.redhat.com
If the DNS resolves (returns an IP address like 10.x.x.x), the user is on VPN. Proceed.
If it fails with NXDOMAIN, not found, or connection timed out, STOP and tell the user:
You are NOT connected to the Red Hat VPN. The sandbox API is IP-restricted and all commands will fail with EOF errors. Please connect to the Red Hat VPN before proceeding.
Do NOT proceed until VPN is confirmed.
sandbox-cli status
If not authenticated or token expired, tell the user to re-login:
sandbox-cli login --server <SERVER_URL> --token <TOKEN>
List all clusters to help the user identify which one to offboard:
sandbox-cli cluster list
Output columns:
yes / NO)3 / 10)Ask the user which cluster to offboard. Note the cluster name and current placement count.
IMPORTANT: If the cluster has active placements, warn the user that offboarding will clean them up. The user should confirm they want to proceed.
For additional context before offboarding:
sandbox-cli cluster get <CLUSTER_NAME>
This shows full configuration, annotations, and connection status.
If the cluster is still reachable (VALID = yes), login to it so the offboard can clean up resources:
oc login --token=<ADMIN_TOKEN> --server=<CLUSTER_API_URL>
If the cluster is unreachable (VALID = NO), the --force flag will be needed in Step 7.
sandbox-cli cluster offboard <CLUSTER_NAME>
If the cluster is unreachable, use force mode:
sandbox-cli cluster offboard <CLUSTER_NAME> --force
What this does:
Expected output:
==> Offboarding cluster '<CLUSTER_NAME>'...
Offboard started for cluster <CLUSTER_NAME>. N placement(s) to process.
Poll GET /api/v1/ocp-shared-cluster-configurations/<CLUSTER_NAME>/offboard for status.
==> Waiting for offboard to complete...
Offboard completed successfully.
If the offboard is taking long, check status manually:
sandbox-cli cluster offboard-status <CLUSTER_NAME>
Confirm the cluster is no longer listed:
sandbox-cli cluster list
The offboarded cluster should no longer appear in the list.
--force) should only be used when the target cluster is permanently unreachable or decommissioned. It leaves orphaned resources (namespaces, service accounts, Ceph resources, Keycloak users) on the cluster.admin and shared-cluster-manager (for own clusters) can offboard.sandbox-cli cluster list after offboarding.tools
Writes validate.yml playbooks using the validation_check Ansible plugin. Takes the content-reader task report and solve-writer actions as input, producing checks that verify student progress without manual steps or navigation instructions.
tools
Writes solve.yml playbooks from the structured task report produced by ftl:content-reader. Uses the automation priority ladder (k8s_exec → k8s → uri → wait_for → Playwright) to generate Ansible tasks that replicate what the student does in the lab.
development
Pushes solve.yml and validate.yml to a live RHDP showroom, restarts the pod, and runs the full test cycle (fresh validate → solve → validate again → idempotency check). Reports pass/fail per task with full output for debugging.
tools
AsciiDoc reader agent for the FTL lab validator. Reads a showroom .adoc module file, extracts executable code blocks (role="execute"), classifies each step by automation type, and outputs a structured task report for the solve-writer and validate-writer agents.