From 0ce705121f001723f8babdf0b27f27b810ae7ccf Mon Sep 17 00:00:00 2001 From: Alex Chapellon Date: Wed, 3 Jan 2024 18:10:10 +0100 Subject: [PATCH] OPSEXP-2293: add AI pipelines as configmap (#177) --- charts/alfresco-ai-transformer/Chart.yaml | 2 +- charts/alfresco-ai-transformer/README.md | 10 +- .../config-ai-transform-pipelines.yaml | 10 + .../templates/deployment-ai-transformer.yaml | 63 ++- charts/alfresco-ai-transformer/values.yaml | 453 +++++++++++++++++- 5 files changed, 500 insertions(+), 38 deletions(-) create mode 100644 charts/alfresco-ai-transformer/templates/config-ai-transform-pipelines.yaml diff --git a/charts/alfresco-ai-transformer/Chart.yaml b/charts/alfresco-ai-transformer/Chart.yaml index 6f050942..f1c6087d 100644 --- a/charts/alfresco-ai-transformer/Chart.yaml +++ b/charts/alfresco-ai-transformer/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: alfresco-ai-transformer description: A Helm chart for deploying Alfresco ai transformer service type: application -version: 1.0.0-alpha.2 +version: 1.0.0-alpha.3 appVersion: 3.0.1 dependencies: - name: alfresco-common diff --git a/charts/alfresco-ai-transformer/README.md b/charts/alfresco-ai-transformer/README.md index 1b0000e0..54b3a0c7 100644 --- a/charts/alfresco-ai-transformer/README.md +++ b/charts/alfresco-ai-transformer/README.md @@ -1,6 +1,6 @@ # alfresco-ai-transformer -![Version: 1.0.0-alpha.2](https://img.shields.io/badge/Version-1.0.0--alpha.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.0.1](https://img.shields.io/badge/AppVersion-3.0.1-informational?style=flat-square) +![Version: 1.0.0-alpha.3](https://img.shields.io/badge/Version-1.0.0--alpha.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.0.1](https://img.shields.io/badge/AppVersion-3.0.1-informational?style=flat-square) A Helm chart for deploying Alfresco ai transformer service @@ -15,6 +15,8 @@ A Helm chart for deploying Alfresco ai transformer service | Key | Type | Default | Description | |-----|------|---------|-------------| +| affinity | string | `"podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app.kubernetes.io/name\n operator: In\n values:\n - {{ template \"alfresco-ai-transformer.name\" $ }}\n - key: app.kubernetes.io/instance\n operator: In\n values:\n - {{ $.Release.Name }}\n topologyKey: topology.kubernetes.io/zone"` | string representation of the YAML affinity rules (can use templates) | +| args | list | `[]` | | | aws.accessKeyId | string | `nil` | AWS credentials are required as documented at https://docs.alfresco.com/intelligence-services/latest/config/#default-configuration | | aws.comprehendRoleARN | string | `nil` | | | aws.existingConfigMap.keys.comprehendRoleARN | string | `"AWS_COMPREHEND_ROLE_ARN"` | | @@ -27,7 +29,11 @@ A Helm chart for deploying Alfresco ai transformer service | aws.region | string | `nil` | | | aws.s3Bucket | string | `nil` | | | aws.secretAccessKey | string | `nil` | | +| command | list | `[]` | | | environment.JAVA_OPTS | string | `"-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"` | | +| extraInitContainers | list | `[]` | | +| extraVolumeMounts | list | `[]` | | +| extraVolumes | list | `[]` | | | global.alfrescoRegistryPullSecrets | string | `"quay-registry-secret"` | | | image.internalPort | int | `8090` | | | image.pullPolicy | string | `"IfNotPresent"` | | @@ -69,6 +75,8 @@ A Helm chart for deploying Alfresco ai transformer service | strategy.rollingUpdate.maxSurge | int | `1` | | | strategy.rollingUpdate.maxUnavailable | int | `0` | | | tags.ci | bool | `false` | A chart tag used for Hyland's CI purpose. Do not set it to true. | +| tolerations | list | `[]` | | +| trouter.pipelines | list | See | List of transformer pipelines the ATS router can advertise when using AI To get more details abous pipeline configuration check https://docs.alfresco.com/transform-service/latest/config/#transform-pipelines https://github.com/Alfresco/alfresco-ai-renditions/blob/master/ai-renditions/docker-compose/ai-pipeline-routes.json | ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/charts/alfresco-ai-transformer/templates/config-ai-transform-pipelines.yaml b/charts/alfresco-ai-transformer/templates/config-ai-transform-pipelines.yaml new file mode 100644 index 00000000..9f72c6c0 --- /dev/null +++ b/charts/alfresco-ai-transformer/templates/config-ai-transform-pipelines.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + {{- $cmCtx := dict "Values" (dict "nameOverride" "ai-pipelines") "Chart" .Chart "Release" .Release }} + name: {{ template "alfresco-ai-transformer.fullname" $cmCtx }} + labels: + {{- include "alfresco-ai-transformer.labels" . | nindent 4 }} +data: + ai-pipeline-routes.json: >- + {{- dict "transformers" .Values.trouter.pipelines | toJson | nindent 4 }} diff --git a/charts/alfresco-ai-transformer/templates/deployment-ai-transformer.yaml b/charts/alfresco-ai-transformer/templates/deployment-ai-transformer.yaml index 683e1524..bc78026e 100644 --- a/charts/alfresco-ai-transformer/templates/deployment-ai-transformer.yaml +++ b/charts/alfresco-ai-transformer/templates/deployment-ai-transformer.yaml @@ -20,39 +20,7 @@ spec: spec: serviceAccountName: {{ include "alfresco-ai-transformer.serviceAccountName" . }} {{- include "alfresco-common.component-pod-security-context" .Values | indent 4 }} - {{- if .Values.nodeSelector }} - nodeSelector: {{- .Values.nodeSelector | toYaml | nindent 8 }} - {{- end }} {{- include "alfresco-common.imagePullSecrets" . | indent 6 }} - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 10 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: app.kubernetes.io/name - operator: In - values: - - {{ template "alfresco-ai-transformer.name" . }} - - key: app.kubernetes.io/instance - operator: In - values: - - {{ .Release.Name }} - topologyKey: failure-domain.beta.kubernetes.io/zone - - weight: 5 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: app.kubernetes.io/name - operator: In - values: - - {{ template "alfresco-ai-transformer.name" . }} - - key: app.kubernetes.io/instance - operator: In - values: - - {{ .Release.Name }} - topologyKey: failure-domain.beta.kubernetes.io/zone containers: - name: {{ .Chart.Name }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" @@ -119,8 +87,11 @@ spec: key: {{ .Values.aws.existingConfigMap.keys.comprehendRoleARN }} ports: - - containerPort: {{ .Values.image.internalPort }} - resources: {{- toYaml .Values.resources | nindent 12 }} + - containerPort: {{ .Values.image.internalPort }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + volumeMounts: + {{- toYaml .Values.extraVolumeMounts | nindent 12 }} readinessProbe: httpGet: path: /ready @@ -136,3 +107,27 @@ spec: periodSeconds: {{ .Values.livenessProbe.periodSeconds }} failureThreshold: 1 timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + {{- if .Values.command }} + command: + {{- toYaml .Values.command | nindent 12 }} + {{- end }} + {{- if .Values.args }} + args: + {{- toYaml .Values.args | nindent 12 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- .Values.nodeSelector | toYaml | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- tpl . $ | nindent 8 }} + {{- end }} + initContainers: + {{- toYaml .Values.extraInitContainers | nindent 8 }} + volumes: + {{- toYaml .Values.extraVolumes | nindent 8 }} diff --git a/charts/alfresco-ai-transformer/values.yaml b/charts/alfresco-ai-transformer/values.yaml index db55ec4b..8b40719f 100644 --- a/charts/alfresco-ai-transformer/values.yaml +++ b/charts/alfresco-ai-transformer/values.yaml @@ -5,7 +5,6 @@ strategy: maxSurge: 1 maxUnavailable: 0 replicaCount: 2 -nodeSelector: {} image: repository: quay.io/alfresco/alfresco-ai-docker-engine tag: 3.0.1 @@ -48,6 +47,431 @@ livenessProbe: livenessTransformPeriodSeconds: 600 maxTransforms: 10000 maxTransformSeconds: 1800 +trouter: + # -- List of transformer pipelines the ATS router can advertise when using AI + # To get more details abous pipeline configuration check + # https://docs.alfresco.com/transform-service/latest/config/#transform-pipelines + # @default -- See + # https://github.com/Alfresco/alfresco-ai-renditions/blob/master/ai-renditions/docker-compose/ai-pipeline-routes.json + pipelines: + - transformerName: gifToRekognitionViaJpg + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/jpeg + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/gif + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: tiffToRekognitionViaGif + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/gif + - transformerName: gifToRekognitionViaJpg + supportedSourceAndTargetList: + - sourceMediaType: image/tiff + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: pdfToRekognitionViaPng + transformerPipeline: + - transformerName: pdfrenderer + targetMediaType: image/png + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/pdf + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + transformOptions: + - pdfRendererOptions + - awsAiOptions + - transformerName: officeToRekognitionViaPdf + transformerPipeline: + - transformerName: libreoffice + targetMediaType: application/pdf + - transformerName: pdfToRekognitionViaPng + supportedSourceAndTargetList: + - sourceMediaType: application/msword + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.wordprocessingml.document + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + - sourceMediaType: application/vnd.ms-excel + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + - sourceMediaType: application/vnd.ms-powerpoint + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.presentationml.presentation + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.labels.v1+json + transformOptions: + - pdfRendererOptions + - awsAiOptions + - transformerName: pdfToComprehendEntityRecognitionViaTextract + transformerPipeline: + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/pdf + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + transformOptions: + - awsAiOptions + - transformerName: officeToComprehendEntityRecognitionViaText + transformerPipeline: + - transformerName: TikaAuto + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/msword + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.wordprocessingml.document + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + - sourceMediaType: application/vnd.ms-excel + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + - sourceMediaType: application/vnd.ms-powerpoint + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.presentationml.presentation + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + transformOptions: + - awsAiOptions + - transformerName: msOutlookToComprehendEntityRecognitionViaText + transformerPipeline: + - transformerName: OutlookMsg + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/vnd.ms-outlook + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + transformOptions: + - awsAiOptions + - transformerName: pdfToComprehendClassificationViaText + transformerPipeline: + - transformerName: PdfBox + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/pdf + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + transformOptions: + - pdfboxOptions + - awsAiOptions + - transformerName: tikaAutoToComprehendClassificationViaText + transformerPipeline: + - transformerName: TikaAuto + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/msword + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.wordprocessingml.document + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + - sourceMediaType: application/vnd.ms-excel + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + - sourceMediaType: application/vnd.ms-powerpoint + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + transformOptions: + - awsAiOptions + - transformerName: ooxmlToComprehendClassificationViaText + transformerPipeline: + - transformerName: OOXML + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/vnd.openxmlformats-officedocument.presentationml.presentation + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + transformOptions: + - awsAiOptions + - transformerName: outlookToComprehendClassificationViaText + transformerPipeline: + - transformerName: OutlookMsg + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/vnd.ms-outlook + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + transformOptions: + - awsAiOptions + - transformerName: gifToTextractPlainViaJpg + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/jpeg + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/gif + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: tiffToTextractPlainViaGif + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/gif + - transformerName: gifToTextractPlainViaJpg + supportedSourceAndTargetList: + - sourceMediaType: image/tiff + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: gifToTextractViaJpg + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/jpeg + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/gif + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: tiffToTextractViaGif + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/gif + - transformerName: gifToTextractViaJpg + supportedSourceAndTargetList: + - sourceMediaType: image/tiff + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: officeToTextractViaPdf + transformerPipeline: + - transformerName: libreoffice + targetMediaType: application/pdf + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/msword + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.wordprocessingml.document + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + - sourceMediaType: application/vnd.ms-excel + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + - sourceMediaType: application/vnd.ms-powerpoint + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.presentationml.presentation + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.textract.v1+json + transformOptions: + - awsAiOptions + - transformerName: imageToComprendEntityRecognitionViaTextractPlain + transformerPipeline: + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/png + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + - sourceMediaType: image/jpeg + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + transformOptions: + - awsAiOptions + - transformerName: gifToComprendEntityRecognitionViaTextractPlain + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/jpeg + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/gif + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: tiffToComprendEntityRecognitionViaTextractPlain + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/gif + - transformerName: gifToComprendEntityRecognitionViaTextractPlain + supportedSourceAndTargetList: + - sourceMediaType: image/tiff + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.features.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: imageToComprendClassificationViaTextractPlain + transformerPipeline: + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/png + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + - sourceMediaType: image/jpeg + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + transformOptions: + - awsAiOptions + - transformerName: gifToComprendClassificationViaTextractPlain + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/jpeg + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/gif + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: tiffToComprendClassificationViaTextractPlain + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/gif + - transformerName: gifToComprendClassificationViaTextractPlain + supportedSourceAndTargetList: + - sourceMediaType: image/tiff + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.classifiers.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: pdfToComprehendPiiEntityTypesViaTextractPlain + transformerPipeline: + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/pdf + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + transformOptions: + - awsAiOptions + - transformerName: tikaAutoToComprehendPiiEntityTypesViaText + transformerPipeline: + - transformerName: TikaAuto + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/msword + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.wordprocessingml.document + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + - sourceMediaType: application/vnd.ms-excel + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + - sourceMediaType: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + - sourceMediaType: application/vnd.ms-powerpoint + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + transformOptions: + - awsAiOptions + - transformerName: ooxmlToComprehendPiiEntityTypesViaText + transformerPipeline: + - transformerName: OOXML + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/vnd.openxmlformats-officedocument.presentationml.presentation + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + transformOptions: + - awsAiOptions + - transformerName: outlookToComprehendPiiEntityTypesViaText + transformerPipeline: + - transformerName: OutlookMsg + targetMediaType: text/plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: application/vnd.ms-outlook + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + transformOptions: + - awsAiOptions + - transformerName: imageToComprehendPiiEntityTypesViaTextractPlain + transformerPipeline: + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/png + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + - sourceMediaType: image/jpeg + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + transformOptions: + - awsAiOptions + - transformerName: gifToComprehendPiiEntityTypesViaTextractPlain + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/jpeg + - transformerName: AWS_AI + targetMediaType: application/vnd.alfresco.ai.textract.v1+plain + - transformerName: AWS_AI + supportedSourceAndTargetList: + - sourceMediaType: image/gif + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions + - transformerName: tiffToComprehendPiiEntityTypesViaTextractPlain + transformerPipeline: + - transformerName: imagemagick + targetMediaType: image/gif + - transformerName: gifToComprehendPiiEntityTypesViaTextractPlain + supportedSourceAndTargetList: + - sourceMediaType: image/tiff + maxSourceSizeBytes: -1 + targetMediaType: application/vnd.alfresco.ai.pii.entities.v1+json + transformOptions: + - imageMagickOptions + - awsAiOptions sfs: # -- Alfresco Transformation filestore (e.g. http://acs-alfresco-transform-service) url: null @@ -56,7 +480,8 @@ sfs: keys: url: FILE_STORE_URL aws: - # -- AWS credentials are required as documented at https://docs.alfresco.com/intelligence-services/latest/config/#default-configuration + # -- AWS credentials are required as documented at + # https://docs.alfresco.com/intelligence-services/latest/config/#default-configuration accessKeyId: null secretAccessKey: null region: null @@ -87,6 +512,30 @@ messageBroker: keys: username: BROKER_USERNAME password: BROKER_PASSWORD +nodeSelector: {} +tolerations: [] +# -- string representation of the YAML affinity rules (can use templates) +affinity: |- + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 10 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: app.kubernetes.io/name + operator: In + values: + - {{ template "alfresco-ai-transformer.name" $ }} + - key: app.kubernetes.io/instance + operator: In + values: + - {{ $.Release.Name }} + topologyKey: topology.kubernetes.io/zone +extraVolumes: [] +extraVolumeMounts: [] +extraInitContainers: [] +command: [] +args: [] tags: # -- A chart tag used for Hyland's CI purpose. Do not set it to true. ci: false