diff --git a/docs/helm/upgrades.md b/docs/helm/upgrades.md index 7baa122ff..89dc1232a 100644 --- a/docs/helm/upgrades.md +++ b/docs/helm/upgrades.md @@ -13,6 +13,14 @@ version in which they have been released. Due to breaking changes the next version will be a major release. +### Alfresco AI Transformer + +After migrating the AI Transformer chart to the new +[alfresco-helm-charts](https://github.com/Alfresco/alfresco-helm-charts) +repository, the associated values have been moved from +`.Values.aiTransformer` to +`.Values.alfresco-ai-transformer`. + ### MS365 chart rename The previous `ooi-service` subchart has been renamed to diff --git a/helm/alfresco-content-services/7.0.N_values.yaml b/helm/alfresco-content-services/7.0.N_values.yaml index c608a30c1..fd35b6c66 100644 --- a/helm/alfresco-content-services/7.0.N_values.yaml +++ b/helm/alfresco-content-services/7.0.N_values.yaml @@ -2,7 +2,7 @@ repository: image: tag: 7.0.1.10 -aiTransformer: +alfresco-ai-transformer: image: tag: 1.3.0 alfresco-transform-service: diff --git a/helm/alfresco-content-services/7.1.N_values.yaml b/helm/alfresco-content-services/7.1.N_values.yaml index d398959c5..b890347b5 100644 --- a/helm/alfresco-content-services/7.1.N_values.yaml +++ b/helm/alfresco-content-services/7.1.N_values.yaml @@ -2,7 +2,7 @@ repository: image: tag: 7.1.1.8 -aiTransformer: +alfresco-ai-transformer: image: tag: 1.4.5 alfresco-transform-service: diff --git a/helm/alfresco-content-services/7.2.N_values.yaml b/helm/alfresco-content-services/7.2.N_values.yaml index 3a93dd9d1..16132d6dd 100644 --- a/helm/alfresco-content-services/7.2.N_values.yaml +++ b/helm/alfresco-content-services/7.2.N_values.yaml @@ -2,7 +2,7 @@ repository: image: tag: 7.2.1.11 -aiTransformer: +alfresco-ai-transformer: image: tag: 1.5.0 alfresco-transform-service: diff --git a/helm/alfresco-content-services/7.3.N_values.yaml b/helm/alfresco-content-services/7.3.N_values.yaml index 337407715..be991b23a 100644 --- a/helm/alfresco-content-services/7.3.N_values.yaml +++ b/helm/alfresco-content-services/7.3.N_values.yaml @@ -2,7 +2,7 @@ repository: image: tag: 7.3.1 -aiTransformer: +alfresco-ai-transformer: image: tag: 1.5.0 share: diff --git a/helm/alfresco-content-services/7.4.N_values.yaml b/helm/alfresco-content-services/7.4.N_values.yaml index bc7a8bc35..bddaa76bc 100644 --- a/helm/alfresco-content-services/7.4.N_values.yaml +++ b/helm/alfresco-content-services/7.4.N_values.yaml @@ -24,7 +24,7 @@ alfresco-transform-service: filestore: image: tag: 3.0.0 -aiTransformer: +alfresco-ai-transformer: image: tag: 2.0.0 share: diff --git a/helm/alfresco-content-services/Chart.lock b/helm/alfresco-content-services/Chart.lock index c1248c8c0..a17ced3e5 100644 --- a/helm/alfresco-content-services/Chart.lock +++ b/helm/alfresco-content-services/Chart.lock @@ -35,5 +35,8 @@ dependencies: - name: alfresco-connector-ms365 repository: https://alfresco.github.io/alfresco-helm-charts/ version: 0.3.3 -digest: sha256:3a93f6ee3002cc5dd78205f1c6fd0075534e9b824894d4752ca86495af9699fc -generated: "2023-08-01T17:48:28.847175+05:30" +- name: alfresco-ai-transformer + repository: https://alfresco.github.io/alfresco-helm-charts/ + version: 0.2.0 +digest: sha256:4eae3ce8eab518a909b08d01ca58ee0b61af7de3a37295d58c1f32f2ca04c355 +generated: "2023-08-16T15:19:13.452893+05:30" diff --git a/helm/alfresco-content-services/Chart.yaml b/helm/alfresco-content-services/Chart.yaml index fea531bca..0c678700d 100644 --- a/helm/alfresco-content-services/Chart.yaml +++ b/helm/alfresco-content-services/Chart.yaml @@ -70,4 +70,8 @@ dependencies: version: 0.3.3 repository: https://alfresco.github.io/alfresco-helm-charts/ condition: alfresco-connector-ms365.enabled + - name: alfresco-ai-transformer + version: 0.2.0 + repository: https://alfresco.github.io/alfresco-helm-charts/ + condition: alfresco-ai-transformer.enabled icon: https://avatars0.githubusercontent.com/u/391127?s=200&v=4 diff --git a/helm/alfresco-content-services/README.md b/helm/alfresco-content-services/README.md index 61a7d39d7..ceb6374a2 100644 --- a/helm/alfresco-content-services/README.md +++ b/helm/alfresco-content-services/README.md @@ -19,6 +19,7 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b | https://activiti.github.io/activiti-cloud-helm-charts | alfresco-control-center(common) | 7.11.0 | | https://activiti.github.io/activiti-cloud-helm-charts | alfresco-digital-workspace(common) | 7.11.0 | | https://alfresco.github.io/alfresco-helm-charts/ | activemq | 3.2.0 | +| https://alfresco.github.io/alfresco-helm-charts/ | alfresco-ai-transformer | 0.2.0 | | https://alfresco.github.io/alfresco-helm-charts/ | alfresco-common | 2.1.0-alpha.2 | | https://alfresco.github.io/alfresco-helm-charts/ | alfresco-connector-ms365 | 0.3.3 | | https://alfresco.github.io/alfresco-helm-charts/ | alfresco-connector-msteams | 0.1.0 | @@ -40,31 +41,10 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b | activemq.existingSecretName | string | `nil` | | | activemq.nameOverride | string | `"activemq"` | | | activemq.nodeSelector | object | `{}` | Possibility to choose Node for pod, with a key-value pair label e.g {"kubernetes.io/hostname": multinode-demo-m02} | -| aiTransformer.environment.JAVA_OPTS | string | `"-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"` | | -| aiTransformer.image.internalPort | int | `8090` | | -| aiTransformer.image.pullPolicy | string | `"IfNotPresent"` | | -| aiTransformer.image.repository | string | `"quay.io/alfresco/alfresco-ai-docker-engine"` | | -| aiTransformer.image.tag | string | `"2.0.0"` | | -| aiTransformer.livenessProbe.initialDelaySeconds | int | `10` | | -| aiTransformer.livenessProbe.livenessPercent | int | `400` | | -| aiTransformer.livenessProbe.livenessTransformPeriodSeconds | int | `600` | | -| aiTransformer.livenessProbe.maxTransformSeconds | int | `1800` | | -| aiTransformer.livenessProbe.maxTransforms | int | `10000` | | -| aiTransformer.livenessProbe.periodSeconds | int | `20` | | -| aiTransformer.livenessProbe.timeoutSeconds | int | `10` | | -| aiTransformer.nodeSelector | object | `{}` | | -| aiTransformer.podSecurityContext.runAsUser | int | `33015` | | -| aiTransformer.readinessProbe.initialDelaySeconds | int | `20` | | -| aiTransformer.readinessProbe.periodSeconds | int | `60` | | -| aiTransformer.readinessProbe.timeoutSeconds | int | `10` | | -| aiTransformer.replicaCount | int | `2` | | -| aiTransformer.resources.limits.cpu | string | `"2"` | | -| aiTransformer.resources.limits.memory | string | `"1Gi"` | | -| aiTransformer.resources.requests.cpu | string | `"50m"` | | -| aiTransformer.resources.requests.memory | string | `"200Mi"` | | -| aiTransformer.service.externalPort | int | `80` | | -| aiTransformer.service.name | string | `"ai-transformer"` | | -| aiTransformer.service.type | string | `"ClusterIP"` | | +| alfresco-ai-transformer.enabled | bool | `false` | | +| alfresco-ai-transformer.image.repository | string | `"quay.io/alfresco/alfresco-ai-docker-engine"` | | +| alfresco-ai-transformer.image.tag | string | `"2.0.0"` | | +| alfresco-ai-transformer.messageBroker.existingSecretName | string | `"acs-alfresco-cs-brokersecret"` | | | alfresco-connector-ms365.enabled | bool | `false` | Enable/Disable Alfresco Content Connector for Microsoft 365 | | alfresco-connector-ms365.image.repository | string | `"quay.io/alfresco/alfresco-ooi-service"` | | | alfresco-connector-ms365.image.tag | string | `"2.0.0"` | | @@ -193,7 +173,7 @@ Please refer to the [documentation](https://github.com/Alfresco/acs-deployment/b | database.url | string | `nil` | External Postgresql jdbc url ex: `jdbc:postgresql://oldfashioned-mule-postgresql-acs:5432/alfresco` | | database.user | string | `nil` | External Postgresql database user | | email | object | `{"handler":{"folder":{"overwriteDuplicates":true}},"inbound":{"emailContributorsAuthority":"EMAIL_CONTRIBUTORS","enabled":false,"unknownUser":"anonymous"},"initContainers":{"pemToKeystore":{"image":{"pullPolicy":"IfNotPresent","repository":"registry.access.redhat.com/redhat-sso-7/sso71-openshift","tag":"1.1-16"}},"pemToTruststore":{"image":{"pullPolicy":"IfNotPresent","repository":"registry.access.redhat.com/redhat-sso-7/sso71-openshift","tag":"1.1-16"}},"setPerms":{"image":{"pullPolicy":"IfNotPresent","repository":"busybox","tag":"1.35.0"}}},"server":{"allowed":{"senders":".*"},"auth":{"enabled":true},"blocked":{"senders":null},"connections":{"max":3},"domain":null,"enableTLS":true,"enabled":false,"hideTLS":false,"port":1125,"requireTLS":false},"ssl":{"secretName":null}}` | For a full information of configuring the inbound email system, see https://docs.alfresco.com/content-services/latest/config/email/#manage-inbound-emails | -| global.ai | object | `{"enabled":false}` | Choose if you want AI capabilities (globally - including ADW AI plugin) | +| global.ai.enabled | bool | `false` | Enable AI capabilities in ADW AI plugin | | global.alfrescoRegistryPullSecrets | string | `nil` | If a private image registry a secret can be defined and passed to kubernetes, see: https://github.com/Alfresco/acs-deployment/blob/a924ad6670911f64f1bba680682d266dd4ea27fb/docs/helm/eks-deployment.md#docker-registry-secret | | global.elasticsearch | object | `{"host":"elasticsearch-master","password":null,"port":9200,"protocol":"http","user":null}` | Shared connections details for Elasticsearch/Opensearch, required when alfresco-search-enterprise.enabled is true | | global.elasticsearch.host | string | `"elasticsearch-master"` | The host where service is available. The provided default is for when elasticsearch.enabled is true | diff --git a/helm/alfresco-content-services/community_values.yaml b/helm/alfresco-content-services/community_values.yaml index fe61f1420..b7efafe4f 100644 --- a/helm/alfresco-content-services/community_values.yaml +++ b/helm/alfresco-content-services/community_values.yaml @@ -47,7 +47,7 @@ alfresco-digital-workspace: enabled: false alfresco-sync-service: enabled: false -ai: +alfresco-ai-transformer: enabled: false s3connector: enabled: false diff --git a/helm/alfresco-content-services/templates/_helpers-ai-transformer.tpl b/helm/alfresco-content-services/templates/_helpers-ai-transformer.tpl deleted file mode 100644 index 01174eb31..000000000 --- a/helm/alfresco-content-services/templates/_helpers-ai-transformer.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{{- define "ai-transformer.selectorLabels" -}} -app: {{ template "content-services.shortname" . }}-ai-transformer -release: {{ .Release.Name }} -component: transformers -{{- end }} - -{{- define "ai-transformer.labels" -}} -chart: {{ include "content-services.chart" . }} -{{ include "ai-transformer.selectorLabels" . }} -heritage: {{ .Release.Service }} -{{- end }} diff --git a/helm/alfresco-content-services/templates/config-ai-transformer.yaml b/helm/alfresco-content-services/templates/config-ai-transformer.yaml deleted file mode 100644 index 63605e892..000000000 --- a/helm/alfresco-content-services/templates/config-ai-transformer.yaml +++ /dev/null @@ -1,26 +0,0 @@ -{{- if .Values.global.ai.enabled }} -# Defines the properties required by the alfresco-ai-transformer container -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ template "content-services.shortname" . }}-ai-transformer-configmap - labels: - {{- include "ai-transformer.labels" . | nindent 4 }} -data: - # The JAVA_OPTS defined in the values.yaml file for "ai" are set here using proper quotes - {{- if .Values.aiTransformer.environment }} - {{- range $key, $val := .Values.aiTransformer.environment }} - {{ $key }}: {{ $val | quote }} - {{- end }} - {{- end }} - FILE_STORE_URL: http://{{ template "alfresco.shortname" . }}-filestore:80/alfresco/api/-default-/private/sfs/versions/1/file - AWS_ACCESS_KEY: {{ .Values.ai.aws.accessKey }} - AWS_SECRET_ACCESS_KEY: {{ .Values.ai.aws.secretAccessKey }} - AWS_REGION: {{ .Values.ai.aws.region }} - AWS_S3_BUCKET: {{ .Values.ai.aws.s3Bucket }} - AWS_COMPREHEND_ROLE_ARN: {{ .Values.ai.aws.comprehendRoleARN }} - livenessPercent: "{{ .Values.aiTransformer.livenessProbe.livenessPercent }}" - livenessTransformPeriodSeconds: "{{ .Values.aiTransformer.livenessProbe.livenessTransformPeriodSeconds }}" - maxTransforms: "{{ .Values.aiTransformer.livenessProbe.maxTransforms }}" - maxTransformSeconds: "{{ .Values.aiTransformer.livenessProbe.maxTransformSeconds }}" -{{- end }} diff --git a/helm/alfresco-content-services/templates/deployment-ai-transformer.yaml b/helm/alfresco-content-services/templates/deployment-ai-transformer.yaml deleted file mode 100644 index fa947f4c3..000000000 --- a/helm/alfresco-content-services/templates/deployment-ai-transformer.yaml +++ /dev/null @@ -1,83 +0,0 @@ -{{- if .Values.global.ai.enabled }} -# Defines the deployment for the ai transformer app -# Details: https://github.com/Alfresco/alfresco-ai-transformers/tree/master/alfresco-ai-docker-engine -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "content-services.shortname" . }}-ai-transformer - labels: - {{- include "ai-transformer.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.aiTransformer.replicaCount }} - selector: - matchLabels: - {{- include "ai-transformer.selectorLabels" . | nindent 6 }} - strategy: - type: RollingUpdate - rollingUpdate: -{{ toYaml .Values.global.strategy.rollingUpdate | indent 6 }} - template: - metadata: - annotations: - checksum/config: {{ include (print $.Template.BasePath "/config-ai-transformer.yaml") . | sha256sum }} - labels: - {{- include "ai-transformer.selectorLabels" . | nindent 8 }} - spec: - {{- include "component-pod-security-context" .Values.aiTransformer | indent 4 }} - {{- if .Values.aiTransformer.nodeSelector }} - nodeSelector: {{- .Values.aiTransformer.nodeSelector | toYaml | nindent 8 }} - {{- end }} - {{- include "alfresco-content-services.imagePullSecrets" . | indent 6 }} - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 10 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: app - operator: In - values: - - {{ template "content-services.shortname" . }}-ai-transformer - topologyKey: failure-domain.beta.kubernetes.io/zone - - weight: 5 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: app - operator: In - values: - - {{ template "content-services.shortname" . }}-ai-transformer - topologyKey: kubernetes.io/hostname - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.aiTransformer.image.repository }}:{{ .Values.aiTransformer.image.tag }}" - imagePullPolicy: {{ .Values.aiTransformer.image.pullPolicy }} - {{- include "component-security-context" .Values.aiTransformer | indent 8 }} - envFrom: - - configMapRef: - # config map to use, defined in config-ai-transformer.yaml - name: {{ template "content-services.shortname" . }}-ai-transformer-configmap - - secretRef: - name: {{ .Values.messageBroker.existingSecretName | default .Values.messageBroker.secretName }} - env: - {{- include "activemq.env" . | nindent 12 }} - ports: - - containerPort: {{ .Values.aiTransformer.image.internalPort }} - resources: {{- toYaml .Values.aiTransformer.resources | nindent 12 }} - readinessProbe: - httpGet: - path: /ready - port: {{ .Values.aiTransformer.image.internalPort }} - initialDelaySeconds: {{ .Values.aiTransformer.readinessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.aiTransformer.readinessProbe.periodSeconds }} - timeoutSeconds: {{ .Values.aiTransformer.readinessProbe.timeoutSeconds }} - livenessProbe: - httpGet: - path: /live - port: {{ .Values.aiTransformer.image.internalPort }} - initialDelaySeconds: {{ .Values.aiTransformer.livenessProbe.initialDelaySeconds }} - periodSeconds: {{ .Values.aiTransformer.livenessProbe.periodSeconds }} - failureThreshold: 1 - timeoutSeconds: {{ .Values.aiTransformer.livenessProbe.timeoutSeconds }} -{{- end }} diff --git a/helm/alfresco-content-services/templates/svc-ai-transformer.yaml b/helm/alfresco-content-services/templates/svc-ai-transformer.yaml deleted file mode 100644 index 4ed041d82..000000000 --- a/helm/alfresco-content-services/templates/svc-ai-transformer.yaml +++ /dev/null @@ -1,19 +0,0 @@ -{{- if .Values.global.ai.enabled }} -# Defines the service for the ai transformer app -apiVersion: v1 -kind: Service -metadata: - name: {{ template "content-services.shortname" . }}-ai-transformer - labels: - {{- include "ai-transformer.selectorLabels" . | nindent 4 }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - heritage: {{ .Release.Service }} -spec: - type: {{ .Values.aiTransformer.service.type }} - ports: - - port: {{ .Values.aiTransformer.service.externalPort }} - targetPort: {{ .Values.aiTransformer.image.internalPort }} - name: {{ .Values.aiTransformer.service.name }} - selector: - {{- include "ai-transformer.selectorLabels" . | nindent 4 }} -{{- end }} diff --git a/helm/alfresco-content-services/values.yaml b/helm/alfresco-content-services/values.yaml index 2f3b3bdde..80a253937 100644 --- a/helm/alfresco-content-services/values.yaml +++ b/helm/alfresco-content-services/values.yaml @@ -168,43 +168,6 @@ alfresco-connector-msteams: image: repository: quay.io/alfresco/alfresco-ms-teams-service tag: 2.0.0 -aiTransformer: - replicaCount: 2 - nodeSelector: {} - image: - repository: quay.io/alfresco/alfresco-ai-docker-engine - tag: 2.0.0 - pullPolicy: IfNotPresent - internalPort: 8090 - service: - name: ai-transformer - type: ClusterIP - externalPort: 80 - podSecurityContext: - runAsUser: 33015 - resources: - requests: - cpu: "50m" - memory: "200Mi" - limits: - cpu: "2" - memory: "1Gi" - environment: - JAVA_OPTS: >- - -XX:MinRAMPercentage=50 - -XX:MaxRAMPercentage=80 - readinessProbe: - initialDelaySeconds: 20 - periodSeconds: 60 - timeoutSeconds: 10 - livenessProbe: - initialDelaySeconds: 10 - periodSeconds: 20 - timeoutSeconds: 10 - livenessPercent: 400 - livenessTransformPeriodSeconds: 600 - maxTransforms: 10000 - maxTransformSeconds: 1800 alfresco-transform-service: enabled: true messageBroker: @@ -609,6 +572,20 @@ alfresco-sync-service: repository: nameOverride: alfresco-cs-repository port: *repositoryExternalPort + # -- toggle deploying Alfresco ai transformer +alfresco-ai-transformer: + enabled: false + messageBroker: + existingSecretName: *acs_messageBroker_secretName + image: + repository: quay.io/alfresco/alfresco-ai-docker-engine + tag: 2.0.0 +# aws: +# accessKey: +# secretAccessKey: +# region: +# s3Bucket: +# comprehendRoleARN: global: known_urls: - https://localhost @@ -634,16 +611,9 @@ global: maxUnavailable: 0 registryPullSecrets: - quay-registry-secret - # -- Choose if you want AI capabilities (globally - including ADW AI plugin) ai: + # -- Enable AI capabilities in ADW AI plugin enabled: false - # ai: - # aws: - # accessKey: - # secretAccessKey: - # region: - # s3Bucket: - # comprehendRoleARN: # -- Shared connections details for Elasticsearch/Opensearch, required when # alfresco-search-enterprise.enabled is true elasticsearch: diff --git a/updatecli-matrix-targets.yaml b/updatecli-matrix-targets.yaml index f2a5473af..29fbd8e47 100644 --- a/updatecli-matrix-targets.yaml +++ b/updatecli-matrix-targets.yaml @@ -84,7 +84,7 @@ matrix: intelligence: version: helm_target: *helmvalues231 - helm_key: $.aiTransformer.image.tag + helm_key: $.alfresco-ai-transformer.image.tag trouter: version: compose_target: *compose231 @@ -198,7 +198,7 @@ matrix: intelligence: version: helm_target: *helmvalues74 - helm_key: $.aiTransformer.image.tag + helm_key: $.alfresco-ai-transformer.image.tag trouter: version: compose_target: *compose74 @@ -312,7 +312,7 @@ matrix: intelligence: version: helm_target: *helmvalues73 - helm_key: $.aiTransformer.image.tag + helm_key: $.alfresco-ai-transformer.image.tag trouter: version: compose_target: *compose73 @@ -426,7 +426,7 @@ matrix: intelligence: version: helm_target: *helmvalues72 - helm_key: $.aiTransformer.image.tag + helm_key: $.alfresco-ai-transformer.image.tag trouter: version: compose_target: *compose72 @@ -533,7 +533,7 @@ matrix: intelligence: version: helm_target: *helmvalues71 - helm_key: $.aiTransformer.image.tag + helm_key: $.alfresco-ai-transformer.image.tag trouter: version: compose_target: *compose71 @@ -620,7 +620,7 @@ matrix: intelligence: version: helm_target: *helmvalues70 - helm_key: $.aiTransformer.image.tag + helm_key: $.alfresco-ai-transformer.image.tag trouter: version: compose_target: *compose70