spec.skills is a map[string]string — each key is a skill name, each value is inline SKILL.md content. This works for small, operator-authored skills but breaks down in enterprise environments:
Air-gapped clusters cannot download skills from the internet at runtime. Skills must be pre-packaged and shipped as container images alongside the application.
Shared skill libraries maintained by platform teams need a distribution mechanism that doesn't require embedding content in every CR.
Large skills with multiple files (skill + examples + data) cannot be represented as a single string value.
The restructured spec.skills supports three independent delivery channels: inline content (preserving upstream behavior), OCI images (Kubernetes ImageVolume), and ConfigMap references.
See https://github.com/redhat-et/claw-operator/tree/main/openspec/changes/add-skills-delivery
spec.skillsis amap[string]string— each key is a skill name, each value is inlineSKILL.mdcontent. This works for small, operator-authored skills but breaks down in enterprise environments:Air-gapped clusters cannot download skills from the internet at runtime. Skills must be pre-packaged and shipped as container images alongside the application.
Shared skill libraries maintained by platform teams need a distribution mechanism that doesn't require embedding content in every CR.
Large skills with multiple files (skill + examples + data) cannot be represented as a single string value.
The restructured
spec.skillssupports three independent delivery channels: inline content (preserving upstream behavior), OCI images (Kubernetes ImageVolume), and ConfigMap references.See https://github.com/redhat-et/claw-operator/tree/main/openspec/changes/add-skills-delivery