Skip to content

Commit

Permalink
capi docs: add intermediate ca how-to
Browse files Browse the repository at this point in the history
We're adding a guide that shows how intermediate CAs can be
generated using HashiCorp Vault and passed to CAPI using
management cluster secrets.
  • Loading branch information
petrutlucian94 committed Jan 31, 2025
1 parent c24d820 commit da0cc23
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/src/capi/howto/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Perform an in-place upgrade <in-place-upgrades>
Upgrade the providers of a management cluster <upgrade-providers>
Migrate the management cluster <migrate-management>
Refresh workload cluster certificates <refresh-certs>
How to use intermediate CAs with Vault <intermediate-ca>
Troubleshooting <troubleshooting>
```

Expand Down
46 changes: 46 additions & 0 deletions docs/src/capi/howto/intermediate-ca.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# How to use intermediate CAs with Vault

By default, the ClusterAPI provider will generate self-signed CA certificates
for the workload clusters.

Follow this guide to prepare an intermediate Certificate Authority (CA) using
HashiCorp Vault and then configure ClusterAPI to use the generated certificates.

## Preparing Vault

For the purpose of this guide, we are going to install HashiCorp Vault using
snap and start a Vault server in development mode.

```bash
sudo snap install vault
vault server -dev &
```

Specify the vault address through an environment variable:

```bash
export VAULT_ADDR=http://localhost:8200
```

Enable the PKI secrets engine and set the maximum lease time to 10 years
(87600 hours):

```bash
vault secrets enable pki
vault secrets tune -max-lease-ttl=87600h pki
```

## Generating the CA certificates

Generate the root CA certificate:

```bash
vault write -format=json pki/root/generate/internal \
common_name=vault \
ttl=87600h \
> root_ca.json
```

Generate the intermediate CA certificate. We need the resulting Certificate
Signing Request (CSR) and private key, so for convenience we'll use JSON
formatting.

0 comments on commit da0cc23

Please sign in to comment.