Skip to content

Conversation

@yhyakuna
Copy link
Contributor

@yhyakuna yhyakuna commented Dec 8, 2025

🔍 Deploy preview

This PR adds "Deploy Vault on zCX" page based on #1464.
Make the editorial updates to the original.

image

@yhyakuna yhyakuna requested a review from schavis December 8, 2025 01:36
@yhyakuna yhyakuna self-assigned this Dec 8, 2025
@yhyakuna yhyakuna requested a review from a team as a code owner December 8, 2025 01:36
@yhyakuna yhyakuna added the Vault Content update for Vault product docs label Dec 8, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

Vercel Previews Deployed

Name Status Preview Updated (UTC)
Dev Portal ✅ Ready (Inspect) Visit Preview Tue Dec 9 18:55:26 UTC 2025
Unified Docs API ✅ Ready (Inspect) Visit Preview Tue Dec 9 18:48:06 UTC 2025

@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

Broken Link Checker

No broken links found! 🎉

Comment on lines +10 to +14
This guide walks through deploying a fully secured 3-node HashiCorp Vault Enterprise cluster
on IBM z/OS Container Extensions (zCX). The setup uses three independent zCX instances,
each running Vault with its own unique IP address. A Layer-4 HAProxy load balancer sits
in front to distribute traffic, and end-to-end TLS encryption is applied across all Vault nodes
and the load balancer to ensure secure communication throughout the cluster.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This guide walks through deploying a fully secured 3-node HashiCorp Vault Enterprise cluster
on IBM z/OS Container Extensions (zCX). The setup uses three independent zCX instances,
each running Vault with its own unique IP address. A Layer-4 HAProxy load balancer sits
in front to distribute traffic, and end-to-end TLS encryption is applied across all Vault nodes
and the load balancer to ensure secure communication throughout the cluster.
Deploy a fully secured 3-node HashiCorp Vault Enterprise cluster on IBM z/OS
Container Extensions (zCX) with:
- Three independent zCX instances running Vault on unique IP addressed.
- A Layer-4 HAProxy load balancer to distribute traffic.
- End-to-end TLS encryption to ensure secure communication throughout the cluster.

Style correction: describe the outcome of following the how-to guide, not the contents of the guide


![Vault zCX cluster deployment](/img/run-as-zcx-cluster.png)

## Step 1: Container image deployment
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Step 1: Container image deployment
## Step 1: Get the Vault Enterprise image from Docker

Style correction: use verbs for headings and describe the outcome of the step


## Step 1: Container image deployment

1. Pull the official Vault Enterprise container image on all three zCX nodes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Pull the official Vault Enterprise container image on all three zCX nodes.
1. Use the Docker CLI to pull official Vault Enterprise container images on all three zCX nodes:

$ docker images | grep vault-enterprise
```

## Step 2: Persistent volume creation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Step 2: Persistent volume creation
## Step 2: Create a persistent volume on each node


Create Docker volumes for configuration and data persistence on each node.

1. Create volume for Vault data storage (Raft backend, audit logs).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Create volume for Vault data storage (Raft backend, audit logs).
1. Create volume for Vault data storage including an internal storage backend and space for audit logs:

Style correction: prefer "internal storage" over "Raft" when not discussing the mechanics of the storage, avoid parenthesis when possible

-v haproxy-config:/usr/local/etc/haproxy \
ibmz-hc-registry.ngrok.dev/haproxy:3.2
```

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we also set the VAULT_PROXY_ADDR to the load balancer URL and port for easier API calls later?

For example;

Suggested change
1. Set and export the `VAULT_PROXY_ADDR` environment variable in your local
terminal to the load balancer URL and port:
```shell-session
$ export VAULT_PROXY_ADDR="https://<load_balancer_id>:<port>"
```

Comment on lines +304 to +310
```shell-session
$ curl \
--cacert <CA_CERT_FILE> \
--header "X-Vault-Token: <VAULT_TOKEN>" \
https://<LOAD_BALANCER_IP>:<PORT>/v1/sys/storage/raft/configuration \
| jq .
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
```shell-session
$ curl \
--cacert <CA_CERT_FILE> \
--header "X-Vault-Token: <VAULT_TOKEN>" \
https://<LOAD_BALANCER_IP>:<PORT>/v1/sys/storage/raft/configuration \
| jq .
```
<Tabs>
<Tab heading="CLI" group="cli">
```shell-session
$ vault read \
-ca-cert "/path/to/vault.pem" \
-format json \
/sys/storage/raft/configuration \
| jq
```
</Tab>
<Tab heading="API" group="api">
```shell-session
$ curl \
--request POST \
--header "X-Vault-Token: ${VAULT_TOKEN}" \
--namespace "X-Vault-Namespace: ${VAULT_NAMESPACE}" \
--cacert <CA_CERT_FILE> \
${VAULT_PROXY_ADDR}/v1/sys/storage/raft/configuration \
| jq .
```
</Tab>
</Tabs>

We generally want new content to provide examples using both the CLI and the API so folks have example code regardless of which method they prefer

## Additional resources

- [Vault configuration parameters](/vault/docs/configuration)
- [Seal/unseal](/vault/docs/concepts/seal)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [Seal/unseal](/vault/docs/concepts/seal)

Folded into "Before you start"


- [Vault configuration parameters](/vault/docs/configuration)
- [Seal/unseal](/vault/docs/concepts/seal)
- [CLI command - operator init](/vault/docs/commands/operator/init)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [CLI command - operator init](/vault/docs/commands/operator/init)
- [CLI command - `operator init`](/vault/docs/commands/operator/init)

- [Vault configuration parameters](/vault/docs/configuration)
- [Seal/unseal](/vault/docs/concepts/seal)
- [CLI command - operator init](/vault/docs/commands/operator/init)
- [CLI command - operator unseal](/vault/docs/commands/operator/unseal) No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- [CLI command - operator unseal](/vault/docs/commands/operator/unseal)
- [CLI command - `operator unseal`](/vault/docs/commands/operator/unseal)

Copy link
Contributor

@schavis schavis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me know if you have any questions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Vault Content update for Vault product docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants