Standalone server with TLS
Important Note: This chart is not compatible with Helm 2. Please use Helm 3.6+ with this chart.
This example can be used to set up a single server Vault cluster using TLS.
- Create key & certificate using Kubernetes CA
- Store key & cert into Kubernetes secrets store
- Configure helm chart to use Kubernetes secret from step 2
1. create key & certificate using kubernetes CA
There are four variables that will be used in this example.
Create a key for Kubernetes to sign.
Create a Certificate Signing Request (CSR).
Create a file
${TMPDIR}/csr.conf
with the following contents:Create a CSR.
Create the certificate
Important Note: If you are using EKS, certificate signing requirements have changed. As per the AWS certificate signing documentation, EKS version
1.22
and later now requires thesignerName
to bebeta.eks.amazonaws.com/app-serving
, otherwise, the CSR will be approved but the certificate will not be issued.Create a file
${TMPDIR}/csr.yaml
with the following contents:Send the CSR to Kubernetes.
If this process is automated, you may need to wait to ensure the CSR has been received and stored:
kubectl get csr ${CSR_NAME}
Approve the CSR in Kubernetes.
Verify that the certificate was approved and issued.
2. store key, cert, and kubernetes CA into kubernetes secrets store
Retrieve the certificate.
If this process is automated, you may need to wait to ensure the certificate has been created. If it hasn't, this will return an empty string.
Write the certificate out to a file.
Retrieve Kubernetes CA.
Create the namespace.
Store the key, cert, and Kubernetes CA into Kubernetes secrets.
3. helm configuration
The below custom-values.yaml
can be used to set up a single server Vault cluster using TLS.
This assumes that a Kubernetes secret
exists with the server certificate, key and
certificate authority: