not.bot Verify: Preflight Checklist

not.bot™ Verify: Pre-flight Checklist

Complete every item before you open the Deployment Checklist. Missing prerequisites cause most first-deploy failures.


Infrastructure

# Requirement How to verify Done
1 Kubernetes cluster with a configured kubectl context kubectl cluster-info returns a running control plane
2 Helm 3 installed helm version shows v3.x
3 helm-diff plugin installed helm plugin list includes diff
4 PostgreSQL 14 or later, reachable from inside the cluster psql -h <HOST> -U <USER> -c "SELECT version();" shows 14+
5 Keycloak 22 or later, reachable from inside the cluster Browse to your Keycloak admin console and confirm login
6 A container registry your cluster can pull from docker pull <YOUR_REGISTRY>/any-existing-image succeeds
7 Cluster supports internal LoadBalancer Services Managed K8s (EKS/GKE/AKS) supports this by default. On bare-metal, kubectl get pods -n metallb-system shows running pods

Workstation tools

# Requirement How to verify Done
8 openssl openssl version returns a version
9 OpenBao CLI (bao) installed bao --version returns a version

If you intend to rebuild the OpenBao image from source for supply-chain validation, also install Docker with buildx. See Deployment Checklist Appendix A. The mainline flow uses the pre-built image shipped in the chart and requires no compiler toolchain.

Access

# Requirement How to verify Done
10 DNS control for the domain in your deployment-config.json You can add a TXT record at the root of that domain
11 DNS control for the internal zone holding your admin service hostname You can add a CNAME for Decision H in that zone
12 Permission to create namespaces in the Kubernetes cluster kubectl auth can-i create namespaces returns yes
13 Permission to create secrets in the Kubernetes cluster kubectl auth can-i create secrets returns yes

Deployment package

# Requirement How to verify Done
14 deployment-config.json from your welcome email File contains your customerId, organizationName, apiKey, billingServerUrl, and domain
15 not.bot_verify_deployment.zip from your welcome email Unzips to a helm/ directory with three subdirectories: admin-service, openBao, signer-service

Decisions to make before you start

You will need these values during deployment. Decide on them now so you are not stopping mid-checklist.

# Decision Your value
A Kubernetes namespace for OpenBao _______________
B Kubernetes namespace for the admin service _______________
C Kubernetes namespace for signature servers _______________
D OpenBao namespace name (internal to OpenBao, not Kubernetes) _______________
E PostgreSQL database name _______________
F PostgreSQL admin user — name (default notbot_admin) and password name: _______________ password: _______________
G PostgreSQL signer user — name (default notbot_signer) and password name: _______________ password: _______________
H Internal hostname operators use to reach the admin UI (e.g. admin.internal.example.com) _______________
I Internal hostname for the signature server load balancer (e.g. signer.internal.example.com) _______________
J TLS certificate for the admin LB (cloud-managed cert ARN/resource ID, or path to BYO cert + key) _______________
K TLS certificate for the signature server LB (Decision I's hostname). May be the same multi-SAN cert as Decision J or a separate cert. _______________

Decision H appears in Keycloak redirects, Helm values, and your internal DNS zone. Decision I appears in Helm values, your internal DNS zone, and the SDK configuration. Use the exact same value everywhere each one appears.


If any item above is incomplete, resolve it before proceeding. The Deployment Checklist assumes all of these are in place.