Azure Kubernetes - Python To Read Configmap?
Solution 1:
Create a configMap with the configuration file:
$ kubectl create configmap my-config--from-file my-config.fileMount the configMap in your Pod's container and use it from your application:
volumeMounts:-name:configmountPath:"/config-directory/my-config.file"subPath:"my-config.file"volumes:-name:configconfigMap:name:my-configNow, your config file will be available in /config-directory/my-config.file. You can read it from your Python code like below:
config = open("/config-directory/my-config.file", "r")
You can also use configMap's data as the container's env - Define container environment variables using configMap data
config = os.environ['MY_CONFIG']
Solution 2:
When creating an app for Kubernetes, it is good to follow the The Twelve Factor App principles. There is one item about Config that recommends to store environment specific app settings as environment variables.
In Python environment variables can be read with os.environ, example:
import osprint(os.environ['DATABASE_HOST'])
print(os.environ['DATABASE_USER'])
And you can create those environment variables using kubectl with:
kubectl create configmap db-settings --from-literal=DATABASE_HOST=example.com,DATABASE_USER=dbuserI would recommend to handle your environment settings with kubectl kustomize as described in Declarative Management of Kubernetes Objects Using Kustomize, especially with the configmapGenerator and apply them to different environments with:
kubectl apply -k <environment>/
Post a Comment for "Azure Kubernetes - Python To Read Configmap?"