In this challenge, you'll practice how to pass secrets to functions and use them within your code.
Preparation
To complete this challenge, ensure you have a Dagger module initialized at ~/my-module using your preferred SDK.
Passing secrets to functions
Implement a function named readSecret that takes a parameter of type secret
called secret and simply returns it as-is.
In the following examples, you'll call this function and pass secrets to it from various providers. To complete each challenge, enter the plaintext secret values into the appropriate input fields.
Hint 1 💡
Secret providers are documented here.
Hint 2 💡
The command you need to use:
dagger call read-secret --secret <???> plaintext
💡 plaintext method returns the plaintext value of the secret.
Hint 3 💡
Try addressing the secret: provider://identifier.
Environment variable MY_SECRET:
File ~/.secret:
Result of executing ~/secret.sh:
Read from Vault (running locally) from path my/secret (key: value):
Using secrets in containers
Implement a function named secretVar that accepts a parameter of type secret called secret,
and returns an alpine container with the secret mounted as an environment variable named MY_SECRET.
Hint 4 💡
Take a look at this example.
Implement a function named secretMount that accepts a parameter of type secret called secret,
and returns an alpine container with the secret mounted as a file at /tmp/secret.
Hint 5 💡
Take a look at this example.
References
- Dagger documentation