Files
Aleksei SviridkinandMatthieu ROBIN 55850aa3d8 test(apps): backward-compat helm-unittest and CI invariants
Pin the 1:1 equivalence between legacy flat preset names and their
instance-type counterparts in helm-unittest for three charts that
exercise different preset shapes:

  - postgres   — top-level only
  - clickhouse — top + nested clickhouseKeeper preset
  - opensearch — top + nested dashboards preset

Each case asserts that nano <-> t1.nano, small <-> t1.small,
medium <-> c1.small, large <-> c1.medium, and micro <-> t1.micro
render the same CPU and memory.

packages/apps/{clickhouse,opensearch}/Makefile gain a `test:` target
that calls helm unittest so hack/helm-unit-tests.sh actually runs the
new suites in CI; without it the suites would land as dead weight.

hack/check-rd-presets.sh enforces two invariants in `make unit-tests`:

  - every packages/system/*-rd/cozyrds/*.yaml openAPISchema carries
    the canonical 47-preset enum (40 instance-type + 7 legacy);
  - no chart template carries a hardcoded legacy preset literal in
    a defaultingSanitize (list "<legacy>" ...) form.

Both turn an accidental drop of a per-chart Makefile step or an
accidental legacy hardcode into a CI failure rather than silent
production-time validation rejection.

Co-authored-by: Matthieu ROBIN <matthieu@hidora.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
2026-05-11 21:09:50 +03:00
..

Managed OpenSearch Service

Parameters

Common parameters

Name Description Type Value
replicas Number of OpenSearch nodes in the cluster. int 3
resources Explicit CPU and memory configuration for each OpenSearch node. When omitted, the preset defined in resourcesPreset is applied. object {}
resources.cpu CPU available to each node. quantity ""
resources.memory Memory (RAM) available to each node. quantity ""
resourcesPreset Default sizing preset used when resources is omitted. OpenSearch requires minimum 2Gi memory. string c1.medium
size Persistent Volume Claim size available for application data. quantity 10Gi
storageClass StorageClass used to store the data. string ""
external Enable external access from outside the cluster. bool false
topologySpreadPolicy How strictly to enforce pod distribution across nodes and zones. string soft
version OpenSearch major version to deploy. string v2

Image configuration

Name Description Type Value
images Container images used by the operator. object {}
images.opensearch OpenSearch image. string ""

Node roles configuration

Name Description Type Value
nodeRoles Node roles configuration. object {}
nodeRoles.master Enable cluster_manager role. bool true
nodeRoles.data Enable data role. bool true
nodeRoles.ingest Enable ingest role. bool true
nodeRoles.ml Enable machine learning role. bool false

Users configuration

Name Description Type Value
users Custom OpenSearch users configuration map. map[string]object {}
users[name].password Password for the user (auto-generated if omitted). string ""
users[name].roles List of OpenSearch roles. []string []

OpenSearch Dashboards configuration

Name Description Type Value
dashboards OpenSearch Dashboards configuration. object {}
dashboards.enabled Enable OpenSearch Dashboards deployment. bool false
dashboards.replicas Number of Dashboards replicas. int 1
dashboards.resources Explicit CPU and memory configuration for Dashboards. object {}
dashboards.resources.cpu CPU available to each node. quantity ""
dashboards.resources.memory Memory (RAM) available to each node. quantity ""
dashboards.resourcesPreset Default sizing preset for Dashboards. string c1.small