Create or refresh a skill-examples Space with representative Kubernetes Units for exercising the other skills. Use for "set up the skill-examples space", "bootstrap the examples", "give me a Unit to tinker with", or "reset the examples". Not for real application Spaces (use confighub-core).
Execution mode: follow references/execution-modes.md. This Skill grants no automatic tool permission. Standalone use inspects first, then submits one missing or changed playground object at a time to the host permission system; an external overlay may stop it before Bash.
For an existing example Unit, re-read its head and hash before the write and do not claim atomic reviewed-state binding when the stock convenience command does not accept those values as preconditions.
Prepares and explains an idempotent ConfigHub playground so users can exercise the other skills against a well-formed example after the host permits each requested creation step.
skill-examples Space is missing or has been damaged and the user wants it back.confighub-core to prepare the governed Space proposal).triggers-and-applygates).import).Space: skill-examples
Units in that Space:
hello-ns — v1/Namespace named hello, with pod-security labels applied via set-pod-security-defaults.hello-app — apps/v1/Deployment + v1/Service bundle for a placeholder app listening on port 8080.hello-statefulset — apps/v1/StatefulSet + headless v1/Service for a PostgreSQL-like stateful workload with volumeClaimTemplates.hello-daemonset — apps/v1/DaemonSet for a node-exporter-style monitoring agent.hello-job — batch/v1/Job for a one-shot database migration.hello-cronjob — batch/v1/CronJob for a scheduled nightly backup.hello-ingress — networking.k8s.io/v1/Ingress with TLS termination.hello-netpol — networking.k8s.io/v1/NetworkPolicy pair: default-deny + explicit allow.hello-rbac — v1/ServiceAccount + rbac.authorization.k8s.io/v1/Role + RoleBinding bundle.hello-hpa — autoscaling/v2/HorizontalPodAutoscaler targeting hello-app.hello-pdb — policy/v1/PodDisruptionBudget protecting hello-app.All workload Units get the defaults chain: set-container-resources-defaults, set-container-probe-defaults, set-pod-container-security-context-defaults, ensure-namespaces.
Every supported Unit-data mutation uses a short safe --change-desc summary
from references/execution-modes.md. Never interpolate the verbatim prompt
into shell text; the shared transcript and command result retain fuller
context.
cub auth status succeeds — it contacts the server's /me endpoint to confirm the token is still valid (not just local login state). If it fails, ask the user to run cub auth login (an interactive browser sign-in an agent cannot complete).cub space get skill-examplesIf the Space exists, inspect Units in a separate read:
cub unit list --space skill-examplesBranch:
cub space create skill-examplescub space create does not accept --change-desc; Spaces aren't versioned data.
Example YAML files are stored in skills/skill-examples-bootstrap/examples/. Each file maps to one Unit:
| File | Unit slug | Contents |
|---|---|---|
hello-ns.yaml | hello-ns | Namespace |
hello-app.yaml | hello-app | Deployment + Service bundle |
hello-statefulset.yaml | hello-statefulset | StatefulSet + headless Service |
hello-daemonset.yaml | hello-daemonset | DaemonSet |
hello-job.yaml | hello-job | Job |
hello-cronjob.yaml | hello-cronjob | CronJob |
hello-ingress.yaml | hello-ingress | Ingress with TLS |
hello-netpol.yaml | hello-netpol | default-deny + allow NetworkPolicy pair |
hello-rbac.yaml | hello-rbac | ServiceAccount + Role + RoleBinding |
hello-hpa.yaml | hello-hpa | HorizontalPodAutoscaler |
hello-pdb.yaml | hello-pdb | PodDisruptionBudget |
Upload one missing or changed Unit at a time. Resolve <slug> to one literal
name from the table; submit and verify each call before moving to the next:
cub unit create --space skill-examples <slug> \
skills/skill-examples-bootstrap/examples/<slug>.yaml \
--merge-external-source confighub-skills/skills/skill-examples-bootstrap/examples/<slug>.yaml \
--change-desc 'Seed reviewed Unit in skill examples playground'--merge-external-source records each file as the Unit's external source, so re-running this against an already-seeded Space merges the new file content rather than replacing the Unit — anything you tinkered with in ConfigHub survives, unless the file changed the same path.
cub variant upload --granularity per-filewould produce the same file-stem slugs in one command and merge the same way on re-upload. It is the right tool for a real base Space, and the wrong one here: it requires--component/--variantand stamps those labels, which would make the playground look like a variant of a component it isn't. Use it when you graduate an example into a real component; keep the loop for the playground.
Each function call is hermetic and idempotent, so re-running on an already-seeded Space produces no-op revisions (and no noise in the history if nothing changes).
On workload Units (hello-app, hello-statefulset, hello-daemonset,
hello-job, hello-cronjob), run one function for one Unit per call. Resolve
<workload-slug> and <defaults-function> to literal values from those lists,
then verify before the next call:
cub function set --space skill-examples --unit <workload-slug> \
--change-desc 'Apply reviewed workload defaults in skill examples' \
-- <defaults-function>On hello-ns:
cub function set --space skill-examples --unit hello-ns \
--change-desc 'Apply pod security labels to hello namespace' \
-- set-pod-security-defaultsOn non-workload Units that have namespaced resources (hello-ingress,
hello-netpol, hello-rbac, hello-hpa, hello-pdb), resolve
<namespaced-slug> and submit one call at a time:
cub function set --space skill-examples --unit <namespaced-slug> \
--change-desc 'Apply namespace defaults in skill examples' \
-- ensure-namespacesOn hello-rbac, also disable auto-mounted service account tokens:
cub function set --space skill-examples --unit hello-rbac \
--change-desc 'Disable token automount on hello rbac ServiceAccount' \
-- set-automount-service-account-token-falsePoint them at the GUI and the other skills:
cub unit list --space skill-examples — overview of all seeded Units.cub unit open hello-app --space skill-examples --print-url — inspect the final literal YAML.cub unit open hello-app --space skill-examples --revisions --print-url — see the provenance chain.cub-mutate to bump the image tag", "Try cub-query to find all Deployments in skill-examples", "Set up triggers-and-applygates against skill-examples to see an ApplyGate in action", "Use kubernetes-resources to create a new resource — it'll pull from these examples."cub evidence in this skill's declared capability subset; the pack preapproves no Bash call.cub * delete * (users who want to clean up should do it explicitly), any mutating kubectl, any helm/kustomize.cub auth status fails). Tell them to run cub auth login.cub space get skill-examples — Space exists.cub unit list --space skill-examples — all 11 Units present.cub unit get hello-app --space skill-examples -o yaml — YAML contains resources.requests, all three probes, securityContext, and namespace: confighubplaceholder.cub unit get hello-statefulset --space skill-examples -o yaml — StatefulSet has volumeClaimTemplates and headless Service has clusterIP: None.cub revision list hello-app --space skill-examples — revision history includes the defaults functions with user-prompt-bearing change descriptions.cub space open skill-examples --print-url — Space overview.cub unit open hello-app --space skill-examples --print-url — literal Unit YAML.cub unit open hello-app --space skill-examples --revisions --print-url — provenance chain.references/cub-cli.md — CLI discipline + Read/Write permission sets.references/yaml-patterns.md — what makes the scaffolded YAML "good" literal YAML.references/functions-catalog.md — defaults functions used.confighub-core — the doctrine this recipe demonstrates.ba61249
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.