/
Inject Secret
Inject an Azure Key Vault secret directly into a container application
Note: The prerequisites are required to complete this tutorial.
We start by creating a definition for the Azure Key Vault secret we want to inject:
akvs-secret-inject.yaml
apiVersion: spv.no/v2beta1
kind: AzureKeyVaultSecret
metadata:
  name: secret-inject 
  namespace: akv-test
spec:
  vault:
    name: akv2k8s-test # name of key vault
    object:
      name: my-secret # name of the akv object
      type: secret # akv object typeApply to Kubernetes:
$ kubectl apply -f akvs-secret-inject.yaml
azurekeyvaultsecret.spv.no/secret-inject createdList AzureKeyVaultSecret's:
$ kubectl -n akv-test get akvs
NAME           VAULT          VAULT OBJECT   SECRET NAME         SYNCHED
secret-inject  akv2k8s-test   my-secretThen we deploy a Pod having a env-variable pointing to the secret above.
secret-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: akvs-secret-app
  namespace: akv-test
  labels:
    app: akvs-secret-app
spec:
  selector:
    matchLabels:
      app: akvs-secret-app
  template:
    metadata:
      labels:
        app: akvs-secret-app
    spec:
      containers:
      - name: akv2k8s-env-test
        image: spvest/akv2k8s-env-test:2.0.1
        args: ["TEST_SECRET"]
        env:
        - name: TEST_SECRET
          value: "secret-inject@azurekeyvault" # ref to akvsApply to Kubernetes:
$ kubectl apply -f secret-deployment.yaml
deployment.apps/akvs-secret-app createdThings to note from the Deployment yaml above:
containers:
  - name: akv2k8s-env-test
    image: spvest/akv2k8s-env-test:2.0.1 # 1.    args: ["TEST_SECRET"] # 2.    env:
    - name: TEST_SECRET # 3.      value: "secret-inject@azurekeyvault" # 4.- We use a custom built Docker image for testing purposes that only outputs the content of the env-variables passed in as args in #2. Feel free to replace this with your own Docker image.
 - Again, specific for the Docker test image we are using (in #1), we pass in which environment variables we want the container to print values for
 - Name of the environment variable
 - By using the special akv2k8s Env Injector convention 
<azure-key-vault-secret-name>@azurekeyvaultto reference the AzureKeyVaultSecretsecret-injectwe created earlier. The env-injector will download this secret from Azure Key Vault and inject into the executable running in your Container. 
To see the log output from your Pod, execute the following command:
kubectl -n akv-test logs deployment/akvs-secret-appCleanup
kubectl delete -f akvs-secret-inject.yaml
kubectl delete -f secret-deployment.yaml