Command-line tool to interact with s3 bucket as a key/value store
Project description
kvs3
kvs3 is a tool for managing environment configuration values. It is intended for use with aws environments and uses an s3
bucket as a general key/value store.
Installing
$ pip install kvs3
Authenticating
kvs3 assumes running in an environment with an authenticated AWS user which has the appropriate permission to read/write
values to an s3 bucket used as the key/value store. Uses boto3 authentication method hierarchy in attempting aws access.
Setting up s3
Any s3 bucket can be used, but recommend configuring a bucket with versioning and server-side encryption. Kvs3 will use
the following sources (in order) to determine the s3 bucket name:
--bucketflag included in parameters- shell Environment var
KVS3_BUCKET - Run
$ kvs3 initand provide bucket name. Written to .kvs3 file used bykvs3to find bucket
Usage
Writing Keys
$ kvs3 write <service> <key> <value|->
This command will write a value to a key in s3 under the service path.
Example:
$ kvs3 --bucket my-key-value-store write my-app-env min-nodes 3
Will create an object in the s3 bucket named my-key-value-store with the name my-app-env/min-nodes and the contents 3.
Listing Keys
$ kvs3 list <service>
KEY SIZE MODIFIED
min-nodes 3 2019-06-27 23:37:48
max-nodes 10 2019-06-30 23:28:52
list will show the key names for a given service, along with other the size in bytes of the value and the date when
the key was last modified.
Reading Keys
$ kvs3 read <service> <key>
`read` outputs the value of a single configuration key.
Setting shell environment with multiple key values
The setenv command is used as part of a deployment pipeline to setup runtime environment variables for use in a
deployment pipeline. Create a keyfile with a simple list of key values, such as:
$ cat <<EOF > env.vars
MIN_NODES
MAX_NODES
DOCKER_REGISTRY
Now, use setenv to create the output used by bash source to define Environment variables.
$ kvs3 setenv my-app-env env.vars > local.env
Results in local.env containing the following example contents:
# source my-app-env environment config
export MIN_NODES=3
export MAX_NODES=5
export DOCKER_REGISTRY=quay.io
This file can be used $source local.env in a linux environment to create the environment configuration values used
by a deployment pipeline.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kvs3-0.0.5.tar.gz.
File metadata
- Download URL: kvs3-0.0.5.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1582cc40e53a7406b60ad77938e3ff734bf340a0d03a376f73b9c9547dc63be8
|
|
| MD5 |
a8b8de565121c2180c528d9a30fcd1e0
|
|
| BLAKE2b-256 |
56638a9173d0998605e9af6ba512d2df48de838272b26e89d81869202a244831
|
File details
Details for the file kvs3-0.0.5-py3-none-any.whl.
File metadata
- Download URL: kvs3-0.0.5-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b170aa7f27e7877d2a8e2d4ff62c2de33ecb1b9c816508fd3c47b73d1db907db
|
|
| MD5 |
20da7238bde47ff3dfe2334ce80aca4f
|
|
| BLAKE2b-256 |
bcae936aceaf497e29adce14481ab684002d5313d9c768f8ff67b74d863cbc0d
|