Install services
Applies toAlpha
Complete Deployment preparation first. You do not need the source code: the chart and the application image are published, and these steps use them directly. Replace every example domain, address and credential before running a command.
-
Choose the version
Section titled “Choose the version”Pick the release to install and check that its chart is reachable from your machine:
Terminal window helm show chart oci://ghcr.io/open-rum/charts/openrum --version 0.1.2The chart’s default image is the matching
ghcr.io/open-rum/openrum:0.1.2, built for AMD64 and ARM64 nodes. One image contains all five services, the migration tool, the Console and the Browser SDK, so there is nothing to build or push. Always pin--version, and use the same version in every later command.Success:
helm show chartprintsversion: 0.1.2andappVersion: "0.1.2". -
Create the runtime Secret and the HTTPS certificate
Section titled “Create the runtime Secret and the HTTPS certificate”Generate the token for first-time initialization and save it in your team’s password manager:
Terminal window openssl rand -hex 32Put the three values in a private file and replace every placeholder:
runtime.env POSTGRES_DSN=postgres://openrum:REPLACE_PASSWORD@postgres.example:5432/openrum?sslmode=requireCLICKHOUSE_DSN=clickhouse://openrum:REPLACE_PASSWORD@clickhouse.example:9000/openrumBOOTSTRAP_TOKEN=REPLACE_WITH_GENERATED_TOKENURL-encode special characters in connection credentials. Match the ClickHouse port and TLS parameters to the database configuration. Create the Secret from the file, then delete the file, because it contains real credentials and must never be committed:
Terminal window chmod 600 runtime.envkubectl -n openrum create secret generic openrum-runtime --from-env-file=runtime.envkubectl -n openrum get secret openrum-runtimerm runtime.envThe chart only references the Secret by name, so a secret manager such as External Secrets or Sealed Secrets can create
openrum-runtimeinstead. Then import the domain certificate into the same Namespace, or use the Secret produced by your certificate controller:Terminal window kubectl -n openrum create secret tls openrum-tls \--cert=/path/to/certificate-chain.pem --key=/path/to/private-key.pemSuccess: Both
openrum-runtimeandopenrum-tlsexist. Keep the bootstrap token available for the first administrator setup. -
Write deployment values
Section titled “Write deployment values”Create
values.production.yaml:values.production.yaml config:appEnv: productionpublicBaseURL: https://rum.example.comexistingSecret: openrum-runtimekafkaBrokers: kafka-0:9092,kafka-1:9092,kafka-2:9092kafkaEventTopic: rum-events-v1kafkaRetentionDuration: 168h# Replace with the actual Ingress proxy range you operate.ingestTrustedProxies: "10.42.0.0/16"# The chart runs its own Redis by default. To use yours instead:# redis:# mode: external# external:# address: redis.example:6379ingress:enabled: trueclassName: nginxhost: rum.example.comtls:- hosts: [rum.example.com]secretName: openrum-tls# Only if you use your own image or a mirror:# image:# repository: registry.example.com/openrum# tag: alpha-deploy-001publicBaseURLandhost: the domain browsers actually visit; production requires HTTPS.- Kafka address, and Redis address if you use your own: endpoints reachable from Pods, not your development machine’s
localhost. The bundled Redis is a single instance; see Redis: bundled or external. ingestTrustedProxies: only proxy ranges you operate, allowing rate limits to identify the real caller IP.className: your installed Ingress controller.image: leave it out to use the published image that matches the chart version.
Leave object-storage fields empty initially. See Helm values for more options.
Success: Every placeholder is replaced, DNS points to the Ingress, and the Secret names match the previous step.
-
Install and verify
Section titled “Install and verify”Render the chart first. A mistake in the values file fails here, before anything reaches the cluster:
Terminal window helm template openrum oci://ghcr.io/open-rum/charts/openrum \--version 0.1.2 --namespace openrum \--values values.production.yaml > /dev/nullThen install, run the chart’s tests and look at what came up:
Terminal window helm upgrade --install openrum oci://ghcr.io/open-rum/charts/openrum \--version 0.1.2 --namespace openrum \--values values.production.yaml \--wait --timeout 15mhelm test openrum --namespace openrumkubectl -n openrum get pods,deploy,ingressInstallation runs database migrations before starting applications. For deployment or health-test failures:
Terminal window kubectl -n openrum get jobskubectl -n openrum logs -l app.kubernetes.io/component=migration --tail=100kubectl -n openrum logs deploy/openrum-api --tail=100kubectl -n openrum describe podsSuccess: Installation and Helm tests pass, all five Deployments are available, and
https://rum.example.comopens without certificate errors. Service health still needs an end-to-end event check.
Release Alpha · commit local