• HashiCorp Developer

  • HashiCorp Cloud Platform
  • Terraform
  • Packer
  • Consul
  • Vault
  • Boundary
  • Nomad
  • Waypoint
  • Vagrant
Vault
  • Install
  • Tutorials
  • Documentation
  • API
  • Integrations
  • Try Cloud(opens in new tab)
  • Sign up
Vault Home

Documentation

Skip to main content
  • Documentation
  • What is Vault?
  • Use Cases

  • Browser Support
  • Installing Vault

  • Vault Integration Program
  • Vault Interoperability Matrix
  • Troubleshoot

    • Overview
      • Overview
      • Agent Injector vs. Vault CSI Provider
        • Overview
        • Running Vault
        • Enterprise Licensing
        • Running Vault on OpenShift
        • Configuration
        • Terraform





  • Glossary


  • Resources

  • Tutorial Library
  • Certifications
  • Community Forum
    (opens in new tab)
  • Support
    (opens in new tab)
  • GitHub
    (opens in new tab)
  1. Developer
  2. Vault
  3. Documentation
  4. Platforms
  5. Kubernetes
  6. Helm Chart
  7. Enterprise Licensing
  • Vault
  • v1.11.x
  • v1.10.x
  • v1.9.x
  • v1.8.x
  • v1.7.x
  • v1.6.x
  • v1.5.x
  • v1.4.x

»Vault Enterprise License Management

You can use this Helm chart to deploy Vault Enterprise by following a few extra steps around licensing.

Note: As of Vault Enterprise 1.8, the license must be specified via HCL configuration or environment variables on startup, unless the Vault cluster was created with an older Vault version and the license was stored. More information is available in the Vault Enterprise License docs.

Important Note: This chart is not compatible with Helm 2. Please use Helm 3.6+ with this chart.

Vault Enterprise 1.8+

License Install

First create a Kubernetes secret using the contents of your license file. For example, the following commands create a secret with the name vault-ent-license and key license:

secret=$(cat 1931d1f4-bdfd-6881-f3f5-19349374841f.hclic)
kubectl create secret generic vault-ent-license --from-literal="license=${secret}"

Note: If you cannot find your .hclic file, please contact your sales team or Technical Account Manager.

In your chart overrides, set the values of server.image to one of the enterprise release tags. Also set the name of the secret you just created in server.enterpriseLicense.

# config.yaml
server:
  image:
    repository: hashicorp/vault-enterprise
    tag: 1.12.1-ent
  enterpriseLicense:
    secretName: vault-ent-license

Now run helm install:

$ helm install hashicorp hashicorp/vault -f config.yaml

Once the cluster is initialized and unsealed, you may check the license status using the vault license get command:

kubectl exec -ti vault-0 -- vault license get

License Update

To update the autoloaded license in Vault, you may do the following:

  • Update your license secret with the new license data
new_secret=$(base64 < ./new-license.hclic | tr -d '\n')

cat > patch-license.yaml <<EOF
data:
  license: ${new_secret}
EOF

kubectl patch secret vault-ent-license --patch "$(cat patch-license.yaml)"
  • Wait until vault license inspect shows the updated license

    Since the inspect command is reading the license file from the mounted secret, this tells you when the updated secret has been propagated to the mount on the Vault pod.

kubectl exec vault-0 -- vault license inspect
  • Reload Vault's license config

    You may use the sys/config/reload/license API endpoint:

kubectl exec vault-0 -- vault write -f sys/config/reload/license

Or you may issue an HUP signal directly to Vault:

kubectl exec vault-0 -- pkill -HUP vault
  • Verify that vault license get shows the updated license
kubectl exec vault-0 -- vault license get

Vault Enterprise prior to 1.8

In your chart overrides, set the values of server.image to one of the enterprise release tags. Install the chart, and initialize and unseal vault as described in Running Vault.

After Vault has been initialized and unsealed, setup a port-forward tunnel to the Vault Enterprise cluster:

kubectl port-forward vault-0 8200:8200

Next, in a separate terminal, create a payload.json file that contains the license key like this example:

{
  "text": "01ABCDEFG..."
}

Finally, using curl, apply the license key to the Vault API:

curl \
  --header "X-Vault-Token: VAULT_LOGIN_TOKEN_HERE" \
  --request POST \
  --data @payload.json \
  http://127.0.0.1:8200/v1/sys/license

To verify that the license installation worked correctly, using curl, run the following:

curl \
  --header "X-Vault-Token: VAULT_LOGIN_TOKEN_HERE" \
  http://127.0.0.1:8200/v1/sys/license
Edit this page on GitHub

On this page

  1. Vault Enterprise License Management
  2. Vault Enterprise 1.8+
  3. Vault Enterprise prior to 1.8
Give Feedback(opens in new tab)
  • Certifications
  • System Status
  • Terms of Use
  • Security
  • Privacy
  • Trademark Policy
  • Trade Controls
  • Give Feedback(opens in new tab)