A profile is a template, not a running deployment. Instantiating a profile produces a stack draft on a target cluster, which you then review and commit like any other stack change.
Why use profiles
- Standardise a golden stack (monitoring, ingress, security baseline) and reuse it across clusters.
- Parameterise the bits that differ per environment - domains, replica counts, sizes - instead of copy-pasting YAML.
- Version changes with a changelog and channels, and diff any two versions.
- Track drift: a profile shows how many instantiations are behind its latest version.
Anatomy of a profile
| Concept | Description |
|---|---|
| Version | An immutable snapshot of the stack spec. Versions increment as you publish updates and carry a channel (e.g. stable) and an optional changelog. |
| Parameters | Typed inputs callers fill in at instantiation. Each parameter has a type (string, number, boolean, enum, or secret), and may be required, have a default, an enum list, or a validation pattern. |
| Visibility | organisation (default) keeps the profile private to your org; public shares it more widely. |
| Category & tags | Metadata for organising and searching profiles. |
| Drafts | An editable working copy used to build or edit a profile before publishing a version. |
Create a profile
You can create a profile two ways:From an existing stack
Capture a profile directly from a stack already running on a cluster.
Optionally include addon configurations. This is the fastest path - build
and validate the stack first, then snapshot it.
Import
Import a profile from exported IaC content, for sharing across
organisations or storing in Git.
Build with drafts
For more control, work in a draft: create a draft (optionally seeded from a cluster’s stack), edit its spec and parameters, validate it, then publish it as a new version.Create a draft
POST /org/stack-profiles/drafts - optionally seeded from an existing profile or a source cluster stack.Edit and validate
Update the draft’s spec and parameters, then
POST /org/stack-profiles/drafts/{draft_id}/validate to surface any issues before publishing.Instantiate a profile
Instantiating turns a profile into a stack on a target cluster:Choose a profile and version
Pick the profile and, optionally, a specific version (defaults to latest).
Bind parameters
Supply values for the profile’s parameters. Required parameters must be set; others fall back to their defaults.
Review the draft
Instantiation creates a stack draft on the cluster (with the resolved addons and manifests). Review it.
Commit
Commit the draft to deploy, exactly like any other stack change.
Versioning, diffing, and updates
- Save a new version from an updated source stack, or by publishing an edited draft.
- Diff any two versions to see what changed:
GET /org/stack-profiles/{profile_id}/diff?from_version=1&to_version=2. - Update tracking: a profile reports
outdated_instantiation_countandhas_update_availableso you can find deployments that are behind and re-instantiate them on the newer version. - Export IaC for a version to store the template in Git or move it between organisations.
API
All endpoints are under/org/stack-profiles and require authentication; write operations require a CSRF header for browser-originated requests.
| Method | Path | Purpose |
|---|---|---|
GET | /org/stack-profiles | List profiles (paginated) |
POST | /org/stack-profiles | Create a profile from a cluster’s stack |
POST | /org/stack-profiles/import | Import a profile from IaC content |
GET | /org/stack-profiles/{profile_id} | Profile detail, versions, and update status |
PATCH | /org/stack-profiles/{profile_id} | Update metadata (name, description, tags, visibility) |
DELETE | /org/stack-profiles/{profile_id} | Delete a profile |
POST | /org/stack-profiles/{profile_id}/versions | Save a new version from a source stack |
GET | /org/stack-profiles/{profile_id}/versions/{version} | Get a version’s spec and parameters |
GET | /org/stack-profiles/{profile_id}/versions/{version}/iac-export | Export a version as IaC |
GET | /org/stack-profiles/{profile_id}/diff | Diff two versions |
GET/POST | /org/stack-profiles/drafts | List or create drafts |
GET/POST/DELETE | /org/stack-profiles/drafts/{draft_id} | Get, update, or delete a draft |
POST | /org/stack-profiles/drafts/{draft_id}/validate | Validate a draft |
POST | /org/stack-profiles/drafts/{draft_id}/publish | Publish a draft as a profile version |