PAPI clones codeBundle.repoUrl on ingestion; the public github.com URL is
unreachable from the airgap cluster, so the runbook records were silently
dropped (SLXs got created with no runbook attached).
Switch the three tool-builder taskset templates to the internal catalog URL
that workspace-builder / PAPI already talks to for every other codecollection.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Regenerated SKILL_TEMPLATE.md for all three tool-builder bundles
(stg-workspace-smoke, system-info-check, system-info-check-bash) — the
previous versions had 8 leading spaces on every line because the renderer's
textwrap.dedent didn't work against column-0 injected tables. Fixed on the
MCP side; these are the corresponding refreshed outputs.
- Gave system-info-check and system-info-check-bash distinct baseNames
(`sys-info-py` and `sys-info-bash`). Both previously truncated to
`system-info-che` under the default 15-char baseName rule and collided
in workspace-builder — the two SLXs would have shared the same computed
name so only one (or neither) ever showed up.
- Also picks up the resource_path YAML-quoting change (single-quoted only
when strictly required — no longer force-double-quoted).
Co-authored-by: Cursor <cursoragent@cursor.com>
Modified the GEN_CMD value in the stg-workspace-smoke-taskset.yaml file to ensure proper execution of the staging workspace smoke check. This change enhances the accuracy of the command used in the taskset, improving the reliability of the smoke check process.
Updated the README to provide clearer descriptions for the `gcp-bucket-crossplane-health` and `stg-workspace-smoke` code bundles. The `gcp-bucket-crossplane-health` now specifies its focus on Kubernetes platform and k8s-kubectl-cmd runtime, while the `stg-workspace-smoke` is noted for its integration of runwhen and tool-builder runtime. This improves documentation clarity for users regarding the purpose and structure of these bundles.
Revert the earlier typo that changed the resourceTypes entry from
`buckets.storage.gcp.upbound.io` to `bucket.storage.gcp.upbound.io`
under the mistaken rationale of "consistency with preferred API
version". Kubernetes resource type specs in generation rules use the
API plural name (as reported by `kubectl api-resources`), which for
this CRD is `buckets`.
Confirmed against the live cluster:
kubectl api-resources --api-group=storage.gcp.upbound.io
NAME=buckets NAMESPACED=false KIND=Bucket
Symptom of the typo (from workspace-builder logs, image
`806-merge-343c86e3`):
Trying custom resource bucket.storage.gcp.upbound.io
Error scanning for custom resource instances; error: (403)
The 403 was misleading — it isn't an RBAC problem (the ClusterRole
correctly grants get/list/watch on `buckets`); it's the API server
rejecting a call for a resource type that doesn't exist. The
scope-aware discovery from runwhen-local PR #806 is working; it
just had the wrong plural to look up.
Co-authored-by: Cursor <cursoragent@cursor.com>
Updated the resource type in the GCP Bucket generation rules from `buckets.storage.gcp.upbound.io` to `bucket.storage.gcp.upbound.io` for consistency with the preferred API version. Additionally, enhanced the documentation in `08-current-limitations.md` to clarify the current state of custom-resource discovery in runwhen-local, addressing two specific issues encountered during validation.
This change ensures accurate resource type definitions and improves clarity on limitations affecting cluster-scoped CRDs.
Modified the generation rules for Crossplane GCP Buckets to omit the version in resource type definitions, allowing the use of the API server's preferred version (currently v1beta2). Updated documentation to reflect this change and clarify version pinning for schema stability.
Changes include:
- Updated YAML generation rules to remove explicit versioning.
- Revised documentation to explain the implications of omitting versioning and the preferred version usage.
This enhances resilience across CRD upgrades and simplifies the configuration for users.
Educational RunWhen CodeCollection that discovers Crossplane GCP
Bucket CRDs (storage.gcp.upbound.io/v1beta1) and generates one SLX
per bucket. Ships only generation rules and Jinja templates; the
runtime lives in rw-generic-codecollection/k8s-kubectl-cmd (already
loaded by the airgap runner).
Includes:
- codebundles/gcp-bucket-crossplane-health with generation rule + 3 templates
- docs/01..07 numbered training chapters with screenshot placeholders
- README, .gitignore
Co-authored-by: Cursor <cursoragent@cursor.com>