@jr2/orchestrator 0.4.1 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -2
- package/console/components/app.ts +2 -0
- package/console/components/fleet.ts +14 -1
- package/console/components/machine-pane.ts +41 -2
- package/console/main.ts +13 -1
- package/console/store.ts +102 -6
- package/console/style.css +21 -0
- package/docs/agents-block.md +5 -0
- package/docs/concepts/agents-and-turns.md +442 -0
- package/docs/concepts/architecture.md +230 -0
- package/docs/concepts/charts.md +143 -0
- package/docs/concepts/composition.md +357 -0
- package/docs/concepts/converge.md +254 -0
- package/docs/concepts/durable-runs.md +189 -0
- package/docs/concepts/effects.md +603 -0
- package/docs/concepts/gates.md +208 -0
- package/docs/concepts/machines-and-workflows.md +289 -0
- package/docs/concepts/pools-and-sources.md +230 -0
- package/docs/concepts/secrets-and-trust.md +222 -0
- package/docs/concepts/the-menu.md +378 -0
- package/docs/concepts/workspaces.md +678 -0
- package/docs/get-started/a-model-decides.md +563 -0
- package/docs/get-started/an-agent-in-a-sandbox.md +381 -0
- package/docs/get-started/connect-a-model.md +248 -0
- package/docs/get-started/create-an-instance.md +194 -0
- package/docs/get-started/have-your-assistant-write-a-machine.md +922 -0
- package/docs/get-started/install.md +126 -0
- package/docs/guides/add-tools-to-the-sandbox.md +295 -0
- package/docs/guides/answer-a-gate.md +304 -0
- package/docs/guides/bind-open-parts.md +223 -0
- package/docs/guides/cancel-a-run.md +146 -0
- package/docs/guides/clean-up.md +206 -0
- package/docs/guides/fix-a-failed-converge.md +361 -0
- package/docs/guides/give-the-cluster-git-credentials.md +222 -0
- package/docs/guides/iterate-on-a-machine-on-kind.md +190 -0
- package/docs/guides/let-an-agent-write-a-chart.md +226 -0
- package/docs/guides/look-inside-a-sandbox.md +174 -0
- package/docs/guides/mirror-the-kit-images.md +176 -0
- package/docs/guides/move-from-kind-to-a-shared-cluster.md +302 -0
- package/docs/guides/open-the-console.md +91 -0
- package/docs/guides/publish-a-machine-as-an-npm-package.md +350 -0
- package/docs/guides/push-and-sign-a-branch.md +486 -0
- package/docs/guides/run-a-chart-by-name.md +270 -0
- package/docs/guides/run-a-command-or-call-a-url.md +544 -0
- package/docs/guides/run-one-worker-per-item.md +321 -0
- package/docs/guides/set-an-agents-access-and-dials.md +375 -0
- package/docs/guides/size-a-workspace.md +204 -0
- package/docs/guides/start-a-run-from-a-run.md +237 -0
- package/docs/guides/start-a-run.md +207 -0
- package/docs/guides/upgrade-the-kit-version.md +240 -0
- package/docs/guides/use-a-hosted-provider.md +208 -0
- package/docs/guides/use-a-local-model.md +313 -0
- package/docs/guides/watch-a-run.md +326 -0
- package/docs/guides/write-a-workflow.md +318 -0
- package/docs/index.md +44 -0
- package/docs/llms.txt +216 -0
- package/docs/reference/authoring-surface/agent.md +128 -0
- package/docs/reference/authoring-surface/answer.md +140 -0
- package/docs/reference/authoring-surface/arg.md +60 -0
- package/docs/reference/authoring-surface/basic.md +62 -0
- package/docs/reference/authoring-surface/bearer.md +53 -0
- package/docs/reference/authoring-surface/chartschema.md +23 -0
- package/docs/reference/authoring-surface/chartschemafor.md +48 -0
- package/docs/reference/authoring-surface/command.md +191 -0
- package/docs/reference/authoring-surface/customize.md +64 -0
- package/docs/reference/authoring-surface/defineconfig.md +41 -0
- package/docs/reference/authoring-surface/defineevent.md +114 -0
- package/docs/reference/authoring-surface/dispatch.md +126 -0
- package/docs/reference/authoring-surface/fail.md +83 -0
- package/docs/reference/authoring-surface/file.md +122 -0
- package/docs/reference/authoring-surface/frompick.md +277 -0
- package/docs/reference/authoring-surface/http.md +159 -0
- package/docs/reference/authoring-surface/isfailure.md +58 -0
- package/docs/reference/authoring-surface/jr2setup.md +237 -0
- package/docs/reference/authoring-surface/open.md +74 -0
- package/docs/reference/authoring-surface/openbody.md +86 -0
- package/docs/reference/authoring-surface/paramsof.md +125 -0
- package/docs/reference/authoring-surface/pool.md +186 -0
- package/docs/reference/authoring-surface/push.md +112 -0
- package/docs/reference/authoring-surface/secret.md +118 -0
- package/docs/reference/authoring-surface/sentby.md +83 -0
- package/docs/reference/authoring-surface/source.md +51 -0
- package/docs/reference/authoring-surface/text.md +62 -0
- package/docs/reference/authoring-surface/type-agentdeclaration.md +27 -0
- package/docs/reference/authoring-surface/type-agentdefinition.md +80 -0
- package/docs/reference/authoring-surface/type-agentlogic.md +15 -0
- package/docs/reference/authoring-surface/type-agentslots.md +12 -0
- package/docs/reference/authoring-surface/type-answeraction.md +12 -0
- package/docs/reference/authoring-surface/type-arg.md +19 -0
- package/docs/reference/authoring-surface/type-argnames.md +12 -0
- package/docs/reference/authoring-surface/type-binding.md +62 -0
- package/docs/reference/authoring-surface/type-bindingof.md +12 -0
- package/docs/reference/authoring-surface/type-bodyacceptsdoor.md +15 -0
- package/docs/reference/authoring-surface/type-bodyacceptsslots.md +17 -0
- package/docs/reference/authoring-surface/type-ceilings.md +41 -0
- package/docs/reference/authoring-surface/type-chainlink.md +19 -0
- package/docs/reference/authoring-surface/type-chartaction.md +46 -0
- package/docs/reference/authoring-surface/type-chartagent.md +28 -0
- package/docs/reference/authoring-surface/type-chartevent.md +20 -0
- package/docs/reference/authoring-surface/type-chartguard.md +20 -0
- package/docs/reference/authoring-surface/type-chartinvoke.md +28 -0
- package/docs/reference/authoring-surface/type-chartjson.md +14 -0
- package/docs/reference/authoring-surface/type-chartstate.md +46 -0
- package/docs/reference/authoring-surface/type-charttext.md +40 -0
- package/docs/reference/authoring-surface/type-charttransition.md +22 -0
- package/docs/reference/authoring-surface/type-charttransitions.md +14 -0
- package/docs/reference/authoring-surface/type-chartvalue.md +15 -0
- package/docs/reference/authoring-surface/type-childat.md +12 -0
- package/docs/reference/authoring-surface/type-childslots.md +12 -0
- package/docs/reference/authoring-surface/type-commandenv.md +15 -0
- package/docs/reference/authoring-surface/type-commandinput.md +19 -0
- package/docs/reference/authoring-surface/type-commandoptions.md +78 -0
- package/docs/reference/authoring-surface/type-commandoutput.md +104 -0
- package/docs/reference/authoring-surface/type-customize.md +109 -0
- package/docs/reference/authoring-surface/type-dispatchdefinition.md +39 -0
- package/docs/reference/authoring-surface/type-dispatchinput.md +14 -0
- package/docs/reference/authoring-surface/type-dispatchopenparts.md +14 -0
- package/docs/reference/authoring-surface/type-dispatchoutput.md +65 -0
- package/docs/reference/authoring-surface/type-duration.md +15 -0
- package/docs/reference/authoring-surface/type-effectbinding.md +93 -0
- package/docs/reference/authoring-surface/type-effectlogic.md +12 -0
- package/docs/reference/authoring-surface/type-envopenparts.md +14 -0
- package/docs/reference/authoring-surface/type-eventaudience.md +27 -0
- package/docs/reference/authoring-surface/type-eventdef.md +45 -0
- package/docs/reference/authoring-surface/type-eventfrom.md +16 -0
- package/docs/reference/authoring-surface/type-eventsemantics.md +26 -0
- package/docs/reference/authoring-surface/type-execoutcome.md +34 -0
- package/docs/reference/authoring-surface/type-failslot.md +14 -0
- package/docs/reference/authoring-surface/type-failure.md +19 -0
- package/docs/reference/authoring-surface/type-failureinput.md +20 -0
- package/docs/reference/authoring-surface/type-filebody.md +41 -0
- package/docs/reference/authoring-surface/type-frominput.md +14 -0
- package/docs/reference/authoring-surface/type-hostinjectedinput.md +58 -0
- package/docs/reference/authoring-surface/type-httpdefinition.md +101 -0
- package/docs/reference/authoring-surface/type-httpinput.md +12 -0
- package/docs/reference/authoring-surface/type-httpmethod.md +14 -0
- package/docs/reference/authoring-surface/type-httpopenparts.md +12 -0
- package/docs/reference/authoring-surface/type-httpoutput.md +89 -0
- package/docs/reference/authoring-surface/type-httprequestparts.md +33 -0
- package/docs/reference/authoring-surface/type-jr2config.md +126 -0
- package/docs/reference/authoring-surface/type-lends.md +38 -0
- package/docs/reference/authoring-surface/type-logicat.md +12 -0
- package/docs/reference/authoring-surface/type-markedif.md +12 -0
- package/docs/reference/authoring-surface/type-mergedactors.md +12 -0
- package/docs/reference/authoring-surface/type-namedsecret.md +25 -0
- package/docs/reference/authoring-surface/type-noslotspec.md +26 -0
- package/docs/reference/authoring-surface/type-noslotworkspaceoptions.md +32 -0
- package/docs/reference/authoring-surface/type-openbodydeclaration.md +40 -0
- package/docs/reference/authoring-surface/type-openbodylogic.md +14 -0
- package/docs/reference/authoring-surface/type-openbodyoutput.md +42 -0
- package/docs/reference/authoring-surface/type-openbodyslot.md +18 -0
- package/docs/reference/authoring-surface/type-opencommandinput.md +17 -0
- package/docs/reference/authoring-surface/type-openeffect.md +12 -0
- package/docs/reference/authoring-surface/type-openeffectslots.md +12 -0
- package/docs/reference/authoring-surface/type-openof.md +12 -0
- package/docs/reference/authoring-surface/type-opensecret.md +23 -0
- package/docs/reference/authoring-surface/type-opensecretmark.md +12 -0
- package/docs/reference/authoring-surface/type-permissivenoslotworkspaceoptions.md +31 -0
- package/docs/reference/authoring-surface/type-permissiveworkspaceoptions.md +32 -0
- package/docs/reference/authoring-surface/type-poolmachine.md +28 -0
- package/docs/reference/authoring-surface/type-poolspec.md +60 -0
- package/docs/reference/authoring-surface/type-pushinput.md +15 -0
- package/docs/reference/authoring-surface/type-pushoptions.md +79 -0
- package/docs/reference/authoring-surface/type-pushoutput.md +124 -0
- package/docs/reference/authoring-surface/type-pushwireoutput.md +12 -0
- package/docs/reference/authoring-surface/type-quantity.md +14 -0
- package/docs/reference/authoring-surface/type-reached.md +12 -0
- package/docs/reference/authoring-surface/type-reposlot.md +70 -0
- package/docs/reference/authoring-surface/type-reposlotsof.md +16 -0
- package/docs/reference/authoring-surface/type-sandboxoptions.md +77 -0
- package/docs/reference/authoring-surface/type-secret.md +25 -0
- package/docs/reference/authoring-surface/type-sender.md +19 -0
- package/docs/reference/authoring-surface/type-sentbyguards.md +12 -0
- package/docs/reference/authoring-surface/type-size.md +85 -0
- package/docs/reference/authoring-surface/type-slothandles.md +32 -0
- package/docs/reference/authoring-surface/type-sourcenextresult.md +17 -0
- package/docs/reference/authoring-surface/type-sourcespec.md +44 -0
- package/docs/reference/authoring-surface/type-syncstate.md +12 -0
- package/docs/reference/authoring-surface/type-text.md +19 -0
- package/docs/reference/authoring-surface/type-textpart.md +24 -0
- package/docs/reference/authoring-surface/type-thinkinglevel.md +39 -0
- package/docs/reference/authoring-surface/type-toparameterizedobject.md +14 -0
- package/docs/reference/authoring-surface/type-toprovidedactor.md +14 -0
- package/docs/reference/authoring-surface/type-unknown.md +21 -0
- package/docs/reference/authoring-surface/type-usercontainer.md +77 -0
- package/docs/reference/authoring-surface/type-withoutemptyindex.md +20 -0
- package/docs/reference/authoring-surface/type-workflowevent.md +46 -0
- package/docs/reference/authoring-surface/type-workspaceaccess.md +16 -0
- package/docs/reference/authoring-surface/type-workspaced.md +94 -0
- package/docs/reference/authoring-surface/type-workspacehandles.md +23 -0
- package/docs/reference/authoring-surface/type-workspacemachine.md +29 -0
- package/docs/reference/authoring-surface/type-workspaceof.md +13 -0
- package/docs/reference/authoring-surface/type-workspaceoptions.md +39 -0
- package/docs/reference/authoring-surface/type-workspacespec.md +37 -0
- package/docs/reference/authoring-surface/workspace.md +259 -0
- package/docs/reference/authoring-surface.md +197 -0
- package/docs/reference/cli.md +433 -0
- package/docs/reference/config.md +756 -0
- package/docs/reference/decisions/0001-operator-owned-generic-sandbox.md +113 -0
- package/docs/reference/decisions/0002-duplex-streaming-actor.md +110 -0
- package/docs/reference/decisions/0004-worktree-provisioning-model.md +124 -0
- package/docs/reference/decisions/0005-sandbox-pod-composition.md +230 -0
- package/docs/reference/decisions/0006-agent-control-surface.md +47 -0
- package/docs/reference/decisions/0007-durable-machine-state.md +109 -0
- package/docs/reference/decisions/0008-orchestrator-as-deployed-app.md +60 -0
- package/docs/reference/decisions/0009-cli-and-instance-interface.md +275 -0
- package/docs/reference/decisions/0010-bdd-acceptance-tests.md +160 -0
- package/docs/reference/decisions/0011-workflow-defined-events.md +141 -0
- package/docs/reference/decisions/0012-workspace-wrapper-machine.md +103 -0
- package/docs/reference/decisions/0013-the-agent-reaches-its-machine-through-a-container-it-cannot-read.md +157 -0
- package/docs/reference/decisions/0014-observation-is-open-run-state-is-not.md +95 -0
- package/docs/reference/decisions/0015-authoring-surface-absorbs-the-mechanism.md +265 -0
- package/docs/reference/decisions/0016-agent-turn-mechanics-are-internal.md +124 -0
- package/docs/reference/decisions/0017-pool-over-a-source-port.md +69 -0
- package/docs/reference/decisions/0018-instance-agents-are-definitions-jr2-assembles-the-harness.md +111 -0
- package/docs/reference/decisions/0019-one-converging-command-against-the-current-context.md +275 -0
- package/docs/reference/decisions/0020-private-ca-trust-is-a-named-concept.md +60 -0
- package/docs/reference/decisions/0021-workspace-continuity-is-a-lease-that-answers-back.md +100 -0
- package/docs/reference/decisions/0022-observation-is-a-level-triggered-feed.md +103 -0
- package/docs/reference/decisions/0023-the-harness-prints-the-conversation.md +176 -0
- package/docs/reference/decisions/0024-an-agents-turn-ends-with-the-state-that-asked-for-it.md +439 -0
- package/docs/reference/decisions/0025-cancel-ends-a-run-stop-parks-it.md +65 -0
- package/docs/reference/decisions/0026-a-turn-that-is-over-is-never-prompted.md +62 -0
- package/docs/reference/decisions/0027-the-harness-is-jr2s-own-server-flue-retires-the-wire-stays.md +237 -0
- package/docs/reference/decisions/0028-what-an-agent-may-do-to-the-workspace-is-part-of-its-definition.md +89 -0
- package/docs/reference/decisions/0029-a-menu-is-fixed-for-a-conversation-and-a-turn-is-told-its-allowed-picks.md +154 -0
- package/docs/reference/decisions/0030-a-snapshot-names-the-machine-it-was-written-under.md +100 -0
- package/docs/reference/decisions/0031-menu-only-agents-run-on-the-instance-harness.md +190 -0
- package/docs/reference/decisions/0032-the-console-unlocks-with-the-instance-token.md +61 -0
- package/docs/reference/decisions/0033-a-machine-declares-the-input-that-starts-it.md +127 -0
- package/docs/reference/decisions/0034-the-console-renders-with-preact-and-the-server-erases-the-types.md +57 -0
- package/docs/reference/decisions/0035-a-runaway-turn-is-ended-rerolled-once-then-a-fault.md +92 -0
- package/docs/reference/decisions/0036-a-turn-compacts-its-own-context-mid-flight.md +138 -0
- package/docs/reference/decisions/0037-an-instance-builds-its-sandbox-images-jr2-injects-the-harness.md +196 -0
- package/docs/reference/decisions/0038-jr2-up-builds-every-image-it-deploys.md +170 -0
- package/docs/reference/decisions/0039-image-garbage-collects-by-reachability.md +115 -0
- package/docs/reference/decisions/0041-a-build-the-host-already-holds-is-not-spent-again.md +64 -0
- package/docs/reference/decisions/0042-ready-is-not-routable-an-admission-retries-its-connection.md +142 -0
- package/docs/reference/decisions/0043-the-kit-is-tested-as-installed-a-local-registry-stands-in-for-npm.md +170 -0
- package/docs/reference/decisions/0044-kit-images-live-at-a-canonical-home-a-self-host-mirrors-it.md +85 -0
- package/docs/reference/decisions/0045-the-platform-joins-the-image-address-and-the-cluster-chooses-it.md +82 -0
- package/docs/reference/decisions/0046-a-converge-failure-carries-its-diagnosis.md +34 -0
- package/docs/reference/decisions/0047-the-git-ssh-key-source-is-the-users-choice.md +47 -0
- package/docs/reference/decisions/0048-the-orchestrator-boots-without-its-repos.md +36 -0
- package/docs/reference/decisions/0049-a-machine-carries-its-parts-and-composes-by-invoke.md +126 -0
- package/docs/reference/decisions/0050-what-code-names-config-declares-what-the-cli-names-discovery-finds.md +73 -0
- package/docs/reference/decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md +227 -0
- package/docs/reference/decisions/0052-a-sandbox-lands-where-an-ordinary-pod-lands-and-the-cache-follows-it.md +81 -0
- package/docs/reference/decisions/0053-a-fetch-inside-the-pod-asks-the-node-cache-and-the-cache-asks-the-remote.md +111 -0
- package/docs/reference/decisions/0054-the-kit-ships-machines-and-a-shipped-machine-leaves-its-parts-open.md +126 -0
- package/docs/reference/decisions/0055-a-release-is-a-pushed-tag-and-the-publish-guard-is-the-credential.md +107 -0
- package/docs/reference/decisions/0056-a-global-jr2-hands-off-to-the-instances-own-and-an-instance-has-one-kit-version.md +62 -0
- package/docs/reference/decisions/0057-a-turn-is-its-frame-its-dials-and-whether-it-continues.md +152 -0
- package/docs/reference/decisions/0058-a-harness-answers-the-orchestrator-alone.md +106 -0
- package/docs/reference/decisions/0059-a-harness-holds-stand-ins-and-the-custodian-holds-the-keys.md +384 -0
- package/docs/reference/decisions/0060-a-workspace-states-its-size-and-jr2-reserves-all-of-it.md +111 -0
- package/docs/reference/decisions/0061-a-memory-kill-ends-the-agents-processes-not-the-harness.md +83 -0
- package/docs/reference/decisions/0062-jr2-briefs-the-agent-on-its-seat-never-on-its-task.md +212 -0
- package/docs/reference/decisions/0063-the-orchestrator-watches-the-cluster.md +83 -0
- package/docs/reference/decisions/0064-a-workspace-waits-for-capacity.md +79 -0
- package/docs/reference/decisions/0065-a-persist-survives-a-crash-and-history-is-a-week.md +65 -0
- package/docs/reference/decisions/0066-a-model-tier-runs-a-real-model-and-a-change-to-what-it-reads-runs-the-tier.md +550 -0
- package/docs/reference/decisions/0067-an-effect-is-an-actor-slot-and-runs-at-most-once-unless-marked-idempotent.md +430 -0
- package/docs/reference/decisions/0068-an-effector-holds-an-effects-secrets-and-signs-its-wire.md +464 -0
- package/docs/reference/decisions/0069-the-orchestrator-is-a-kit-image-and-an-instance-publishes-its-assembly.md +180 -0
- package/docs/reference/decisions/0070-a-machine-lends-its-parts-to-a-chart.md +323 -0
- package/docs/reference/decisions/0071-a-run-starts-a-run-through-a-dispatch-effect.md +183 -0
- package/docs/reference/decisions/0072-the-docs-ship-inside-the-kit-and-an-instances-agents-md-indexes-them.md +144 -0
- package/docs/reference/decisions/0073-a-machine-fails-a-run-with-fail-and-an-uncaught-failure-ends-it-failed.md +122 -0
- package/docs/reference/decisions/0074-an-unrouted-mechanism-event-is-refused-at-load-and-faults-the-run.md +76 -0
- package/docs/reference/decisions.md +83 -0
- package/docs/reference/glossary.md +648 -0
- package/docs/reference/http-api.md +1348 -0
- package/docs/reference/machines.md +190 -0
- package/docs/reference/mechanism-events.md +72 -0
- package/docs/why.md +206 -0
- package/package.json +5 -3
- package/src/actor.ts +541 -79
- package/src/agent.ts +114 -38
- package/src/ambient.ts +2 -1
- package/src/assembly-checks.ts +189 -7
- package/src/cause.ts +234 -0
- package/src/chart.ts +169 -37
- package/src/charts.ts +34 -6
- package/src/config.ts +430 -178
- package/src/custodian.ts +74 -22
- package/src/customize.ts +188 -46
- package/src/dispatch-effect.ts +945 -0
- package/src/door-compat.ts +217 -0
- package/src/durability.ts +11 -4
- package/src/effect.ts +341 -44
- package/src/effector-wire.ts +160 -11
- package/src/fail.ts +209 -0
- package/src/harness-client.ts +541 -47
- package/src/http-effect.ts +495 -53
- package/src/http.ts +427 -16
- package/src/index.ts +60 -82
- package/src/instance.ts +68 -8
- package/src/internal.ts +84 -0
- package/src/machine-doc.ts +21 -3
- package/src/mechanism-routes.ts +168 -0
- package/src/model-keys.generated.ts +53 -0
- package/src/model-keys.ts +18 -58
- package/src/notices.ts +66 -13
- package/src/open-body.ts +159 -23
- package/src/open-effect.ts +81 -8
- package/src/open.ts +59 -6
- package/src/parts.ts +184 -13
- package/src/party.ts +68 -2
- package/src/pick.ts +463 -11
- package/src/pool.ts +247 -36
- package/src/registration.ts +83 -4
- package/src/repos.ts +2 -1
- package/src/run-host.ts +565 -31
- package/src/run-output.ts +38 -0
- package/src/sandbox-effect.ts +273 -38
- package/src/sandbox-kube.ts +3 -1
- package/src/secret-placement.ts +52 -17
- package/src/server.ts +3 -0
- package/src/setup.ts +239 -56
- package/src/size.ts +121 -9
- package/src/snapshot-store.ts +54 -10
- package/src/stub-harness.ts +44 -16
- package/src/timers.ts +14 -1
- package/src/vocabulary.ts +69 -14
- package/src/wire.ts +90 -16
- package/src/workspace.ts +697 -175
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Cancel a run
|
|
3
|
+
description: End a live run with CANCEL, and delete its Sandboxes or keep them to look inside.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cancel a run
|
|
7
|
+
|
|
8
|
+
End a live run with `CANCEL`, and delete its [Sandboxes](../reference/glossary.md#sandbox) or keep them to look inside.
|
|
9
|
+
|
|
10
|
+
In the commands on this page, replace these values:
|
|
11
|
+
|
|
12
|
+
- `<run id>`: the id of the run. A prefix of the id, 4 characters or more, also works with `jr2`. `jr2 run` prints the
|
|
13
|
+
id in the line `run <run id> (<workflow>) — attached`.
|
|
14
|
+
- `<namespace>`: the namespace of your [Instance](../reference/glossary.md#instance). It is the
|
|
15
|
+
[`name`](../reference/config.md#name) in `jr2.config.ts`. When `jr2.config.ts` sets no `name`, it is the name of the
|
|
16
|
+
Instance folder.
|
|
17
|
+
- `<context>`: the kubectl context that `jr2` uses. It is the current kubectl context, or the value of `--context`.
|
|
18
|
+
|
|
19
|
+
Give each `jr2` command in the Instance folder.
|
|
20
|
+
|
|
21
|
+
## Cancel the run
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
jr2 send <run id> --event CANCEL
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
→ context <context> / namespace <namespace>
|
|
29
|
+
sent CANCEL to 0a90c659-a2f4-44ed-ae03-ca711ca30ce4
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
`jr2` prints the full run id, also when you give a prefix. Your run id is different. Then these things occur:
|
|
33
|
+
|
|
34
|
+
- The run ends with the status `cancelled`. It does not start again when the
|
|
35
|
+
[Orchestrator](../reference/glossary.md#orchestrator) restarts.
|
|
36
|
+
- The [Turn](../reference/glossary.md#turn) of each [Agent](../reference/glossary.md#agent) in the run ends.
|
|
37
|
+
- The Orchestrator deletes each Sandbox of the run. When a Sandbox goes, a commit that you did not push goes with it.
|
|
38
|
+
- A run that a `dispatch` [Effect](../reference/glossary.md#effect) of this run started does not end. It is a run of its
|
|
39
|
+
own. Cancel it with its own run id. `jr2 status <run id>` lists it in a `dispatched:` line. See
|
|
40
|
+
[Start a run from a run](start-a-run-from-a-run.md).
|
|
41
|
+
|
|
42
|
+
A `jr2 run` that is attached to the run prints `→ cancelled`, then the state that the run was in. Then it prints the
|
|
43
|
+
status of the run as JSON and exits with the code 0.
|
|
44
|
+
|
|
45
|
+
## Keep the Sandboxes
|
|
46
|
+
|
|
47
|
+
To look inside the Sandboxes after the run ends, add `--keep`:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
jr2 send <run id> --event CANCEL --keep
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
→ context <context> / namespace <namespace>
|
|
55
|
+
sent CANCEL to 723cf388-c1cf-4b42-a628-8b7715754ca1; its Workspaces are kept
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The run ends as before, but the Orchestrator does not delete its Sandboxes. To open a shell in one, see
|
|
59
|
+
[Look inside a Sandbox](look-inside-a-sandbox.md). A [Workspace](../reference/glossary.md#workspace) in
|
|
60
|
+
[Placing](../reference/glossary.md#placing) deletes its Sandbox at once, also with `--keep`. Its Sandbox has no node
|
|
61
|
+
yet, so it has nothing to look inside.
|
|
62
|
+
|
|
63
|
+
Nothing renews the [Lease](../reference/glossary.md#lease) of a Workspace that you keep. The
|
|
64
|
+
[operator](../concepts/architecture.md#the-operator) deletes its Sandbox 30 minutes after the last renewal. To delete
|
|
65
|
+
the Sandbox before then, find its name. The label `jr2.dev/run` takes the full run id that `jr2 send` printed:
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
kubectl -n <namespace> get sandboxes -l jr2.dev/run=<run id>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
[Look inside a Sandbox](look-inside-a-sandbox.md#find-the-sandbox) shows the output of this command. Then give the name
|
|
72
|
+
to this command:
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
kubectl -n <namespace> delete sandbox <sandbox>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
sandbox.core.jr2.dev "ws-723cf388-x-12-1k4kghb" deleted from <namespace> namespace
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Your Sandbox name is different.
|
|
83
|
+
|
|
84
|
+
## Read how the run ended
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
jr2 status <run id>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
→ context <context> / namespace <namespace>
|
|
92
|
+
{"runId":"0a90c659-a2f4-44ed-ae03-ca711ca30ce4","workflow":"task","instanceId":"19b49b58-2ea4-4d79-b100-49aad6e12013","status":"cancelled","value":"running",…}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`jr2 status` prints the status of the run as one line of JSON. Its `status` is `cancelled`, and its `value` is the state
|
|
96
|
+
that the run was in when you cancelled it.
|
|
97
|
+
|
|
98
|
+
## Cancel from HTTP
|
|
99
|
+
|
|
100
|
+
A client that is not the CLI sends `CANCEL` to
|
|
101
|
+
[`POST /runs/:runId/events`](../reference/http-api.md#post-runs-runid-events), with the Instance token. The path takes
|
|
102
|
+
the full run id, not a prefix. To get the Instance token, see
|
|
103
|
+
[Open the Console](open-the-console.md#get-the-instance-token). To keep the Sandboxes, add `"keep": true` to the body.
|
|
104
|
+
This example reaches the Orchestrator through the port forward in [Open the Console](open-the-console.md):
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
curl -X POST http://localhost:4000/runs/<run id>/events \
|
|
108
|
+
-H "authorization: Bearer <Instance token>" \
|
|
109
|
+
-d '{"type":"CANCEL","keep":true}'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
{"ok":true}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Rules
|
|
117
|
+
|
|
118
|
+
- `--keep` goes only with `--event CANCEL`. With `--gate` or with a different event, `jr2 send` exits with the code 2:
|
|
119
|
+
`jr2 send: --keep goes with --event CANCEL alone (it keeps a cancelled run's Workspaces)`
|
|
120
|
+
- Without `--gate`, `CANCEL` is the only event. Each other event exits with the code 2:
|
|
121
|
+
`jr2 send: unknown event "<event>" (run control accepts: CANCEL; workflow events need --gate)`. To send an event of
|
|
122
|
+
the [Workflow](../reference/glossary.md#workflow) to a [Gate](../reference/glossary.md#gate), see
|
|
123
|
+
[Answer a Gate](answer-a-gate.md).
|
|
124
|
+
- A prefix of fewer than 4 characters exits with the code 2: `jr2: run id "<run id>" is too short (need 4+ characters)`
|
|
125
|
+
- A prefix that finds no run exits with the code 1: `no run "<run id>"`. A prefix that finds two or more runs exits with
|
|
126
|
+
the code 1, and lists them: `error: run id "<run id>" is ambiguous`
|
|
127
|
+
- `CANCEL` changes only a live run. A run that has already ended does not change, and `jr2 send` still prints
|
|
128
|
+
`sent CANCEL to <run id>`. A full id of no run also prints `sent CANCEL to <run id>`, because `jr2 send` does not look
|
|
129
|
+
up a full id.
|
|
130
|
+
- A run that faults is not live, so `CANCEL` does not delete its Sandboxes. The operator deletes them 30 minutes after
|
|
131
|
+
the last renewal of their Lease.
|
|
132
|
+
- A cancelled run does not continue. To do the work again, start a new run.
|
|
133
|
+
- [`POST /runs/:runId/events`](../reference/http-api.md#post-runs-runid-events) refuses a body with a different `type`
|
|
134
|
+
with the status 400: `unknown event type "<type>" (accepts: CANCEL)`
|
|
135
|
+
- It refuses a `keep` that is not `true` or `false` with the status 400: `"keep" must be a boolean`
|
|
136
|
+
- It refuses a request with no valid token with the status 401: `unauthorized`. It refuses a Sandbox token with the
|
|
137
|
+
status 403: `run state and control need the Instance token — a Sandbox token has neither`
|
|
138
|
+
- A path with a prefix of the run id, or with an id of no run, gets `{"ok":true}` with the status 200. Nothing changes.
|
|
139
|
+
|
|
140
|
+
## Read next
|
|
141
|
+
|
|
142
|
+
- [Durable runs](../concepts/durable-runs.md)
|
|
143
|
+
- [ADR-0025](../reference/decisions/0025-cancel-ends-a-run-stop-parks-it.md): why CANCEL ends a run and deletes its
|
|
144
|
+
Sandboxes.
|
|
145
|
+
- [`jr2 send`](../reference/cli.md#send)
|
|
146
|
+
- [Look inside a Sandbox](look-inside-a-sandbox.md)
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Clean up
|
|
3
|
+
description: Remove old images and unused Repo resources with jr2 gc, and remove an Instance with jr2 down.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Clean up
|
|
7
|
+
|
|
8
|
+
Remove the images and the [Repo](../reference/glossary.md#repo) resources that nothing uses, or remove an
|
|
9
|
+
[Instance](../reference/glossary.md#instance) from its cluster.
|
|
10
|
+
|
|
11
|
+
The examples on this page use the [Get started](../get-started/install.md) names: the Instance `my-instance` and the
|
|
12
|
+
kubectl context `kind-jr2`. Your output shows your names, sizes and counts.
|
|
13
|
+
|
|
14
|
+
## Know what removes images
|
|
15
|
+
|
|
16
|
+
You seldom need a command to remove images. [`jr2 up`](../reference/cli.md#up) removes the images that nothing uses at
|
|
17
|
+
the end of each converge that succeeds. [`jr2 down`](../reference/cli.md#down) removes them after it deletes the
|
|
18
|
+
namespace. [`jr2 gc`](../reference/cli.md#gc) does the same work when you ask for it, for example when your disk is
|
|
19
|
+
full.
|
|
20
|
+
|
|
21
|
+
jr2 removes only an image that it built and labeled, and only when no live root in the cluster names it. It removes the
|
|
22
|
+
image from your computer. On a kind cluster, it also removes it from each node. It does not remove an image from a
|
|
23
|
+
registry. [Converge](../concepts/converge.md#clean-up) explains the live roots.
|
|
24
|
+
|
|
25
|
+
## See what jr2 gc removes
|
|
26
|
+
|
|
27
|
+
Run `jr2 gc` with `--dry-run` first. It removes nothing, and it lists each image and each Repo resource that it would
|
|
28
|
+
remove:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
jr2 gc --dry-run
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
jr2 gc — images on kind-jr2 that no live root names (dry run: nothing is removed)
|
|
36
|
+
would sweep 1 image(s) (336.5 MB)
|
|
37
|
+
jr2-sandbox-my-instance-default:6389bdf72d50-amd64
|
|
38
|
+
repos: would sweep nothing — every Repo resource is bound by a Machine or was attached within 7d
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Here, the image is an old Sandbox Image that the last `jr2 up` kept on the kind node.
|
|
42
|
+
|
|
43
|
+
`jr2 gc` reads the cluster of the current kubectl context. It does not read an Instance folder, so you can run it from
|
|
44
|
+
any folder. It reads each Instance on the cluster, so it has no `-n` option. To use a different cluster, add
|
|
45
|
+
`--context <context>`.
|
|
46
|
+
|
|
47
|
+
## Remove the images and the Repo resources
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
jr2 gc
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
jr2 gc — images on kind-jr2 that no live root names
|
|
55
|
+
swept 1 image(s) (336.5 MB)
|
|
56
|
+
repos: swept nothing — every Repo resource is bound by a Machine or was attached within 7d
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
In this output, `jr2 gc` removed no Repo resource. `jr2 gc` does not ask you to confirm. It removes a Repo resource when
|
|
60
|
+
these two conditions are true:
|
|
61
|
+
|
|
62
|
+
- No registered [Machine](../reference/glossary.md#machine) binds the Repo.
|
|
63
|
+
- No run attached the Repo, and nothing made it, in the last 7 days.
|
|
64
|
+
|
|
65
|
+
After jr2 removes a Repo resource, the Repo cache on each node can remove its copy of the Repo. It removes the copy when
|
|
66
|
+
nothing on the node uses it. `--repo-ttl` changes the time limit of the second condition. For example, `--repo-ttl 12h`
|
|
67
|
+
removes a Repo resource that no Machine binds and that no run attached in the last 12 hours. `--repo-ttl 0` removes each
|
|
68
|
+
Repo resource that no Machine binds. The last line then gives the count and the time limit:
|
|
69
|
+
`repos: swept 1 Repo resource(s) no Machine binds and no run attached within 0`.
|
|
70
|
+
|
|
71
|
+
## Remove an Instance from the cluster
|
|
72
|
+
|
|
73
|
+
Run `jr2 down` in the Instance folder:
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
jr2 down
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
remove instance "my-instance" from context kind-jr2 (delete namespace "my-instance")? [y/N] y
|
|
81
|
+
deleting namespace "my-instance" (runs, store, and Sandboxes go with it)
|
|
82
|
+
swept 2 image(s) (317.0 MB)
|
|
83
|
+
removed
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`jr2 down` asks you to confirm, unless you add `--yes`. Type `y`. Then it deletes the namespace of the Instance and
|
|
87
|
+
waits until the namespace is gone. These things go with the namespace:
|
|
88
|
+
|
|
89
|
+
- The [Orchestrator](../reference/glossary.md#orchestrator) and the runs, with the store of the runs.
|
|
90
|
+
- Each [Sandbox](../reference/glossary.md#sandbox). A commit that is not pushed is lost with its Sandbox.
|
|
91
|
+
- The [Instance Harness](../reference/glossary.md#instance-harness) and the conversations that it keeps.
|
|
92
|
+
- Each Secret in the namespace. This includes the Instance token and the Secrets that you made with `kubectl`, for
|
|
93
|
+
example for [`harness.envFrom`](../reference/config.md#harness-envfrom), for a `valueFrom` in
|
|
94
|
+
[`secrets`](../reference/config.md#secrets) and for the git ssh key.
|
|
95
|
+
|
|
96
|
+
Then `jr2 down` removes the images that nothing uses now. The Instance folder does not change.
|
|
97
|
+
|
|
98
|
+
To put the Instance on the cluster again, make your Secrets again first. Then run `jr2 up`. When `jr2 up` makes a new
|
|
99
|
+
deploy key for git, it is a new key. Register its public key again. See
|
|
100
|
+
[Give the cluster git credentials](give-the-cluster-git-credentials.md).
|
|
101
|
+
|
|
102
|
+
`jr2 down` does not remove the copies of the Repos on each node. They are in `/var/lib/jr2/<namespace>/repos` on the
|
|
103
|
+
node, and nothing uses them. On kind, they are in the node container, and they go when you delete the cluster.
|
|
104
|
+
|
|
105
|
+
To remove the Instance in CI, add `--yes`. To remove it from a different namespace or cluster, add `-n <namespace>` or
|
|
106
|
+
`--context <context>`.
|
|
107
|
+
|
|
108
|
+
## Remove the operator too
|
|
109
|
+
|
|
110
|
+
The operator is in the namespace `jr2-system`. All the Instances on a cluster share it. When you remove the last
|
|
111
|
+
Instance, run `jr2 down --all` in place of `jr2 down`:
|
|
112
|
+
|
|
113
|
+
```sh
|
|
114
|
+
jr2 down --all
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
remove instance "my-instance" from context kind-jr2 (delete namespace "my-instance" AND the per-cluster operator)? [y/N] y
|
|
119
|
+
deleting namespace "my-instance" (runs, store, and Sandboxes go with it)
|
|
120
|
+
uninstalling the operator (jr2-system)
|
|
121
|
+
swept 2 image(s) (259.1 MB)
|
|
122
|
+
removed
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
> **Danger**
|
|
126
|
+
>
|
|
127
|
+
> Use `--all` only when no other Instance is on the cluster. `--all` deletes the Sandbox and Repo resource types. Thus the
|
|
128
|
+
> Sandboxes and the Repo resources of each Instance on the cluster go with them.
|
|
129
|
+
|
|
130
|
+
`jr2 down --all` removes the operator only while the namespace of the Instance is on the cluster. After a plain
|
|
131
|
+
`jr2 down`, it refuses with `not deployed here …`. To remove the operator then, run `jr2 up` again. Then run
|
|
132
|
+
`jr2 down --all`. On kind, you can delete the cluster.
|
|
133
|
+
|
|
134
|
+
`jr2 down --all` does not remove the two PriorityClasses that `jr2 up` adds, `jr2-control` and `jr2-sandbox`. To remove
|
|
135
|
+
them, run this command:
|
|
136
|
+
|
|
137
|
+
```sh
|
|
138
|
+
kubectl delete priorityclass jr2-control jr2-sandbox --ignore-not-found
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
When [`priorityClasses`](../reference/config.md#priorityclasses) names your own class for `control` or `sandbox`,
|
|
142
|
+
`jr2 up` does not add `jr2-control` or `jr2-sandbox` for that tier.
|
|
143
|
+
|
|
144
|
+
## Remove the kind cluster
|
|
145
|
+
|
|
146
|
+
Run `jr2 down` in each Instance folder. For the last one, add `--all`. Then delete the kind cluster:
|
|
147
|
+
|
|
148
|
+
```sh
|
|
149
|
+
jr2 down --all
|
|
150
|
+
kind delete cluster --name jr2
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
`jr2 down` removes the images of its Instance from your computer. `kind delete cluster` cannot do this, because the
|
|
154
|
+
images are in your docker, not in the cluster. The images that your Dockerfiles name in `FROM` stay, and so does the
|
|
155
|
+
build cache of docker.
|
|
156
|
+
|
|
157
|
+
## Rules
|
|
158
|
+
|
|
159
|
+
- `jr2 down` runs only in an Instance folder. In a different folder, it exits with the code 1:
|
|
160
|
+
`error: not inside a jr2 instance — no jr2.config.ts found walking up from cwd`
|
|
161
|
+
- `jr2 down` with no kubectl context exits with the code 1: `error: no kube context — nothing to remove from`
|
|
162
|
+
- `jr2 down` refuses a namespace that holds no Instance, and exits with the code 1:
|
|
163
|
+
`not deployed here — namespace "<namespace>" on <context> holds no jr2 instance`. Check the context and the namespace.
|
|
164
|
+
`-n` and `--context` change them. `jr2 down --all` also refuses this way after a plain `jr2 down`, and the operator
|
|
165
|
+
stays.
|
|
166
|
+
- `jr2 down` refuses a namespace that belongs to a different Instance, and exits with the code 1:
|
|
167
|
+
`refusing: namespace "<namespace>" on <context> belongs to another instance ("<owner>")`
|
|
168
|
+
- When you do not type `y` or `yes`, `jr2 down` changes nothing, and exits with the code 1:
|
|
169
|
+
`aborted — nothing was changed`
|
|
170
|
+
- When no terminal is attached, `jr2 down` cannot ask, so it changes nothing. It prints
|
|
171
|
+
`<question> — not a tty; pass --yes to proceed non-interactively`, then `aborted — nothing was changed`. It exits with
|
|
172
|
+
the code 1. Add `--yes`.
|
|
173
|
+
- `jr2 down` refuses when the Instance and the [jr2 CLI](../reference/glossary.md#jr2-cli) do not use the same
|
|
174
|
+
[Kit version](../reference/glossary.md#kit-version). The refusal starts with
|
|
175
|
+
`error: Kit version mismatch — an Instance has one (ADR-0056):`. See
|
|
176
|
+
[Fix a failed converge](fix-a-failed-converge.md#rules).
|
|
177
|
+
- When the namespace is gone but the image sweep fails, `jr2 down` exits with the code 0. It prints:
|
|
178
|
+
`image sweep failed (<error>) — the instance is still removed`. Run `jr2 gc` later.
|
|
179
|
+
- `jr2 gc` with no kubectl context exits with the code 1:
|
|
180
|
+
``error: no kube context — `jr2 gc` decides what is garbage by asking a cluster what it still needs``
|
|
181
|
+
- `jr2 gc` refuses a `--repo-ttl` that is not a number with `d`, `h` or `m`, or `0`. It exits with the code 1 before it
|
|
182
|
+
reads the cluster: `error: --repo-ttl "<ttl>" is not a TTL — use <n>d, <n>h, or <n>m (or 0 for now)`
|
|
183
|
+
- When `jr2 gc` cannot read each live root, it removes nothing, and exits with the code 1:
|
|
184
|
+
`error: the roots could not be read (<error>)`, then
|
|
185
|
+
` nothing was swept — a keep set missing one root would delete images the cluster still needs`. The error in the
|
|
186
|
+
parentheses can come from kubectl, from docker or from a kind node. Fix that cause, then run `jr2 gc` again.
|
|
187
|
+
- When `jr2 gc` cannot read the Repo resources, it exits with the code 1:
|
|
188
|
+
`error: the Repo resources could not be read (<error>)`
|
|
189
|
+
- On a kind node, jr2 removes a whole image. Thus it keeps a tag whose image also has a tag that a live root names. It
|
|
190
|
+
prints: `kept <count> tag(s) — their image id also carries a tag a live root names: <tags>`. On your computer, jr2
|
|
191
|
+
removes each tag that no live root names.
|
|
192
|
+
- When docker or a node refuses to remove an image, jr2 prints: `failed to remove <count> image(s): <images>`
|
|
193
|
+
- When `jr2 up` cannot remove the old images, the converge still succeeds. It prints:
|
|
194
|
+
`images: sweep skipped (<error>) — the converge stands`. Run `jr2 gc` later.
|
|
195
|
+
|
|
196
|
+
## Read next
|
|
197
|
+
|
|
198
|
+
- [Converge](../concepts/converge.md)
|
|
199
|
+
- [ADR-0039](../reference/decisions/0039-image-garbage-collects-by-reachability.md): why jr2 removes an image when no
|
|
200
|
+
live root names it.
|
|
201
|
+
- [ADR-0051](../reference/decisions/0051-a-repo-is-a-slot-on-the-workspace-and-a-cache-on-the-node.md): why `jr2 gc`
|
|
202
|
+
removes a Repo resource when no Machine binds it and no run attached it in the last 7 days.
|
|
203
|
+
- [ADR-0019](../reference/decisions/0019-one-converging-command-against-the-current-context.md): why `jr2 down` asks you
|
|
204
|
+
to confirm.
|
|
205
|
+
- [`jr2 gc`](../reference/cli.md#gc), [`jr2 down`](../reference/cli.md#down)
|
|
206
|
+
- [Cancel a run](cancel-a-run.md)
|