Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Search and Discovery 2.0 #3478

Merged
merged 69 commits into from
Mar 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
79e08bb
chore: remove Github action that opens PRs in `terraform-renku` to up…
aledegano Feb 16, 2024
f194e6e
fix: change the UI privacy configmap behavior (#3494)
lorenzo-cavazzi Feb 16, 2024
e5e5803
fake
lorenzo-cavazzi Feb 19, 2024
73add4f
chore: Renku search helm charts (#3481)
eikek Feb 19, 2024
2c652a9
chore: enabling solr on the branch
jachro Feb 19, 2024
cb35487
chore: search upgraded to 0.0.12
jachro Feb 19, 2024
59ed2db
Merge branch 'master'
jachro Feb 19, 2024
5f28d15
chore: no replicas for Solr
jachro Feb 19, 2024
6d3da0a
chore: no replicas for Solr
jachro Feb 19, 2024
d304fdb
chore: 1 replica for Solr
jachro Feb 19, 2024
e0577d9
chore: reducing max heap space to 152M on Solr
jachro Feb 20, 2024
6fc5f15
chore: search swagger.yaml linked to global renku swagger
jachro Feb 21, 2024
3f9c2f1
chore: search services upgraded to 0.0.13
jachro Feb 21, 2024
2d59511
Merge branch 'master' into build/search-and-discovery-1.0
jachro Feb 21, 2024
1286612
chore: search services upgraded to 0.0.14 and fix for the renku swagg…
jachro Feb 21, 2024
7341ca0
chore: typo in the swagger.yaml
jachro Feb 21, 2024
e7d68f5
Merge branch 'master' into build/search-and-discovery-1.0
jachro Feb 22, 2024
36763c6
chore: search services upgraded to 0.0.15
jachro Feb 22, 2024
c5d79a8
chore: search services upgraded to 0.0.16
eikek Feb 23, 2024
1820997
chore: search services upgraded to 0.0.17
eikek Feb 23, 2024
4b3daea
chore: search services upgraded to 0.0.18
eikek Feb 23, 2024
19bfd02
Merge branch 'master' into build/search-and-discovery-1.0
lorenzo-cavazzi Feb 26, 2024
c8832e3
chore: remove changelog conflicts
lorenzo-cavazzi Feb 26, 2024
2a7e7f2
add message queue redis to data services (#3508)
Panaetius Feb 26, 2024
59caabb
chore: solr upgraded to 8.9.2
jachro Feb 26, 2024
78ca843
chore: search upgraded to 0.0.19
jachro Feb 27, 2024
d871506
chore: search upgraded to 0.0.19
jachro Feb 27, 2024
7bf0fbd
chore: search upgraded to 0.0.21
eikek Feb 28, 2024
68a29bc
chore: match the search api root path on ingress and swagger
jachro Feb 28, 2024
9189cdf
chore: search upgraded to 0.0.22
eikek Feb 28, 2024
1f1ed1a
chore: search upgraded to 0.0.23
jachro Feb 29, 2024
ba97958
chore: improved config of event streams config
jachro Mar 5, 2024
f8d0aae
chore: search services upgraded to 0.0.24
jachro Mar 5, 2024
b752711
chore: typo in the search-provision-deployment.yaml
jachro Mar 5, 2024
7beae0b
refactor: solr admin pass to be read from secret
jachro Mar 5, 2024
4de494e
add gateway config for search endpoint
Panaetius Mar 5, 2024
11e73d4
Merge branch 'master' into build/search-and-discovery-1.0
Panaetius Mar 5, 2024
3b4daaa
fix gateway search url
Panaetius Mar 5, 2024
12ed0f8
refactor: solr admin username removed from the values.yaml
jachro Mar 6, 2024
a063aab
chore: search services upgraded to 0.0.25
jachro Mar 6, 2024
7d30837
chore: ingress for /apiv2/search taken out
jachro Mar 6, 2024
f45f2f0
chore: search services upgraded to 0.0.26
jachro Mar 6, 2024
8b4ced2
chore: search services upgraded to 0.0.27
jachro Mar 6, 2024
23a9b5d
Merge branch 'master' into build/search-and-discovery-1.0
jachro Mar 6, 2024
e04f18b
Merge branch 'master' into build/search-and-discovery-1.0
jachro Mar 7, 2024
9fae5cd
chore: search services upgraded to 0.0.28 - user entity
jachro Mar 7, 2024
3201f60
chore: search services upgraded to 0.0.29
jachro Mar 7, 2024
3d87a5a
chore: search services upgraded to 0.0.30 - support for the update ev…
jachro Mar 11, 2024
aa099d7
chore: search services upgraded to 0.0.30 - support for the auth and …
jachro Mar 13, 2024
405a936
chore: stream definitions in values.yaml
jachro Mar 13, 2024
95f8067
chore: search services upgraded to 0.0.32 - streams names aligning
jachro Mar 13, 2024
3210601
chore: Update search services
eikek Mar 14, 2024
0ba2656
add redis values forusers sync svc
Panaetius Mar 14, 2024
b552c61
add redis access to user sync job
Panaetius Mar 14, 2024
827237f
move annotation to correct place
Panaetius Mar 14, 2024
eed023a
chore: update search services to 0.0.33
eikek Mar 15, 2024
9e920a4
chore: search services upgraded to 0.0.34 - role filtering; prometheu…
jachro Mar 19, 2024
00ae701
feat: search services to expose metrics API
jachro Mar 19, 2024
1bf8dbe
fix: search-provision port definition too long
jachro Mar 19, 2024
68f3e55
chore: search services upgraded to 0.0.35
jachro Mar 20, 2024
28b7426
chore: search services upgraded to 0.0.36 - partial docs
jachro Mar 22, 2024
ba5a779
Merge branch 'release-0.50.x' into build/search-and-discovery-1.0
Panaetius Mar 25, 2024
9f5ac79
update dependendies and changelog
Panaetius Mar 25, 2024
c4b7c73
update changelog and bump gateway
Panaetius Mar 25, 2024
5ed8427
chore: search services upgraded to 0.0.37
jachro Mar 26, 2024
4df3634
bump gateway rev proxy
Mar 26, 2024
cf7c0c3
bump renku-ui, renku-notebooks (#3553)
leafty Mar 26, 2024
2c485c9
chore: changelog update
jachro Mar 26, 2024
f928120
feat: enable Network Policy for Solr. (#3512)
aledegano Mar 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,24 @@
0.50.x
------

This release introduces new search functionality for Renku 2.0


Internal Changes
~~~~~~~~~~~~~~~~

**New Features**

- **Data services**: Initial support for project and user search for Renku 2.0 (alpha release)
- **Search services**: Initial support for project and user search for Renku 2.0 (alpha release)

Individual Components
~~~~~~~~~~~~~~~~~~~~~

- `renku-data-services 0.6.0 <https://github.com/SwissDataScienceCenter/renku-data-services/releases/tag/v0.6.0>`_
- `renku-gateway 0.24.0 <https://github.com/SwissDataScienceCenter/renku-gateway/releases/0.24.0>`_
- `renku-search 0.0.37 <https://github.com/SwissDataScienceCenter/renku-search/releases/tag/v0.0.37>`_



0.49.0
Expand Down
4 changes: 4 additions & 0 deletions helm-chart/renku/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ dependencies:
repository: "https://swissdatasciencecenter.github.io/helm-charts/"
version: "0.1.7"
condition: global.csi-rclone.install
- name: solr
repository: "oci://registry-1.docker.io/bitnamicharts"
version: "8.9.2"
condition: solr.enabled
4 changes: 4 additions & 0 deletions helm-chart/renku/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ Define subcharts full names
{{- printf "%s-%s" .Release.Name "keycloakx" | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "solr.fullname" -}}
{{- printf "%s-%s" .Release.Name "solr" | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{- define "gitlab.fullname" -}}
{{- printf "%s-%s" .Release.Name "gitlab" | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
Expand Down
16 changes: 16 additions & 0 deletions helm-chart/renku/templates/data-service/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ spec:
labels:
app: renku-data-service
release: {{ .Release.Name }}
{{ .Values.global.redis.clientLabel | toYaml | nindent 8 }}
{{- with .Values.dataService.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
Expand Down Expand Up @@ -75,6 +76,21 @@ spec:
value: {{ .Values.global.gitlab.url | quote }}
- name: MAX_PINNED_PROJECTS
value: {{ .Values.dataService.maxPinnedProjects | quote }}
- name: REDIS_HOST
value: {{ .Values.global.redis.host | quote }}
- name: REDIS_PORT
value: {{ .Values.global.redis.port | quote }}
- name: REDIS_DATABASE
value: {{ .Values.global.redis.dbIndex.events| quote }}
- name: REDIS_IS_SENTINEL
value: {{ .Values.global.redis.sentinel.enabled | quote }}
- name: REDIS_MASTER_SET
value: {{ .Values.global.redis.sentinel.masterSet | quote }}
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.global.redis.existingSecret }}
key: {{ .Values.global.redis.existingSecretPasswordKey }}
{{- include "certificates.env.python" $ | nindent 12 }}
volumeMounts:
- name: server-options
Expand Down
2 changes: 2 additions & 0 deletions helm-chart/renku/templates/gateway/deployment-revproxy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ spec:
value: {{ printf "http://%s-gateway-auth" .Release.Name }}
- name: REVPROXY_RENKU_SERVICES_DATA_SERVICE
value: {{ printf "http://%s-data-service" .Release.Name | quote }}
- name: REVPROXY_RENKU_SERVICES_SEARCH
value: {{ printf "http://%s-search-api" .Release.Name | quote }}
- name: REVPROXY_RENKU_SERVICES_KEYCLOAK
value: {{ include "renku.keycloakUrl" . | quote }}
- name: REVPROXY_PORT
Expand Down
1 change: 1 addition & 0 deletions helm-chart/renku/templates/ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
{{- $graphEnabled := .Values.graph.enabled -}}
{{- $webhookServiceFullname := include "renku.graph.webhookService.fullname" . -}}
{{- $knowledgeGraphFullname := include "renku.graph.knowledgeGraph.fullname" . -}}
{{- $searchApiFullname := include "renku.search.searchApi.fullname" . -}}
{{- $renkuFullname := include "renku.fullname" . -}}
{{- if $graphEnabled }}
{{- $jenaFullname := include "renku-jena.fullname" . -}}
Expand Down
33 changes: 33 additions & 0 deletions helm-chart/renku/templates/keycloak-users-sync-cronjob.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ spec:
metadata:
labels:
app: keycloak-sync
{{ .Values.global.redis.clientLabel | toYaml | nindent 12 }}
spec:
initContainers:
{{- include "certificates.initContainer" . | nindent 12 }}
Expand Down Expand Up @@ -48,6 +49,21 @@ spec:
key: dataServiceKeycloakClientSecret
- name: TOTAL_USER_SYNC
value: "false"
- name: REDIS_HOST
value: {{ .Values.global.redis.host | quote }}
- name: REDIS_PORT
value: {{ .Values.global.redis.port | quote }}
- name: REDIS_DATABASE
value: {{ .Values.global.redis.dbIndex.events| quote }}
- name: REDIS_IS_SENTINEL
value: {{ .Values.global.redis.sentinel.enabled | quote }}
- name: REDIS_MASTER_SET
value: {{ .Values.global.redis.sentinel.masterSet | quote }}
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.global.redis.existingSecret }}
key: {{ .Values.global.redis.existingSecretPasswordKey }}
{{- include "certificates.env.python" . | nindent 16 }}
volumeMounts:
{{- include "certificates.volumeMounts.system" . | nindent 16 }}
Expand All @@ -64,6 +80,7 @@ metadata:
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
chart: {{ template "renku.chart" . }}
{{ .Values.global.redis.clientLabel | toYaml | nindent 4 }}
spec:
schedule: "0 3 * * *"
concurrencyPolicy: Forbid
Expand All @@ -75,6 +92,7 @@ spec:
metadata:
labels:
app: keycloak-sync
{{ .Values.global.redis.clientLabel | toYaml | nindent 12 }}
spec:
initContainers:
{{- include "certificates.initContainer" . | nindent 12 }}
Expand Down Expand Up @@ -105,6 +123,21 @@ spec:
key: dataServiceKeycloakClientSecret
- name: TOTAL_USER_SYNC
value: "true"
- name: REDIS_HOST
value: {{ .Values.global.redis.host | quote }}
- name: REDIS_PORT
value: {{ .Values.global.redis.port | quote }}
- name: REDIS_DATABASE
value: {{ .Values.global.redis.dbIndex.events| quote }}
- name: REDIS_IS_SENTINEL
value: {{ .Values.global.redis.sentinel.enabled | quote }}
- name: REDIS_MASTER_SET
value: {{ .Values.global.redis.sentinel.masterSet | quote }}
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.global.redis.existingSecret }}
key: {{ .Values.global.redis.existingSecretPasswordKey }}
{{- include "certificates.env.python" . | nindent 16 }}
volumeMounts:
{{- include "certificates.volumeMounts.system" . | nindent 16 }}
Expand Down
32 changes: 32 additions & 0 deletions helm-chart/renku/templates/search/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "renku.search.searchApi.name" -}}
{{- "search-api" -}}
{{- end -}}

{{- define "renku.search.searchProvision.name" -}}
{{- "search-provision" -}}
{{- 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 "renku.search.searchApi.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- printf "%s-search-api" .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-search-api" .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}

{{- define "renku.search.searchProvision.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- printf "%s-search-provision" .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-search-provision" .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
80 changes: 80 additions & 0 deletions helm-chart/renku/templates/search/search-api-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "renku.search.searchApi.fullname" . }}
labels:
app: {{ template "renku.search.searchApi.name" . }}
chart: {{ template "renku.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.search.searchApi.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
app: {{ template "renku.search.searchApi.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "renku.search.searchApi.name" . }}
release: {{ .Release.Name }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
automountServiceAccountToken: {{ .Values.global.debug }}
containers:
- name: search-api
image: "{{ .Values.search.searchApi.image.repository }}:{{ .Values.search.searchApi.image.tag }}"
imagePullPolicy: {{ .Values.search.searchApi.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: RS_SOLR_URL
value: "http://{{ template "solr.fullname" . }}:{{ .Values.global.solr.port }}/solr"
- name: RS_SOLR_CORE
value: {{ first .Values.solr.coreNames }}
- name: RS_SOLR_USER
value: {{ default "admin" .Values.solr.auth.adminUsername | quote }}
- name: RS_SOLR_PASS
valueFrom:
secretKeyRef:
name: {{ template "solr.fullname" . }}
key: solr-password
- name: RS_SOLR_DEFAULT_COMMIT_WITHIN
value: "500ms"
- name: RS_SOLR_LOG_MESSAGE_BODIES
value: "false"
- name: JAVA_OPTS
value: "-Xmx{{ .Values.search.searchApi.jvmXmx }} -XX:+UseZGC -XX:+ZGenerational"
ports:
- name: http-search-api
containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /ping
port: http-search-api
readinessProbe:
httpGet:
path: /ping
port: http-search-api
resources:
{{- toYaml .Values.search.searchApi.resources | nindent 12 }}
volumeMounts:
{{- include "certificates.volumeMounts.javaCertsGeneral" . | nindent 12 }}
volumes:
{{- include "certificates.volumes" . | nindent 8 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
23 changes: 23 additions & 0 deletions helm-chart/renku/templates/search/search-api-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: v1
kind: Service
metadata:
name: {{ template "renku.search.searchApi.fullname" . }}
labels:
app: {{ template "renku.search.searchApi.name" . }}
chart: {{ template "renku.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/metrics'
prometheus.io/port: '8080'
spec:
type: {{ .Values.search.searchApi.service.type }}
ports:
- port: {{ .Values.search.searchApi.service.port }}
targetPort: http-search-api
protocol: TCP
name: http
selector:
app: {{ template "renku.search.searchApi.name" . }}
release: {{ .Release.Name }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "renku.search.searchProvision.fullname" . }}
labels:
app: {{ template "renku.search.searchProvision.name" . }}
chart: {{ template "renku.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.search.searchProvision.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
app: {{ template "renku.search.searchProvision.name" . }}
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "renku.search.searchProvision.name" . }}
release: {{ .Release.Name }}
# The label below enables to connect to redis
{{ .Values.global.redis.clientLabel | toYaml | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
automountServiceAccountToken: {{ .Values.global.debug }}
containers:
- name: search-provision
image: "{{ .Values.search.searchProvision.image.repository }}:{{ .Values.search.searchProvision.image.tag }}"
imagePullPolicy: {{ .Values.search.searchProvision.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: RS_REDIS_HOST
value: {{ .Values.global.redis.host | quote }}
- name: RS_REDIS_PORT
value: {{ .Values.global.redis.port | quote }}
- name: RS_REDIS_SENTINEL
value: {{ .Values.global.redis.sentinel.enabled | quote }}
- name: RS_REDIS_DB
value: {{ .Values.global.redis.dbIndex.events | quote }}
- name: RS_REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Values.global.redis.existingSecret }}
key: {{ .Values.global.redis.existingSecretPasswordKey }}
- name: RS_REDIS_MASTER_SET
value: {{ .Values.global.redis.sentinel.masterSet | quote }}
{{- range $k, $v := .Values.global.events.streams }}
- name: RS_REDIS_QUEUE_{{ $k }}
value: {{ $v }}
{{- end }}
- name: RS_SOLR_URL
value: "http://{{ template "solr.fullname" . }}:{{ .Values.global.solr.port }}/solr"
- name: RS_SOLR_CORE
value: {{ first .Values.solr.coreNames }}
- name: RS_SOLR_USER
value: {{ default "admin" .Values.solr.auth.adminUsername | quote }}
- name: RS_SOLR_PASS
valueFrom:
secretKeyRef:
name: {{ template "solr.fullname" . }}
key: solr-password
- name: RS_SOLR_DEFAULT_COMMIT_WITHIN
value: "500ms"
- name: RS_SOLR_LOG_MESSAGE_BODIES
value: "false"
- name: JAVA_OPTS
value: "-Xmx{{ .Values.search.searchProvision.jvmXmx }} -XX:+UseZGC -XX:+ZGenerational"
ports:
- name: http-searchprov
containerPort: 8081
protocol: TCP
resources:
{{- toYaml .Values.search.searchProvision.resources | nindent 12 }}
volumeMounts:
{{- include "certificates.volumeMounts.javaCertsGeneral" . | nindent 12 }}
volumes:
{{- include "certificates.volumes" . | nindent 8 }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
Loading
Loading