Documentation roadmap
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 1
- Forks
- 0
- Avg merge
- 9h 55m
- Merged PRs (30d)
- 25
Description
Documentation Roadmap
Background
This project is a Kubernetes operator that brokers disposable guest OpenShift
clusters for CI. It supports CRC single-node clusters and HyperShift hosted
control planes with KubeVirt workers. It has three audiences: CI engineers
(lease and use clusters), cluster operators (install and configure), and
contributors (Go/Kubebuilder development).
The repository has a roughly 750-line README.md and generated CRD API reference at
docs/reference/crd-api.md. The Diataxis framework
suggests splitting content by the user's need, along two axes: action versus
cognition and study versus work.
| Serves study (acquisition) | Serves work (application) | |
|---|---|---|
| Action | Tutorials | How-to guides |
| Cognition | Explanation | Reference |
Status
- R1: CRD API reference at
docs/reference/crd-api.md. - Split the README into focused documents while keeping it as a concise
landing page. - Resolve the documentation tasks below.
Planned Topics
Tutorials
- T1 - "Lease your first guest cluster": A CI engineer applies a
ClusterLease, waits forBound, reads its kubeconfig Secret, runs
oc get nodesagainst the guest, then deletes the lease. The tutorial uses
a ready, unclaimed instance in a preconfigured pool. - T2 - "Deploy the operator on a prepared management cluster": An operator
verifies the OpenShift Virtualization, storage, networking, and HyperShift
prerequisites that apply; builds and publishes the manager and crc-agent
images; runsmake installandmake deploy; configuresCRC_AGENT_IMAGE;
creates a firstClusterPool; and watches an instance reachReady. - T3 - "Set up local development and testing": A contributor clones the
repository, runsmake testwith envtest, usesmake test-e2ewith Kind,
and runsmake runagainst a configured OpenShift management cluster.
How-to Guides
- H1 - Configure a CRC pool (turnkey
template.crcVersionand manual
releaseImage/bundleSSHKeyRefpaths) - H2 - Configure a HyperShift pool (KubeVirt NodePool sizing and control
plane availability) - H3 - Pre-warm a
CRCBundleto speed up first provisioning - H4 - Configure pull secrets (management cluster default or a custom
pullSecretRef) - H5 - Size pools to hypervisor capacity (
minSize/warmSpares/maxSize) - H6 - Consume a lease from a CI pipeline (scripted poll + kubeconfig extraction)
- H7 - Access a CRC guest API externally (Service + passthrough Route)
- H8 - Troubleshoot a stuck lease, instance, or bundle (capacity, failed
provisioning, crc-agent/CSR failures, and bundle-prep failures) - H9 - Build and push the crc-agent image
- H10 - Upgrade or uninstall the operator (
make undeploythen
make uninstall)
Reference
- R2 - Runtime configuration reference: manager environment variables
(OPERATOR_NAMESPACE,CRC_AGENT_IMAGE, and service-account overrides)
and flags (--metrics-bind-address,--leader-elect, and related TLS and
probe flags). - R3 - Makefile targets reference: every
maketarget and its variables
(IMG,CRC_AGENT_IMG). - R4 - Resource lifecycle reference: CRCBundle, ClusterInstance, and
ClusterLease phases, plus ClusterPool capacity and resource conditions. - R5 - Prerequisites and deployment requirements: supported management
OpenShift baseline, OpenShift Virtualization/CDI, HyperShift, OVNKubernetes,
ingress, storage, LoadBalancer, registry access, and required images.
Explanation
- E1 - Architecture overview: the broker model, four controllers, four
CRDs, crc-agent, and how supply (pool) meets demand (lease). - E2 - The binding model: why the lease↔instance binding lives in exactly
one place (ClusterLease.Status.InstanceRef), modeled on the Kube
scheduler; whyLeaseRefis a derived read-only projection. - E3 - Recycle semantics & the disposable-cluster philosophy: why clusters
are ephemeral and how clean-slate recycling works. - E4 - CRC vs. HyperShift topologies: the tradeoffs, and which CI suites each is
meant for. - E5 - Why crc-agent exists: the post-boot fixup problem for CRC VMs and
why it's a separate SSH-based Go binary reusing the bundle-prep image.
Structure And Priorities
Create docs/ subdirectories for
(tutorials/, how-to/, reference/, explanation/), keeping the README as
a concise landing page that links out. This addresses the current dense,
monolithic README.
Suggested first wave:
- R5 Prerequisites and deployment requirements + T2 Deploy the operator
(make installation requirements and the first deployment reliable) - T1 Lease your first cluster + H6 CI pipeline consumption (unblock the main
consumer workflow) - H1/H2 pool configuration + H8 troubleshooting
- E1 Architecture overview + E2 Binding model (move the established
conceptual material out of the README)
Maintenance
- Keep examples aligned with the files in
config/samples/. - Keep the required Go version aligned with
go.mod. - Run
make api-docsand commitdocs/reference/crd-api.mdafter API type
changes.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The roadmap names README.md, docs/reference/crd-api.md, docs/, config/samples/, and go.mod; start by reading those files and the suggested first-wave topics. Create the Diataxis subdirectories, split the README into a concise linked landing page, and document the selected workflows and requirements. Keep examples and Go-version references aligned, and run make api-docs when API types change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100