Run Vault on OpenShift
Important Note: This chart is not compatible with Helm 2. Please use Helm 3.6+ with this chart.
The following documentation describes installing, running, and using Vault and Vault Agent Injector on OpenShift.
Note: We recommend using the Vault agent injector on Openshift
instead of the Secrets Store CSI driver. OpenShift
does not recommend
using hostPath
mounting in production or
certify Helm charts
using CSI objects because pods must run as privileged. If you would like to run the Secrets Store
CSI driver on a development or testing cluster, refer to
installation instructions for the Vault CSI provider.
Requirements
The following are required to install Vault and Vault Agent Injector on OpenShift:
- Cluster Admin privileges to bind the
auth-delegator
role to Vault's service account - Helm v3.6+
- OpenShift 4.X
- Vault Helm v0.6.0+
- Vault K8s v0.4.0+
Note: Support for Consul on OpenShift is available since Consul 1.9. However, for highly available deployments, Raft integrated storage is recommended.
Additional Resources
The documentation, configuration and examples for Vault Helm and Vault K8s Agent Injector are applicable to OpenShift installations. For more examples see the existing documentation:
Helm Chart
The Vault Helm chart is the recommended way to install and configure Vault on OpenShift. In addition to running Vault itself, the Helm chart is the primary method for installing and configuring Vault Agent Injection Mutating Webhook.
While the Helm chart automatically sets up complex resources and exposes the configuration to meet your requirements, it does not automatically operate Vault. You are still responsible for learning how to monitor, backup, upgrade, etc. the Vault cluster.
Security Warning: By default, the chart runs in standalone mode. This mode uses a single Vault server with a file storage backend. This is a less secure and less resilient installation that is NOT appropriate for a production setup. It is highly recommended to use a properly secured Kubernetes cluster, learn the available configuration options, and read the production deployment checklist.
How-To
Install Vault
To use the Helm chart, add the Hashicorp helm repository and check that you have access to the chart:
Important: The Helm chart is new and under significant development.
Please always run Helm with --dry-run
before any install or upgrade to verify
changes.
Use helm install
to install the latest release of the Vault Helm chart.
Or install a specific version of the chart.
The helm install
command accepts parameters to override default configuration
values inline or defined in a file. For all OpenShift deployments, global.openshift
should be set to true
.
Override the server.dev.enabled
configuration value:
Override all the configuration found in a file:
Dev mode
The Helm chart may run a Vault server in development. This installs a single Vault server with a memory storage backend.
Dev mode: This is ideal for learning and demonstration environments but NOT recommended for a production environment.
Install the latest Vault Helm chart in development mode.
Highly Available Raft Mode
The following creates a Vault cluster using the Raft integrated storage backend.
Install the latest Vault Helm chart in HA Raft mode:
Next, initialize and unseal vault-0
pod:
Finally, join the remaining pods to the Raft cluster and unseal them. The pods will need to communicate directly so we'll configure the pods to use the internal service provided by the Helm chart:
To verify if the Raft cluster has successfully been initialized, run the following.
First, login using the root
token on the vault-0
pod:
Next, list all the raft peers:
Vault with integrated storage (Raft) is now ready to use!
External mode
The Helm chart may be run in external mode. This installs no Vault server and relies on a network addressable Vault server to exist.
Install the latest Vault Helm chart in external mode.
Tutorial
Refer to the Integrate a Kubernetes Cluster with an External Vault tutorial to learn how to use an external Vault within a Kubernetes cluster.