Skip to content

OpenBao and cert-manager

OpenBao is an open-source fork of HashiCorp Vault, maintained by the Linux Foundation after Vault's license change to BSL. The API and CLI are fully compatible — the only visible difference is the bao command instead of vault.

Precondition

Cluster has to be deployed with the httpbin sample. Otherwise this demo wouldn't work.

Installation

You can start the installation script of OpenBao and cert-manager with the included shell script. httpbin and the OpenBao UI are exposed via Kong Gateway (Gateway API / HTTPRoute), which is the cluster's default ingress.

bash
cd examples/openbao
bash setup.sh

The following components are installed with the setup.sh:

  • OpenBao - HELM Chart (namespace: openbao)
  • Configuration of OpenBao server
    • Configure key-share and key-threshold
    • Unseal OpenBao server
    • Enable PKI, import Root CA
    • Create role to issue certificates for domain example.com
    • Enable Kubernetes auth, add policy for service account issuer
  • Install cert-manager - HELM Chart
  • Create service account issuer in cert-manager namespace
  • Create ClusterIssuer named openbao-issuer (connection to OpenBao)
  • Create certificate for www.example.com — places K8s secret with key, ca and cert in demo namespace
  • Configure Kong Gateway TLS listener and HTTPRoutes in demo/kong namespace to secure httpbin and the OpenBao UI with an OpenBao-signed wildcard certificate

Test Ingress

The httpbin HTTPRoute is added by this sample deployment. You can test the Ingress by adding the following entries to your /etc/hosts file:

bash
# Append to /etc/hosts
[...]

127.0.0.1		httpbin.example.com
127.0.0.1		openbao.example.com

After that you can open httpbin with the URL: https://httpbin.example.com:8081. When you have added the Root CA to your system Truststore, or your browser the connection should be secured correctly. You can find the Root CA certificate under: examples/openbao/root-certs/rootCACert.pem.

Show OpenBao UI

The OpenBao UI is exposed via Ingress, you can open it in a browser: https://openbao.example.com:8081/ui