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.
What would you like to be added?
kubectl create secret --from-literal=key=secret-valueis 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/urandombut 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=./filebut: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 thekeykey. 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.