Skip to content

Repository files navigation

KoboToolbox Helm Chart

This chart is intended for high availability instances of KoboToolbox running in kubernetes. Small and casual instances should use kobo-install.

Versioning

This chart is versioned using semver: <Major>.<Minor>.<Patch>

  • Major: Indicates breaking changes to the chart. Upgrading will require manual intervention, value updates, or migration steps (e.g., breaking changes to values.yaml, removing/renaming values, dropping Kubernetes version support, or changing resource selectors that trigger resource recreation).
  • Minor: Indicates backwards-compatible feature additions. Used when adding new default values, optional templates, or supporting new Kubernetes resources/capabilities without breaking existing installations.
  • Patch: Indicates backwards-compatible bug fixes. Used for internal template fixes, updating non-breaking default configurations, or updating the chart documentation and metadata without changing the external contract.

Design decisions

  • As generic as possible, agnostic about the environment variables set for each service
  • Supports high availability via k8s's horizontal pod autoscaler (HPA), pod disruption budget (PDB), and topology spread constraints
  • Stick to defaults and conventions from helm create when possible
  • Every deployment/job should do one thing. Migrate, run uwsgi, run celery, etc

Usage

This chart requires values for kpi.version and enketo.version - there are no defaults set for them.

  1. Carefully review values.yaml. Set image tag version, if desired. Set databases, secret keys, etc.
  2. helm install your-kobo oci://ghcr.io/kobotoolbox/kobo -f your-values.yaml --set kpi.version=VERSION_TO_DEPLOY --set enketo.version=VERSION_TO_DEPLOY

Upgrading

This chart requires values for kpi.version and enketo.version - there are no defaults set for them.

  1. helm repo update
  2. helm upgrade your-kobo kobo -f your-values.yaml --set kpi.version=VERSION_TO_DEPLOY --set enketo.version=VERSION_TO_DEPLOY

Tip: Consider using helm diff to preview changes first.

Acknowledgements

Includes ideas from:

Packages

Used by

Contributors

Languages