Installation in Kubernetes
To install Oz product via Kubernetes, consider using Helm charts.
Oz API and related components: Helm chart.
API 5.2: version 0.11.x,
API 5.3 (regulatory update for Kazakhstan): 0.12.x.
Web SDK: Helm chart. Please note: the version of the chart is not tied to the Web SDK version.
Prerequisites
API helm chart
Kubernetes 1.23+
Helm 3+
ingress-nginxandcert-managerwith aClusterIssuerkube-metrics-server(for HPA)Prometheus (for monitoring/ServiceMonitors)
A PostgreSQL database (external, for production) with
pgcryptoextension enabledA ReadWriteMany (RWX) StorageClass for API static files (or S3)
Web SDK helm chart
Kubernetes 1.23+
Helm 3+
ingress-nginx controller (or Istio 1.16+)
cert-managerwith aClusterIssuerkube-metrics-server(for HPA)Prometheus (for monitoring/ServiceMonitors)
A ReadWriteMany (RWX) StorageClass for session data
Instant API helm chart
Kubernetes 1.23+
Helm 3+
ingress-nginx controller (or Istio 1.16+)
cert-managerwith aClusterIssuerkube-metrics-server(for HPA)Prometheus (for monitoring/ServiceMonitors)
Database Creation
For testing purposes, the database installed and created automatically by the chart is sufficient. However, for production, we strongly recommend using a separate, self-managed database.
Recommended PostgreSQL version: 15.5.
PostgreSQL database parameters
max_connections: 2000 (may vary depending on number of API calls),shared_buffers: 2 GB (amount of RAM divided by 2),effective_cache_size: 6 GB (RAM – 2 GB),maintenance_work_mem: 512 MB,checkpoint_completion_target: 0.9,wal_buffers: 16 MB,default_statistics_target: 100,random_page_cost: 1.1,effective_io_concurrency: 200,work_mem: 16 MB,min_wal_size: 1 GB,max_wal_size: 4 GB,max_worker_processes: 4 (equal to the number of CPUs),max_parallel_workers_per_gather: 2 (number of CPUs divided by 2),max_parallel_workers: 4 (equal to the number of CPUs),max_parallel_maintenance_workers: 2 (number of CPUs divided by 2),If database is Dockered, set
shm_size: '1gb'.
Create a database using the script(s) below.
To increase performance, consider using this list of indexes:
Chart Deployment
API and Web SDK charts require RWX SC (CephFS, EFS, NFS, Longhorn, etc.).
To deploy in Kubernetes, download the chart version you require and adjust the values.yaml file. This file specifies parameters for deployment of Oz products.
API
This example is based on the 0.11.28 chart version.
Adjust the values.yaml file, setting the following mandatory parameters before deployment:
ozDockerHubCreds: you'll receive them from Oz Engineer.UserParams:URLs:apiURL: URL for API. May be internal, if you use Web SDK only. For Mobile SDKs, should be public. Please refer to this article for more information.
DB: must be set, if you use an external PostgreSQL server. For details, please check Database Creation.use_chart_postgres: false by default. Enables internal PostgreSQL server (not recommended for production).postgresUser: same as<<USERNAME>>.postgresHost: the hostname of your PostgreSQL server.postgresDB: same as<<DB_NAME>>.postgresUserPassword: same as<<PASSWORD>>.postgresPort: 5432 by default.o2nDB:use_chart_o2nDB: false by default. Enables internal PostgreSQL server (not recommended for production).startinit:trueby default. Enables database init scripts. Set tofalseafter chart is deployed.creds:postgresHost: the hostname of your PostgreSQL server with 1:N database.postgresPort: 5432 by default.postgresDB: same as<<OnetoMany_DB_NAME>>.postgresUser: same as<<OnetoMany_USERNAME>>.postgresUserPassword: Same as<<OnetoMany_PASSWORD>>.
Creds:apiAdminLogin: login for new (default) user for API. Will be created on the first run.apiAdminPass: password for the default user.webUILocalAdminLogin: local Admin for Web UI. Should differ fromapiAdminLogin.webUILocalAdminPass: password forwebUILocalAdminLogin.
BIO:licenseKey: you'll receive it from Oz Engineer / Sales.clientToken: you'll receive it from Oz Engineer.
pvc:api:static:storageClassName: RWX StorageClass.size: Expected size for PV.
Params:Global:startinits:falseby default. Set totrueon the first run, then, after successful deployment, change back tofalse.
To adjust API behavior, you might want to change other parameters. Please refer to comments in the values.yaml file.
TFSS (BIO)
BIO is a part of the API chart. The BIO pods require separate nodes for each pod. To ensure BIO resides on dedicated nodes, you can use affinity and tolerations.
The BIO behavior can be customized via Params -> global -> affinity in values.yaml.
The default parameters are listed below:
The example of chart deployment via Helm:
Web SDK
Installation of Web SDK requires API pre-installed. Except specific cases, Web SDK cannot work without API.
For proper deployment, Web SDK requires an API service account. Pre-create a user for Web SDK with the CLIENT type and is_service flag set. Please refer to User Roles for more details.
This example is based on the 1.5.1+onPremise chart version.
Adjust the values.yaml file, setting the following mandatory parameters before deployment:
ozDockerHubCreds: you'll receive them from Oz Engineer.UserParams:URLs:apiURL: API URL. Can be an internal API URL.webSDKURL: WebSDK url that will be used for public access.
Creds:AdminLogin: login of the user that should be pre-created in API. Do not use the default admin login.AdminPass: password of the pre-created user.
PVC:persistentStorage:falsebe default. Set totrueif you use more than 1 Web SDK pod.storageClassName: RWX StorageClass.
Params:websdk:license: should contain your Web SDK license. You'll receive it from Oz Engineer / Sales.
To adjust API behavior, you might want to change other parameters. Please refer to comments in the values.yaml file.
The example of chart deployment via Helm:
Last updated
Was this helpful?
