config wip
Go to file
2022-11-16 01:38:04 -06:00
cmd implement remote loading via op cli 2022-11-16 01:38:04 -06:00
internal/op-client implement remote loading via op cli 2022-11-16 01:38:04 -06:00
pkg/config implement remote loading via op cli 2022-11-16 01:38:04 -06:00
go.mod implement parsing and conversion, get command 2022-11-16 00:46:14 -06:00
go.sum implement parsing and conversion, get command 2022-11-16 00:46:14 -06:00
main.go implement parsing and conversion, get command 2022-11-16 00:46:14 -06:00
README.md hello: !!secret world 2022-11-15 00:34:12 -06:00

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.

# 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 
# 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
# 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