33 Commits

Author SHA1 Message Date
Robert Marsal
99de33f615 feat: add support for volumeAttributesClass for pvcs (#396)
closes #365
2025-10-22 15:56:46 +02:00
Bastian Hofmann
bf5c2e9278 Add test for setting security contexts (#357)
Test for https://github.com/qdrant/qdrant-helm/pull/354
2025-07-03 13:39:22 +02:00
dependabot[bot]
820964b58f Bump golangci/golangci-lint-action from 6 to 7 (#318)
* Bump golangci/golangci-lint-action from 6 to 7

Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 6 to 7.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update golangci-lint version

* Fix lint issues

* Update dependency

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bastian Hofmann <mail@bastianhofmann.de>
2025-04-10 13:23:46 +02:00
Bastian Hofmann
6acbc9fa5f Add support for p2p tls (#314)
* added support for inter-cluster tls and changing the inter-cluster port number

* renamed helper variables for extra clarity

* Fix tls test, and add p2p tls test

* Fix test

* Fix test

---------

Co-authored-by: Nathan Savage <nathan.savage@kaimai.co.uk>
2025-03-20 10:14:02 +01:00
Mask
2644cfaef0 topologySpreadConstraints also need tpl function (#309)
Like `affinity`, `topologySpreadConstraints` also need tpl function to rendering its value. for example:

```yaml
topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: "topology.kubernetes.io/zone"
    whenUnsatisfiable: ScheduleAnyway
    labelSelector:
      matchLabels:
        app.kubernetes.io/name: '{{ include "qdrant.name" . }}'
```
2025-03-17 11:13:52 +01:00
Bastian Hofmann
d1035865a7 Fix integration tests 2024-12-16 11:09:11 +01:00
Tim Visée
b02de941ff Update chart to Qdrant 1.12.4 (#263)
* Bump Qdrant to 1.12.3

* Disallow warnings on startup

* Invert warning check

* Update PR for 1.2.4

---------

Co-authored-by: Bastian Hofmann <mail@bastianhofmann.de>
2024-11-18 21:22:35 +01:00
Bastian Hofmann
e4f5a0fdf9 Update chart to Qdrant 1.12.2 (#262)
* Update chart to Qdrant 1.12.2

* Add better test output

* Skip tests for 1.12.2

* Fix test
2024-11-11 11:51:35 +01:00
NathanSavageKaimai
ae1d0fbc91 Added support for reading apiKey and readOnlyApiKey from external secrets. (#230)
* added support for reading apiKey and readOnlyApiKey from external secrets. Also added support for valueFrom convention in container secrets

* flattened _helpers.tpl to maintain existing convention

* fixed logic issue with apiKey and readOnlyApiKey primitive values introduced in last commit

* changed helper if from a typeOf check to a kindOf check and added a BATS test for new functionality

* fixed test config error
2024-08-30 15:48:27 +02:00
Tim Eggert
c6b35003ac test: adds a unit test for the new affinity tpl() rendering (#217) 2024-08-12 15:37:18 +02:00
Mac Chaffee
b892dd097f Increase curl retries to fix CI flakiness (#180)
* Increase curl retries to fix CI flakiness

* Add retries to curl container
2024-05-03 21:15:32 -04:00
Mac Chaffee
cb15e28a5f Support storing snapshots in a separate PVC (#177)
* Support storing snapshots in a separate PVC

* Document snapshot restoration, split contributing docs

* Setup and teardown test
2024-05-03 11:09:22 -04:00
SamirPS
4ead93adbe Release 0.8.5 with Qdrant 1.9.0 (#169)
Co-authored-by: Bastian Hofmann <mail@bastianhofmann.de>
2024-04-25 10:48:43 -06:00
plblueraven
e3037d206a Allow ports to be configured as NodePort (#165)
* Allow ports to be configured as `NodePort'

* PR fix: Do not update chart version

* PR fix: Remove setting null `nodePort` in case of `ClusterIP` service

* PR fix: Remove unreleased changelog entry
2024-04-25 16:22:54 +02:00
Bastian Hofmann
e099636446 Release 0.8.2 with Qdrant 1.8.2 (#154)
* Release 0.8.2 with Qdrant 1.8.2

* Fix integration tests

* Fix integration tests
2024-03-18 10:48:21 +01:00
Bastian Hofmann
ee2589caa6 Support read_only_api_key in Qdrant config, similar to the api_key co… (#146)
* Support read_only_api_key in Qdrant config, similar to the api_key config value

* Fix updates of secret

* Fix updates of secret

* Fix updates of secret

* Fix updates of secret
2024-03-05 18:07:37 +01:00
Henrik Schmidt
f5cd22e0da Use /readyz for 1.7.3 onwards (#124) 2024-01-02 18:59:17 +01:00
Henrik Schmidt
9a66c3c1c1 Use fqdn for image (#125)
* Use fqdn for image

* Fix unit test
2023-12-29 15:46:51 +01:00
Bastian Hofmann
32e85e47a6 Use / for probes instead of /readyz (#114)
* Use / for probes instead of /readyz

The new implementation of /readyz does not work well together with how StatefulSets do roll outs and restarts

* Fix test
2023-12-12 15:46:49 +00:00
Mac Chaffee
2ddefd61cc Fix snapshot restoration and add integration test (#96)
* Fix snapshot restoration and add integration test

* Fix updateConfigurationOnChange

* Add retries to all curl commands to fix flakiness in kind
2023-10-16 13:35:39 -04:00
Bastian Hofmann
7a269d8153 Make annotations for the ServiceAccount configurable (#92)
One use-case would be associating a ServiceAccount with an IAM role in EKS (https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html)

Fixes https://github.com/qdrant/qdrant-helm/issues/89
2023-10-10 15:38:09 +02:00
Mac Chaffee
706a3acad3 Propagate signals to qdrant by using /bin/bash (#91) 2023-10-10 08:33:23 -04:00
Bastian Hofmann
cea92d092a Make ingressClassName configurable (#86)
* Make ingressClassName configurable

Fixes https://github.com/qdrant/qdrant-helm/issues/84

* Fix CI

* Fix CI

* Fix CI
2023-10-05 16:36:52 +02:00
Bastian Hofmann
264b4cfe96 Fix and improve probes (#79)
* Fix probes when Qdrant is served over TLS

This also improves the integration test runtime and reliability by not installing a fresh cluster for every test but upgrading it with the new config.

Fixes https://github.com/qdrant/qdrant-helm/issues/77

* Deactivate liveness and startup probes by default

Since these probes restart the pod on failure, they can disrupt the health of the Qdrant cluster unnecessarily and cause more problems then actually help. Having a readinessProbe is usually enough.

* Fix tests

* Try to fix connection issues
2023-09-29 12:31:54 +02:00
Bastian Hofmann
52515f661e Release 0.5.1 (#76)
* Release 0.5.1

This also adds an integration test which actually hits the API and experimental support for unprivileged container images

* Add debug statement

* Add debug statement

* Bump Qdrant to 1.5.1

* Try to fix tests

* Add comment and remove duplicated test
2023-09-13 11:15:21 +02:00
Bastian Hofmann
bc06c7b751 Ensure that the qdrant-init-file-path is on a writable, ephemeral volume (#75)
Fixes https://github.com/qdrant/qdrant-helm/issues/74
2023-09-11 10:09:17 +02:00
Bastian Hofmann
ae5fb05b1d Update to Qdrant 1.5.0 (#73)
* Update to Qdrant 1.5.0

This also changes the probes to use the new healthz readyz and livez endpoints

Resolves https://github.com/qdrant/qdrant-helm/issues/72
Resolves https://github.com/qdrant/qdrant-helm/issues/71

* Update charts/qdrant/templates/statefulset.yaml

Co-authored-by: Tim Visée <tim+github@visee.me>

* Update qdrant_probes_test.go

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2023-09-07 17:12:24 +02:00
Bastian Hofmann
70f9d16ded Don't use alpine image for file permission updates (#69)
Using an additional image makes compliance validations harder.

This also adds a test if the upgrade from root to nonRoot works correctly.
2023-09-04 12:54:21 +02:00
Bastian Hofmann
17ab935d00 Make pod topologySpreadConstraints configurable (#66)
Fixes https://github.com/qdrant/qdrant-helm/issues/65
More info https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
2023-08-31 18:07:27 +02:00
Bastian Hofmann
dfff7fac6a Make the qdrant api key easily configurable (#62)
* Make the qdrant api key easily configurable

This adds a new `apiKey` value.

If `true` it generates a random apiKey, stores it in a secret and ensures that it stays the same during upgrades.
If a string is passed, this string is used as the api key.

The secret is mounted as a `local.yaml` config into the container. See also https://qdrant.tech/documentation/guides/configuration/#order-and-priority.

Alternatively, there are two new values `additionalVolumes` and `additionalVolumeMounts` which allow to mount additional existing volumes, such as pre-existing secrets into the qdrant container.

This also adds bats-core based integration tests to test the correct api key handling

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>

* Fix bats integration tests

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>

* Fix bats integration tests

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>

* Fix bats integration tests

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>

* Fix bats integration tests

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>

* Fix statefulset

* doc: fix typo

---------

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>
Co-authored-by: Tim Eggert <tim@elbart.com>
2023-08-31 15:22:54 +02:00
Bastian Hofmann
894b0bd0b2 Make relabelings and metricRelabelings configurable in ServiceMonitor (#61)
This also makes the go test repo structure more standard and fixes `require.equal` argument order
2023-08-29 11:47:46 +02:00
Bastian Hofmann
ff7e1adc19 Allow annotations on volumeClaimTemplate of qdrant statefulset (#63)
Fixes https://github.com/qdrant/qdrant-helm/issues/45

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>
2023-08-29 11:47:13 +02:00
Bastian Hofmann
eaca2bd11e Support configuring additional labels on resources and add ServiceAccount (#56)
* Support configuring additional labels on resources and add ServiceAccount

Fixes https://github.com/qdrant/qdrant-helm/issues/55

This adds a ServiceAccount for the Statefulset. This errors if a namespace has no default ServiceAccount and prevents accidentally using a default namespace ServiceAccount with elevated permissions.

This also introduces terratest as a way to do unit tests on the rendered helm chart.

* Fix setup-go cache-dependency-path for faster executions

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>

---------

Signed-off-by: Bastian Hofmann <mail@bastianhofmann.de>
2023-08-24 12:46:23 +02:00