Expert knowledge for deploying, configuring, operating, integrating and extending the Waldur platform, packaged as an Agent Skill.
Waldur is an open-source multi-cloud orchestrator and research-resource broker: a marketplace where provider organizations publish offerings (OpenStack tenants, SLURM allocations, Kubernetes, custom services) and consumer organizations order them through projects, with RBAC, approval workflows, usage accounting and billing built in.
/plugin marketplace add nesi/waldur-plugin
/plugin install waldur@waldur-plugin
That is the public mirror at https://github.com/nesi/waldur-plugin.
NeSI staff can install from the canonical GitLab repository instead — same content, but it is where changes land first:
/plugin marketplace add git@gitlab.com:nesi1/nesi-collab/claude/waldur-plugin.git
/plugin install waldur@waldur-plugin
The GitLab project is private, so the SSH form is the one that works there — it reuses your existing GitLab key.
Verify with /skills — waldur should be listed. Then ask something like
"set up Keycloak SSO for our Waldur instance" and Claude should announce it is
using the skill.
If you previously copied the skill into ~/.claude/skills/waldur/, remove that
directory first — a personal skill of the same name shadows the plugin's.
skills/waldur/SKILL.md routes to twelve reference files:
| File | Subject |
|---|---|
deploy-administer.md |
Install/upgrade commands, architecture, sizing, staff users |
helm-chart.md |
Chart internals: templates, the whitelabeling hook Job, config-* ConfigMaps, subcharts, values map, release debugging |
configure.md |
Settings, feature toggles, billing, roles, identity providers |
providers.md |
OpenStack, Azure, SLURM, Site Agent, the plugin roster, fairshare |
site-agent-checklist.md |
Site Agent auth/RBAC/order troubleshooting |
operate.md |
Projects, offerings, orders, credits, invoices |
api-integrate.md |
REST API, tokens, Python SDK, Ansible, MCP, Open OnDemand |
develop.md |
Plugins, marketplace processors, permissions, Celery, HomePort |
data-flow.md |
Who calls what, in which direction, on what trigger |
identity-sync.md |
SCIM both directions, identity bridge, multi-client OIDC |
provider-resources.md |
UID/GID pools, resource API keys, resource projects |
source-map.md |
Routing index to 161 in-repo docs across the three Waldur repos |
Several files were derived by reading the waldur-mastermind, waldur-homeport
and waldur-site-agent source directly, and helm-chart.md by reading a chart
tarball — so they carry facts the published docs do not.
skills/waldur/evals/evals.json holds six prompts with checkable
expectations (Token-not-Bearer, no PATCH on offerings, order lifecycle over
import_resource, Python 3.9 syntax in the agent, fairshare ownership). Run
them with Anthropic's skill-creator after any change to a reference file.
skills/waldur/scripts/check-drift.sh reads scripts/pins.env (the source
SHAs, chart version and docs snapshot date the references were verified
against) and reports how far each upstream has moved. Update the pins in the
same commit as the provenance lines. --strict exits 1 when anything moved.
Waldur ships frequently and PATCH releases can contain breaking changes. Each
reference file carries a provenance line stating what it was read from and when;
the skill instructs Claude to follow the embedded Docs: links for
version-sensitive detail. helm-chart.md documents chart 8.1.2 and includes the
commands to re-derive it against whatever version you deploy.
GitLab is canonical: https://gitlab.com/nesi1/nesi-collab/claude/waldur-plugin (private, NeSI). The GitHub repository is a generated mirror: a manual, tag-gated CI job force-pushes a single snapshot commit per release, after a scrub that refuses to publish site-specific content. It carries no upstream history by design — the skill grew up inside a private deployment repo, and publishing those commits would publish what they contain. Open issues and merge requests on GitLab; the mirror takes no direct pushes.
MIT — see LICENSE.