Documentation
Ramble Documentation
# Pack Commands
Commands for discovering, rendering, and running Nomad packs.
## pack list
List packs from a registry.
```bash
# List all packs
ramble pack list
# List from specific namespace
ramble pack list --namespace myuser
# Search packs
ramble pack list --search mysql
# Use a different registry
ramble pack list --registry myregistry
```
**Flags:**
| Flag | Short | Description |
|------|-------|-------------|
| `--namespace` | `-n` | Filter by namespace |
| `--search` | `-s` | Search query |
| `--registry` | `-r` | Registry to use |
## pack info
Get detailed information about a pack.
```bash
ramble pack info myuser/mysql
# Show specific version
ramble pack info myuser/mysql@v1.2.0
```
**Output includes:**
- Pack name and description
- Available versions
- Variable definitions
- README content
## pack render
Render pack templates without submitting to Nomad.
```bash
# Render with variables
ramble pack render myuser/mysql --var db_name=mydb --var port=3306
# Render specific version
ramble pack render myuser/mysql@v1.2.0 --var db_name=mydb
# Variables from file
ramble pack render myuser/mysql --var-file vars.hcl
# Output to file
ramble pack render myuser/mysql --var db_name=mydb --output job.nomad.hcl
```
**Flags:**
| Flag | Short | Description |
|------|-------|-------------|
| `--var` | `-v` | Set variable (repeatable) |
| `--var-file` | `-f` | Load variables from HCL file |
| `--output` | `-o` | Write output to file |
| `--registry` | `-r` | Registry to use |
## pack run
Download, render, and submit a pack to Nomad.
```bash
# Run a pack
ramble pack run myuser/mysql --var db_name=mydb
# Dry run (render only, don't submit)
ramble pack run myuser/mysql --var db_name=mydb --dry-run
# Run specific version
ramble pack run myuser/mysql@v1.2.0 --var db_name=mydb
# Variables from file
ramble pack run myuser/mysql --var-file vars.hcl
```
**Flags:**
| Flag | Short | Description |
|------|-------|-------------|
| `--var` | `-v` | Set variable (repeatable) |
| `--var-file` | `-f` | Load variables from HCL file |
| `--dry-run` | | Render only, don't submit to Nomad |
| `--registry` | `-r` | Registry to use |
## Variable Files
Variables can be loaded from HCL files:
```hcl
# vars.hcl
db_name = "mydb"
port = 3306
datacenters = ["dc1", "dc2"]
resources = {
cpu = 500
memory = 256
}
```
Use with `--var-file vars.hcl`.
## Template Functions
Pack templates use `[[ ]]` delimiters and support these functions:
| Function | Description | Example |
|----------|-------------|---------|
| `var "name" .` | Get variable value | `[[ var "db_name" . ]]` |
| `meta "key" .` | Get pack metadata | `[[ meta "pack.name" . ]]` |
| `quote` | Wrap in quotes | `[[ var "name" . \| quote ]]` |
| `toStringList` | Convert to HCL list | `[[ var "dcs" . \| toStringList ]]` |
| `coalesce` | First non-empty value | `[[ coalesce (var "name" .) "default" ]]` |
| `toJSON` | Convert to JSON | `[[ var "config" . \| toJSON ]]` |
| `indent N` | Indent by N spaces | `[[ var "block" . \| indent 2 ]]` |