52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
|
# joao
|
||
|
|
||
|
a very wip configuration manager. keep config in the filesystem, back it up to 1password. Make it available to services via vault + 1password connect.
|
||
|
|
||
|
```yaml
|
||
|
# config/.joao.yaml
|
||
|
# the 1password vault to use as storage
|
||
|
vault: nidito
|
||
|
# the prefix to prepend to all configs from this directory
|
||
|
prefix: example
|
||
|
# think about single config or config in files
|
||
|
```
|
||
|
|
||
|
```yaml
|
||
|
# config/host/juazeiro.yaml
|
||
|
address: 142.42.42.42
|
||
|
dc: bah0
|
||
|
mac: !!secret 00:11:22:33:44:55
|
||
|
tls:
|
||
|
cert: !!secret |
|
||
|
-----BEGIN CERTIFICATE-----
|
||
|
...
|
||
|
-----END CERTIFICATE-----
|
||
|
roles:
|
||
|
- consul-client
|
||
|
- nomad-client
|
||
|
- http
|
||
|
token:
|
||
|
bootstrap: !!secret 01234567-89ab-cdfe-0123-456789abcdef
|
||
|
```
|
||
|
|
||
|
```sh
|
||
|
# NAME can be either a filesystem path or a colon delimited item name
|
||
|
# for example: config/host/juazeiro.yaml or host:juazeiro
|
||
|
|
||
|
# DOT_DELIMITED_PATH is
|
||
|
# for example: tls.cert, roles.0, dc
|
||
|
|
||
|
joao get NAME [--output|-o=(raw|json|yaml)] [--remote|--local] [jq expr]
|
||
|
joao set NAME [--from=/path/to/input] [--secret] [--flush] DOT_DELIMITED_PATH [<<<"value"]
|
||
|
joao flush NAME [--dry-run]
|
||
|
joao fetch NAME [--dry-run]
|
||
|
# PREFIX is a prefix to search for keys at, i.e. NAME[.DOT_DELIMITED_PATH]
|
||
|
joao list PREFIX
|
||
|
joao diff NAME [--cache]
|
||
|
joao repo init
|
||
|
joao repo status
|
||
|
joao repo filter clean FILE
|
||
|
joao repo filter diff PATH OLD_FILE OLD_SHA OLD_MODE NEW_FILE NEW_SHA NEW_MODE
|
||
|
joao repo filter smudge FILE
|
||
|
```
|