Commit Graph

8 Commits

Author SHA1 Message Date
stewartshea 9ffb28d773 updated examples 2026-07-06 15:43:49 -04:00
stewartshea d5b86fed87 Update staging workspace smoke taskset YAML to correct GEN_CMD value
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.
2026-07-02 17:54:12 -04:00
stewartshea 4adb7224d8 Enhance README to clarify GCP Bucket and staging workspace generation rules
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.
2026-07-02 17:35:59 -04:00
stewartshea fe0946a146 Fix Crossplane Bucket generation rule to use plural resource name
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>
2026-06-30 22:53:57 -04:00
stewartshea 811f4f13be Fix resource type definition in GCP Bucket generation rules and update documentation on runwhen-local limitations
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.
2026-06-30 22:15:01 -04:00
stewartshea 0d2508b599 Document runwhen-local upstream limitations found during validation
Iteration 1 validation surfaced two bugs in runwhen-local 0.11.0 that
prevent cluster-scoped CRDs (like Crossplane GCP Buckets) from being
discovered:

  1. NameError: KubernetesResourceTypeSpec is not defined
     (kubeapi.py:1125 references a symbol never imported)
  2. list_namespaced_custom_object returns 404 for cluster-scoped CRDs
     (the loop always calls the namespaced API path)

Added docs/08-current-limitations.md with symptoms, causes, and
one-line / small-patch proposed fixes for both. Updated the iteration
checklist in docs/07 to reflect this and added the missing docs entry
to the top-level README.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 22:05:40 -04:00
stewartshea 31ac475c97 Update Crossplane GCP Bucket generation rules to use preferred API version
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.
2026-06-30 21:55:36 -04:00
stewartshea eb8160e659 Initial scaffold: generation-rule-only Crossplane Bucket example
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>
2026-06-30 21:51:04 -04:00