2.2 KiB
Kubectl create configmap/secret --env-file
Goals
Allow a Docker environment file (.env) to populate an entire ConfigMap
or Secret
.
The populated ConfigMap
or Secret
can be referenced by a pod to load all
the data contained within.
Design
The create configmap
subcommand would add a new option called
--from-env-file
. The option will accept a single file. The option may not be
used in conjunction with --from-file
or --from-literal
.
The create secret generic
subcommand would add a new option called
--from-env-file
. The option will accept a single file. The option may not be
used in conjunction with --from-file
or --from-literal
.
Environment file specification
An environment file consists of lines to be in VAR=VAL format. Lines beginning with # (i.e. comments) are ignored, as are blank lines. Any whitespace in front of the VAR is removed. VAR must be a valid C_IDENTIFIER. If the line consists of just VAR, then the VAL will be given a value from the current environment.
Any ill-formed line will be flagged as an error and will prevent the
ConfigMap
or Secret
from being created.
Docker's environment file processing
Examples
$ cat game.env
enemies=aliens
lives=3
enemies_cheat=true
enemies_cheat_level=noGoodRotten
secret_code_passphrase=UUDDLRLRBABAS
secret_code_allowed=true
secret_code_lives=30
Create configmap from an env file:
kubectl create configmap game-config --from-env-file=./game.env
The populated configmap would look like:
$ kubectl get configmaps game-config -o yaml
apiVersion: v1
data:
enemies: aliens
lives: 3
enemies_cheat: true
enemies_cheat_level: noGoodRotten
secret_code_passphrase: UUDDLRLRBABAS
secret_code_allowed: true
secret_code_lives: 30
Create secret from an env file:
kubectl create secret generic game-config --from-env-file=./game.env
The populated secret would look like:
$ kubectl get secret game-config -o yaml
apiVersion: v1
type: Opaque
data:
enemies: YWxpZW5z
enemies_cheat: dHJ1ZQ==
enemies_cheat_level: bm9Hb29kUm90dGVu
lives: Mw==
secret_code_allowed: dHJ1ZQ==
secret_code_lives: MzA=
secret_code_passphrase: VVVERExSTFJCQUJBUw==