Part of #74: the first production component of SXCHNGE.
What changes
infra/prod/vault/: Compose files for exch (nodes 1 and 2) and infra-gamma (node 3), one config per node (raft, retry_join to all three), and start.sh, which passes the transit seal token from a secret file to the Vault server process only.
Ports are published on the private addresses only: exch 8200/8201 and 8210/8211, infra-gamma 8200/8201. Applications on exch use http://vault:8200 on the Docker network sxchnge.
Nodes unseal themselves through the transit seal on the platform Vault (key sxchnge-vault-unseal, created exportable so its backup can be kept by the holders).
make prod-images reuses the local resolver: latest stable hashicorp/vault, pinned by digest in ignored .local/prod/images.env, one file for all nodes. Today it resolves 2.2.1@sha256:962a9287….
infra/prod/README.md: layout, first rollout, node replacement, recovery when the platform Vault is lost.
infra/local/scripts/test.sh: shellcheck also covers infra/prod/vault/start.sh.
Validation
docker compose -f exch.yml config and -f gamma.yml config: pass.
The repository's shellcheck commands (-x -S warning) on the changed scripts: pass.
make prod-images: resolved and wrote the pin.
git diff --check: clean.
Not run yet: the live rollout. It follows infra/prod/README.md on the servers and is reported in #74; merge after it.
Out of scope
KV, AppRole and policies, the Mongo database plugin, Mongo and NATS clusters, CI deployment, raft snapshots, monitoring.
Part of #74: the first production component of SXCHNGE.
### What changes
- `infra/prod/vault/`: Compose files for `exch` (nodes 1 and 2) and `infra-gamma` (node 3), one config per node (raft, `retry_join` to all three), and `start.sh`, which passes the transit seal token from a secret file to the Vault server process only.
- Ports are published on the private addresses only: exch 8200/8201 and 8210/8211, infra-gamma 8200/8201. Applications on `exch` use `http://vault:8200` on the Docker network `sxchnge`.
- Nodes unseal themselves through the `transit` seal on the platform Vault (key `sxchnge-vault-unseal`, created exportable so its backup can be kept by the holders).
- `make prod-images` reuses the local resolver: latest stable `hashicorp/vault`, pinned by digest in ignored `.local/prod/images.env`, one file for all nodes. Today it resolves `2.2.1@sha256:962a9287…`.
- `infra/prod/README.md`: layout, first rollout, node replacement, recovery when the platform Vault is lost.
- `infra/local/scripts/test.sh`: shellcheck also covers `infra/prod/vault/start.sh`.
### Validation
- `docker compose -f exch.yml config` and `-f gamma.yml config`: pass.
- The repository's shellcheck commands (`-x -S warning`) on the changed scripts: pass.
- `make prod-images`: resolved and wrote the pin.
- `git diff --check`: clean.
- Not run yet: the live rollout. It follows `infra/prod/README.md` on the servers and is reported in #74; merge after it.
### Out of scope
KV, AppRole and policies, the Mongo database plugin, Mongo and NATS clusters, CI deployment, raft snapshots, monitoring.
Two nodes on exch and one on infra-gamma, plain Compose per server, ports
on the private addresses only. Nodes unseal through the transit seal on the
platform Vault; the transit token reaches only the server process.
make prod-images resolves the latest stable Vault release once and pins its
digest in ignored .local/prod/images.env, so every node runs the same build.
infra/prod/README.md records the layout, the first rollout, node
replacement and recovery when the platform Vault is lost (#74).
The UI stays reachable on the private addresses only. Integrated raft storage runs with mlock disabled, as on the platform Vault and as Vault recommends for raft.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #74: the first production component of SXCHNGE.
What changes
infra/prod/vault/: Compose files forexch(nodes 1 and 2) andinfra-gamma(node 3), one config per node (raft,retry_jointo all three), andstart.sh, which passes the transit seal token from a secret file to the Vault server process only.exchusehttp://vault:8200on the Docker networksxchnge.transitseal on the platform Vault (keysxchnge-vault-unseal, created exportable so its backup can be kept by the holders).make prod-imagesreuses the local resolver: latest stablehashicorp/vault, pinned by digest in ignored.local/prod/images.env, one file for all nodes. Today it resolves2.2.1@sha256:962a9287….infra/prod/README.md: layout, first rollout, node replacement, recovery when the platform Vault is lost.infra/local/scripts/test.sh: shellcheck also coversinfra/prod/vault/start.sh.Validation
docker compose -f exch.yml configand-f gamma.yml config: pass.-x -S warning) on the changed scripts: pass.make prod-images: resolved and wrote the pin.git diff --check: clean.infra/prod/README.mdon the servers and is reported in #74; merge after it.Out of scope
KV, AppRole and policies, the Mongo database plugin, Mongo and NATS clusters, CI deployment, raft snapshots, monitoring.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.