一键导入
preset-bundles
Known-good Juju bundle shapes (COS Lite, 12-Factor + COS, Identity Platform, Charmed Kubeflow) — canonical app lists and relation edges
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Known-good Juju bundle shapes (COS Lite, 12-Factor + COS, Identity Platform, Charmed Kubeflow) — canonical app lists and relation edges
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Implementing Juju actions for operational tasks in charms. WHEN: add Juju actions to a charm, implement backup / rotate-credentials / restore actions, declare actions in charmcraft.yaml, write action handlers, test actions with Scenario, run actions with juju run.
Adding and validating charm configuration options. WHEN: add charm configuration options, declare config in charmcraft.yaml, validate config values in config-changed, apply config to a Pebble layer, apply config to a machine charm, write Scenario tests for config.
End-to-end workflow for building ops-framework charms for custom applications (K8s and machine). WHEN: build a custom Juju charm, write src/charm.py with Pebble, write a machine charm with systemd, decide K8s vs machine substrate, scaffold a non-paas-charm with charmcraft init, customise the ops framework charm lifecycle.
Workflow for charming infrastructure software (databases, caches, message brokers, proxies, monitoring). WHEN: charm infrastructure software, charm a database / cache / message broker / proxy / monitoring system, implement peer relations, leader election, primary/replica failover, backup and restore actions, clustering.
Expert guidance for developing, building, testing, and publishing Juju charms using charmcraft. WHEN: edit charmcraft.yaml, run charmcraft pack, run charmcraft init, manage charm libraries, publish a charm to Charmhub, set up multi-base builds, configure relations / config options, set up storage or containers.
Migrating deprecated ops.testing.Harness tests to state-transition (Scenario) tests. WHEN: migrate ops.testing.Harness tests to Scenario, modernise legacy Juju charm unit tests, rewrite Harness-based tests as state-transition tests, port relation_changed / pebble_ready / action tests off Harness.
| name | preset-bundles |
| description | Known-good Juju bundle shapes (COS Lite, 12-Factor + COS, Identity Platform, Charmed Kubeflow) — canonical app lists and relation edges |
Use this skill when you are composing relations for a multi-charm deployment, or diagnosing one that already exists, and the shape is one the ecosystem already agrees on. Instead of re-deriving "which apps, which relations, which interface names" from web docs every turn, pull the canonical layout from Cantrip's preset catalogue.
This is knowledge, not a deployment recipe — it tells you the target
shape, not the steps. To actually deploy a multi-charm stack, issue
juju_deploy + juju_relate calls (see the bundle skill for why not
a bundle.yaml). To turn a deployment into reusable infrastructure, see
the terraform skill.
cantrip.agent.presets.CATALOGUE records, for each known shape: the
apps and the semantic layer each belongs to, and every relation edge
with its interface name and a one-line description of what flows across
it. Current entries:
| Slug | Shape |
|---|---|
cos-lite | Canonical's observability stack — Prometheus, Loki, Alertmanager, Grafana, Catalogue behind one Traefik. What a Cantrip-built charm relates to (usually cross-model) for observability. |
twelve-factor-cos | A paas-charm 12-Factor app in production: the app charm + PostgreSQL + Traefik in its own model, plus the metrics / logs / dashboards / tracing endpoints the framework exposes (typically consumed cross-model from COS Lite). Add Redis when the framework needs a cache or Celery broker. |
identity-platform | The canonical-identity-platform bundle behind the bundle-based-hybrid login default — Hydra (OAuth2/OIDC) + Kratos (identity/sessions) + login-UI + PostgreSQL behind public and admin Traefiks, with self-signed-certificates. A relying-party charm relates to Hydra over oauth. |
charmed-kubeflow | The auth-and-routing core of Charmed Kubeflow — Istio pilot + ingress gateway fronting the Kubeflow dashboard, with Dex + the OIDC gatekeeper enforcing login at the mesh edge and the profiles controller backing per-user namespaces. Orientation map, not the deployable bundle. |
@preset to see the index, or @preset cos-lite
(etc.) to expand one shape inline — apps grouped by layer, then every
edge with its interface name and prose. Reach for this before
guessing relation endpoints for a well-known stack.provider → requirer · interface line is one
juju_relate call. Cross-reference the per-charm skill
(observability, twelve-factor, identity-platform,
infrastructure-charm) for the requirer-side library wiring; this
skill gives you the topology.juju_status integration list
against the preset's edges — a missing edge (e.g. no
alertmanager_dispatch between Prometheus and Alertmanager) is a
concrete "you forgot to relate X and Y" finding.When the active Juju controller targets a Canonical cloud, the preset's
shape still holds — but the implementation choices under the edges
shift. The system prompt's Substrate block (Phase 97.3) surfaces the
relevant flag; mirror its guidance in your DESIGN.md choices and your
juju_deploy calls.
When active cloud: openstack (or sunbeam) is in the substrate block:
storage:
entry in charmcraft.yaml and the storage class consumed at deploy
time.twelve-factor-cos preset's Traefik edge this means a neutron-api
relation in front of the Traefik unit rather than a node-port
Service.pebble lifecycle and storage handling so those
scenarios survive without manual intervention.When MicroCloud detected is in the substrate block:
_find_k8s_controller) picks it up
automatically — surface this in DESIGN.md so a reader doesn't think
K8s components need a remote controller.bundle.yaml generator and not a deployment runbook — it
prescribes no steps and emits no YAML.charmed-kubeflow is a deliberate subset (the full
bundle is ~30 charms), and the COS / 12-Factor entries list the
primary edges, not every self-monitoring relation.@charm <name>).@preset context provider — the inline surface for this catalogue.cantrip.agent.presets — the catalogue source, also consumed by the
F8 integration-graph screen for layer grouping and edge prose.bundle skill — why new deployments use juju_deploy + juju_relate
rather than a bundle file.observability, twelve-factor, identity-platform,
infrastructure-charm skills — requirer-side wiring for the charms
these presets reference.