okapi-helm

Okapi-helm

Copyright (C) 2024 Index Data

This software is distributed under the terms of the Apache License, Version 2.0. See the file “LICENSE” for more information.

This helm chart deploys Okapi to a kubernetes cluster and is offered by Index Data only as is. There is no support provided unless under contract.

Okapi version changes across chart versions

Chart Version Okapi version  
  0.1.3 4.14.10
  0.1.4 4.14.11
  0.1.7 4.14.12
  0.1.15 5.0.1
  0.1.16 5.1.2

The helm chart creates the following Kubernetes Objects:

To use this helm chart, first add the repository locally.

helm repo add okapi https://indexdata.github.io/okapi-helm/

Okapi can either be deployed standalone or as a cluster, the default mode is standalone.

For standalone deployments, follow the following steps:

secret:

  storage: postgres

  postgres_host: <your_database_host>

  postgres_username: <your_database_username>

  postgres_password: <your_database_password>

  postgres_database: <your_database_name>

  okapiurl: http://okapi:9130

For clustered deployments, follow the following steps:

Values

Key Type Default Description
affinity object {}  
autoscaling.enabled bool false  
autoscaling.maxReplicas int 100  
autoscaling.minReplicas int 1  
autoscaling.targetCPUUtilizationPercentage int 80  
clustered.enabled object false Specifies whether Okapi is deployed in cluster or standalone mode
config object {}  
fullnameOverride string okapi  
image.repository string folioorg/okapi Okapi docker image tag
image.pullPolicy string Always Okapi docker image tag
image.tag string 5.1.2 Okapi docker image tag
imagePullSecrets list []  
imageSecretName string "" Image secret for accessing private private docker registries
ingress.enabled bool true Specifies whether an ingress should be created
ingress.className object nginx Specifies the class for the Ingress
ingress.annotations object external-dns.alpha.kubernetes.io/target:xxxxxxx.your-dns-target.com
nginx.ingress.kubernetes.io/proxy-body-size:"10000m"
nginx.ingress.kubernetes.io/proxy-read-timeout:"300"
nginx.ingress.kubernetes.io/proxy-request-buffering:"off"
Ingress annotations
ingress.hosts list {"host":"xyz.hostname-of-your-service.com","paths":[{"path":"/","pathType":"ImplementationSpecific"}]} Ingress host
ingress.tls list [] Enable TLS for ingress
labels.env string "default"  
labels.type string "default"  
lifecycle object {}  
mode string cluster Acceptable values are "dev" or "cluster"
nameOverride string "okapi"  
nodeSelector object {}  
nodeSelector object {}  
persistentVolume.accessModes[0] string "ReadWriteOnce"  
persistentVolume.annotations object {}  
persistentVolume.enabled bool false  
persistentVolume.labels object {}  
persistentVolume.name string "data"  
persistentVolume.size string "8Gi"  
podAnnotations object {}  
podDisruptionBudget.maxUnavailable int 1  
podDisruptionBudgetEnabled bool true  
podManagementPolicy string "OrderedReady" Pod management policy for pods
podSecurityContext object {}  
probes.liveness.enabled bool true Specifies whether a liveness probe should be created
probes.liveness.path string /_/proxy/health Specifies path for liveness probe
probes.liveness.initialDelaySeconds int 120 Specifies initial delay before liveness probe starts
probes.liveness.failureThreshold int 2 Specifies failure threshold for liveness probe
probes.liveness.timeoutSeconds int 10 Specifies timeout in seconds for liveness probe
probes.liveness.periodSecond int 10 Specifies period in seconds for liveness probe
probes.readiness.enabled bool true Specifies whether a readiness probe should be created
probes.readiness.failureThreshold int 2 Specifies initial delay before readiness probe starts
probes.readiness.initialDelaySeconds int 120 Specifies initial delay before readiness probe starts
probes.readiness.path string /_/proxy/health Specifies path for readiness probe
probes.readiness.periodSeconds int 10 Specifies period in seconds for readiness probe
probes.readiness.timeoutSeconds int 10 Specifies timeout in seconds for readiness probe
probes.startup.enabled object false Specifies whether a startup probe should be created
probes.startup.failureThreshold int 30 Specifies failure threshold for startup probe
probes.startup.path string / Specifies path for readiness probe
probes.startup.periodSeconds int 10 Specifies period in seconds for startup probe
replicaCount int 3 Number of pods to create (applies to clusteres deployments alone)
resources object {}  
secret object {}  
secrets list []  
securityContext object {}  
service.enabled bool true  
service.external.enabled bool false  
service.http.enabled bool false  
service.internal.enabled bool false  
service.name string "okapi"  
service.port int 9130  
service.second_port.enabled bool true  
service.second_port.port int 5701  
service.third_port.enabled bool false  
service.third_port.port int 9090  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
terminationGracePeriodSeconds int 300 Termination grace period for pods
tolerations list []  
tolerations list []  
updateStrategy string RollingUpdate Update strategy for pods
topologySpreadConstraints.maxSkew int 1 Max Skew for spread topology constraint
topologySpreadConstraints.topologyKey string kubernetes.io/hostname Topology Key for spread topology constraint
topologySpreadConstraints.whenUnsatisfiable string ScheduleAnyway Action when spread topology constraint is unsatisfiable