Deployment
How the National Social Registry is packaged as an extension of the Registry Platform, and how to deploy it on Kubernetes.
The National Social Registry is not a registry built from scratch. It is a thin extension of the OpenG2P Registry Platform, which publishes the runnable Docker images and the openg2p-registry Helm chart. This repository adds only the NSR domain on top.
How the NSR is packaged
Three layers, each inherited from the platform and narrowed by this repo:
Code
The runtime images (openg2p-registry-*) — core, APIs, celery, UI
nsr-extension — Individual and Household registers, their sub-registers, schemas, services, seed metadata. Thin FROM-image Dockerfiles select it at runtime via REGISTRY_EXTENSION_MODULE.
Deployment
The openg2p-registry chart — every template, service, IAM/Keycloak wiring
openg2p-nsr — a wrapper chart: a pinned dependency plus a values overlay, and templates only for the analytics/reporting layer. See Helm chart.
Tests
The sanity harness + the extension-independent tests
Only the NSR field-specific tests. See Sanity testing.
The platform version is pinned in two places that move together: RP_VERSION in each Dockerfile (the base image tag) and the openg2p-registry dependency version in the wrapper chart's Chart.yaml. Nothing about the platform is vendored or copied.
Helm chart — the wrapper chart, what it deploys, and how it is configured.
Data seeding — the seed content this repo owns and the inherited machinery that applies it.
Sanity testing — the two-part test model and what the NSR contributes.
Where the artifacts are
Helm chart
helm/openg2p-nsr, published to the openg2p/charts GitLab Helm registry
Docker images
openg2p/openg2p-nsr-<name>
Versions & changelog
Prerequisites
Infrastructure and environment created.
Full admin rights to the cluster and the Rancher UI.
commons-services deployed in the environment. The registry bundles none of the shared services — Keycloak, master-data, Consent Manager, Partner Management, the Approval Workflow Engine (AWE) and Audit Manager all come from commons-services and are reached through
global.*URLs.
The db-seed Job waits for AWE to be healthy before it runs. If AWE is down, db-seed blocks, Helm's install timeout expires, and the release is marked failed before the sanity Job is ever created. Confirm commons-services is healthy first.
Installation
Using Rancher (recommended)
Log in to the Rancher console and select the cluster and namespace.
Under Apps → Repositories, ensure the OpenG2P catalogue repository is added.
Under Apps → Charts, refresh repositories and select OpenG2P National Social Registry.
Choose the version. Three-digit versions are frozen;
-developversions are moving — tick Show pre-release versions to see0.0.0-develop.N.Give the installation a name (the release name is free and scopes the resources, so more than one registry can share a namespace), tick Customize Helm options before install, then Next.
Review the values and Install.
The configuration form shows the same questions as the platform chart — they are inherited from the pinned openg2p-registry dependency at packaging time rather than duplicated here, so they never drift. Platform-level settings appear under the registry key; global.* settings are unchanged.
Using Helm CLI
Use --devel to resolve a moving 0.0.0-develop.N version.
Post-install check
The install runs ordered hook Jobs —
db-seed→ the sanity seeds →iam-register→sanity→ and, when analytics is on,bulk-sample→reporting-views→dashboards. Check they all completed:kubectl -n <namespace> get jobs. Helm stops at the first failure, so a job that never appears means an earlier one failed — see the install sequence for the full order and what each step does.Open
<release>.<your-domain>in a browser; you should get the Keycloak login page.Log in with the credentials provisioned by
keycloak-initand change the password when prompted.Review the sanity Job logs:
kubectl -n <namespace> logs job/<release>-sanity.
Tearing down
helm uninstall leaves behind hook Jobs, PVCs and secrets carrying resource-policy: keep. The repo ships scripts/uninstall-registry.sh, which removes the release, its leftover Jobs and Pods, and the registry databases.
Before going to production
Leave
global.partnerSignatureValidationEnabledandglobal.consentEnforcementEnabledon (the default) — they govern real PII egress and the chart fails closed. See Helm chart.Turn off the sample-data loaders (
registry.dbSeed.loadSampleData,loadImages,loadGeoData) — see Data seeding.
Last updated
Was this helpful?