Files
simple-private-codecollection/README.md
T
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

64 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# simple-private-codecollection
An **educational, generation-rule-only** RunWhen CodeCollection. It ships **no**
Robot Framework code of its own — instead it teaches how a private repository
can define **discovery rules** and **SLX templates** that reuse a generic
runtime already loaded by the RunWhen runner (in this case
[`k8s-kubectl-cmd`](https://github.com/runwhen-contrib/rw-generic-codecollection/tree/main/codebundles/k8s-kubectl-cmd)
from `rw-generic-codecollection`).
## What it demonstrates
- How **workspace-builder** discovers a Kubernetes **Custom Resource** (a
Crossplane `Bucket` from the Upbound GCP provider) via a generation rule.
- How the resulting SLX points its `codeBundle.repoUrl` at a **different**
code collection where the runtime actually lives.
- How to compute a fractional **SLI** (0.01.0) from
`.status.conditions[]` with `jq`, and how to emit a **detailed
TaskSet** with per-condition issues via `RW.DynamicIssues`.
## Layout
```
codebundles/
gcp-bucket-crossplane-health/ # kubernetes platform + k8s-kubectl-cmd runtime
.runwhen/
generation-rules/gcp-bucket-crossplane-health.yaml
templates/
gcp-bucket-crossplane-health-slx.yaml
gcp-bucket-crossplane-health-sli.yaml
gcp-bucket-crossplane-health-taskset.yaml
stg-workspace-smoke/ # platform: runwhen + tool-builder runtime (RW-1353 E2E)
.runwhen/
generation-rules/stg-workspace-smoke.yaml
templates/
stg-workspace-smoke-slx.yaml
stg-workspace-smoke-taskset.yaml
docs/
01-overview.md
02-generation-rules-only-pattern.md
03-crossplane-crd-discovery.md
04-generation-rule-walkthrough.md
05-slx-and-templates.md
06-runner-integration.md
07-validate-and-observe.md
08-current-limitations.md
images/ # screenshots referenced from the chapters
```
## Start here
Open [`docs/01-overview.md`](docs/01-overview.md) and read the chapters in
order. Each chapter has a short "What you'll do" preamble, an inline diagram
or code snippet, and screenshot placeholders that we fill in as we iterate.
## Target environment
This training example is wired for the RunWhen **airgap** environment (in-cluster
workspace-builder in `runwhen-env-airgap-runner`, Gitea at
`gitea.airgap.shared.runwhen.com`). The generation rule targets real Crossplane
`Bucket` resources already present in that cluster (see
[llm-storage.yaml](https://github.com/runwhen/infra-flux-nonprod-shared/blob/main/infrastructure/crossplane/llm-storage/llm-storage.yaml)
and similar). The pattern applies to any RunWhen environment; only the
`repoUrl` in the templates needs to change.