Skip to content

Commit

Permalink
OPSEXP-1853: migrate search-service (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
alxgomz authored Mar 6, 2023
1 parent c44cbdf commit 17f4d7b
Show file tree
Hide file tree
Showing 34 changed files with 1,070 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Helm chart automated files
/charts/*/charts
*.tgz
.idea
.DS_Store
9 changes: 9 additions & 0 deletions charts/alfresco-search-service/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dependencies:
- name: alfresco-insight-zeppelin
repository: ""
version: 2.0.0
- name: alfresco-common
repository: https://alfresco.github.io/alfresco-helm-charts/
version: 1.0.0
digest: sha256:576d7fe1a1a2ba8c99631bdebb6a0cbfd49e2ad84fb639260ba321ddcc312220
generated: "2023-03-02T11:33:25.548227568Z"
26 changes: 26 additions & 0 deletions charts/alfresco-search-service/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
apiVersion: v2
description: A Helm chart for deploying Alfresco Search Service
home: https://www.alfresco.com
icon: https://avatars0.githubusercontent.com/u/391127?s=200&v=4
keywords:
- search
- search services
- alfresco search services
- insight
- insight engine
- alfresco insight engine
- solr
- alfresco solr
name: alfresco-search-service
sources:
- https://github.com/Alfresco/alfresco-helm-charts
version: 1.0.0
appVersion: 2.0.6
dependencies:
- name: alfresco-insight-zeppelin
version: 2.0.0
condition: alfresco-insight-zeppelin.enabled
- name: alfresco-common
version: 1.0.0
repository: https://alfresco.github.io/alfresco-helm-charts/
75 changes: 75 additions & 0 deletions charts/alfresco-search-service/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# alfresco-search-service

![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 2.0.6](https://img.shields.io/badge/AppVersion-2.0.6-informational?style=flat-square)

A Helm chart for deploying Alfresco Search Service

Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/blob/master/docs/helm/README.md) for information on the Helm charts and deployment instructions.

**Homepage:** <https://www.alfresco.com>

## Source Code

* <https://github.com/Alfresco/alfresco-helm-charts>

## Requirements

| Repository | Name | Version |
|------------|------|---------|
| | alfresco-insight-zeppelin | 2.0.0 |
| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-common | 1.0.0 |

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| PvNodeAffinity | string | `nil` | Define PVNodeAffinity for scheduling SOLR |
| affinity | string | `nil` | Define Affinity for scheduling SOLR |
| alfresco-insight-zeppelin.enabled | bool | `false` | |
| environment.SOLR_CREATE_ALFRESCO_DEFAULTS | string | `"alfresco,archive"` | |
| global.alfrescoRegistryPullSecrets | string | `"quay-registry-secret"` | |
| global.tracking.auth | string | `"secret"` | Select how solr and repo authenticate to each other none: work only prior to acs 7.2 (and was the default) secret: use a shared secret (to specify using `tracking.sharedsecret`) https: to use mTLS auth (require appropriate certificate configuration) |
| global.tracking.sharedsecret | string | `nil` | Shared secret to authenticate repo/solr traffic |
| ingress.basicAuth | string | `nil` | Default solr basic auth user/password: admin / admin You can create your own with htpasswd utilility & encode it with base640. Example: `echo -n "$(htpasswd -nbm admin admin)" | base64 | tr -d '\n'` basicAuth: YWRtaW46JGFwcjEkVVJqb29uS00kSEMuS1EwVkRScFpwSHB2a3JwTDd1Lg== |
| ingress.enabled | bool | `false` | Expose the solr admin console behind basic auth |
| ingress.existingSecretName | string | `nil` | An existing secret that contains an `auth` key with a value in the same format of `ingress.basicAuth` |
| ingress.path | string | `"/solr"` | |
| ingress.tls | list | `[]` | |
| ingress.whitelist_ips | string | `"0.0.0.0/0"` | Comma separated list of CIDR to restrict search endpoint access. |
| initContainer.image.pullPolicy | string | `"IfNotPresent"` | |
| initContainer.image.repository | string | `"busybox"` | |
| initContainer.image.tag | string | `"1.35.0"` | |
| initContainer.resources.limits.memory | string | `"10Mi"` | |
| initContainer.resources.requests.memory | string | `"5Mi"` | |
| insightEngineImage.internalPort | string | `nil` | container's port search service is listening on change if your custom image use a different port. |
| insightEngineImage.pullPolicy | string | `"IfNotPresent"` | |
| insightEngineImage.repository | string | `"quay.io/alfresco/insight-engine"` | |
| insightEngineImage.tag | string | `"2.0.6"` | |
| livenessProbe.initialDelaySeconds | int | `130` | |
| livenessProbe.periodSeconds | int | `20` | |
| livenessProbe.timeoutSeconds | int | `10` | |
| nodeSelector | object | `{}` | Define the alfresco-search properties to use in the k8s cluster This is the search provider used by alfresco-content-repository |
| persistence | object | `{"EbsPvConfiguration":{"fsType":"ext4"},"VolumeSizeRequest":"10Gi","enabled":true,"search":{"data":{"mountPath":"/opt/alfresco-search-services/data","subPath":"alfresco-content-services/solr-data"}}}` | Defines the persistence |
| persistence.VolumeSizeRequest | string | `"10Gi"` | Only define if you have a specific claim already created existingClaim: "search-master-claim" |
| persistence.enabled | bool | `true` | If set to false data will be lost with pods |
| podSecurityContext.fsGroup | int | `33007` | |
| podSecurityContext.runAsGroup | int | `33007` | |
| podSecurityContext.runAsNonRoot | bool | `true` | |
| podSecurityContext.runAsUser | int | `33007` | |
| readinessProbe.initialDelaySeconds | int | `60` | |
| readinessProbe.periodSeconds | int | `20` | |
| readinessProbe.timeoutSeconds | int | `10` | |
| repository.host | string | `nil` | ACS repository hostname |
| repository.port | string | `nil` | ACS repository port |
| resources.limits.cpu | string | `"4"` | |
| resources.limits.memory | string | `"2000Mi"` | |
| resources.requests.cpu | string | `"0.50"` | |
| resources.requests.memory | string | `"1200Mi"` | |
| searchServicesImage.internalPort | string | `nil` | container's port search service is listening on change if your custom image use a different port. |
| searchServicesImage.pullPolicy | string | `"IfNotPresent"` | |
| searchServicesImage.repository | string | `"quay.io/alfresco/search-services"` | |
| searchServicesImage.tag | string | `"2.0.6"` | |
| service.name | string | `"solr"` | |
| service.type | string | `"ClusterIP"` | |
| tolerations | string | `nil` | Define Tolerations for scheduling SOLR |
| type | string | `"search-services"` | set alfresco-insight-zeppelin.enabled=true As the Docker Image for Insight Engine is not publicly available the alfrescoRegistryPullSecrets has to be set More information can be found on https://github.com/Alfresco/acs-deployment/blob/master/docs/helm/registry-authentication.md |
18 changes: 18 additions & 0 deletions charts/alfresco-search-service/README.md.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{{ template "chart.header" . }}
{{ template "chart.deprecationWarning" . }}

{{ template "chart.badgesSection" . }}

{{ template "chart.description" . }}

Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/blob/master/docs/helm/README.md) for information on the Helm charts and deployment instructions.

{{ template "chart.homepageLine" . }}

{{ template "chart.maintainersSection" . }}

{{ template "chart.sourcesSection" . }}

{{ template "chart.requirementsSection" . }}

{{ template "chart.valuesSection" . }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
dependencies:
- name: alfresco-common
repository: https://alfresco.github.io/alfresco-helm-charts/
version: 1.0.0
digest: sha256:094ae734b29e6e4735e4b6c3ad786305217cb375570a6a8518395c92f61c23bf
generated: "2023-02-28T16:18:12.814867+01:00"
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: v2
description: A Helm chart for deploying Alfresco Insight Zeppelin
home: https://www.alfresco.com
icon: https://avatars0.githubusercontent.com/u/391127?s=200&v=4
keywords:
- zeppelin
- insight zeppelin
- alfresco zeppelin
- alfresco insight zeppelin
name: alfresco-insight-zeppelin
version: 2.0.0
sources:
- https://github.com/Alfresco/alfresco-helm-charts
appVersion: 2.0.6
dependencies:
- name: alfresco-common
version: 1.0.0
repository: https://alfresco.github.io/alfresco-helm-charts/
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# alfresco-insight-zeppelin

![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![AppVersion: 2.0.6](https://img.shields.io/badge/AppVersion-2.0.6-informational?style=flat-square)

A Helm chart for deploying Alfresco Insight Zeppelin

Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/blob/master/docs/helm/README.md) for information on the Helm charts and deployment instructions.

**Homepage:** <https://www.alfresco.com>

## Source Code

* <https://github.com/Alfresco/alfresco-helm-charts>

## Requirements

| Repository | Name | Version |
|------------|------|---------|
| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-common | 1.0.0 |

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| global | object | `{"alfrescoRegistryPullSecrets":"quay-registry-secret","strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}}}` | Apply your secret file in k8s environment to access quay.io images (Example: https://github.com/Alfresco/alfresco-anaxes-shipyard/blob/master/SECRETS.md) Global definition of Docker registry pull secret which can be overridden from parent ACS Helm chart(s) |
| image.internalPort | int | `9090` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"quay.io/alfresco/insight-zeppelin"` | |
| image.tag | string | `"2.0.6"` | |
| ingress.path | string | `"/zeppelin"` | |
| livenessProbe.initialDelaySeconds | int | `130` | |
| livenessProbe.periodSeconds | int | `20` | |
| livenessProbe.timeoutSeconds | int | `10` | |
| nodeSelector | object | `{}` | |
| podSecurityContext.runAsNonRoot | bool | `true` | |
| podSecurityContext.runAsUser | int | `33007` | |
| readinessProbe.initialDelaySeconds | int | `60` | |
| readinessProbe.periodSeconds | int | `20` | |
| readinessProbe.timeoutSeconds | int | `10` | |
| replicaCount | int | `1` | Define the alfresco-insight-zeppelin properties to use in the k8s cluster This is chart will be installed as part of Alfresco Insight Engine |
| repository | object | `{}` | The parent chart will set the values for "repository.host" and "repository.port" |
| resources.limits.cpu | string | `"1"` | |
| resources.limits.memory | string | `"1024Mi"` | |
| resources.requests.cpu | string | `"0.5"` | |
| resources.requests.memory | string | `"512Mi"` | |
| service.externalPort | int | `80` | |
| service.name | string | `"zeppelin"` | |
| service.type | string | `"ClusterIP"` | |
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{{ template "chart.header" . }}
{{ template "chart.deprecationWarning" . }}

{{ template "chart.badgesSection" . }}

{{ template "chart.description" . }}

Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/blob/master/docs/helm/README.md) for information on the Helm charts and deployment instructions.

{{ template "chart.homepageLine" . }}

{{ template "chart.maintainersSection" . }}

{{ template "chart.sourcesSection" . }}

{{ template "chart.requirementsSection" . }}

{{ template "chart.valuesSection" . }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{{/*
Get Alfresco Insight Zeppelin Full Name
*/}}
{{- define "alfresco-insight-zeppelin.fullName" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Get Alfresco Zeppelin Host
*/}}
{{- define "alfresco-insight-zeppelin.host" -}}
{{- printf "%s-%s" .Release.Name "alfresco-insight-zeppelin" -}}
{{- end -}}

{{/*
Get Alfresco Repo Host
*/}}
{{- define "alfresco-repo-host" -}}
{{- printf "%s-%s-%s" .Release.Name .Values.repository.host "repository" -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
# Defines the config for the Alfresco Insight Zeppelin App
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "alfresco-insight-zeppelin.fullName" . }}-configmap
labels:
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
component: zeppelin
data:
REPO_HOST: "{{ template "alfresco-repo-host" . }}"
REPO_PORT: "{{ .Values.repository.port }}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
# Defines the deployment for the Alfresco Insight Zeppelin App
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "alfresco-insight-zeppelin.fullName" . }}
labels:
app: {{ template "alfresco-insight-zeppelin.fullName" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: zeppelin
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ template "alfresco-insight-zeppelin.fullName" . }}
release: {{ .Release.Name }}
strategy:
type: RollingUpdate
rollingUpdate: {{- toYaml .Values.global.strategy.rollingUpdate | nindent 6 }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/config.yaml") . | sha256sum }}
labels:
app: {{ template "alfresco-insight-zeppelin.fullName" . }}
release: {{ .Release.Name }}
spec:
{{- include "component-pod-security-context" .Values | indent 4 }}
{{- if .Values.nodeSelector }}
nodeSelector: {{- .Values.nodeSelector | toYaml | nindent 8 }}
{{- end }}
{{- include "alfresco-content-services.imagePullSecrets" . | indent 6 }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
resources: {{- toYaml .Values.resources | nindent 12 }}
{{- include "component-security-context" .Values | indent 8 }}
envFrom:
- configMapRef:
name: {{ template "alfresco-insight-zeppelin.fullName" . }}-configmap
ports:
- containerPort: {{ .Values.image.internalPort }}
readinessProbe:
httpGet:
path: /zeppelin
port: {{ .Values.image.internalPort }}
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
livenessProbe:
httpGet:
path: /zeppelin
port: {{ .Values.image.internalPort }}
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{{- $serviceName := (include "alfresco-insight-zeppelin.fullName" .) -}}
{{- $servicePort := .Values.service.externalPort -}}
apiVersion: {{ template "common.capabilities.ingress.apiVersion" . }}
kind: Ingress
metadata:
name: {{ template "alfresco-insight-zeppelin.fullName" . }}
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- http:
paths:
- path: {{ .Values.ingress.path }}
{{- if eq "true" (include "common.ingress.supportsPathType" .) }}
pathType: Prefix
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" $serviceName "servicePort" $servicePort "context" $) | nindent 10 }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
# Defines the service for the Alfresco Insight Zeppelin App
apiVersion: v1
kind: Service
metadata:
name: {{ template "alfresco-insight-zeppelin.fullName" . }}
labels:
app: {{ template "alfresco-insight-zeppelin.fullName" . }}-app
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.externalPort }}
targetPort: {{ .Values.image.internalPort }}
name: {{ .Values.service.name }}
selector:
app: {{ template "alfresco-insight-zeppelin.fullName" . }}
release: {{ .Release.Name }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
suite: test deployment
templates:
- deployment.yaml
tests:
- it: should have basic metadata in place
asserts:
- equal:
path: metadata.name
value: RELEASE-NAME-alfresco-insight-zeppelin
template: deployment.yaml

- it: should render cpu and memory limits
asserts:
- equal:
path: spec.template.spec.containers[0].resources
value:
requests:
cpu: "0.5"
memory: "512Mi"
limits:
cpu: "1"
memory: "1024Mi"
Loading

0 comments on commit 17f4d7b

Please sign in to comment.