Skip to content

Commands

lely validate                 config, options, references: offline; prints the wiring
lely steps                    plugins: options, outputs, what each can do
lely schema [-o file]         a JSON Schema of the config, for editors
lely plan -t <target>         plan every step; changes nothing
lely show plan.json           show a saved plan
lely apply [plan.json]        run a reviewed plan — or, with -t, plan, show, ask and run
lely destroy -t <target>      take a target down again
lely status -t <target>       what is deployed right now, per step
lely ui <file>                a plan, or a run's record, as a page
lely doctor                   the tools, the workspace, the identity

-t is always given to a command that touches a workspace: there is no default target. The workspace comes from --profile, or from the variables the Databricks CLI and SDK already read.

Options

Option On
-t, --target plan apply destroy status The target. No default.
-c, --config all but show, ui lely.yml, or a pyproject.toml with [tool.lely]. Found from here up when not given.
-p, --profile plan apply destroy status doctor A ~/.databrickscfg profile, for the CLI and for plugins.
-o, --output plan Write the plan to a file.
apply destroy Write a record of the run to a file.
schema ui Where to write the schema, or the page.
-f, --format plan show apply destroy status rich (the default), json or md. With the last two, stdout holds that and nothing else.
--destroy plan Plan a teardown instead.
--yes apply destroy Don't ask: consent is given in the command.
--allow-destructive apply Apply changes marked destructive.
--from <step> apply destroy Start at this step; the ones passed over are planned, not run.
--github plan show apply destroy In a GitHub Actions run, keep the pull request's comment and the run's page current. → On GitHub
--open / --no-open ui Open the page in a browser.

-o and stdout

-o writes a file; what stdout holds besides depends on the command and on -f.

-f rich -f md -f json
plan -o plan.json the plan, then "Wrote plan.json" the Markdown, and nothing else nothing: the JSON is what the file holds
apply -o, destroy -o the result the Markdown, and nothing else the JSON, and nothing else

The plan file is JSON whatever -f says, so plan -f md -o plan.json gives a job both: the file to apply, and the Markdown to post. With -f md and -f json, and for a run's record with any format, "Wrote …" goes to stderr.

Exit codes

0 Done.
1 Something failed.
2 lely refused: nothing more will come of trying the same again. Mostly that means: plan again. The message says when it means something else, as for a step that still waits for what no step above it made. Or the command line is one lely can't make sense of.

plan, status, validate and doctor change nothing, so they have nothing to refuse: what goes wrong in them ends with 1.

A command line lely can't make sense of ends with 2 whatever the command — a missing or an empty -t, an option it doesn't know, lely apply with neither a plan file nor -t — and before the project's config is read or a workspace reached. So 2 from plan or status is always that.