Extend Private Cloud Setup guide

* Example for upgrade
* Example for changing the configuration
* Example for StorageClass and VolumeSnapshotClass modification
* Example for image mirroring
This commit is contained in:
Bastian Hofmann
2025-08-12 16:05:36 +02:00
parent ad91dcbafa
commit 95a125fe3f
2 changed files with 252 additions and 20 deletions
@@ -359,4 +359,139 @@ qdrant-cluster-manager:
tolerations: []
affinity: {}
qdrant-cluster-exporter:
image:
repository: registry.cloud.qdrant.io/qdrant/qdrant-cluster-exporter
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets:
- name: qdrant-registry-creds
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: { }
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
rbac:
create: true
podAnnotations: { }
podSecurityContext:
runAsNonRoot: true
runAsUser: 65534
runAsGroup: 65534
fsGroup: 65534
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 65534
runAsGroup: 65534
service:
enabled: true
type: ClusterIP
port: 9090
portName: metrics
strategy:
# Prevents double-scraping by terminating the old pod before creating a new one
# The pod scrapes a large volume of metrics with high cardinality
type: Recreate
resources: { }
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: { }
tolerations: [ ]
affinity: { }
serviceMonitor:
enabled: false
honorLabels: true
scrapeInterval: 60s
scrapeTimeout: 55s
# Limit RBAC to the release namespace
limitRBAC: true
# Configuration regarding the watch namespaces
watch:
# If true, watches only the namespace where the exporter is deployed, otherwise watches the namespaces in watch.namespaces
onlyReleaseNamespace: true
# an empty list watches all namespaces
namespaces: [ ]
# Configuration for the qdrant cluster exporter
config:
# The log level for the cluster-exporter
# Available options: DEBUG | INFO | WARN | ERROR
logLevel: INFO
# Controller related settings
controller:
# The period a forced recync is done by the controller (if watches are missed / nothing happened)
forceResyncPeriod: 10h
# QPS indicates the maximum QPS to the master from this client.
# Default is 200
qps: 200
# Maximum burst for throttle.
# Default is 500.
burst: 500
# Maximum number of concurrent reconciling
maxConcurrentReconciles: 20
# The interval after which controller will requeue an object
requeueInterval: 30s
# The configuration related to metrics
metrics:
# The port on which the metrics are exposed
port: 9090
# The path on which the metrics are exposed
path: /metrics
# The configuration related to health check
healthz:
# The port used for the health probe
port: 8085
# The configuration related to caching qdrant telemetry and metrics
cache:
# The period after which the cache is invalidated
ttl: 60s
# The configuration related to the qdrant rest client
qdrant:
restAPI:
# The qdrant rest api port
port: 6333
# Time after which request to qdrant be canceled if not completed
timeout: 20s
# Path where qdrant exposes metrics
metricsPath: "metrics"
# Configuration related to telemetry
telemetry:
# Path where qdrant exposes telemetry
path: "telemetry"
# The level of details for telemetry
detailsLevel: 6
# Whether to anonymize the telemetry data
anonymize: true
```
@@ -40,7 +40,96 @@ Open Containers Initiative (OCI) Helm charts:
- `registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud`
- `registry.cloud.qdrant.io/library/qdrant-kubernetes-api`
The specific versions for every private cloud version are documented in the [Private Cloud Changelog](/documentation/private-cloud/changelog/).
- The specific versions for every private cloud version are documented in the [Private Cloud Changelog](/documentation/private-cloud/changelog/).
## Installation
Once you are onboarded to Qdrant Private Cloud, you will receive credentials to access the Qdrant Cloud Registry. You can use these credentials to install the Qdrant Private Cloud solution using the following commands. You can choose the Kubernetes namespace freely.
1. Create the namespace for Private Cloud, e.g.
```bash
kubectl create namespace qdrant-private-cloud
```
2. Create a Kubernetes secret with your Qdrant Cloud Registry credentials, so that your Kubernetes cluster can pull the necessary container images:
```
kubectl create secret docker-registry qdrant-registry-creds --docker-server=registry.cloud.qdrant.io --docker-username='your-username' --docker-password='your-password' --namespace qdrant-private-cloud
```
3. Log in to the Qdrant Cloud Registry using Helm:
```bash
helm registry login 'registry.cloud.qdrant.io' --username 'your-username' --password 'your-password'
```
4. Install then Qdrant Kubernetes Operator Custom Resource Definitions (CRDs):
```bash
helm upgrade --install qdrant-private-cloud-crds oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-kubernetes-api --namespace qdrant-private-cloud --version v1.17.2 --wait
```
5. Install the Qdrant Private Cloud:
```bash
helm upgrade --install qdrant-private-cloud oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud --namespace qdrant-private-cloud --version 1.8.0
```
Ensure that the version of `qdrant-kubernetes-api` is compatible with the version of `qdrant-private-cloud` you are installing.
For a list of available versions consult the [Private Cloud Changelog](/documentation/private-cloud/changelog/).
Current default versions are:
* qdrant-kubernetes-api v1.17.2
* qdrant-private-cloud 1.8.0
For more information also see the [Helm Install Documentation](https://helm.sh/docs/helm/helm_install/).
## Configuring Private Cloud
The Qdrant Private Cloud Helm chart comes with a set of default values that are suitable for most deployments. However, you can customize the configuration to fit your specific needs. See the [Private Cloud Configuration](/documentation/private-cloud/configuration/) page for all available configuration options.
Especially ensure, that the default values to reference `StorageClasses` and the corresponding `VolumeSnapshotClass` are set correctly in your environment.
When creating your own `values.yaml` file, as a best practice, only override the values you want to change, e.g. with this `values.yaml` file:
```yaml
operator:
settings:
features:
clusterManagement:
storageClass:
database: your-storage-class-name
snapshot: your-storage-class-name
backupManagement:
snapshots:
volumeSnapshotClass: your-volume-snapshot-class-name
```
You can configure Qdrant Private Cloud like this:
```bash
helm upgrade --install qdrant-private-cloud oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud --namespace qdrant-private-cloud --version 1.8.0 -f values.yaml
```
## Upgrades
To upgrade Qdrant Private Cloud to a new version, first upgrade the Qdrant Kubernetes Operator Custom Resource Definitions (CRDs):
```bash
helm upgrade --install qdrant-private-cloud-crds oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-kubernetes-api --namespace qdrant-private-cloud --version v1.17.2 --wait
```
Then upgrade the Qdrant Private Cloud Helm chart using the same configuration values, e.g.:
```bash
helm upgrade --install qdrant-private-cloud oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud --namespace qdrant-private-cloud --version 1.8.0 -f values.yaml
```
Note, that the image tag values are automatically derived from the chart's appVersions and should not be changed in the `values.yaml`.
For more information also see the [Helm Upgrade Documentation](https://helm.sh/docs/helm/upgrade/).
### Mirroring images and charts
@@ -73,28 +162,36 @@ skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-cha
skopeo sync --all --src docker --dest docker registry.cloud.qdrant.io/qdrant-charts/qdrant-kubernetes-api your-registry.example.com/qdrant-charts/qdrant-kubernetes-api
```
During the installation or upgrade, you will need to adapt the repository information in the Helm chart values. See [Private Cloud Configuration](/documentation/private-cloud/configuration/) for details.
During the installation or upgrade, you will need to adapt the image repository and imagePullSecret information in the Helm chart values, e.g.:
## Installation and Upgrades
Once you are onboarded to Qdrant Private Cloud, you will receive credentials to access the Qdrant Cloud Registry. You can use these credentials to install the Qdrant Private Cloud solution using the following commands. You can choose the Kubernetes namespace freely.
```bash
kubectl create namespace qdrant-private-cloud
kubectl create secret docker-registry qdrant-registry-creds --docker-server=registry.cloud.qdrant.io --docker-username='your-username' --docker-password='your-password' --namespace qdrant-private-cloud
helm registry login 'registry.cloud.qdrant.io' --username 'your-username' --password 'your-password'
helm upgrade --install qdrant-private-cloud-crds oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-kubernetes-api --namespace qdrant-private-cloud --version v1.17.2 --wait
helm upgrade --install qdrant-private-cloud oci://registry.cloud.qdrant.io/qdrant-charts/qdrant-private-cloud --namespace qdrant-private-cloud --version 1.8.0
```yaml
operator:
image:
repository: your-registry.example.com/qdrant/operator
imagePullSecrets:
- name: your-registry-creds
settings:
features:
clusterManagement:
qdrant:
image:
repository: your-registry.example.com/qdrant/qdrant
pullSecretName: your-registry-creds
qdrant-cluster-manager:
image:
repository: your-registry.example.com/qdrant/cluster-manager
imagePullSecrets:
- name: your-registry-creds
qdrant-cluster-exporter:
image:
repository: your-registry.example.com/qdrant/qdrant-cluster-exporter
imagePullSecrets:
- name: your-registry-creds
```
For a list of available versions consult the [Private Cloud Changelog](/documentation/private-cloud/changelog/).
Current default versions are:
* qdrant-kubernetes-api v1.17.2
* qdrant-private-cloud 1.8.0
Especially ensure, that the default values to reference `StorageClasses` and the corresponding `VolumeSnapshotClass` are set correctly in your environment.
See [Private Cloud Configuration](/documentation/private-cloud/configuration/) for details.
### Scope of the operator