apply_stack_changes
Apply the current stack draft to the cluster. This single ship action handles both brand-new database drafts and already-deployed stacks by computing the lifecycle and bill of materials internally. By default, items absent from the draft are preserved unless they were explicitly removed through draft removal tools. For a destructive full replacement that deletes absent items, set replace_missing=true only after confirming the exact deletions with the user.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | If true, return a diff BOM without applying. Used internally during confirmation. | |
| members | No | The members this apply ships, as "kind:name" strings - for example ["addon:nats"] or ["manifest:namespace", "addon:ingress"]. REQUIRED once the reviewed change set holds more than one resource: the enumeration IS the review, so there is no apply-everything shortcut on this lane, and the refusal lists the members to choose from. Naming an addon covers its configuration. A key the change set does not carry, and a member the draft removes, are both refused by name rather than dropped. | |
| draft_id | No | The draft to apply, as a uuid. It supersedes every other way the draft is resolved - the conversation's binding and the most recently updated draft of that name - and one belonging to another organisation or cluster is refused rather than fallen back from. Omit it to apply the draft this conversation holds for the stack. | |
| cluster_id | Yes | Ankra cluster id (UUID) the call targets. Discover ids with list_clusters. | |
| stack_name | Yes | REQUIRED: The name of the stack to apply changes to. This is used to find the draft in the database. | |
| expected_digest | No | The change-set digest this apply was reviewed against, which the server recomputes under the cluster lock and refuses on mismatch. Do not invent one: in chat it is stamped from the bill of materials that was shown, and a value supplied here is dropped. Over MCP, send the change_set_digest the stack draft diff reported. | |
| replace_missing | No | If true, perform a full replacement and delete deployed addons/manifests that are absent from the draft. Use only after enumerating the deletions for the user. |