I want to do the opposite of this question:
How to create secrets using Kubernetes Python client?
i.e.:
How do I read an existing secret from a kubernetes cluster via the kubernetes-python API?
The use case is: I want to authenticate to mongodb (running in my cluster) from a jupyter notebook (also running in my cluster) without, for obvious reasons, saving the mongodb auth password inside the jupyter notebook.
Thanks!
Now you can pull the secret. For example secret name - mysql-pass, namesapce - default
from kubernetes import client, config config.load_kube_config() v1 = client.CoreV1Api() secret = v1.read_namespaced_secret("mysql-pass", "default") print(secret)
If you need to extract decoded password from the secret
from kubernetes import client, config import base64 import sys
config.load_kube_config() v1 = client.CoreV1Api() sec = str(v1.read_namespaced_secret("mysql-pass", "default").data) pas = base64.b64decode(sec.strip().split()[1].translate(None, '}\'')) print(pas)
Hope this will help.