Set a configuration key/value pair
Usage
$ skpr config set dev site.name Example
You can also tell Skpr to store your key/value pair as a secret, but please note these "secrets" are stored as Kubernetes secrets and can be decoded with relative ease. Anything stored should be appropriate for a developer on your project to see and consume.
$ skpr config set --secret dev google.analytics.api xxxxxxxxxxxxxxxxxxxxx
Handling multiline values with special characters
When dealing with multiline values, you may want to avoid special characters, such as dashes -, being incorrectly interpreted as
bash command options. To avoid this, add -- to signify the end of command options.
For example:
MY_SECRET_VALUE=$(cat /path/to/myfile.txt)
skpr config set --secret dev my.secret.key -- "${MY_SECRET_VALUE}"
Usage in CI/CD Pipelines
If you have a configuration item which is already set, you will be prompted to override the setting or not.
Key already exists, are you sure you want to replace it? [yes/no]:
This can cause some issues in CI. If you do not have access to stdin for the
command, you can run the command with the --force flag like this:
$ skpr config set --force --secret dev google.analytics.api xxxxxxxxxxxxxxxxxxxxx
More Information
$ skpr config set --help
usage: skpr config set [<flags>] <environment> <key> <value>
Sets a configuration key/value pair for the specified environment.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--secret Store the value as a Kubernetes secret.
--force Skip the confirmation prompt if the key already exists.
Args:
<environment> Environment as configured. Usually one of: prod/staging/dev.
<key> Name of the configuration key.
<value> Value to set.