diff --git a/README.md b/README.md index 1d0ffe489..a217dd3ec 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,6 @@ KubeBlocks add-ons. | tdengine | tdengine-3.0.5 | TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps. | leon-inf | | tidb | tidb-6.5.10
tidb-7.1.5
tidb-7.5.2
tidb-pd-6.5.10
tidb-pd-7.1.5
tidb-pd-7.5.2
tikv-6.5.10
tikv-7.1.5
tikv-7.5.2 | TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. | csuzhangxc cjc7373 | | victoria-metrics | ictoria-metrics-1.0.0 | VictoriaMetrics is a fast, cost-effective and scalable monitoring solution and time series database. | sophon-zt ButterBright | -| weaviate | weaviate-1.23.1 | Weaviate is an open-source vector database. It allows you to store data objects and vector embeddings from your favorite ML-models, and scale seamlessly into billions of data objects. | iziang | +| weaviate | weaviate-1.19.6 | Weaviate is an open-source vector database. It allows you to store data objects and vector embeddings from your favorite ML-models, and scale seamlessly into billions of data objects. | iziang | | yashandb | yashandb-personal-23.1.1.100 | YashanDB is a new database system completely independently designed and developed by SICS. Based on classical database theories, it incorporates original Bounded Evaluation theory, Approximation theory, Parallel Scalability theory and Cross-Modal Fusion Computation theory, supports multiple deployment methods such as stand-alone/primary-standby, shared cluster, and distributed ones, covers OLTP/HTAP/OLAP transactions and analyzes mixed load scenarios, and is fully compatible with privatization and cloud infrastructure, providing clients with one-stop enterprise-level converged data management solutions to meet the needs of key industries such as finance, government, telecommunications and energy for high performance, concurrency and security. | JesseAtSZ shanshanying | | zookeeper | zookeeper-3.4.14
zookeeper-3.6.4
zookeeper-3.7.2
zookeeper-3.8.4
zookeeper-3.9.2 | Apache ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. | kubeJocker kissycn | diff --git a/addons-cluster/weaviate/Chart.yaml b/addons-cluster/weaviate/Chart.yaml index f37ab55e4..a9748694d 100644 --- a/addons-cluster/weaviate/Chart.yaml +++ b/addons-cluster/weaviate/Chart.yaml @@ -6,4 +6,10 @@ type: application version: 1.0.0-alpha.0 -appVersion: "1.18.0" +dependencies: + - name: kblib + version: 0.1.2 + repository: file://../kblib + alias: extra + +appVersion: "1.19.6" diff --git a/addons-cluster/weaviate/templates/_helpers.tpl b/addons-cluster/weaviate/templates/_helpers.tpl index 783b8bbd4..b287a44b5 100644 --- a/addons-cluster/weaviate/templates/_helpers.tpl +++ b/addons-cluster/weaviate/templates/_helpers.tpl @@ -50,13 +50,9 @@ app.kubernetes.io/name: {{ include "weaviate.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} -{{- define "clustername" -}} -{{ include "weaviate.fullname" .}} -{{- end}} - {{/* Create the name of the service account to use */}} {{- define "weaviate.serviceAccountName" -}} -{{- default (printf "kb-%s" (include "clustername" .)) .Values.serviceAccount.name }} +{{- default (printf "kb-%s" (include "kblib.clusterName" .)) .Values.serviceAccount.name }} {{- end }} diff --git a/addons-cluster/weaviate/templates/cluster.yaml b/addons-cluster/weaviate/templates/cluster.yaml index f4d4b3ffd..a3cc4ff5b 100644 --- a/addons-cluster/weaviate/templates/cluster.yaml +++ b/addons-cluster/weaviate/templates/cluster.yaml @@ -1,7 +1,7 @@ apiVersion: apps.kubeblocks.io/v1 kind: Cluster metadata: - name: {{ include "clustername" . }} + name: {{ include "kblib.clusterName" . }} labels: {{ include "weaviate.labels" . | nindent 4 }} spec: terminationPolicy: {{ .Values.terminationPolicy }} diff --git a/addons-cluster/weaviate/values.yaml b/addons-cluster/weaviate/values.yaml index e4c72469f..8de0238a7 100644 --- a/addons-cluster/weaviate/values.yaml +++ b/addons-cluster/weaviate/values.yaml @@ -3,9 +3,11 @@ # Declare variables to be passed into your templates. replicaCount: 1 + terminationPolicy: Delete nameOverride: "" + fullnameOverride: "" resources: { } diff --git a/addons/weaviate/Chart.yaml b/addons/weaviate/Chart.yaml index 4a547a592..3f8bfefad 100644 --- a/addons/weaviate/Chart.yaml +++ b/addons/weaviate/Chart.yaml @@ -8,7 +8,7 @@ type: application version: 1.0.0-alpha.0 # This is the version number of weaviate. -appVersion: "1.18.0" +appVersion: "1.19.6" home: https://weaviate.tech/ icon: https://weaviate.tech/images/logo_with_text.svg @@ -23,6 +23,6 @@ sources: - https://github.com/apecloud/kubeblocks/ annotations: - addon.kubeblocks.io/kubeblocks-version: ">=0.9.0" + addon.kubeblocks.io/kubeblocks-version: ">=1.0.0" addon.kubeblocks.io/model: "vector" addon.kubeblocks.io/provider: "community" diff --git a/addons/weaviate/templates/_helpers.tpl b/addons/weaviate/templates/_helpers.tpl index a59bae3a5..e95d3262d 100644 --- a/addons/weaviate/templates/_helpers.tpl +++ b/addons/weaviate/templates/_helpers.tpl @@ -51,14 +51,45 @@ app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{/* -Define component definition name +Common weaviate annotations +*/}} +{{- define "weaviate.annotations" -}} +helm.sh/resource-policy: keep +{{- end }} + +{{/* +Define weaviate component definition name */}} {{- define "weaviate.componentDefName" -}} -{{- if eq (len .Values.compDefinitionVersionSuffix) 0 -}} -weaviate -{{- else -}} -{{- printf "weaviate-%s" .Values.compDefinitionVersionSuffix -}} +weaviate-{{ .Chart.Version }} +{{- end -}} + +{{/* +Define weaviate component definition regex pattern name +*/}} +{{- define "weaviate.cmpdRegexpPattern" -}} +^weaviate- {{- end -}} + +{{/* +Define weaviate config template name +*/}} +{{- define "weaviate.configTplName" -}} +weaviate-config-template +{{- end -}} + +{{/* +Define weaviate env config template name +*/}} +{{- define "weaviate.envConfigTplName" -}} +weaviate-env-config-template +{{- end -}} + +{{/* +Define weaviate env config constraint name +*/}} +{{- define "weaviate.envConfigConstraintTplName" -}} +weaviate-env-constraints {{- end -}} {{/* diff --git a/addons/weaviate/templates/backuppolicytemplate.yaml b/addons/weaviate/templates/backuppolicytemplate.yaml index dac0f585e..0c6e2e280 100644 --- a/addons/weaviate/templates/backuppolicytemplate.yaml +++ b/addons/weaviate/templates/backuppolicytemplate.yaml @@ -5,9 +5,9 @@ metadata: labels: {{- include "weaviate.labels" . | nindent 4 }} spec: - serviceKind: Weaviate + serviceKind: weaviate compDefs: - - {{ include "weaviate.componentDefName" . }} + - {{ include "weaviate.cmpdRegexpPattern" . }} backupMethods: - name: volume-snapshot snapshotVolumes: true diff --git a/addons/weaviate/templates/cmpd.yaml b/addons/weaviate/templates/cmpd.yaml index 17bac792b..536cc12b9 100644 --- a/addons/weaviate/templates/cmpd.yaml +++ b/addons/weaviate/templates/cmpd.yaml @@ -4,11 +4,13 @@ metadata: name: {{ include "weaviate.componentDefName" . }} labels: {{- include "weaviate.labels" . | nindent 4 }} + annotations: + {{- include "weaviate.annotations" . | nindent 4 }} spec: provider: kubeblocks description: Weaviate is an open source vector database that is robust, scalable, cloud-native, and fast. serviceKind: weaviate - serviceVersion: 1.23.1 + serviceVersion: 1.19.6 services: - name: node-discovery serviceName: node-discovery @@ -25,16 +27,35 @@ spec: needSnapshot: true configs: - name: weaviate-config-template - templateRef: weaviate-config-template + templateRef: {{ include "weaviate.configTplName" . }} namespace: {{ .Release.Namespace }} volumeName: weaviate-config - name: weaviate-env-template - templateRef: weaviate-env-template + templateRef: {{ include "weaviate.envConfigTplName" . }} namespace: {{ .Release.Namespace }} - constraintRef: weaviate-env-constraints + constraintRef: {{ include "weaviate.envConfigConstraintTplName" . }} volumeName: weaviate-env defaultMode: 0444 + vars: + - name: WEAVIATE_COMPONENT_NAME + valueFrom: + componentVarRef: + optional: false + componentName: Required + - name: CLUSTER_NAMESPACE + valueFrom: + clusterVarRef: + namespace: Required + - name: CLUSTER_DOMAIN + value: {{ .Values.clusterDomain | quote }} + - name: WEAVIATE_COMPONENT_POD_LIST + valueFrom: + componentVarRef: + optional: false + podNames: Optional runtime: + dnsPolicy: ClusterFirst + enableServiceLinks: true containers: - name: weaviate image: {{ .Values.images.registry | default "docker.io" }}/{{ .Values.images.repository }}:{{ .Values.images.tag | default "latest" }} @@ -43,17 +64,17 @@ spec: - /bin/sh - -c - | - replicas=$(eval echo ${KB_POD_LIST} | tr ',' '\n') + replicas=$(echo ${WEAVIATE_COMPONENT_POD_LIST} | tr ',' '\n') # Initialize count - replca_count=0 + replica_count=0 # Use a for loop to iterate over each space-separated word for item in $replicas; do - replca_count=$((replca_count + 1)) + replica_count=$((replica_count + 1)) done while true; do count=$(nslookup ${CLUSTER_JOIN} | awk '/^Address: / { print $2 }' | wc -l) - if [ "$count" -eq ${replca_count} ]; then + if [ "$count" -eq ${replica_count} ]; then break fi echo "Waiting for all nodes to be running..." @@ -101,8 +122,6 @@ spec: name: weaviate-env - mountPath: /var/lib/weaviate name: data - dnsPolicy: ClusterFirst - enableServiceLinks: true ports: - name: tcp-weaviate containerPort: 8080 @@ -134,6 +153,9 @@ spec: - name: DEFAULT_VECTORIZER_MODULE value: none - name: CLUSTER_HOSTNAME - value: "$(KB_POD_NAME)" + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name - name: CLUSTER_JOIN - value: $(KB_CLUSTER_COMP_NAME)-node-discovery.$(KB_NAMESPACE).svc{{ .Values.clusterDomain }} + value: $(WEAVIATE_COMPONENT_NAME)-node-discovery.$(CLUSTER_NAMESPACE).svc$(CLUSTER_DOMAIN) \ No newline at end of file diff --git a/addons/weaviate/templates/cmpv.yaml b/addons/weaviate/templates/cmpv.yaml new file mode 100644 index 000000000..e9ba92d6b --- /dev/null +++ b/addons/weaviate/templates/cmpv.yaml @@ -0,0 +1,17 @@ +apiVersion: apps.kubeblocks.io/v1 +kind: ComponentVersion +metadata: + name: weaviate + labels: + {{- include "weaviate.labels" . | nindent 4 }} +spec: + compatibilityRules: + - releases: + - 1.19.6 + compDefs: + - {{ include "weaviate.cmpdRegexpPattern" . }} + releases: + - name: 1.19.6 + serviceVersion: 1.19.6 + images: + minio: {{ .Values.images.registry | default "docker.io" }}/{{ .Values.images.repository }}:1.19.6 \ No newline at end of file diff --git a/addons/weaviate/templates/configconstraint.yaml b/addons/weaviate/templates/configconstraint.yaml index 0a3e3bbd7..0e447b9d4 100644 --- a/addons/weaviate/templates/configconstraint.yaml +++ b/addons/weaviate/templates/configconstraint.yaml @@ -1,7 +1,7 @@ apiVersion: apps.kubeblocks.io/v1beta1 kind: ConfigConstraint metadata: - name: weaviate-env-constraints + name: {{ include "weaviate.envConfigConstraintTplName" . }} labels: {{- include "weaviate.labels" . | nindent 4 }} spec: diff --git a/addons/weaviate/templates/configmap.yaml b/addons/weaviate/templates/configuration-template.yaml similarity index 92% rename from addons/weaviate/templates/configmap.yaml rename to addons/weaviate/templates/configuration-template.yaml index d934a918d..b2a37da9e 100644 --- a/addons/weaviate/templates/configmap.yaml +++ b/addons/weaviate/templates/configuration-template.yaml @@ -1,11 +1,10 @@ apiVersion: v1 kind: ConfigMap metadata: - name: weaviate-config-template + name: {{ include "weaviate.configTplName" . }} namespace: {{ .Release.Namespace | quote }} labels: {{- include "weaviate.labels" . | nindent 4 }} - data: conf.yaml: |- --- @@ -23,11 +22,10 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: weaviate-env-template + name: {{ include "weaviate.envConfigTplName" . }} namespace: {{ .Release.Namespace | quote }} labels: {{- include "weaviate.labels" . | nindent 4 }} - data: envs: |- ENABLE_MODULES="" diff --git a/addons/weaviate/values.yaml b/addons/weaviate/values.yaml index 55185c90b..28383976c 100644 --- a/addons/weaviate/values.yaml +++ b/addons/weaviate/values.yaml @@ -2,14 +2,9 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. - nameOverride: "" -fullnameOverride: "" - -## @param commonLabels Labels to add to all deployed objects -## -commonLabels: {} +fullnameOverride: "" ## @param application images ## @@ -19,885 +14,4 @@ images: repository: semitechnologies/weaviate tag: 1.19.6 -## @param debugEnabled enables containers' debug logging -## -debugEnabled: true - -# overwrite command and args if you want to run specific startup scripts, for -# example setting the nofile limit -command: ["/bin/weaviate"] -args: - - '--host' - - '0.0.0.0' - - '--port' - - '8080' - - '--scheme' - - 'http' - - '--config-file' - - '/weaviate-config/conf.yaml' - - --read-timeout=60s - - --write-timeout=60s - -# below is an example that can be used to set an arbitrary nofile limit at -# startup: -# -# command: -# - "/bin/sh" -# args: -# - "-c" -# - "ulimit -n 65535 && /bin/weaviate --host 0.0.0.0 --port 8080 --scheme http --config-file /weaviate-config/conf.yaml" - -# Scale replicas of Weaviate. Note that as of v1.8.0 dynamic scaling is limited -# to cases where no data is imported yet. Scaling down after importing data may -# break usability. Full dynamic scalability will be added in a future release. -replicas: 1 -resources: {} - # requests: - # cpu: '500m' - # memory: '300Mi' - # limits: - # cpu: '1000m' -# memory: '1Gi' - - -# Add a service account to the Weaviate pods if you need Weaviate to have permissions to -# access kubernetes resources or cloud provider resources. For example for it to have -# access to a backup up bucket, or if you want to restrict Weaviate pod in any way. -# By default, use the default ServiceAccount -serviceAccountName: - -# The Persistent Volume Claim settings for Weaviate. If there's a -# storage.fullnameOverride field set, then the default pvc will not be -# created, instead the one defined in fullnameOverride will be used -storage: - size: 32Gi - storageClassName: "" - -# The service controls how weaviate is exposed to the outside world. If you -# don't want a public load balancer, you can also choose 'ClusterIP' to make -# weaviate only accessible within your cluster. -service: - name: weaviate - ports: - - name: http - protocol: TCP - port: 80 - # Target port is going to be the same for every port - type: LoadBalancer - loadBalancerSourceRanges: [] - # optionally set cluster IP if you want to set a static IP - clusterIP: - annotations: {} - -# Adjust liveness, readiness and startup probes configuration -startupProbe: - # For kubernetes versions prior to 1.18 startupProbe is not supported thus can be disabled. - enabled: false - - initialDelaySeconds: 300 - periodSeconds: 60 - failureThreshold: 50 - successThreshold: 1 - timeoutSeconds: 3 - -livenessProbe: - initialDelaySeconds: 900 - periodSeconds: 10 - failureThreshold: 30 - successThreshold: 1 - timeoutSeconds: 3 - -readinessProbe: - initialDelaySeconds: 3 - periodSeconds: 10 - failureThreshold: 3 - successThreshold: 1 - timeoutSeconds: 3 - - -terminationGracePeriodSeconds: 600 - -# Weaviate Config -# -# The following settings allow you to customize Weaviate to your needs, for -# example set authentication and authorization options. See weaviate docs -# (https://www.weaviate.io/developers/weaviate/) for all -# configuration. -authentication: - anonymous_access: - enabled: true -authorization: - admin_list: - enabled: false -query_defaults: - limit: 100 -debug: false - - -# Insert any custom environment variables or envSecrets by putting the exact name -# and desired value into the settings below. Any env name passed will be automatically -# set for the statefulSet. -env: - CLUSTER_GOSSIP_BIND_PORT: 7000 - CLUSTER_DATA_BIND_PORT: 7001 - # The aggressiveness of the Go Garbage Collector. 100 is the default value. - GOGC: 100 - - # Expose metrics on port 2112 for Prometheus to scrape - PROMETHEUS_MONITORING_ENABLED: false - - # Set a MEM limit for the Weaviate Pod so it can help you both increase GC-related - # performance as well as avoid GC-related out-of-memory ("OOM") situations - # GOMEMLIMIT: 6GiB - - # Maximum results Weaviate can query with/without pagination - # NOTE: Affects performance, do NOT set to a very high value. - # The default is 100K - QUERY_MAXIMUM_RESULTS: 100000 - - # whether to enable vector dimensions tracking metric - TRACK_VECTOR_DIMENSIONS: false - - # whether to re-index/-compute the vector dimensions metric (needed if upgrading from weaviate < v1.16.0) - REINDEX_VECTOR_DIMENSIONS_AT_STARTUP: false - -envSecrets: - - -# Configure backup providers -backups: - # The backup-filesystem module enables creation of the DB backups in - # the local filesystem - filesystem: - enabled: false - envconfig: - # Configure folder where backups should be saved - BACKUP_FILESYSTEM_PATH: /tmp/backups - - s3: - enabled: false - # If one is using AWS EKS and has already configured K8s Service Account - # that holds the AWS credentials one can pass a name of that service account - # here using this setting. - # NOTE: the root `serviceAccountName` config has priority over this one, and - # if the root one is set this one will NOT overwrite it. This one is here for - # backwards compatibility. - serviceAccountName: - - envconfig: - # Configure bucket where backups should be saved, this setting is mandatory - BACKUP_S3_BUCKET: weaviate-backups - - # Optional setting. Defaults to empty string. - # Set this option if you want to save backups to a given location - # inside the bucket - # BACKUP_S3_PATH: path/inside/bucket - - # Optional setting. Defaults to AWS S3 (s3.amazonaws.com). - # Set this option if you have a MinIO storage configured in your environment - # and want to use it instead of the AWS S3. - # BACKUP_S3_ENDPOINT: custom.minio.endpoint.address - - # Optional setting. Defaults to true. - # Set this option if you don't want to use SSL. - # BACKUP_S3_USE_SSL: true - - # You can pass environment AWS settings here: - # Define the region - # AWS_REGION: eu-west-1 - - # For Weaviate to be able to create bucket objects it needs a user credentials to authenticate to AWS. - # The User must have permissions to read/create/delete bucket objects. - # You can pass the User credentials (access-key id and access-secret-key) in 2 ways: - # 1. by setting the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY plain values in the `secrets` section below - # this chart will create a kubernetes secret for you with these key-values pairs - # 2. create Kubernetes secret/s with AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY keys and their respective values - # Set the Key and the secret where it is set in `envSecrets` section below - secrets: {} - # AWS_ACCESS_KEY_ID: access-key-id (plain text) - # AWS_SECRET_ACCESS_KEY: secret-access-key (plain text) - - # If one has already defined secrets with AWS credentials one can pass them using - # this setting: - envSecrets: {} - # AWS_ACCESS_KEY_ID: name-of-the-k8s-secret-containing-the-key-id - # AWS_SECRET_ACCESS_KEY: name-of-the-k8s-secret-containing-the-key - - gcs: - enabled: false - envconfig: - # Configure bucket where backups should be saved, this setting is mandatory - BACKUP_GCS_BUCKET: weaviate-backups - - # Optional setting. Defaults to empty string. - # Set this option if you want to save backups to a given location - # inside the bucket - # BACKUP_GCS_PATH: path/inside/bucket - - # You can pass environment Google settings here: - # Define the project - # GOOGLE_CLOUD_PROJECT: project-id - - # For Weaviate to be able to create bucket objects it needs a ServiceAccount credentials to authenticate to GCP. - # The ServiceAccount must have permissions to read/create/delete bucket objects. - # You can pass the ServiceAccount credentials (as JSON) in 2 ways: - # 1. by setting the GOOGLE_APPLICATION_CREDENTIALS json as plain text in the `secrets` section below - # this chart will create a kubernetes secret for you with this key-values pairs - # 2. create a Kubernetes secret with GOOGLE_APPLICATION_CREDENTIALS key and its respective value - # Set the Key and the secret where it is set in `envSecrets` section below - secrets: {} - # GOOGLE_APPLICATION_CREDENTIALS: credentials-json-string - - # If one has already defined a secret with GOOGLE_APPLICATION_CREDENTIALS one can pass them using - # this setting: - envSecrets: {} - # GOOGLE_APPLICATION_CREDENTIALS: name-of-the-k8s-secret-containing-the-key - - azure: - enabled: false - envconfig: - # Configure container where backups should be saved, this setting is mandatory - BACKUP_AZURE_CONTAINER: weaviate-backups - - # Optional setting. Defaults to empty string. - # Set this option if you want to save backups to a given location - # inside the container - # BACKUP_AZURE_PATH: path/inside/container - - # For Weaviate to be able to create container objects it needs a user credentials to authenticate to Azure Storage. - # The User must have permissions to read/create/delete container objects. - # You can pass the User credentials (account-name id and account-key or connection-string) in 2 ways: - # 1. by setting the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY - # or AZURE_STORAGE_CONNECTION_STRING plain values in the `secrets` section below - # this chart will create a kubernetes secret for you with these key-values pairs - # 2. create Kubernetes secret/s with AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY - # or AZURE_STORAGE_CONNECTION_STRING and their respective values - # Set the Key and the secret where it is set in `envSecrets` section below - secrets: {} - # AZURE_STORAGE_ACCOUNT: account-name (plain text) - # AZURE_STORAGE_KEY: account-key (plain text) - # AZURE_STORAGE_CONNECTION_STRING: connection-string (plain text) - - # If one has already defined secrets with Azure Storage credentials one can pass them using - # this setting: - envSecrets: {} - # AZURE_STORAGE_ACCOUNT: name-of-the-k8s-secret-containing-the-account-name - # AZURE_STORAGE_KEY: name-of-the-k8s-secret-containing-account-key - # AZURE_STORAGE_CONNECTION_STRING: name-of-the-k8s-secret-containing-connection-string - - -# modules are extensions to Weaviate, they can be used to support various -# ML-models, but also other features unrelated to model inference. -# An inference/vectorizer module is not required, you can also run without any -# modules and import your own vectors. -modules: - - # The text2vec-contextionary module uses a fastText-based vector-space to - # derive vector embeddings for your objects. It is very efficient on CPUs, - # but in some situations it cannot reach the same level of accuracy as - # transformers-based models. - text2vec-contextionary: - # disable if you want to use transformers or import or own vectors - enabled: false - - # The configuration below is ignored if enabled==false - fullnameOverride: contextionary - tag: en0.16.0-v1.0.2 - repo: semitechnologies/contextionary - registry: docker.io - replicas: 1 - envconfig: - occurrence_weight_linear_factor: 0.75 - neighbor_occurrence_ignore_percentile: 5 - enable_compound_splitting: false - extensions_storage_mode: weaviate - resources: - requests: - cpu: '500m' - memory: '500Mi' - limits: - cpu: '1000m' - memory: '5000Mi' - - # It is possible to add a ServiceAccount to this module's Pods, it can be - # used in cases where the module is in a private registry and you want to - # give access to the registry only to this pod. - # NOTE: if not set the root `serviceAccountName` config will be used. - serviceAccountName: - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - # The text2vec-transformers modules uses neural networks, such as BERT, - # DistilBERT, etc. to dynamically compute vector embeddings based on the - # sentence's context. It is very slow on CPUs and should run with - # CUDA-enabled GPUs for optimal performance. - text2vec-transformers: - - # enable if you want to use transformers instead of the - # text2vec-contextionary module - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - # The configuration below is ignored if enabled==false - - # replace with model of choice, see - # https://weaviate.io/developers/weaviate/modules/retriever-vectorizer-modules/text2vec-transformers - # for all supported models or build your own container. - tag: distilbert-base-uncased - repo: semitechnologies/transformers-inference - registry: docker.io - replicas: 1 - fullnameOverride: transformers-inference - probeInitialDelaySeconds: 120 - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - - # It is possible to add a ServiceAccount to this module's Pods, it can be - # used in cases where the module is in a private registry and you want to - # give access to the registry only to this pod. - # NOTE: if not set the root `serviceAccountName` config will be used. - serviceAccountName: - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - passageQueryServices: - passage: - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - - tag: facebook-dpr-ctx_encoder-single-nq-base - repo: semitechnologies/transformers-inference - registry: docker.io - replicas: 1 - fullnameOverride: transformers-inference-passage - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - query: - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - - tag: facebook-dpr-question_encoder-single-nq-base - repo: semitechnologies/transformers-inference - registry: docker.io - replicas: 1 - fullnameOverride: transformers-inference-query - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - # The text2vec-openai module uses OpenAI Embeddings API - # to dynamically compute vector embeddings based on the - # sentence's context. - # More information about OpenAI Embeddings API can be found here: - # https://beta.openai.com/docs/guides/embeddings/what-are-embeddings - text2vec-openai: - - # enable if you want to use OpenAI module - enabled: false - - # Set your OpenAI API Key to be passed to Weaviate pod as - # an environment variable - apiKey: '' - - # The text2vec-huggingface module uses HuggingFace API - # to dynamically compute vector embeddings based on the - # sentence's context. - # More information about HuggingFace API can be found here: - # https://huggingface.co/docs/api-inference/detailed_parameters#feature-extraction-task - text2vec-huggingface: - - # enable if you want to use HuggingFace module - enabled: false - - # Set your HuggingFace API Key to be passed to Weaviate pod as - # an environment variable - apiKey: '' - - # The text2vec-cohere module uses Cohere API - # to dynamically compute vector embeddings based on the - # sentence's context. - # More information about Cohere API can be found here: https://docs.cohere.ai/ - text2vec-cohere: - - # enable if you want to use Cohere module - enabled: false - - # Set your Cohere API Key to be passed to Weaviate pod as - # an environment variable - apiKey: '' - - # The ref2vec-centroid module - ref2vec-centroid: - - # enable if you want to use Centroid module - enabled: false - - # The multi2vec-clip modules uses CLIP transformers to vectorize both images - # and text in the same vector space. It is typically slow(er) on CPUs and should - # run with CUDA-enabled GPUs for optimal performance. - multi2vec-clip: - - # enable if you want to use transformers instead of the - # text2vec-contextionary module - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - - # The configuration below is ignored if enabled==false - - # replace with model of choice, see - # https://weaviate.io/developers/weaviate/modules/retriever-vectorizer-modules/multi2vec-clip - # for all supported models or build your own container. - tag: sentence-transformers-clip-ViT-B-32-multilingual-v1 - repo: semitechnologies/multi2vec-clip - registry: docker.io - replicas: 1 - fullnameOverride: clip-inference - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - annotations: - nodeSelector: - tolerations: - - # The qna-transformers module uses neural networks, such as BERT, - # DistilBERT, to find an aswer in text to a given question - qna-transformers: - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - tag: bert-large-uncased-whole-word-masking-finetuned-squad-34d66b1 - repo: semitechnologies/qna-transformers - registry: docker.io - replicas: 1 - fullnameOverride: qna-transformers - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - - # It is possible to add a ServiceAccount to this module's Pods, it can be - # used in cases where the module is in a private registry and you want to - # give access to the registry only to this pod. - # NOTE: if not set the root `serviceAccountName` config will be used. - serviceAccountName: - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - # The qna-openai module uses OpenAI Completions API - # to dynamically answer given questions. - # More information about OpenAI Completions API can be found here: - # https://beta.openai.com/docs/api-reference/completions - qna-openai: - - # enable if you want to use OpenAI module - enabled: false - - # Set your OpenAI API Key to be passed to Weaviate pod as - # an environment variable - apiKey: '' - - # The generative-openai module uses OpenAI Completions API - # along with text-davinci-003 model to behave as ChatGPT. - # More information about OpenAI Completions API can be found here: - # https://beta.openai.com/docs/api-reference/completions - generative-openai: - - # enable if you want to use OpenAI module - enabled: false - - # Set your OpenAI API Key to be passed to Weaviate pod as - # an environment variable - apiKey: '' - - # The img2vec-neural module uses neural networks, to generate - # a vector representation of the image - img2vec-neural: - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - tag: resnet50 - repo: semitechnologies/img2vec-pytorch - registry: docker.io - replicas: 1 - fullnameOverride: img2vec-neural - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - - # It is possible to add a ServiceAccount to this module's Pods, it can be - # used in cases where the module is in a private registry and you want to - # give access to the registry only to this pod. - # NOTE: if not set the root `serviceAccountName` config will be used. - serviceAccountName: - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - # The text-spellcheck module uses spellchecker library to check - # misspellings in a given text - text-spellcheck: - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - tag: pyspellchecker-en - repo: semitechnologies/text-spellcheck-model - registry: docker.io - replicas: 1 - fullnameOverride: text-spellcheck - - resources: - requests: - cpu: '400m' - memory: '400Mi' - limits: - cpu: '500m' - memory: '500Mi' - - # It is possible to add a ServiceAccount to this module's Pods, it can be - # used in cases where the module is in a private registry and you want to - # give access to the registry only to this pod. - # NOTE: if not set the root `serviceAccountName` config will be used. - serviceAccountName: - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - # The ner-transformers module uses spellchecker library to check - # misspellings in a given text - ner-transformers: - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - tag: dbmdz-bert-large-cased-finetuned-conll03-english-0.0.2 - repo: semitechnologies/ner-transformers - registry: docker.io - replicas: 1 - fullnameOverride: ner-transformers - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - - # It is possible to add a ServiceAccount to this module's Pods, it can be - # used in cases where the module is in a private registry and you want to - # give access to the registry only to this pod. - # NOTE: if not set the root `serviceAccountName` config will be used. - serviceAccountName: - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - # The sum-transformers module makes result texts summarizations - sum-transformers: - enabled: false - # You can set directly an inference URL of this module without deploying it with this release. - # You can do so by setting a value for the `inferenceUrl` here AND by setting the `enable` to `false` - inferenceUrl: {} - tag: facebook-bart-large-cnn-1.0.0 - repo: semitechnologies/sum-transformers - registry: docker.io - replicas: 1 - fullnameOverride: sum-transformers - envconfig: - # enable for CUDA support. Your K8s cluster needs to be configured - # accordingly and you need to explicitly set GPU requests & limits below - enable_cuda: false - - # only used when cuda is enabled - nvidia_visible_devices: all - nvidia_driver_capabilities: compute,utility - - # only used when cuda is enabled - ld_library_path: /usr/local/nvidia/lib64 - - resources: - requests: - cpu: '1000m' - memory: '3000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - limits: - cpu: '1000m' - memory: '5000Mi' - - # enable if running with CUDA support - # nvidia.com/gpu: 1 - - # It is possible to add a ServiceAccount to this module's Pods, it can be - # used in cases where the module is in a private registry and you want to - # give access to the registry only to this pod. - # NOTE: if not set the root `serviceAccountName` config will be used. - serviceAccountName: - - # You can guide where the pods are scheduled on a per-module basis, - # as well as for Weaviate overall. Each module accepts nodeSelector, - # tolerations, and affinity configuration. If it is set on a per- - # module basis, this configuration overrides the global config. - - nodeSelector: - tolerations: - affinity: - - # by choosing the default vectorizer module, you can tell Weaviate to always - # use this module as the vectorizer if nothing else is specified. Can be - # overwritten on a per-class basis. - # set to text2vec-transformers if running with transformers instead - default_vectorizer_module: none - -# It is also possible to configure authentication and authorization through a -# custom configmap The authorization and authentication values defined in -# values.yaml will be ignored when defining a custom config map. -custom_config_map: - enabled: false - name: 'custom-config' - -# Pass any annotations to Weaviate pods -annotations: - -nodeSelector: - -tolerations: - -affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 1 - podAffinityTerm: - topologyKey: "kubernetes.io/hostname" - labelSelector: - matchExpressions: - - key: "app" - operator: In - values: - - weaviate - -## @param compDefinitionVersionSuffix for all ComponentDefinition resources name created by this chart, that can avoid name conflict -## if you install multiple releases of this chart. -## If specified, the component definition will use it as name. -compDefinitionVersionSuffix: "" - clusterDomain: ".cluster.local"