Mutations

Buoy gates every write through a confirmation modal. The defaults are deliberately strict: by default, you must type the object name before the Confirm button activates, and destructive actions render with a red header. You can dial that down per your taste in Settings.

This page covers the actions that change cluster state. Read-only behavior (logs, YAML viewing, scheduling explanations) is documented in detail-views.md. For plugin-authored actions, see plugins/actions.md.

Contents

Confirmation Modes

Set the mode under Settings, Mutation Confirmations.

ModeBehavior
Phrase (default)When a phrase is required (typically the object name), the Confirm button stays disabled until you type it verbatim. Otherwise Confirm is immediately enabled, but the modal still appears for review.
Yes / NoPhrase typing is suppressed. Confirm is immediately enabled. The modal still appears so you can review diffs, drain options, scale inputs, and so on.
No ConfirmationMutations fire immediately with no dialog. The modal only renders if an error needs to be surfaced for retry.

Auth failures (403 Forbidden, 401 Unauthorized) surface as banners. With the “Impersonate on Auth Failure” toggle enabled, Buoy prompts you to activate /as with a recent or new identity. The original action is not retried automatically; you re-run it under the new identity.

Single-Object Actions

Every detail view has an Actions menu (kebab, also reachable with m). The available actions depend on the kind. Each opens a confirmation modal; the phrase to type is the object’s metadata.name.

ActionApplies toEffect
Edit YAMLAnything with a YAML tabSwitches the YAML tab into edit mode. See Editing YAML.
DeleteAnythingDELETE with default propagation. Objects with finalizers may take a while to disappear.
ScaleDeployment, StatefulSet, ReplicaSetStrategic-merge patch on spec.replicas. The dialog shows current and target.
RestartDeployment, StatefulSet, DaemonSetStamps kubectl.kubernetes.io/restartedAt on spec.template.metadata.annotations, the same trigger kubectl rollout restart uses.
EvictPodSends a policy/v1 Eviction. The apiserver returns 429 when a PodDisruptionBudget would be violated.
Cordon, UncordonNodeToggles spec.unschedulable. The button label flips depending on current state.
DrainNodeCordons the node, then evicts eligible pods via the Eviction API. The dialog offers options for ignoring DaemonSet pods, deleting emptyDir data, forcing (allow standalone pods), overriding the grace period, and running as a dry run. The result is a per-pod table of evicted, skipped, and failed entries.
Forward PortPod, Service, Deployment, StatefulSet, ReplicaSet, DaemonSetOpens the port-forward modal. Forwards appear in the header chip and the /pf manager.
Submit, ResubmitWorkflow, WorkflowTemplate, ClusterWorkflowTemplate, CronWorkflowOpens the workflow submission modal. For templates, the new Workflow references the template via spec.workflowTemplateRef. For CronWorkflow, the spec is copied from spec.workflowSpec. For Workflow (“Resubmit”), the full spec is copied and shutdown is cleared.
Sync, Refresh, Hard Refresh, Terminate SyncArgoCD ApplicationSee integrations/argocd.md.
RefreshArgoCD ApplicationSetSets argocd.argoproj.io/application-set-refresh: true.
Restart, Pause, Resume, Promote, Promote Full, Abort, RetryArgo RolloutSee integrations/argo-rollouts.md.
Stop, Terminate, RetryArgo WorkflowSee integrations/argo-workflows.md.
Rollback, UninstallHelm releaseSee integrations/helm.md.

Plugins can contribute additional actions to the same menu; they appear under their plugin name.

Bulk Actions in Tables

Any list view supports multi-select. Enter select mode by clicking a row checkbox, pressing x on the cursor row, or pressing a to select every visible row. Shift-click toggles a contiguous range from the last clicked checkbox. The header checkbox toggles every row in the current sort and filter.

While a selection is active, a sticky bar appears above the table with an Actions dropdown and a clear button. Press m to open the menu from the keyboard. The available actions depend on the resolved kind.

ActionApplies toEffect
DeleteAny kindBulk delete. Errors surface per row in the result.
Edit LabelsAny kindSee Editing Labels and Annotations.
Edit AnnotationsAny kindSame syntax and semantics as label editing.
RestartDeployment, StatefulSet, DaemonSetBulk rollout restart.
Cordon, Uncordon, DrainNodeBulk node operations. Drain runs the same per-pod classification as the single-object form.
Open DashboardAny kind with a configured Prometheus dashboardOpens a dashboard scoped to the selection.

The confirm phrase for bulk actions is the verb plus the selection, for example DELETE 3 pods or RESTART 2 deployments. Errors are collected per row and shown inline; partial failures keep the modal open so you can retry or cancel.

Plugins can register bulk actions that obey the same selection model.

Editing Labels and Annotations

The Edit Labels and Edit Annotations dialogs accept kubectl-style syntax in a single text area. Each entry is space- or newline-separated. Blank lines and lines starting with # are ignored.

FormEffect
key=valueUpsert the key with the given value.
key-Delete the key.

Worked example:

team=platform
owner=alice
deprecated-
# Annotations follow the same rules.
example.com/last-touched=2026-05-26

The patch is a JSON merge patch on metadata.labels or metadata.annotations, so null-valued keys are removed and absent keys are left alone.

Editing YAML

Open a detail view’s YAML tab. Click Edit, or press the Edit button in the tab strip. The CodeMirror editor switches to writable mode and tracks your draft.

When you click Apply, Buoy shows a confirmation modal with a unified diff between the original and your draft, generated with createTwoFilesPatch. The phrase to type is the object name. On confirm, the draft is sent via server-side apply with the field manager buoy and force: true, so any conflicting fields managed by other actors are taken over.

Errors surface inline per document, prefixed with kind/namespace/name:. The modal stays open so you can fix and retry without losing your draft. Toggling Edit off discards the draft; the editor’s readOnly mode hot-swaps via Compartments so search panel and scroll position survive the toggle.

Apply YAML

The Apply YAML action takes a multi-document YAML blob and applies each document with server-side apply. It is reachable from the kebab menu on a list view and from any plugin or slash command that calls into it. The result is a table of per-document outcomes: kind, namespace, name, ok-or-error.

Apply uses the same field manager (buoy) as the detail-view YAML editor, so the two are interchangeable.

Impersonation

/as activates Kubernetes impersonation. Once active, every mutation sends Impersonate-User, Impersonate-Group, and Impersonate-Uid headers. The whole app paints a red border so impersonated sessions are visually distinct.

/as alice
/as alice --groups platform,sre
/as alice --groups platform --uid 1234
/as              # clear
/as -            # clear

Sessions auto-expire after 10 minutes of idleness or 60 minutes from activation, whichever comes first. Keystrokes and mouse activity reset the idle timer. See contexts.md for details.


Edit this page on GitLab