Description
What would you like to be added?
kubectl create secret --from-literal=key=secret-value
is very handy. I have a use case where I'm creating a secret that needs to be binary (an encryption key), be of a certain size, and use all of those bits for entropy. I'm taking randomness from /dev/urandom
but cannot use it as a literal value since it's binary.
I could put the secret material into a file and use kubectl create secret --from-file=./file
but:
- Secret data hitting the disk is undesirable as it's potentially less secure.
- Secret is potentially exposed on disk, even if briefly.
- It's a hassle to clean up the file in the script, potentially leaving it behind, exposing it later.
Ideally I'd use something like kubectl create secret --from-base64-literal="key=$(head -c 64 /dev/urandom | base64)"
to generate a value of 64 bytes, base64 encode it, pass to kubectl. It would decode it, persist into the cluster.
Yet another idea (can open a separate issue) is to have --random-value-for-key=key=64
. It would generate a random value of length 64 and persist it into the key
key. Even nicer and more secure (secret is not exposed on disk and via command line flags, where it can be seen by other processes) for bootstrapping a secret (from a script or console).
/sig cli
Why is this needed?
Better scripting experience, more secure secret data handling.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status