Skip to content

Instantly share code, notes, and snippets.

@sashman
Forked from progrium/consulkv
Last active February 1, 2017 09:59
Show Gist options
  • Save sashman/9d0e550549bc193a4a024761844211ac to your computer and use it in GitHub Desktop.
Save sashman/9d0e550549bc193a4a024761844211ac to your computer and use it in GitHub Desktop.
Consul KV client, depends on jq
#!/bin/bash
# Usage
# consulkv service-url servicename servicetag
CONSUL="localhost:8500"
main() {
case "$1" in
info)
curl -s "$CONSUL/v1/kv/$2" | jq -r .[]
;;
get)
curl -s "$CONSUL/v1/kv/$2" | jq -r .[].Value | base64 -d | sed 's/$/\n/'
;;
set)
curl -s -X PUT -d "$3" "$CONSUL/v1/kv/$2" > /dev/null
;;
del)
curl -s -X DELETE -d "$3" "$CONSUL/v1/kv/$2" > /dev/null
;;
ls)
if [[ "$2" == "" ]]; then
curl -s "$CONSUL/v1/kv/?keys" | jq -r .[]
else
curl -s "$CONSUL/v1/kv/$2/?keys" | jq -r .[] | sed "s|$2/||"
fi
;;
service-url)
curl -s -X GET "$CONSUL/v1/catalog/service/$2?tag=$3" | jq -r '.[] | .ServiceAddress, .ServicePort' | paste -d ':' - -
;;
esac
}
main "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment