Managed services
Chart values: marketplace.
Generated from
charts/harthelm/values.yaml at v1.5.0marketplace
Managed services: the built-in providers of the catalog and the client of REST provider backends. Cluster admins publish further providers through the API (PUT /api/v1/providers/{name}).
| Value | Type | Default | Description |
|---|---|---|---|
marketplace.builtin.postgres | object | PostgreSQL 17 and 18: one CloudNativePG cluster of one instance per database, in the team's namespace. Needs the CNPG operator (and rbac.cnpg); without it the provider is listed as unavailable. Disabling it keeps existing databases running. | |
marketplace.builtin.postgres.enabled | boolean | true | |
marketplace.builtin.postgres.images | object | Operand image per PostgreSQL major version, pinned by tag and digest: the minor version moves only with a Harthelm release, and a release that moves it restarts every database once. global.imageRegistry applies, so air-gapped installs mirror them. | |
marketplace.builtin.postgres.images.17.registry | string | "ghcr.io" | |
marketplace.builtin.postgres.images.17.repository | string | "cloudnative-pg/postgresql" | |
marketplace.builtin.postgres.images.17.tag | string | "17.11" | |
marketplace.builtin.postgres.images.17.digest | string | below | |
marketplace.builtin.postgres.images.18.registry | string | "ghcr.io" | |
marketplace.builtin.postgres.images.18.repository | string | "cloudnative-pg/postgresql" | |
marketplace.builtin.postgres.images.18.tag | string | "18.6" | |
marketplace.builtin.postgres.images.18.digest | string | below | |
marketplace.builtin.postgres.storageClass | string | "" | The databases' volumes; empty: the cluster's default class. A class with reclaimPolicy Delete fits: deleting a database deletes its data, and the nightly dumps (backup.enabled) are the copy. |
marketplace.builtin.postgres.scheduling | object | Where the database pods run. They behave like always-running workloads: keep them off nodes that are drained at night (scheduling.ephemeralNodeSelector), with a node selector or an affinity. | |
marketplace.builtin.postgres.scheduling.nodeSelector | object | {} | |
marketplace.builtin.postgres.scheduling.tolerations | list of object | [] | |
marketplace.builtin.postgres.scheduling.affinity | object | {} | |
marketplace.builtin.postgres.overrides | object | {} | An RFC 7386 merge patch on the built-in definition (plans, schemas, texts): {plans: [...]} replaces the plans (Tiny 0.25 vCPU / 256 MiB / 1 GiB and Small 0.5 vCPU / 512 MiB / 5 GiB), null removes a key. |
marketplace.builtin.valkey | object | Valkey (Redis-compatible), S3 object storage (SeaweedFS), MariaDB and RabbitMQ: one StatefulSet of one pod per instance that core runs itself, without an operator. All four share this shape; a provider is on once its driver ships (all four since 1.3.0). images maps each offered version to its image, pinned by tag AND digest (the doctor checks that every digest resolves, so an air-gapped mirror is complete); s3 has no versions and one image. global.imageRegistry applies. storageClass, scheduling and overrides work as for postgres; podMonitor (s3 and rabbitmq) renders a PodMonitor per instance where the Prometheus Operator is installed. Disabling a provider keeps its existing instances running. | |
marketplace.builtin.valkey.enabled | boolean | true | |
marketplace.builtin.valkey.images | object | The project's official Debian image (BSD-3-Clause; Debian 13 base). A Harthelm upgrade with a new patch restarts every instance once. | |
marketplace.builtin.valkey.images.9.1.registry | string | "docker.io" | |
marketplace.builtin.valkey.images.9.1.repository | string | "valkey/valkey" | |
marketplace.builtin.valkey.images.9.1.tag | string | "9.1.2" | |
marketplace.builtin.valkey.images.9.1.digest | string | below | |
marketplace.builtin.valkey.storageClass | string | "" | The instances' volumes; empty: the cluster's default class. A class with allowVolumeExpansion lets them grow. |
marketplace.builtin.valkey.scheduling | object | Where the Valkey pods run: like the databases, keep them off nodes that are drained at night. | |
marketplace.builtin.valkey.scheduling.nodeSelector | object | {} | |
marketplace.builtin.valkey.scheduling.tolerations | list | [] | |
marketplace.builtin.valkey.scheduling.affinity | object | {} | |
marketplace.builtin.valkey.overrides | object | {} | An RFC 7386 merge patch on the built-in definition: {plans: [...]} replaces the plans (Tiny 0.1 vCPU / 128 MiB / 512 MiB, Small 0.25 vCPU / 512 MiB / 2 GiB, Medium 0.5 vCPU / 1 GiB / 4 GiB; parameters.valkey.maxmemory in MiB, half the memory when left out). |
marketplace.builtin.s3.enabled | boolean | true | |
marketplace.builtin.s3.image | object | SeaweedFS's official image (Apache-2.0; Alpine base), one release pinned per Harthelm release (no LTS upstream). A Harthelm upgrade with a new release restarts every S3 instance once (about 20 s without S3). | |
marketplace.builtin.s3.image.registry | string | "ghcr.io" | |
marketplace.builtin.s3.image.repository | string | "chrislusf/seaweedfs" | |
marketplace.builtin.s3.image.tag | string | "4.48" | |
marketplace.builtin.s3.image.digest | string | below | |
marketplace.builtin.s3.storageClass | string | "" | The instances' volumes; empty: the cluster's default class. A class with allowVolumeExpansion lets them grow. |
marketplace.builtin.s3.scheduling | object | Where the S3 pods run: like the databases, keep them off nodes that are drained at night. | |
marketplace.builtin.s3.scheduling.nodeSelector | object | {} | |
marketplace.builtin.s3.scheduling.tolerations | list | [] | |
marketplace.builtin.s3.scheduling.affinity | object | {} | |
marketplace.builtin.s3.overrides | object | {} | An RFC 7386 merge patch on the definition: {plans: [...]} replaces the plans (Tiny 0.25 vCPU / 256 MiB / 2 GiB, Small 0.5 vCPU / 512 MiB / 10 GiB, Medium 1 vCPU / 1 GiB / 50 GiB). |
marketplace.builtin.s3.podMonitor | boolean | false | A PodMonitor per store for SeaweedFS's Prometheus metrics on 9327 (/metrics), where the Prometheus Operator is installed; core is then granted and watches PodMonitors. networkPolicy.metricsNamespaceSelector lets the scraper in; the team's pods reach the S3 port 8333 only, not 9327. |
marketplace.builtin.mariadb.enabled | boolean | true | |
marketplace.builtin.mariadb.images | object | The Docker Official Image (MariaDB Server is GPL-2.0; Ubuntu 24.04 base), one per LTS series. A Harthelm upgrade with a new patch restarts every instance once; a newer series is chosen per instance and upgraded in place. The nightly and on-demand dumps run mariadb-dump from the instance's own image, so client and server always match. | |
marketplace.builtin.mariadb.images.11.4.registry | string | "docker.io" | |
marketplace.builtin.mariadb.images.11.4.repository | string | "library/mariadb" | |
marketplace.builtin.mariadb.images.11.4.tag | string | "11.4.13" | |
marketplace.builtin.mariadb.images.11.4.digest | string | below | |
marketplace.builtin.mariadb.images.11.8.registry | string | "docker.io" | |
marketplace.builtin.mariadb.images.11.8.repository | string | "library/mariadb" | |
marketplace.builtin.mariadb.images.11.8.tag | string | "11.8.9" | |
marketplace.builtin.mariadb.images.11.8.digest | string | below | |
marketplace.builtin.mariadb.images.12.3.registry | string | "docker.io" | |
marketplace.builtin.mariadb.images.12.3.repository | string | "library/mariadb" | |
marketplace.builtin.mariadb.images.12.3.tag | string | "12.3.3" | |
marketplace.builtin.mariadb.images.12.3.digest | string | below | |
marketplace.builtin.mariadb.storageClass | string | "" | The instances' volumes; empty: the cluster's default class. A class with allowVolumeExpansion lets them grow. |
marketplace.builtin.mariadb.scheduling | object | Where the MariaDB pods run: like the databases, keep them off nodes that are drained at night. | |
marketplace.builtin.mariadb.scheduling.nodeSelector | object | {} | |
marketplace.builtin.mariadb.scheduling.tolerations | list | [] | |
marketplace.builtin.mariadb.scheduling.affinity | object | {} | |
marketplace.builtin.mariadb.overrides | object | {} | An RFC 7386 merge patch on the built-in definition: {plans: [...]} replaces the plans (Tiny 0.25 vCPU / 384 MiB / 1 GiB, Small 0.5 vCPU / 768 MiB / 5 GiB, Medium 1 vCPU / 2 GiB / 20 GiB; parameters.mariadb are server settings such as innodb_buffer_pool_size and max_connections). |
marketplace.builtin.rabbitmq.enabled | boolean | true | |
marketplace.builtin.rabbitmq.images | object | The Docker Official Image (MPL-2.0; Ubuntu 24.04, Erlang/OTP 27), one per release series. Community patches exist only for the newest series: a release ships the current series and, while it is patched, the previous one, and core moves an instance whose series a release drops to the next one (a definitions dump first). A Harthelm upgrade with a new patch restarts every broker once. | |
marketplace.builtin.rabbitmq.images.4.3.registry | string | "docker.io" | |
marketplace.builtin.rabbitmq.images.4.3.repository | string | "library/rabbitmq" | |
marketplace.builtin.rabbitmq.images.4.3.tag | string | "4.3.6" | |
marketplace.builtin.rabbitmq.images.4.3.digest | string | below | |
marketplace.builtin.rabbitmq.storageClass | string | "" | The brokers' volumes; empty: the cluster's default class. A class with allowVolumeExpansion lets them grow. |
marketplace.builtin.rabbitmq.scheduling | object | Where the brokers run: like the databases, keep them off nodes that are drained at night. | |
marketplace.builtin.rabbitmq.scheduling.nodeSelector | object | {} | |
marketplace.builtin.rabbitmq.scheduling.tolerations | list | [] | |
marketplace.builtin.rabbitmq.scheduling.affinity | object | {} | |
marketplace.builtin.rabbitmq.overrides | object | {} | An RFC 7386 merge patch on the built-in definition: {plans: [...]} replaces the plans (Tiny 0.25 vCPU / 512 MiB / 1 GiB, Small 0.5 vCPU / 1 GiB / 5 GiB, Medium 1 vCPU / 2 GiB / 10 GiB; the broker blocks publishers at 60 % of the memory). |
marketplace.builtin.rabbitmq.podMonitor | boolean | false | A PodMonitor per broker for its Prometheus metrics on 15692 (/metrics), where the Prometheus Operator is installed; core is then granted and watches PodMonitors. networkPolicy.metricsNamespaceSelector lets the scraper in; the team's own pods always reach 15692. |
marketplace.rest.pollSeconds | integer | 30 | How often core asks each REST provider backend for the status of its instances (seconds, with jitter). |
marketplace.rest.timeoutSeconds | integer | 10 | Upper bound of one request to a backend whose definition sets no timeoutSeconds. |
marketplace.tombstoneDays | integer | 7 | How long a deleted managed service stays listed as recently deleted. |
marketplace.browserHosts | object | Every RabbitMQ and S3 instance gets its own host ms-<n>.<workspace domain> (n: the instance's number) for browsers, under the existing wildcard DNS name and certificate: RabbitMQ's management UI (always behind the gate, single sign-on from the console) and S3 for presigned URLs and public assets. Off: no hosts (the 1.3 behaviour); turning it on or off restarts the RabbitMQ brokers once (their single sign-on). | |
marketplace.browserHosts.enabled | boolean | true | |
marketplace.browserHosts.allowPublic | boolean | true | Team members may switch an S3 store's host public (no gate; the store's public buckets readable by anyone). false keeps every host gated whatever an instance asks, without changing the instances' own setting. |
marketplace.storageWriteProbe | object | The doctor's write probe (check managed-storage-write): for each storage class the enabled Valkey, S3, MariaDB and RabbitMQ put new volumes on, core runs a short Job in the release namespace whose pod has exactly their security context (security.defaultUid as user, primary group and fsGroup, group 0 supplementary; restricted) and a fresh 64 MiB volume of the class, writes and reads files on it and deletes the Job with its volume. At core's start for new values, then a day after a pass and an hour after a failure (on a class with reclaimPolicy Retain, which keeps every probe's volume, only when the class or the context changes and daily after a failure). Core's own image and its existing rights (Jobs, pods, claims) are all it needs; off: the check says skip. | |
marketplace.storageWriteProbe.enabled | boolean | true |
Long defaults
marketplace.builtin.postgres.images.17.digest
sha256:70664ebcfa1100361b5bdc28bbf06fdbe08db2dc4ad7bd14de33c5e05fe8ea8emarketplace.builtin.postgres.images.18.digest
sha256:899d3ed526b659d77935dde0e6bf2d69dbbf17d3d8c6486ca8cfd04bd3c18533marketplace.builtin.valkey.images.9.1.digest
sha256:418652cfb58ef879d4978c33553735d7147016032d5aefaa14c828e611eb9dfdmarketplace.builtin.s3.image.digest
sha256:4e61d15fd35994cb1e43e1e553dff106794841fd9a99ade2fc8c8bfce4d7872dmarketplace.builtin.mariadb.images.11.4.digest
sha256:1292844148b311e4ed4300022a996d39083f415a963e970cf47cad1b3b18e3a6marketplace.builtin.mariadb.images.11.8.digest
sha256:6422478cb8e159f080fb1d8ccf65101e26fe51385787fde7d16c3b165a331f15marketplace.builtin.mariadb.images.12.3.digest
sha256:2bdff1534a7e569fecaf4b10b66ad0d410806e382d9db29ba305448addda97c4marketplace.builtin.rabbitmq.images.4.3.digest
sha256:42b190dffdd0cdb656f989f5404c30e1049d6b7d9c987089669b1905e5e3a1a6