ACS Helm Deployment with Intelligence Services
By default, Alfresco Intelligence Services feature is disabled, this example describes how to deploy ACS onto EKS with AIS enabled.
The diagram below shows the deployment produced by this example:
Architecture
graph LR
classDef alf fill:#0b0,color:#fff
classDef aws fill:#fa0,color:#fff
classDef k8s fill:#326ce5,stroke:#326ce5,stroke-width:2px,color:#fff
classDef thrdP fill:#e098a6,color:#000
subgraph ats[Alfresco Transform Service]
Deployment_transform-router(Deployment: transform-router):::alf
Deployment_ai[Deployment: AI t-engine]:::alf
end
subgraph AWS
comprehend:::aws
rekognition:::aws
textract:::aws
s3:::aws
end
Deployment_transform-router --> Deployment_ai
Deployment_ai --> comprehend
Deployment_ai --> rekognition
Deployment_ai --> textract
Deployment_ai --> s3
Prerequisites
Follow the AWS Services example up until the Deploy section and return to this page.
Setup S3 Bucket
Follow the steps in the official documentation to setup an IAM user and an S3 bucket for use by AIS.
Deploy
Create a local values file to contain Helm charts’ configuration options (ai-values.yaml
):
alfresco-ai-transformer:
enabled: true
aws:
accessKeyId: YOUR-AI-AWS-ACCESS-KEY-ID
secretAccessKey: YOUR-AI-AWS-SECRET-KEY
region: YOUR-AWS-REGION
s3Bucket: YOUR-AI-BUCKET-NAME
comprehendRoleARN: YOUR-AI-AWS-COMPREHEND-ROLE-ARN
alfresco-transform-service:
filestore:
persistence.enabled: true
storageClass: nfs-client
transformrouter:
environment:
JAVA_OPTS: -XX:MaxRAMPercentage=80
TRANSFORMER_URL_AWS_AI: http://alfresco-intelligence-service
TRANSFORMER_QUEUE_AWS_AI: "org.alfresco.transform.engine.ai-aws.acs"
TRANSFORMER_ROUTES_ADDITIONAL_AI: "/etc/ats-routes/ai-pipeline-routes.json"
volumeMounts:
- name: ai-transform-routes
mountPath: /etc/ats-routes
volumes:
- name: ai-routes
configMap:
names: ai-transform-pipelines
items:
- key: ai-pipeline-routes.json
path: ai-pipeline-routes.json
Replace AWS credentials and Kubernetes storageClass with actual values
When we bring all this together we can deploy ACS using the command below (replacing all the YOUR-XZY
properties with the values gathered during the setup of the services):
helm install acs alfresco/alfresco-content-services \
--set global.known_urls=https://acs.YOUR-DOMAIN-NAME \
--set global.search.sharedSecret=$(openssl rand -hex 24) \
--set global.alfrescoRegistryPullSecrets=quay-registry-secret \
--set alfresco-repository.persistence.enabled=false \
--set alfresco-repository.image.repository="quay.io/alfresco/alfresco-content-repository-aws" \
--set share.image.repository="quay.io/alfresco/alfresco-share-aws" \
--set postgresql.enabled=false \
--set database.external=true \
--set database.driver="org.postgresql.Driver" \
--set database.url="jdbc:postgresql://YOUR-DATABASE-ENDPOINT:5432/" \
--set database.user="alfresco" \
--set database.password="YOUR-DATABASE-PASSWORD" \
--set activemq.enabled=false \
--set messageBroker.url="YOUR-MQ-ENDPOINT" \
--set messageBroker.user="alfresco" \
--set messageBroker.password="YOUR-MQ-PASSWORD" \
--set global.ai.enabled=true \
-f ai-values.yaml \
--atomic \
--timeout 10m0s \
--namespace=alfresco