title | type | weight |
---|---|---|
UDS Runner |
docs |
4 |
UDS CLI contains vendors and configures the maru-runner build tool to make compiling and building UDS bundles simple.
To run a task from a tasks.yaml
:
uds run <task-name>
uds run -f <path/to/tasks.yaml> <task-name>
The Maru docs describe how to build tasks.yaml
files to configure the runner. The functionality in UDS CLI is mostly identical with the following exceptions
When running a tasks.yaml
with uds run my-task
you can set variables using environment prefixed with UDS_
For example, running UDS_FOO=bar uds run echo-foo
on the following task will echo bar
.
variables:
- name: FOO
default: foo
tasks:
- name: echo-foo
actions:
- cmd: echo ${FOO}
To run uds
commands from within a task, you can invoke your system uds
binary using the ./uds
syntax. Similarly, UDS CLI vendors Zarf, and tasks can run vendored Zarf commands using ./zarf
. For example:
tasks:
- name: default
actions:
- cmd: ./uds inspect k3d-core-istio-dev:0.16.1 # uses system uds
- cmd: ./zarf tools kubectl get pods -A # uses vendored Zarf
When running tasks with uds run
, there is a special UDS_ARCH
environment variable accessible within tasks that is automatically set to your system architecture, but is also configurable with a UDS_ARCHITECTURE
environmental variable. For example:
tasks:
- name: print-arch
actions:
- cmd: echo ${UDS_ARCH}
- Running
uds run print-arch
will echo your local system architecture - Running
UDS_ARCHITECTURE=amd64 uds run print-arch
will echo "amd64"
Since UDS CLI also vendors Zarf, there is no need to also have Zarf installed on your system.