Often times you have many different containers with shared environment environment variables and secrets. Ideally, we want to keep DRY and declare our environment variables only once securely and use them wherever needed. The SecretEnvSource and ConfigMapEnvSource APIs let you do this for your containers.
According to the Kubernetes docs:
ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable.
I guess ConfigMaps are just maps for configuration...