Using a workload secret in Spark application code
To use the workload secret credentials, you can read the credentials that are mounted into the Spark drivers and executors as read-only files.
The workload secrets are mounted into the Spark drivers and executors in this path:
/etc/dex/secrets/<workload-credential-name>/<credential-key-1> /etc/dex/secrets/<workload-credential-name>/<credential-key-2>
Example workload credentials to use in the application code:
The workload credential is created with the command below.
./cde credential create --name workload-cred-1 --type workload-credential --workload-cred-key db-pass --workload-cred-key aws-secret
The secrets can be read as local files from the paths below within the Spark drivers and
executors:
/etc/dex/secrets/workload-cred-1/aws-secret /etc/dex/secrets/workload-cred-1/db-pass
Example of a PySpark application code to read a secret:
from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("Sample DB Connection") \ .getOrCreate() # read the password from the local file dbPass=open("/etc/dex/secrets/workload-cred-1/db-pass").read() # use the password in a jdbc connection jdbcDF= spark.read \ .jdbc("jdbc:postgresql:dbserver", "schema.tablename", properties={"user": "username", "password": dbPass})