Skip to content

Instantly share code, notes, and snippets.

@binduwavell
Last active May 11, 2020 23:05
Show Gist options
  • Save binduwavell/868779f53da14de5a7a41759648980a3 to your computer and use it in GitHub Desktop.
Save binduwavell/868779f53da14de5a7a41759648980a3 to your computer and use it in GitHub Desktop.
# 1-node ACS 6.2 k8s deployment created with 8GB RAM and 4GB swap allocated to Docker Desktop on 16GB laptop.
# Spins up:
# 1x nginx ingress
# 1x repository
# 1x share
# 1x transformers (pdfrenderer, imagemagick, libreoffice, tika, misc)
# 1x solr
# 1x postgresql
# Prerequisites defined here: https://www.ziaconsulting.com/developer-help/kubernetes-2/
# After setting up the environment defined in the blog post, use the following commands to spin up the repository:
# helm install stable/nginx-ingress --set rbac.create=true
# helm install alfresco-stable/alfresco-content-services \
# --set global.alfrescoRegistryPullSecrets='quay-registry-zia-secret' \
# --set alfresco-infrastructure.nginx-ingress.enabled='false' \
# --set externalProtocol='http' \
# --set externalHost='localhost' \
# --set externalPort='80' \
# --version='3.0.3' \
# -f values.yaml
repository:
replicaCount: 1
image:
repository: alfresco/alfresco-content-repository
tag: "6.2.0"
pullPolicy: Always
internalPort: 8080
hazelcastPort: 5701
service:
name: alfresco
type: ClusterIP
externalPort: &repositoryExternalPort 80
ingress:
path: /
maxUploadSize: "5g"
annotations: {}
# nginx.ingress.kubernetes.io/enable-cors: "true"
environment:
JAVA_OPTS: " -Dsolr.base.url=/solr
-Dsolr.secureComms=none
-Dindex.subsystem.name=solr6
-Dalfresco.cluster.enabled=true
-Ddeployment.method=HELM_CHART
-Dtransform.service.enabled=true
-Dlocal.transform.service.enabled=true
-Dlegacy.transform.service.enabled=true
-Xms1000M -Xmx1000M"
resources:
requests:
memory: "1280Mi"
limits:
memory: "1280Mi"
# The repository readiness probe is used to check startup only as a failure
# of the liveness probe later will result in the pod being restarted.
readinessProbe:
initialDelaySeconds: 240
periodSeconds: 50
timeoutSeconds: 10
failureThreshold: 10
livenessProbe:
initialDelaySeconds: 240
periodSeconds: 50
timeoutSeconds: 10
failureThreshold: 10
# Declares the api-explorer service used by the content repository
apiexplorer:
ingress:
path: /api-explorer
transformrouter:
replicaCount: 1
image:
repository: quay.io/alfresco/alfresco-transform-router
tag: "1.1.0"
pullPolicy: Always
internalPort: 8095
service:
name: transform-router
type: ClusterIP
externalPort: 80
environment:
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 240
periodSeconds: 50
timeoutSeconds: 10
failureThreshold: 12
livenessProbe:
initialDelaySeconds: 60
periodSeconds: 120
timeoutSeconds: 60
failureThreshold: 5
# Declares the alfresco-pdf-renderer service used by the content repository
# to transform pdf files
pdfrenderer:
replicaCount: 1
image:
repository: alfresco/alfresco-pdf-renderer
tag: "2.1.0"
pullPolicy: Always
internalPort: 8090
service:
name: pdfrenderer
type: ClusterIP
externalPort: 80
resources:
requests:
memory: "786Mi"
limits:
memory: "786Mi"
environment:
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 120
periodSeconds: 60
timeoutSeconds: 10
failureThreshold: 20
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
livenessPercent: 150
livenessTransformPeriodSeconds: 600
maxTransforms: 10000
maxTransformSeconds: 1200
# Declares the alfresco-imagemagick service used by the content repository
# to transform image files
imagemagick:
replicaCount: 1
image:
repository: alfresco/alfresco-imagemagick
tag: "2.1.0"
pullPolicy: Always
internalPort: 8090
service:
name: imagemagick
type: ClusterIP
externalPort: 80
resources:
requests:
memory: "786Mi"
limits:
memory: "786Mi"
environment:
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 120
periodSeconds: 60
timeoutSeconds: 10
failureThreshold: 20
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
livenessPercent: 150
livenessTransformPeriodSeconds: 600
maxTransforms: 10000
maxTransformSeconds: 900
# Declares the alfresco-libreoffice service used by the content repository
# to transform office files
libreoffice:
replicaCount: 1
image:
repository: alfresco/alfresco-libreoffice
tag: "2.1.0"
pullPolicy: Always
internalPort: 8090
service:
name: libreoffice
type: ClusterIP
externalPort: 80
resources:
requests:
memory: "786Mi"
limits:
memory: "786Mi"
environment:
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 120
periodSeconds: 60
timeoutSeconds: 10
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
livenessPercent: 250
livenessTransformPeriodSeconds: 600
maxTransforms: 99999
maxTransformSeconds: 1800
# Declares the alfresco-tika service used by the content repository
# to transform office files
tika:
replicaCount: 1
image:
repository: alfresco/alfresco-tika
tag: "2.1.0"
pullPolicy: Always
internalPort: 8090
service:
name: tika
type: ClusterIP
externalPort: 80
resources:
requests:
memory: "786Mi"
limits:
memory: "786Mi"
environment:
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 120
periodSeconds: 60
timeoutSeconds: 10
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
livenessPercent: 400
livenessTransformPeriodSeconds: 600
maxTransforms: 10000
maxTransformSeconds: 1800
# Declares the alfresco-tika service used by the content repository
# to transform office files
transformmisc:
replicaCount: 1
image:
repository: alfresco/alfresco-transform-misc
tag: "2.1.0"
pullPolicy: Always
internalPort: 8090
service:
name: transformmisc
type: ClusterIP
externalPort: 80
resources:
requests:
memory: "786Mi"
limits:
memory: "786Mi"
environment:
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 120
periodSeconds: 60
timeoutSeconds: 10
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
livenessPercent: 400
livenessTransformPeriodSeconds: 600
maxTransforms: 10000
maxTransformSeconds: 1800
aiTransformer:
replicaCount: 1
image:
repository: quay.io/alfresco/alfresco-ai-docker-engine
tag: "1.1.0"
pullPolicy: Always
internalPort: 8090
service:
name: ai-transformer
type: ClusterIP
externalPort: 80
resources:
requests:
memory: "786Mi"
limits:
memory: "786Mi"
environment:
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 240
periodSeconds: 60
timeoutSeconds: 10
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 20
timeoutSeconds: 10
livenessPercent: 400
livenessTransformPeriodSeconds: 600
maxTransforms: 10000
maxTransformSeconds: 1800
# Declares the alfresco-shared-file-store used by the content repository
# and transform service
filestore:
replicaCount: 1
image:
repository: alfresco/alfresco-shared-file-store
tag: "0.5.3"
pullPolicy: Always
internalPort: 8099
service:
name: filestore
type: ClusterIP
externalPort: 80
resources:
requests:
memory: "786Mi"
limits:
memory: "786Mi"
environment:
scheduler.content.age.millis: "86400000"
scheduler.cleanup.interval: "86400000"
JAVA_OPTS: " -Xms256M -Xmx512M"
readinessProbe:
initialDelaySeconds: 120
periodSeconds: 60
timeoutSeconds: 10
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
livenessPercent: 150
livenessSavePeriodSeconds: 600
# Define the alfresco-share properties to use in the k8s cluster
# This is the default presentation layer(UI) of Alfresco Content Services
share:
replicaCount: 1
image:
repository: alfresco/alfresco-share
tag: "6.2.0"
pullPolicy: Always
internalPort: 8080
service:
name: share
type: ClusterIP
externalPort: 80
ingress:
path: /share
annotations: {}
resources:
requests:
memory: "1000Mi"
limits:
memory: "1000Mi"
environment:
CATALINA_OPTS: " -Xms512M -Xmx786M"
readinessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 24
livenessProbe:
initialDelaySeconds: 120
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 24
# Defines the mounting points for the persistence required by the apps in the
# cluster the alf_data folder from alfresco-content-repository app is mapped to
# alfresco-content-services/repository-data
persistence:
existingClaim: "alfresco-volume-claim"
repository:
enabled: true
config:
transform:
renditionsMountPath: "/usr/local/tomcat/shared/classes/alfresco/extension/transform/renditions/"
pipelinesMountPath: "/usr/local/tomcat/shared/classes/alfresco/extension/transform/pipelines/"
mimetypesMountPath: "/usr/local/tomcat/shared/classes/alfresco/extension/mimetypes/"
data:
mountPath: "/usr/local/tomcat/alf_data"
subPath: "alfresco-content-services/repository-data"
filestore:
enabled: true
data:
mountPath: "/tmp/Alfresco"
subPath: "alfresco-content-services/filestore-data"
# Settings that define that alfresco-content-services (this helm chart) is dependent of alfresco-infrastructure chart
# alfresco-infrastructure is defined here: https://github.com/Alfresco/alfresco-infrastructure-deployment/tree/master/charts/incubator/alfresco-infrastructure
# This dependency is needed because the alfresco-infrastructure is meant to provide common tools and frameworks to be used
# by all the components in the DBP (https://www.alfresco.com/platform)
# Currently the Alfresco Content Services product helm chart (this chart) only needs
# the persistent volume claim (pvc) definition defined in the infrastructure
alfresco-content-services:
alfresco-infrastructure:
enabled: true
# All the components from the alfresco-infrastructure are disabled, because Alfresco Content Services product helm chart
# only needs the pvc defined in the dependency alfresco-infrastructure
alfresco-infrastructure:
activemq:
enabled: true
alfresco-identity-service:
enabled: false
alfresco-search:
enabled: true
# If enabled is set to false, then external host and port need to point to the external instance of SOLR6, and in this case:
# Note: Rule_05-network-policy-search will be disable.
# Note: Rule_04-network-policy-repository internal trafic to SOLR6 instance will be disabled.
# Note: ingress-repository will not block external trafic to */solr/*
# external:
# Host dns/ip of the external solr6 instance.
# host: "127.0.0.1"
# Port of the external solr6 instance.
# port: "8983"
repository: &repositoryHostPort
# The value for "host" is the name of this chart
host: alfresco-cs
port: *repositoryExternalPort
alfresco-insight-zeppelin:
repository: *repositoryHostPort
ingress:
# Alfresco Search services endpoint ('/solr') is disabled by default
# To enable it please see: acs-deployment configuration table](https://github.com/Alfresco/acs-deployment/tree/master/helm/alfresco-content-services#configuration)
enabled: false
# registryPullSecrets: "quay-registry-secret"
alfresco-digital-workspace:
enabled: true
ingress:
path: /workspace
applicationBasePath: ./
# choose if you want AI capabilities
ai:
enabled: false
# aws:
# accessKey:
# secretAccessKey:
# region:
# s3Bucket:
# comprehendRoleARN:
# choose if you want network policy enabled
networkpolicysetting:
enabled: true
# Defines properties required by alfresco for connecting to the database
# Note! : If you set database.external to true you will have to setup the driver, user, password and JdbcUrl
# Also make sure that the container has the db driver in /usr/local/tomcat/lib since the current image only has the postgresql driver
database:
external: false
# driver: #ex: org.postgresql.Driver
# user: #ex: alfresco
# password: #ex: alfresco
# url: # ex: jdbc:postgresql://oldfashioned-mule-postgresql-acs:5432/alfresco
# Defines the properties to be used for the required postgres DB
# Note: the database (tables) information is also saved in the persistent volume claim
postgresql:
replicaCount: 1
## If true, install the postgresql chart alongside Alfresco Content Services.
# Note: Set this to false if you use an external database.
enabled: true
nameOverride: postgresql-acs
imageTag: "11.4"
postgresUser: alfresco
postgresPassword: alfresco
postgresDatabase: alfresco
postgresConfig:
max_connections: 300
log_min_messages: LOG
persistence:
existingClaim: "alfresco-volume-claim"
subPath: "alfresco-content-services/database-data"
resources:
requests:
memory: "1500Mi"
limits:
memory: "1500Mi"
# Defines the properties to be used for the S3 Connector
s3connector:
enabled: false
# config:
# bucketName:
# bucketLocation:
## Additional properties can be defined here.
## For a full list of properties on the S3 connector, please view: https://docs.alfresco.com/s3connector/references/s3-contentstore-ref-config-props.html
# secrets:
# accessKey:
# secretKey:
# encryption:
# awsKmsKeyId:
# If there is a need to pull images from a private docker repo, a secret can be defined in helm and passed as an argument
# to the install command:
# e.g.: helm install alfresco-content-services --set global.alfrescoRegistryPullSecrets=quay-registry-secret
# or uncomment the following line if you don't want/need to pass it as a parameter on every install command :
# global.alfrescoRegistryPullSecrets: quay-registry-secret
# for more information: https://github.com/Alfresco/alfresco-anaxes-shipyard/blob/master/SECRETS.md
# Global definition of Docker registry pull secret which can be accessed by dependent ACS Helm chart(s)
global:
alfrescoRegistryPullSecrets:
alfresco-sync-service:
enabled : false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment