Creating a secret
To create a secret in tensorkube, you can use the following command:- Contain only lowercase alphanumeric characters (a-z, 0-9), hyphens(-) and, period(.)
- Start and end with an alphanumeric character (a-z, 0-9).
- Be a maximum of 253 characters.
Arguments:
- SECRET_NAME: [required]
- KEYVALUES…: [required], Space-separated KEY=VALUE items
- —env ENV_NAME: [optional], Environment in which the secret is created. If not specified, default environment is used.
- —force: [optional], Overwrite the secret if it already exists.
When updating a secret, it’s important to redeploy any application that uses this secret.
Failure to do so may result in inconsistencies in application behavior, as any running pods
might still be using the old secret value but any new onces created will use the updated values.
To ensure consistent behavior, always redeploy your applications after updating a secret.
If you have quotes in secret value, you should escape them with a backslash to preserve the quotes. For example, if you want to store
password=my_pa"ss"word
, you should use tensorkube secret create dummy-secret password=my_pa\"ss\"word
.
Doing this will let you store actual value which is password=my_pa"ss"word
.Listing secrets
You can list out created secrets using the command:Arguments:
- —env ENV_NAME: [Optional] Specify the environment to list the secrets from. If not specified, secrets from the default environment will be listed.
Deleting secrets
You can delete a secret using the command:Arguments:
- SECRET_NAME: [Required], The name of the secret you want to delete.
- —env ENV_NAME: [Optional], Specify the environment from which the secret should be deleted. If not specified, the secret will be deleted from the default environment.
Using secrets in deployments
You can use secrets in a deployment using the--secret
flag in the deploy command. Secrets are exposed
as environment variables in your deployed code.
Example
Let’s say you create a secret with the commandContainer builds with secrets
If you want to access your secrets during container builds, you can use them in your Dockerfile by mounting them as typesecret
in Dockerfile. You would need to
specify the following RUN
command before the step where you want to use the secret.
KEY1
as id
and env
values in the --mount
flag. ** Do not use the secret name as the key name.**
Also, do not forget to deploy the service with the --secret
flag to make the secret available during both build and runtime.
Example 1: Echo secret during build
1
Create a secret
2
Create a Dockerfile
3
Deploy with the secret flag
KEY1
from secret1
during build:
If you have multiple secrets, you can mount them as follows:
Dockerfile
Example 2: Cloning a private repository during build
If you want to clone a private repository during build with Personal access tokens, you can use secrets using below steps. Ensure that your token has proper permissions.1
Add the github token as a secret
2
Mount the secret in Dockerfile
Note that I am using
GITHUB_TOKEN
here, which was the KEY
of our secret insread of github-secrets
which was the secret name.3
Accessing secrets during deployment runtime
Using secrets in deployment is straightforward. You can access these in your code as follows during runtime:main.py