Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions docs/docs/platform/deployment/helm/charts/_index.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
# Cogstack Helm Charts

The Helm charts for CogStack are published to Docker Hub, which is an OCI-compliant registry.

## Chart Listings

- **MedCAT Service:**
https://hub.docker.com/r/cogstacksystems/medcat-service-helm

- **MedCAT Trainer:**
https://hub.docker.com/r/cogstacksystems/medcat-trainer-helm

- **CogStack CE (Community Edition, umbrella chart):**
https://hub.docker.com/r/cogstacksystems/cogstack-ce-helm

- [MedCAT Service Helm](medcat-service-helm.md)
- [MedCAT Trainer Helm](medcat-trainer-helm.md)
- [CogStack Community Edition Helm](cogstack-ce-helm.md)
- [CogStack Observability Helm](cogstack-observability-helm.md.md)

## Chart Publishing

The Helm charts for CogStack are published to Docker Hub, which is an OCI-compliant registry. You can see the charts on Dockerhub https://hub.docker.com/r/cogstacksystems

Charts are published automatically via a GitHub Action on every commit to the main branch.
1 change: 1 addition & 0 deletions docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ nav:
- MedCAT Service Helm: platform/deployment/helm/charts/medcat-service-helm.md
- MedCAT Trainer Helm: platform/deployment/helm/charts/medcat-trainer-helm.md
- Cogstack CE Helm: platform/deployment/helm/charts/cogstack-ce-helm.md
- Cogstack Observability Helm: platform/deployment/helm/charts/cogstack-observability-helm.md
- Examples:
- Examples: platform/deployment/examples/_index.md
- AWS Kubernetes EKS: platform/deployment/examples/aws-kubernetes-eks.md
Expand Down
22 changes: 22 additions & 0 deletions helm-charts/cogstack-ce-helm/values-observability.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
anoncat-service:
serviceMonitor:
enabled: true
medcat-service:
serviceMonitor:
enabled: true

opensearch:
plugins:
enabled: true
installList:
- https://github.com/opensearch-project/opensearch-prometheus-exporter/releases/download/3.5.0.0/prometheus-exporter-3.5.0.0.zip
serviceMonitor:
enabled: true
scheme: https
tlsConfig:
insecureSkipVerify: true
basicAuth:
enabled: true
username: admin
password: opensearch-312$A

4 changes: 4 additions & 0 deletions helm-charts/cogstack-ce-helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ opensearch:
extraEnvs:
- name: OPENSEARCH_INITIAL_ADMIN_PASSWORD
value: "opensearch-312$A"
# plugins:
# enabled: true
# installList:
# - https://github.com/opensearch-project/opensearch-prometheus-exporter/releases/download/3.5.0.0/prometheus-exporter-3.5.0.0.zip

opensearch-dashboards:
# -- Deploy an opensearch-dashboards instance
Expand Down
23 changes: 23 additions & 0 deletions helm-charts/cogstack-observability-helm/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
6 changes: 6 additions & 0 deletions helm-charts/cogstack-observability-helm/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
dependencies:
- name: kube-prometheus-stack
repository: oci://ghcr.io/prometheus-community/charts
version: 81.2.2
digest: sha256:7c42643a0850e853506cacaa4c28f455e46f76963d6acdd6c7be4634497ead83
generated: "2026-03-30T15:07:01.412910469Z"
36 changes: 36 additions & 0 deletions helm-charts/cogstack-observability-helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: v2
name: cogstack-observability-helm
description: This chart provides observability for a CogStack deployment. It is a basic wrapper around Grafana and Kube Prometheus Stack.

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "0.1.0"

maintainers:
- name: alhendrickson
email: alistair@cogstack.org

icon: "https://avatars.githubusercontent.com/u/28688163"

dependencies:
- name: kube-prometheus-stack
version: "81.2.2"
repository: "oci://ghcr.io/prometheus-community/charts"
condition: kube-prometheus-stack.enabled
115 changes: 115 additions & 0 deletions helm-charts/cogstack-observability-helm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# CogStack Observability Helm Chart

This chart installs the observability stack for a CogStack deployment on Kubernetes.

It is a wrapper around the kube-prometheus-stack, aiming to provide a simple way to get with observability for cogstack services.

## Overview

This chart deploys:

| Component | Description |
|-----------|-------------|
| **kube-prometheus-stack** | Prometheus Operator stack for metrics collection, rules, and monitoring components. |
| **Prometheus** | Scrapes metrics from CogStack services and stores time series data. |
| **Grafana** | Provides dashboards for visualising CogStack platform health and service metrics. |
| **Bundled dashboards** | Preloads dashboards for CogStack availability, FastAPI metrics, and OpenSearch metrics. |

This chart is intended to be installed alongside a CogStack deployment that exposes metrics through `ServiceMonitor`, `PodMonitor`, `Probe`, or related Prometheus resources.

## Prerequisites

- Kubernetes cluster
- Helm 3+
- A CogStack deployment with metrics endpoints enabled

## Installation

```sh
helm install observability oci://registry-1.docker.io/cogstacksystems/cogstack-observability-helm
```

If you are deploying this alongside `cogstack-ce-helm`, you can enable the required monitors in the CE chart with the example override file at `../cogstack-ce-helm/values-observability.yaml`.

## Configuration
These are some values that are likely to need customization for your deployment:

| Value | Default | Description |
|-------|---------|-------------|
| `kube-prometheus-stack.enabled` | `true` | Main switch for installing the bundled `kube-prometheus-stack`. Set this to `false` if your cluster already provides Prometheus and Grafana. |
| `kube-prometheus-stack.crds.enabled` | `true` | Controls installation of Prometheus Operator CRDs. Set this to `false` when the CRDs are already installed and managed elsewhere. |
| `kube-prometheus-stack.grafana.sidecar.dashboards.enabled` | `true` | Enables Grafana sidecar dashboard discovery for the dashboards shipped by this chart. Set this to `false` if Grafana or dashboard loading is handled externally. |
| `kube-prometheus-stack.grafana.adminUser` | `"admin"` | Grafana admin username. |
| `kube-prometheus-stack.grafana.adminPassword` | `"grafana-admin-password"` | Grafana admin password; change this for any real deployment. |
| `kube-prometheus-stack.grafana.service.*` | not set | Configure how Grafana is exposed, for example `ClusterIP`, `NodePort`, or `LoadBalancer`. |
| `kube-prometheus-stack.prometheus.service.*` | not set | Configure how Prometheus is exposed if direct access is required. |
| `kube-prometheus-stack.prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `ServiceMonitor` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `PodMonitor` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.probeSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `Probe` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.ruleSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `PrometheusRule` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.scrapeConfigSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover additional `ScrapeConfig` resources not created by this chart. |

Example override file:

```yaml
# my-values.yaml
kube-prometheus-stack:
enabled: false
crds:
enabled: false
grafana:
sidecar:
dashboards:
enabled: false
```

Install with overrides:

```bash
helm install cogstack-observability . -f my-values.yaml --namespace observability --create-namespace
```

## Dependencies

The chart depends on:

- `kube-prometheus-stack`

## Uninstall

```bash
helm uninstall cogstack-observability --namespace observability
```

If the namespace was created only for this release, remove it with:

```bash
kubectl delete namespace observability
```

## Requirements

| Repository | Name | Version |
|------------|------|---------|
| oci://ghcr.io/prometheus-community/charts | kube-prometheus-stack | 81.2.2 |

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| fullnameOverride | string | `""` | |
| kube-prometheus-stack.crds.enabled | bool | `true` | |
| kube-prometheus-stack.enabled | bool | `true` | |
| kube-prometheus-stack.grafana.adminPassword | string | `"grafana-admin-password"` | |
| kube-prometheus-stack.grafana.adminUser | string | `"admin"` | |
| kube-prometheus-stack.grafana.enabled | bool | `true` | |
| kube-prometheus-stack.grafana.sidecar.dashboards.enabled | bool | `true` | |
| kube-prometheus-stack.prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues | bool | `false` | |
| kube-prometheus-stack.prometheus.prometheusSpec.probeSelectorNilUsesHelmValues | bool | `false` | |
| kube-prometheus-stack.prometheus.prometheusSpec.ruleSelectorNilUsesHelmValues | bool | `false` | |
| kube-prometheus-stack.prometheus.prometheusSpec.scrapeConfigSelectorNilUsesHelmValues | bool | `false` | |
| kube-prometheus-stack.prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues | bool | `false` | |
| nameOverride | string | `""` | |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
94 changes: 94 additions & 0 deletions helm-charts/cogstack-observability-helm/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# CogStack Observability Helm Chart

This chart installs the observability stack for a CogStack deployment on Kubernetes.

It is a wrapper around the kube-prometheus-stack, aiming to provide a simple way to get with observability for cogstack services.

## Overview

This chart deploys:

| Component | Description |
|-----------|-------------|
| **kube-prometheus-stack** | Prometheus Operator stack for metrics collection, rules, and monitoring components. |
| **Prometheus** | Scrapes metrics from CogStack services and stores time series data. |
| **Grafana** | Provides dashboards for visualising CogStack platform health and service metrics. |
| **Bundled dashboards** | Preloads dashboards for CogStack availability, FastAPI metrics, and OpenSearch metrics. |

This chart is intended to be installed alongside a CogStack deployment that exposes metrics through `ServiceMonitor`, `PodMonitor`, `Probe`, or related Prometheus resources.

## Prerequisites

- Kubernetes cluster
- Helm 3+
- A CogStack deployment with metrics endpoints enabled

## Installation

```sh
helm install observability oci://registry-1.docker.io/cogstacksystems/cogstack-observability-helm
```

If you are deploying this alongside `cogstack-ce-helm`, you can enable the required monitors in the CE chart with the example override file at `../cogstack-ce-helm/values-observability.yaml`.

## Configuration
These are some values that are likely to need customization for your deployment:

| Value | Default | Description |
|-------|---------|-------------|
| `kube-prometheus-stack.enabled` | `true` | Main switch for installing the bundled `kube-prometheus-stack`. Set this to `false` if your cluster already provides Prometheus and Grafana. |
| `kube-prometheus-stack.crds.enabled` | `true` | Controls installation of Prometheus Operator CRDs. Set this to `false` when the CRDs are already installed and managed elsewhere. |
| `kube-prometheus-stack.grafana.sidecar.dashboards.enabled` | `true` | Enables Grafana sidecar dashboard discovery for the dashboards shipped by this chart. Set this to `false` if Grafana or dashboard loading is handled externally. |
| `kube-prometheus-stack.grafana.adminUser` | `"admin"` | Grafana admin username. |
| `kube-prometheus-stack.grafana.adminPassword` | `"grafana-admin-password"` | Grafana admin password; change this for any real deployment. |
| `kube-prometheus-stack.grafana.service.*` | not set | Configure how Grafana is exposed, for example `ClusterIP`, `NodePort`, or `LoadBalancer`. |
| `kube-prometheus-stack.prometheus.service.*` | not set | Configure how Prometheus is exposed if direct access is required. |
| `kube-prometheus-stack.prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `ServiceMonitor` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `PodMonitor` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.probeSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `Probe` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.ruleSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover `PrometheusRule` resources not created by this chart. |
| `kube-prometheus-stack.prometheus.prometheusSpec.scrapeConfigSelectorNilUsesHelmValues` | `false` | Allows Prometheus to discover additional `ScrapeConfig` resources not created by this chart. |

Example override file:

```yaml
# my-values.yaml
kube-prometheus-stack:
enabled: false
crds:
enabled: false
grafana:
sidecar:
dashboards:
enabled: false
```

Install with overrides:

```bash
helm install cogstack-observability . -f my-values.yaml --namespace observability --create-namespace
```

## Dependencies

The chart depends on:

- `kube-prometheus-stack`

## Uninstall

```bash
helm uninstall cogstack-observability --namespace observability
```

If the namespace was created only for this release, remove it with:

```bash
kubectl delete namespace observability
```

{{ template "chart.requirementsSection" . }}

{{ template "chart.valuesSection" . }}

{{ template "helm-docs.versionFooter" . }}
Loading
Loading