From b3f3d0207097d3043a2183e78942934d799a387d Mon Sep 17 00:00:00 2001 From: David Gerchikov Date: Mon, 13 May 2024 11:11:30 +0300 Subject: [PATCH] VEC-140 Add helm charts for quote-search Proximus app (#14) * Add helm charts for quote-search app --- .../quote-semantic-search/.helmignore | 23 ++++ .../quote-semantic-search/Chart.yaml | 17 +++ .../quote-semantic-search/templates/NOTES.txt | 22 +++ .../templates/_helpers.tpl | 62 +++++++++ .../templates/deployment.yaml | 117 ++++++++++++++++ .../quote-semantic-search/templates/hpa.yaml | 32 +++++ .../templates/ingress.yaml | 61 +++++++++ .../templates/service.yaml | 15 +++ .../templates/serviceaccount.yaml | 13 ++ .../templates/tests/test-connection.yaml | 15 +++ .../quote-semantic-search/values.yaml | 126 ++++++++++++++++++ aerospike-proximus/Chart.yaml | 33 ++--- .../examples/quote-search/aerospike.yaml | 8 +- .../quote-search/as-quote-search-values.yaml | 2 +- aerospike-proximus/local-env/README.md | 13 +- .../local-env/config/kind-cluster.yaml | 8 +- .../config/quote-semantic-search-values.yaml | 10 ++ aerospike-proximus/local-env/install-kind.sh | 27 +++- .../local-env/uninstall-kind.sh | 12 +- docs/aerospike-proximus-0.1.0.tgz | Bin 0 -> 13991 bytes docs/index.yaml | 50 ++++++- docs/quote-semantic-search-0.1.0.tgz | Bin 0 -> 4829 bytes 22 files changed, 601 insertions(+), 65 deletions(-) create mode 100644 aerospike-proximus-examples/quote-semantic-search/.helmignore create mode 100644 aerospike-proximus-examples/quote-semantic-search/Chart.yaml create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/NOTES.txt create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/_helpers.tpl create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/deployment.yaml create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/hpa.yaml create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/ingress.yaml create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/service.yaml create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/serviceaccount.yaml create mode 100644 aerospike-proximus-examples/quote-semantic-search/templates/tests/test-connection.yaml create mode 100644 aerospike-proximus-examples/quote-semantic-search/values.yaml create mode 100644 aerospike-proximus/local-env/config/quote-semantic-search-values.yaml create mode 100644 docs/aerospike-proximus-0.1.0.tgz create mode 100644 docs/quote-semantic-search-0.1.0.tgz diff --git a/aerospike-proximus-examples/quote-semantic-search/.helmignore b/aerospike-proximus-examples/quote-semantic-search/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/aerospike-proximus-examples/quote-semantic-search/Chart.yaml b/aerospike-proximus-examples/quote-semantic-search/Chart.yaml new file mode 100644 index 0000000..6cc2ff8 --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/Chart.yaml @@ -0,0 +1,17 @@ +apiVersion: v2 +name: quote-semantic-search +description: A Helm chart for Aerospike Proximus +type: application +icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 +keywords: + - Aerospike + - Vector +maintainers: + - name: Aerospike + email: developers@aerospike.com + +# The helm chart version +version: 0.1.0 + +# The default version of Aerospike Kafka Outbound Connector +appVersion: "0.1.0" diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/NOTES.txt b/aerospike-proximus-examples/quote-semantic-search/templates/NOTES.txt new file mode 100644 index 0000000..8a55000 --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "quote-semantic-search.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "quote-semantic-search.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "quote-semantic-search.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "quote-semantic-search.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/_helpers.tpl b/aerospike-proximus-examples/quote-semantic-search/templates/_helpers.tpl new file mode 100644 index 0000000..38e6db7 --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "quote-semantic-search.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "quote-semantic-search.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "quote-semantic-search.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "quote-semantic-search.labels" -}} +helm.sh/chart: {{ include "quote-semantic-search.chart" . }} +{{ include "quote-semantic-search.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "quote-semantic-search.selectorLabels" -}} +app.kubernetes.io/name: {{ include "quote-semantic-search.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "quote-semantic-search.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "quote-semantic-search.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/deployment.yaml b/aerospike-proximus-examples/quote-semantic-search/templates/deployment.yaml new file mode 100644 index 0000000..5ba0ab0 --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/deployment.yaml @@ -0,0 +1,117 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "quote-semantic-search.fullname" . }} + labels: + {{- include "quote-semantic-search.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "quote-semantic-search.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "quote-semantic-search.labels" . | nindent 8 }} + {{- with .Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "quote-semantic-search.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + initContainers: + - name: pull-dataset + image: curlimages/curl:latest + command: + - curl + - "-L" + - "-o" + - "/data/quotes.csv.tgz" + - "https://github.com/aerospike/aerospike-vector-search-examples/raw/main/quote-semantic-search/container-volumes/quote-search/data/quotes.csv.tgz" + volumeMounts: + - mountPath: /data + name: data + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + - name: GRPC_DNS_RESOLVER + value: {{ .Values.quoteSearchConfig.grpcDnsResolver | quote }} + - name: BASIC_AUTH_USERNAME + value: {{ .Values.quoteSearchConfig.basicAutUsername | quote }} + - name: BASIC_AUTH_PASSWORD + value: {{ .Values.quoteSearchConfig.basicAuthPassword | quote }} + - name: NUM_QUOTES + value: {{ .Values.quoteSearchConfig.numQuotes | quote }} + - name: PROXIMUS_HOST + value: {{ .Values.quoteSearchConfig.proximusHost | quote }} + - name: PROXIMUS_PORT + value: {{ .Values.quoteSearchConfig.proximusPort | quote }} + - name: PROXIMUS_ADVERTISED_LISTENER + value: {{ .Values.quoteSearchConfig.proximusAdvertisedListener | quote }} + - name: PROXIMUS_INDEX_NAME + value: {{ .Values.quoteSearchConfig.proximusIndexName | quote }} + - name: PROXIMUS_NAMESPACE + value: {{ .Values.quoteSearchConfig.proximusNamespace | quote }} + - name: PROXIMUS_SET + value: {{ .Values.quoteSearchConfig.proximusSet | quote }} + - name: PROXIMUS_VERIFY_TLS + value: {{ .Values.quoteSearchConfig.proximusVerifyTls | quote }} +{{/* - name: PROXIMUS_MAX_RESULTS*/}} +{{/* value: {{ .Values.quoteSearchConfig.proximusMaxResults | quote }}*/}} + - name: INDEXER_PARALLELISM + value: {{ .Values.quoteSearchConfig.indexerParallelism | quote }} + - name: MAX_CONTENT_LENGTH + value: {{ .Values.quoteSearchConfig.maxContentLength | quote }} + - name: PROXIMUS_IS_LOADBALANCER + value: {{ .Values.quoteSearchConfig.proximusIsLoadbalancer | quote }} + - name: DATASET_FILE_PATH + value: {{ .Values.quoteSearchConfig.datasetFilePath | quote }} + ports: + - name: http + containerPort: {{ .Values.service.port }} + protocol: TCP + livenessProbe: + {{- toYaml .Values.livenessProbe | nindent 12 }} + readinessProbe: + {{- toYaml .Values.readinessProbe | nindent 12 }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + volumeMounts: + - name: data + mountPath: /data + {{- with .Values.volumeMounts }} + {{- toYaml . | nindent 12 }} + {{- end }} + volumes: + - name: data + emptyDir: {} + {{- with .Values.volumes }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/hpa.yaml b/aerospike-proximus-examples/quote-semantic-search/templates/hpa.yaml new file mode 100644 index 0000000..8688813 --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/hpa.yaml @@ -0,0 +1,32 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "quote-semantic-search.fullname" . }} + labels: + {{- include "quote-semantic-search.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "quote-semantic-search.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/ingress.yaml b/aerospike-proximus-examples/quote-semantic-search/templates/ingress.yaml new file mode 100644 index 0000000..6ed5f38 --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "quote-semantic-search.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "quote-semantic-search.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/service.yaml b/aerospike-proximus-examples/quote-semantic-search/templates/service.yaml new file mode 100644 index 0000000..8de0cda --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "quote-semantic-search.fullname" . }} + labels: + {{- include "quote-semantic-search.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "quote-semantic-search.selectorLabels" . | nindent 4 }} diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/serviceaccount.yaml b/aerospike-proximus-examples/quote-semantic-search/templates/serviceaccount.yaml new file mode 100644 index 0000000..af6756e --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/serviceaccount.yaml @@ -0,0 +1,13 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "quote-semantic-search.serviceAccountName" . }} + labels: + {{- include "quote-semantic-search.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.serviceAccount.automount }} +{{- end }} diff --git a/aerospike-proximus-examples/quote-semantic-search/templates/tests/test-connection.yaml b/aerospike-proximus-examples/quote-semantic-search/templates/tests/test-connection.yaml new file mode 100644 index 0000000..9438932 --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "quote-semantic-search.fullname" . }}-test-connection" + labels: + {{- include "quote-semantic-search.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "quote-semantic-search.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/aerospike-proximus-examples/quote-semantic-search/values.yaml b/aerospike-proximus-examples/quote-semantic-search/values.yaml new file mode 100644 index 0000000..8935d6b --- /dev/null +++ b/aerospike-proximus-examples/quote-semantic-search/values.yaml @@ -0,0 +1,126 @@ +# Default values for quote-semantic-search. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: aerospike/quote-search-example + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "0.1.0" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +quoteSearchConfig: + grpcDnsResolver: "native" + basicAutUsername: "" + basicAuthPassword: "" + numQuotes: 5000 + proximusHost: "" + proximusPort: 5000 + proximusAdvertisedListener: "" + proximusIndexName: "quote-semantic-search" + proximusNamespace: "test" + proximusSet: "quote-data" + proximusVerifyTls: "True" + proximusMaxResults: 5 + indexerParallelism: 1 +# maxContentLength: 10485760 have some issues passing this param + proximusIsLoadbalancer: "False" + datasetFilePath: "/data/quotes.csv" + + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Automatically mount a ServiceAccount's API credentials? + automount: 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: "" + +podAnnotations: {} +podLabels: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 8080 + +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +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 + +livenessProbe: + httpGet: + path: / + port: http +readinessProbe: + httpGet: + path: / + port: http + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +# Additional volumes on the output Deployment definition. +volumes: [] +# - name: foo +# secret: +# secretName: mysecret +# optional: false + +# Additional volumeMounts on the output Deployment definition. +volumeMounts: [] +# - name: foo +# mountPath: "/etc/foo" +# readOnly: true + +nodeSelector: {} + +tolerations: [] + +affinity: {} diff --git a/aerospike-proximus/Chart.yaml b/aerospike-proximus/Chart.yaml index eaa3649..36af896 100644 --- a/aerospike-proximus/Chart.yaml +++ b/aerospike-proximus/Chart.yaml @@ -1,24 +1,17 @@ apiVersion: v2 -name: aerospike-proximus -description: A Helm chart for Kubernetes - -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. +name: aerospike-proximus +description: A Helm chart for Aerospike Proximus type: application +icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 +keywords: + - Aerospike + - Vector +maintainers: + - name: Aerospike + email: developers@aerospike.com -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 +# The helm chart version +version: 0.1.0 -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: "0.3.1" +# The default version of Aerospike Kafka Outbound Connector +appVersion: "0.3.1" \ No newline at end of file diff --git a/aerospike-proximus/examples/quote-search/aerospike.yaml b/aerospike-proximus/examples/quote-search/aerospike.yaml index 4cf5047..15ca8f7 100644 --- a/aerospike-proximus/examples/quote-search/aerospike.yaml +++ b/aerospike-proximus/examples/quote-search/aerospike.yaml @@ -31,7 +31,7 @@ spec: persistentVolume: storageClass: standard volumeMode: Filesystem - size: 5Gi + size: 16G - name: nsvol2 aerospike: path: /mnt/disks/proximus @@ -39,7 +39,7 @@ spec: persistentVolume: storageClass: standard volumeMode: Filesystem - size: 5Gi + size: 16G - name: aerospike-config-secret source: secret: @@ -71,7 +71,7 @@ spec: replication-factor: 1 storage-engine: type: device - filesize: 5368709120 + filesize: 17179869184 files: - /mnt/disks/test/test.dat - name: proximus-meta @@ -81,6 +81,6 @@ spec: replication-factor: 1 storage-engine: type: device - filesize: 5368709120 + filesize: 17179869184 files: - /mnt/disks/proximus/proximus.dat diff --git a/aerospike-proximus/examples/quote-search/as-quote-search-values.yaml b/aerospike-proximus/examples/quote-search/as-quote-search-values.yaml index fbad733..daa4f42 100644 --- a/aerospike-proximus/examples/quote-search/as-quote-search-values.yaml +++ b/aerospike-proximus/examples/quote-search/as-quote-search-values.yaml @@ -19,4 +19,4 @@ securityContext: runAsUser: 0 service: - enabled: true \ No newline at end of file + enabled: false \ No newline at end of file diff --git a/aerospike-proximus/local-env/README.md b/aerospike-proximus/local-env/README.md index 18eb9f2..3727e80 100644 --- a/aerospike-proximus/local-env/README.md +++ b/aerospike-proximus/local-env/README.md @@ -1,20 +1,13 @@ # Local Env Installation -## Prerequisites -### Build `quote-serch` -```shell -git clone --branch VEC-95 https://github.com/aerospike/proximus-examples.git -cd ./proximus-examples/quote-semantic-search -docker build -f "Dockerfile-quote-search" -t "quote-search" . -``` ### Create Local Env ```shell ./install-kind.sh ``` -### Run `qoute-serch` Example App -```shell -./run-quote-search.sh +### Access Quote Search +``` +http://127.0.0.1:80/ ``` ### Destroy Local Env diff --git a/aerospike-proximus/local-env/config/kind-cluster.yaml b/aerospike-proximus/local-env/config/kind-cluster.yaml index d4c7007..9751a87 100644 --- a/aerospike-proximus/local-env/config/kind-cluster.yaml +++ b/aerospike-proximus/local-env/config/kind-cluster.yaml @@ -9,9 +9,5 @@ nodes: kubeletExtraArgs: node-labels: "ingress-ready=true" extraPortMappings: - - containerPort: 80 - hostPort: 80 - protocol: TCP - - containerPort: 443 - hostPort: 443 - protocol: TCP + - containerPort: 80 + hostPort: 80 \ No newline at end of file diff --git a/aerospike-proximus/local-env/config/quote-semantic-search-values.yaml b/aerospike-proximus/local-env/config/quote-semantic-search-values.yaml new file mode 100644 index 0000000..70f452f --- /dev/null +++ b/aerospike-proximus/local-env/config/quote-semantic-search-values.yaml @@ -0,0 +1,10 @@ +ingress: + enabled: true + className: "nginx" + hosts: + - paths: + - path: / + pathType: Prefix + +quoteSearchConfig: + proximusHost: "as-quote-search-aerospike-proximus.aerospike.svc.cluster.local" diff --git a/aerospike-proximus/local-env/install-kind.sh b/aerospike-proximus/local-env/install-kind.sh index 0c8816d..0f91018 100755 --- a/aerospike-proximus/local-env/install-kind.sh +++ b/aerospike-proximus/local-env/install-kind.sh @@ -1,6 +1,15 @@ #!/bin/bash -e WORKSPACE="$(git rev-parse --show-toplevel)" +# Check prerequisites +REQUISITES=("kubectl" "kind" "docker" "helm") +for item in "${REQUISITES[@]}"; do + if [[ -z $(which "${item}") ]]; then + echo "${item} cannot be found on your system, please install ${item}" + exit 1 + fi +done + if [ ! -f "$WORKSPACE/aerospike-proximus/local-env/config/features.conf" ]; then echo "features.conf Not found" exit 1 @@ -49,15 +58,19 @@ while true; do fi done -echo "Deploy MetalLB" -kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.4/config/manifests/metallb-native.yaml -kubectl wait --namespace metallb-system \ - --for=condition=ready pod \ - --selector=app=metallb \ - --timeout=90s -kubectl apply -f "$WORKSPACE/aerospike-proximus/local-env/config/metallb-config.yaml" +echo "Deploy Nginx" +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml +kubectl wait --namespace ingress-nginx \ + --for=condition=ready pod \ + --selector=app.kubernetes.io/component=controller \ + --timeout=90s + sleep 30 echo "Deploy Proximus" helm install as-quote-search "$WORKSPACE/aerospike-proximus" \ --values "$WORKSPACE/aerospike-proximus/examples/quote-search/as-quote-search-values.yaml" --namespace aerospike + +echo "Deploying Quote-Search" +helm install quote-semantic-search "$WORKSPACE/aerospike-proximus-examples/quote-semantic-search" \ +--values "$WORKSPACE/aerospike-proximus/local-env/config/quote-semantic-search-values.yaml" --namespace aerospike --wait diff --git a/aerospike-proximus/local-env/uninstall-kind.sh b/aerospike-proximus/local-env/uninstall-kind.sh index e1e6a37..c865201 100755 --- a/aerospike-proximus/local-env/uninstall-kind.sh +++ b/aerospike-proximus/local-env/uninstall-kind.sh @@ -2,16 +2,8 @@ WORKSPACE="$(git rev-parse --show-toplevel)" -container_exists="$(docker ps -a -q -f name=^quote-search$)" -if [ ! -z "$container_exists" ]; then - docker stop quote-search - docker rm quote-search - fi - -rm -rf "$WORKSPACE/aerospike-proximus/local-env/data" -helm delete as-quote-search --namespace aerospike -kubectl delete -f "$WORKSPACE/aerospike-proximus/local-env/config/metallb-config.yaml" -kubectl delete -f https://raw.githubusercontent.com/metallb/metallb/v0.14.4/config/manifests/metallb-native.yaml +helm uninstall quote-semantic-search --namespace aerospike +helm uninstall as-quote-search --namespace aerospike kubectl delete -f "$WORKSPACE/aerospike-proximus/examples/quote-search/aerospike.yaml" kubectl --namespace aerospike delete secret auth-secret kubectl --namespace aerospike delete secret aerospike-secret diff --git a/docs/aerospike-proximus-0.1.0.tgz b/docs/aerospike-proximus-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ee66bfc565dd9a26a650c1f6763a906949a0f773 GIT binary patch literal 13991 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 literal 0 HcmV?d00001 diff --git a/docs/index.yaml b/docs/index.yaml index 73babfa..3ece192 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,7 +3,7 @@ entries: aerospike-graph: - apiVersion: v2 appVersion: 2.0.0 - created: "2024-03-06T14:28:12.727593+05:30" + created: "2024-05-09T16:19:44.999673+03:00" description: Aerospike Graph Service digest: 00e954c2ec6fe44c90cda43476070280e9c5d8bd0a4f875984928dfb2c3cbe05 keywords: @@ -18,7 +18,7 @@ entries: aerospike-jms-inbound: - apiVersion: v2 appVersion: 3.0.0 - created: "2023-09-12T18:28:21.401435+05:30" + created: "2024-05-09T16:19:45.002602+03:00" description: A Helm chart for Aerospike Connect for JMS - Inbound digest: f664bee76244a49c19dabea859581e1d668e46f6aa2e0973c3e5ee6d8f689ba3 icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 @@ -38,7 +38,7 @@ entries: aerospike-jms-outbound: - apiVersion: v2 appVersion: 4.1.1 - created: "2023-09-12T15:15:46.278624+05:30" + created: "2024-05-09T16:19:45.00403+03:00" description: A Helm chart for Aerospike Connect for JMS - Outbound digest: d3f9f3cdd9bc57eaa945336f5c1c28c164b1c8a2c41f97eda9806276077c0a2c icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 @@ -58,7 +58,7 @@ entries: aerospike-kafka-outbound: - apiVersion: v2 appVersion: 5.1.2 - created: "2023-10-05T19:16:29.603425+05:30" + created: "2024-05-09T16:19:45.006806+03:00" description: A Helm chart for Aerospike Connect for Kafka - Outbound digest: c4b04092fe2c0857d26957c6b95b317c46063add104777b481cb9291c20b85ae icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 @@ -77,7 +77,7 @@ entries: version: 1.0.1 - apiVersion: v2 appVersion: 5.0.0 - created: "2022-10-17T23:07:11.125420937+05:30" + created: "2024-05-09T16:19:45.005691+03:00" description: A Helm chart for Aerospike Connect for Kafka - Outbound digest: 46b6cff86371f5cf40c64a93eacd5eea402f9c572d4144ad50f174129479de77 icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 @@ -94,10 +94,28 @@ entries: urls: - https://aerospike.github.io/helm-charts/aerospike-kafka-outbound-1.0.0.tgz version: 1.0.0 + aerospike-proximus: + - apiVersion: v2 + appVersion: 0.3.1 + created: "2024-05-09T16:19:45.008294+03:00" + description: A Helm chart for Aerospike Proximus + digest: 4320a7e4468cf099b421d6361e81006ba64bdf6447f900d9a2f317052515e5d7 + icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 + keywords: + - Aerospike + - Vector + maintainers: + - email: developers@aerospike.com + name: Aerospike + name: aerospike-proximus + type: application + urls: + - https://aerospike.github.io/helm-charts/aerospike-proximus-0.1.0.tgz + version: 0.1.0 aerospike-pulsar-outbound: - apiVersion: v2 appVersion: 3.2.1 - created: "2023-10-05T19:02:16.443545+05:30" + created: "2024-05-09T16:19:45.009445+03:00" description: A Helm chart for Aerospike Connect for Pulsar - Outbound digest: 8fdf247a0abb72026178a316419c83e1929043bf913b962a984d42f7b8cfdb6b icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 @@ -114,4 +132,22 @@ entries: urls: - https://aerospike.github.io/helm-charts/aerospike-pulsar-outbound-1.0.0.tgz version: 1.0.0 -generated: "2024-03-06T14:28:12.725536+05:30" + quote-semantic-search: + - apiVersion: v2 + appVersion: 0.1.0 + created: "2024-05-09T16:19:45.010541+03:00" + description: A Helm chart for Aerospike Proximus + digest: 8d9666deffca3497eb2c14e90da63b64def12bf49f5f3aafb74fee1056e2efda + icon: https://avatars0.githubusercontent.com/u/2214313?s=200&v=4 + keywords: + - Aerospike + - Vector + maintainers: + - email: developers@aerospike.com + name: Aerospike + name: quote-semantic-search + type: application + urls: + - https://aerospike.github.io/helm-charts/quote-semantic-search-0.1.0.tgz + version: 0.1.0 +generated: "2024-05-09T16:19:44.99695+03:00" diff --git a/docs/quote-semantic-search-0.1.0.tgz b/docs/quote-semantic-search-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..84f58e7cb1d9d709f759fed9542bc90428da7a0e GIT binary patch literal 4829 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