On , I learnt ...

About envsubst

Am learning Kubernetes and was looking for ways to dynamically create YAML resource files.

I stumbled upon the envsubst utility which will substitute in the value of environment variables to STDIN.

Eg:

> export foo=bar
> echo '$foo'
$foo
> echo '$foo' | envsubst
bar

So you could have a Kubernetes deployment.yml file where the image tag is set by a environment variable instead of being hard-coded:

> export DOCKER_IMAGE_TAG=...
> cat deployment.yml | envsubst | kubectl apply -f -

I’m sure there are better ways of setting up Kubernetes deployment pipelines but this is a neat trick to know.