Tools
What's available inside the uis-provision-host container and how to install optional tools.
The provision-host ships with a small set of always-present tools and a larger catalogue of optional CLIs you install on demand. Listing and installing happens through the ./uis tools command. The image stays small by default — you only add what your workflow needs.
Listing what's available
./uis tools list
Output is a table of every tool the system knows about, with status ✅ Built-in, ✅ Installed, or ❌ Not installed.
Built-in tools (always present)
These are baked into the image at build time. No install step needed.
| ID | Name | What it does |
|---|---|---|
kubectl | Kubernetes CLI | The standard Kubernetes command-line client. Used by every UIS deploy script. |
k9s | K9s | Terminal UI for Kubernetes — pod logs, exec, resource browsing. Run with k9s inside ./uis shell. |
helm | Helm | Kubernetes package manager. Used by ./uis deploy for chart-based services (PostgreSQL, Grafana, Authentik, etc.). |
ansible | Ansible | The automation engine that drives every UIS deploy playbook under ansible/playbooks/. |
Installable on demand
These have install scripts under provision-host/uis/tools/. Run ./uis tools install <id> to install one; the entry flips from ❌ Not installed to ✅ Installed in ./uis tools list.
| ID | Name | Description | Size | Website |
|---|---|---|---|---|
aws-cli | AWS CLI | Command-line interface for Amazon Web Services | ~200MB | https://aws.amazon.com/cli/ |
azure-cli | Azure CLI | Command-line interface for Microsoft Azure | ~637MB | https://docs.microsoft.com/en-us/cli/azure/ |
gcp-cli | Google Cloud CLI | Command-line interface for Google Cloud Platform | ~500MB | https://cloud.google.com/sdk/docs/install |
opentofu | OpenTofu | Open-source infrastructure-as-code (Terraform fork) | ~30MB | https://opentofu.org/ |
Bundles
Meta-installers that install a known-good set of dependencies in one command. Useful when you know what you want to do but not which individual tools are needed.
| ID | Name | Description | Bundles | Size |
|---|---|---|---|---|
azure-aks | Azure AKS dependencies | Everything ./uis platform <verb> azure-aks needs | azure-cli + opentofu | ~667MB |
Bundles are regular install scripts; re-running an install is idempotent (already-installed components are skipped). To uninstall, run ./uis tools uninstall on the individual components — the bundle's own uninstall is informational only, to avoid removing a component you still want for other purposes.
Installing a tool
# Install a single tool
./uis tools install azure-cli
# Confirm it landed
./uis tools list
# Use it
./uis exec az --version
Where the install lives
The install script invokes the upstream installer (e.g. Microsoft's aka.ms/InstallAzureCLIDeb, OpenTofu's get.opentofu.org/install-opentofu.sh) inside the running container. The new binary is written to a system path and survives restarts of the container.
What disappears on docker rm
Installed tools live inside the running container's writable layer. They survive ./uis stop / ./uis start and ./uis restart. They do not survive docker rm (or anything else that destroys the container, like ./uis pull after a major image change). If you destroy and recreate the container, re-run ./uis tools install <id> for any optional tools you need.
When you need a specific tool
| You're doing… | You need… | Install command |
|---|---|---|
Provisioning AKS via platforms/azure-aks/ | azure-cli, opentofu | ./uis tools install azure-aks (bundle) |
| Working with AWS resources | aws-cli | ./uis tools install aws-cli |
| Working with Google Cloud | gcp-cli | ./uis tools install gcp-cli |
Default UIS deploys (./uis deploy <service>) | nothing extra — built-ins are enough | — |
Source of truth
The tool catalogue is defined by:
- Built-in list —
provision-host/uis/lib/tool-installation.sh:22(BUILTIN_TOOLS). - Installable scripts —
provision-host/uis/tools/install-*.sh, one per tool, withTOOL_ID/TOOL_NAME/TOOL_DESCRIPTION/TOOL_CATEGORY/TOOL_SIZE/TOOL_WEBSITEmetadata at the top. - Generated index —
website/src/data/tools.json, regenerated byprovision-host/uis/manage/uis-docs.shwhenever a tool is added or changed.
The runtime ./uis tools list and this page are both views of the same underlying source.
Adding a new tool
This is a contributor task. See Tools system architecture for the install-script shape and the steps to add a new optional tool.