diff --git a/assets/js/search-data.json b/assets/js/search-data.json index f95d10cd..6dda68b0 100644 --- a/assets/js/search-data.json +++ b/assets/js/search-data.json @@ -349,272 +349,300 @@ "relUrl": "/docs/guides/alfresco-repository.html" },"50": { + "doc": "Alfresco Transform Service", + "title": "Alfresco Transform Service", + "content": " ", + "url": "/alfresco-helm-charts/docs/guides/alfresco-transform-service.html", + + "relUrl": "/docs/guides/alfresco-transform-service.html" + },"51": { "doc": "Autoscaling", "title": "Alfresco repository auto scaling", "content": "This document describes auto scaling principles implemented in this Helm chart. This document do not explain how to setup Kubernetes worker nodes auto-scaling. That is a completely different topic which can be addressed in different ways and is up to the Kubernetes administrator. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/autoscaling.html#alfresco-repository-auto-scaling", "relUrl": "/charts/alfresco-repository/docs/autoscaling.html#alfresco-repository-auto-scaling" - },"51": { + },"52": { "doc": "Autoscaling", "title": "Horizontal Pod Auto scaling", "content": "For general concepts about HPA please refer to official Kubernetes documentation. Repository pods auto scaling is disabled by default. If you want to enable it you need to use the additional value: . autoscaling: enabled: true . The default configuration implemented in this chart aims at being able to cope with peak load or spare resources on low level of utilization while also minimizing the number of scaling events because changing the cluster topology means additional computation. Default behaviour: . Without any further configuration scaling would happen as follow: . | Cluster would spin up new pods every minute if the current average pods’ load is above 75% CPU usage during 30 seconds. | Cluster would spin up no more than 2 pods or 50% more pods of the existing replicas (whichever is bigger) per minute. | There would never be more than 3 replicas in the Replicaset | There would never be less than 1 replicas in the Replicaset | Cluster would remove one pod at most if the CPU load get consistently below 75% for 5 minutes. | Cluster would kill pod only one after the other within a minute. | . CPU utilization/load is calculated with regards to the CPU resource request setting (.resources.requests.cpu) which is now set to 1 CPU by default. Customizing auto scaling . The values and behaviour exposed above are defaults we think are sensible to start with. Of course they will not fit every single deployment/installation of Alfresco on Kubernetes. Below are ways to tweak the auto scaling behaviour for your own setup. Settings the CPU resources correctly. CPU Resources request is the basis of calculation for the cluster to trigger scaling events. It is then very important to make sure it is set appropriately before enabling auto scaling. Imagine you have a production Kubernetes cluster with large worker nodes (say 3 * 32 CPU nodes). Having CPU requests set to 2 would most likely make the cluster spin up new pods very quickly. Instead it would be better to ensure your repository pods have a sensible .resources.requests.cpu value set to say 8. Also you should note that the very same .resources.requests.cpu value is used by the Kubernetes scheduler, so setting it too high is not a good idea either. It should be set to a value which will allow pods to be scheduled on worker nodes alongside other pods. default .resources.limits.cpu is set to 4 CPU so you will also want to increase this value to something like 12. Just by setting a sensible .resources.requests.cpu the auto scaling behaviour would already make much more sense given the worker nodes’ size. Configuring the auto scaling behaviour . The autoscaling.* values below can be fined tuned. There a few things to take into account when changing those as explained: . | .minReplicas: This parameter is used to limit the lowest number of replicas | .maxReplicas: This parameter is used to limit the highest number of replicas the more member the Hazelcast cluster has, the more chatty the cluster is. Keeping the cluster below 6 to 8 nodes seems a good target. | .behavior.scaleUp.stabilizationWindowSeconds: This parameter is used to avoid flapping replicasets. A very short peak load is not worth a scale up. So you surely want to avoid scaling without making sure the load has increased consistently and scale up needs to happen. That parameter tells for how long the load should be over target before the HPA controller decides to increase the number of replicas. The shorter this value, the more likely you are to spin up pods for short peak workload, so the pod could even be ready after the load is actually back to normal. Setting this too low when CPU resources requests is set to 1 is counter productive as it’s pretty easy to make 1 CPU busy. | .behavior.scaleDown.stabilizationWindowSeconds: This parameter is used in the same manner as for scale up events. One notable difference though is that scaling down has an immediate effect on the way the application handles the workload while scaling up is more expensive as pods need to startup before it can actually start handling requests. For that reason we think one should always be more cautious when brining the number of replica down. You probably want to avoid taking pods down too quickly if your workload is not very consistent. | `.behavior.scaleUp.policies[]: . | .periodSeconds: The faster an individual repo pod is to startup (Tomcat complete startup) the lower this parameter can be. 60s appeared a good value for startup times around 90s. The lower this parameter the faster new pods can be spun up and the faster peak load can be handled. | .type & value: For exact details on setting this part of the auto scaler policy check the kubernetes doc. Policies let you define the way you want to act upon scaling events. For scale up events, if you know your load peak are steep (but consistent) then you will want to scale the replicaset by more pods than if you load is growing more slowly. | . | . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/autoscaling.html#horizontal-pod-auto-scaling", "relUrl": "/charts/alfresco-repository/docs/autoscaling.html#horizontal-pod-auto-scaling" - },"52": { + },"53": { "doc": "Autoscaling", "title": "Autoscaling", "content": " ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/autoscaling.html", "relUrl": "/charts/alfresco-repository/docs/autoscaling.html" - },"53": { + },"54": { + "doc": "Autoscaling", + "title": "Alfresco Transform Service auto scaling", + "content": "This document describes auto scaling principles implemented in this Helm chart. This document do not explain how to setup Kubernetes worker nodes auto-scaling. That is a completely different topic which can be addressed in different ways and is up to the Kubernetes administrator. ", + "url": "/alfresco-helm-charts/charts/alfresco-transform-service/docs/autoscaling.html#alfresco-transform-service-auto-scaling", + + "relUrl": "/charts/alfresco-transform-service/docs/autoscaling.html#alfresco-transform-service-auto-scaling" + },"55": { + "doc": "Autoscaling", + "title": "Horizontal Pod Auto scaling", + "content": "For general concepts about HPA please refer to official Kubernetes documentation. Tengine pods auto scaling is disabled by default. If you want to enable it you need to use the additional value: . tengine: autoscaling: enabled: true . Where tengine is one of imagemagick, libreoffice, transformmisc, tika or pdfrenderer. The default configuration implemented in this chart aims at being able to cope with peak load or spare resources on low level of utilization while also minimizing the number of scaling events because changing the cluster topology means additional computation. Default behaviour . Without any further configuration scaling would happen as follow: . | Cluster would spin up new pods every minute if the current average pods’ load remains above 75% CPU usage on average during 30 seconds. | Cluster would spin up no more than 2 pods or 50% more pods of the existing replicas (whichever is bigger) per minute. | There would never be more than 3 replicas in the Replicaset | There would never be less than 1 replicas in the Replicaset | Cluster would remove one pod at most if the CPU load get consistently below 75% on average for 5 minutes. | Cluster would kill pod only one after the other within a minute. | . CPU utilization/load is calculated with regards to the CPU resource request setting (.resources.requests.cpu) which is now set to 1 CPU by default. Customizing auto scaling . The values and behaviour exposed above are defaults we think are sensible to start with. Of course they will not fit every single deployment/installation of Alfresco on Kubernetes. Below are ways to tweak the auto scaling behaviour for your own setup. Settings the CPU resources correctly . CPU Resources request is the basis of calculation for the cluster to trigger scaling events. It is then very important to make sure it is set appropriately before enabling auto scaling. Imagine you have a production Kubernetes cluster with large worker nodes (say 3 * 32 CPU nodes). Having CPU requests set to 1 would most likely make the cluster spin up new pods very quickly. Instead it would be better to ensure your tengine pods have a sensible .resources.requests.cpu value set to say 4. Also you should note that the very same .resources.requests.cpu value is used by the Kubernetes scheduler, so setting it too high is not a good idea either. It should be set to a value which will allow pods to be scheduled on worker nodes alongside other pods. default .resources.limits.cpu is set to 4 CPU so you will also want to increase this value to something like 12. Just by setting a sensible .resources.requests.cpu the auto scaling behaviour would already make much more sense given the worker nodes’ size. Configuring the auto scaling behaviour . The autoscaling.* values below can be fined tuned. There a few things to take int account when changing those as explained: . | .minReplicas: This parameter is used to limit the lowest number of replicas | .maxReplicas: This parameter is used to limit the highest number of replicas | .behavior.scaleUp.stabilizationWindowSeconds: This parameter is used to avoid flapping replicasets. A very short peak load is not worth a scale up. So you surely want to avoid scaling without making sure the load has increased consistently and scale up needs to happen. That parameter tells for how long the load should be over target before the HPA controller decides to increase the number of replicas. The shorter this value, the more likely you are to spin up pods for short peak workload, so the pod could even be ready after the load is actually back to normal. Setting this too low when CPU resources requests is set to 1 is counter productive as it’s pretty easy to make 1 CPU busy. | .behavior.scaleDown.stabilizationWindowSeconds: This parameter is used in the same manner as for scale up events. One notable difference though is that scaling down has an immediate effect on the way the application handles the workload while scaling up is more expensive as pods need to startup before it can actually start handling requests. For that reason we think one should always be more cautious when brining the number of replica down. You probably want to avoid taking pods down too quickly if your workload is not very consistent. | `.behavior.scaleUp.policies[]: . | .periodSeconds: The faster an individual tengine pod is to startup (Tomcat complete startup) the lower this parameter can be. 60s appeared a good value for startup times around 90s. The lower this parameter the faster new pods can be spun up and the faster peak load can be handled. | .type & value: For exact details on setting this part of the auto scaler policy check the kubernetes doc. Policies let you define the way you want to act upon scaling events. For scale up events, if you know your load peak are steep (but consistent) then you will want to scale the replicaset by more pods than if you load is growing more slowly. | . | . ", + "url": "/alfresco-helm-charts/charts/alfresco-transform-service/docs/autoscaling.html#horizontal-pod-auto-scaling", + + "relUrl": "/charts/alfresco-transform-service/docs/autoscaling.html#horizontal-pod-auto-scaling" + },"56": { + "doc": "Autoscaling", + "title": "Autoscaling", + "content": " ", + "url": "/alfresco-helm-charts/charts/alfresco-transform-service/docs/autoscaling.html", + + "relUrl": "/charts/alfresco-transform-service/docs/autoscaling.html" + },"57": { "doc": "Build your own charts", "title": "Building your Content platform architecture with Alfresco charts", "content": " ", "url": "/alfresco-helm-charts/docs/build-your-own-charts.html#building-your-content-platform-architecture-with-alfresco-charts", "relUrl": "/docs/build-your-own-charts.html#building-your-content-platform-architecture-with-alfresco-charts" - },"54": { + },"58": { "doc": "Build your own charts", "title": "The alfresco-common library chart", "content": "Alfresco charts depend on a common library chart called alfresco-common. This chart provides a set of named templates one can use in order to build his own content platform chart. Named templates are reusable functions that can only return strings and always take a single argument, which eventually can be an object. For example the URL helper file provides functions to extract various elements from a given URL. For example: . | {{ template \"alfresco-common.url.scheme\" \"https://hub.alfresco.com/\" }} will return “https” | {{ template \"alfresco-common.url.port\" \"https://hub.alfresco.com/\" }} will return “443” | . Check out the dedicated Chart documentation to get a more comprehensive list of named templates the chart offers. ", "url": "/alfresco-helm-charts/docs/build-your-own-charts.html#the-alfresco-common-library-chart", "relUrl": "/docs/build-your-own-charts.html#the-alfresco-common-library-chart" - },"55": { + },"59": { "doc": "Build your own charts", "title": "Alfresco components charts", "content": "The individual Alfresco components’ chart are meant to be configurable and reusable. They do not provide a working system on their own and need to be either used from an “umbrella chart” or be given additional details about other components they interact with in order to actually deliver the service they are meant to deliver. For example the alfresco-repository chart needs to have a database to initialize its content repository. This document explains what are the options you can leverage to “pipe” an Alfresco chart with another or with an external service. Understanding the Alfresco Content platform . Before you begin, make sure you do understand the Alfresco Content platform and its components so you know exactly what you need or do not need. ⚠️TODO: create chart diagram showing dependencies and level of dependencies . Creating your Alfresco platform . There are numerous ways to create your own Alfresco deployment and the component charts hosted in this repository can be used as building blocks for this purpose. Depending on preferences you may want to use Terraform, Kustomize or simply wrap the component charts into an “umbrella chart”. Here we’ll focus on the later option but the same configuration principles apply to other methods. In the example below we’ll go through the process of integrating an ACS content platform made of: . | Alfresco content repository | A database that hosted outside of the kubernetes cluster | . Below example also present using an “umbrella” Helm chart but most of the same approach is applicable to other deployment method as explained above. Declaring chart as dependency . Helm provides a mechanism to declare dependencies and re-use existing charts. We’ll start by initializing a chart and declare the dependency to the alfresco-repository chart. helm create myecmplatform && cd $_ . Edit the Chart.yaml to give the chart a sensible description, a version and optionally specify the version of your content platform. Then declare the dependency as shown below: . dependencies: - name: alfresco-repository version: 0.1.0 repository: https://alfresco.github.io/alfresco-helm-charts/ alias: repo . In the example above we use repo as an alias so any value in our chart that lives under the $.repo YAML path will actually be passed to the alfresco-repository chart. In other words, values documented for the alfresco-repository chart such as replicaCount will be used from your chart as repo.replicaCount. Configuring the chart . Now we need to let the repository where it can find its database. When it comes to configuring a chart so it can reach another component of the platform, the Alfresco component charts lets you do that in 2 different ways: . | Using regular values | Using kubernetes config resources (configMap or secret) | . Configuring database using values . First thing to do is to check the chart values documentation. There, we can see the database configuration can be done using the configuration.db element in our values.yaml file as shown below: . repo: configuration: db: url: jdbc:postgresql//db.ecm.infra.local/alfresco username: ecmdaouser password: ecmdaopass . Configuring database using kubernetes resources . When using kubernetes resources we will want to differentiate configuration details which are sensitive and which are not. The former will be stored in configMap, while the later would use secret. That means here we’ll use a configMap to set store the database URL while credentials would live in a secret. That concretely translate into the following kubernetes resources: . apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/instance: myEcmReleaseName app.kubernetes.io/name: Alfresco-content-platform app.kubernetes.io/version: 1.0.0 name: ecm-database-location namespace: myecm data: MY_ECM_DB_URL: jdbc:postgresql://db.ecm.infra.local/alfresco MY_ECM_DB_DRIVER: org.postgresql.Driver . apiVersion: v1 kind: Secret metadata: labels: app.kubernetes.io/instance: myEcmReleaseName app.kubernetes.io/name: Alfresco-content-platform app.kubernetes.io/version: 1.0.0 name: ecm-database-credentials namespace: myecm data: MY_ECM_DB_USER: c2NvdHQ= MY_ECM_DB_PASS: dGlnZXI= . For example, if you’re creating this ConfigMap using a wrapping Helm chart, you can reuse a templating function provided by the alfresco-repository chart alfresco-repository.db.cm . Now we need to let the alfresco-repository chart where to find this: . repo: configuration: db: existingConfigMap: name: ecm-database-location keys: url: MY_ECM_DB_URL driver: MY_ECM_DB_DRIVER existingSecret: name: ecm-database-credentials keys: username: MY_ECM_DB_USER password: MY_ECM_DB_PASS . If you used the templating function mentioned above and provided by the subchart the keys would be different than the ones mentioned in the example above. Actually the function would render teh default keys so it’s not needed to set them. ", "url": "/alfresco-helm-charts/docs/build-your-own-charts.html#alfresco-components-charts", "relUrl": "/docs/build-your-own-charts.html#alfresco-components-charts" - },"56": { + },"60": { "doc": "Build your own charts", "title": "Build your own charts", "content": " ", "url": "/alfresco-helm-charts/docs/build-your-own-charts.html", "relUrl": "/docs/build-your-own-charts.html" - },"57": { + },"61": { "doc": "Database configuration", "title": "Alfresco Process Service database configuration", "content": "Alfresco Process Service uses a relational database to store data. It is not possible to use the same database for both applications. Though, both databases can be hosted on the same database server. ", "url": "/alfresco-helm-charts/charts/alfresco-activiti/docs/databases-configuration.html#alfresco-process-service-database-configuration", "relUrl": "/charts/alfresco-activiti/docs/databases-configuration.html#alfresco-process-service-database-configuration" - },"58": { + },"62": { "doc": "Database configuration", "title": "Configuring the APS database", "content": "This charts uses generic configuration means reused in all our charts. You should start reading the getting-started guide. Using values . The most straightforward way to configure the APS database is to use the Helm values file. The following example shows how to configure the APS database: . database: url: jdbc:postgresql://postgresql:5432/activiti username: alfresco password: alfresco . Using a ConfigMap & Secret . Another and more production-ready way to configure the APS database is to use configmaps and secrets from an umbrella chart. This chart depends on the alfresco-common library chart, which provides a named template to ease creation of the database configuration. Below is an example which assumes the alfresco-activiti chart is set as a dependency in the umbrella chart and values are configured as follows: . # apsdb could be anything else, it is just a name apsdb: url: jdbc:mysql://mysql:3306/activiti alfresco-activiti: database: existingConfigMap: name: my-database-config . Then create a ConfigMap template with the following content: . apiVersion: v1 kind: ConfigMap metadata: name: my-database-config data: {{ template \"alfresco-activiti.db.cm\" .Values.apsdb }} . If you chose to not use the “alfresco-activiti.db.cm” helper template, you need to make sure you also provide the DATABASE_DRIVER key in the configmap. The helper will try autodetect which class to use based on the URL provided. If you want to use a custom driver class, you can provide it in the apsdb.driver value. For the secret there is no helper and you need to provide one secret which contains 2 data keys: . | DATABASE_USERNAME | DATABASE_PASSWORD | . apiVersion: v1 kind: Secret metadata: name: my-database-secret type: Opaque data: DATABASE_USERNAME: {{ .Values.apsdb.username | b64enc | quote }} DATABASE_PASSWORD: {{ .Values.apsdb.password | b64enc | quote }} . You may want to reuse a secret which is already created in your cluster but has different keys. In this case you would need to configure the alfresco-activiti chart as follows: . alfresco-activiti: database: existingSecret: name: my-database-secret keys: username: MY_DATABASE_USERNAME password: MY_DATABASE_PASSWORD . ", "url": "/alfresco-helm-charts/charts/alfresco-activiti/docs/databases-configuration.html#configuring-the-aps-database", "relUrl": "/charts/alfresco-activiti/docs/databases-configuration.html#configuring-the-aps-database" - },"59": { + },"63": { "doc": "Database configuration", "title": "Database configuration", "content": " ", "url": "/alfresco-helm-charts/charts/alfresco-activiti/docs/databases-configuration.html", "relUrl": "/charts/alfresco-activiti/docs/databases-configuration.html" - },"60": { + },"64": { "doc": "Index configuration", "title": "Alfresco Process Services search index configuration", "content": "Alfresco Process Services can use an Elasticsearch index. This document provides information on how to configure the search index in Alfresco Process Services. ", "url": "/alfresco-helm-charts/charts/alfresco-activiti/docs/elasticsearch-configuration.html#alfresco-process-services-search-index-configuration", "relUrl": "/charts/alfresco-activiti/docs/elasticsearch-configuration.html#alfresco-process-services-search-index-configuration" - },"61": { + },"65": { "doc": "Index configuration", "title": "Elasticsearch configuration", "content": "It is quite common to tie Alfresco Process Services to an Elasticsearch index which lives outside of the Kubernetes cluster. For example your index might be provided by a managed Elasticsearch service such as AWS OpenSearch. APS for now only support ElasticSearch 7.x . In order to connect to an external Elasticsearch index, you need to configure the following properties in the values.yaml file: . environment: ACTIVITI_ES_REST_CLIENT_ADDRESS: vpc-id.region.es.amazonaws.com ACTIVITI_ES_REST_CLIENT_PORT: 443 ACTIVITI_ES_REST_CLIENT_SCHEMA: https ACTIVITI_ES_REST_CLIENT_AUTH_ENABLED: true ACTIVITI_ES_REST_CLIENT_USERNAME: admin ACTIVITI_ES_REST_CLIENT_PASSWORD: esadmin . If you’re using an internal PKI, you will need to provide a keystore containing the certificate chain for the Elasticsearch server as a Kubernetes secret which must contain the data key truststore.p12. environment: ... ACTIVITI_ES_REST_CLIENT_KEYSTORE: /path/to/keystore/truststore.p12 ACTIVITI_ES_REST_CLIENT_KEYSTORE_TYPE: PKCS12 ACTIVITI_ES_REST_CLIENT_KEYSTORE_PASSWORD: somesecretpass volumes: - name: truststore secret: secretName: internal-truststore volumeMounts: - name: truststore readOnly: true mountPath: /path/to/keystore . ", "url": "/alfresco-helm-charts/charts/alfresco-activiti/docs/elasticsearch-configuration.html#elasticsearch-configuration", "relUrl": "/charts/alfresco-activiti/docs/elasticsearch-configuration.html#elasticsearch-configuration" - },"62": { + },"66": { "doc": "Index configuration", "title": "Index configuration", "content": " ", "url": "/alfresco-helm-charts/charts/alfresco-activiti/docs/elasticsearch-configuration.html", "relUrl": "/charts/alfresco-activiti/docs/elasticsearch-configuration.html" - },"63": { + },"67": { "doc": "Email features", "title": "Configuring email related features", "content": "Alfresco repository can interact with users through emails in different ways. Below we describe how to enable and configure the 3 main email features Alfresco offers: . | Sending emails | Accepting incoming email | IMAP interface to the repository | . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/email.html#configuring-email-related-features", "relUrl": "/charts/alfresco-repository/docs/email.html#configuring-email-related-features" - },"64": { + },"68": { "doc": "Email features", "title": "Sending emails", "content": "To enable Alfresco to send emails, it needs to communicate with a mail relay that administrators must configure. This mail relay is considered an integral part of the required architecture, and administrators can configure it using standard Alfresco properties. There are 2 ways to pass properties to the repository: . | Using configuration.repository.existingConfigMap | Using environment.CATALINA_OPTS env var. | . Using a configmap . Passing properties through a configmap is as simple as setting it in the alfresco-global.properties file. Start by creating a file called alfresco-global.properties as a regular properties file: . mail.host=mysmtp.infra.local mail.port=587 mail.username=alfresco mail.from.default=alfresco@domain.tld mail.smtp.auth=true mail.smtp.starttls.enable=true . Note: Although possible, we do not set the authentication password is not set in the configmap. Instead we will create a secret for it. We then create a configmap from the file with the mail properties (and possibly other properties): . kubectl create configmap repo-config \\ --from-file=alfresco-global.properties . Using a env vars . Passing properties through the CATALINA_OPTS environment variable can be done as shown below: . environment: CATALINA_OPTS: >- -Dmail.host=mysmtp.infra.local -Dmail.port=587 -Dmail.username=alfresco -Dmail.from.default=alfresco@domain.tld -Dmail.smtp.auth=true -Dmail.smtp.starttls.enable=true . Passing credentials . Regardless of whether you choose to pass properties using a configmap or directly values, you should avoid passing credentials in the same way. To securely pass credentials we will create a secret so the Alfresco repository can authenticate to the mail relay: . kubectl create secret generic mail-secret \\ --from-literal \"MAIL_PASSWORe=mysupersecret\" . Now when installing the chart you can use the values below: . configuration: repository: existingConfigMap: repo-config existingSecrets: - name: repository-secrets key: license.lic purpose: acs-license - name: mail-secret key: MAIL_PASSWORD purpose: property:mail.password . Enabling TLS/SSL . If you need to negotiate TLS/SSL session with the mail relay and your mail relay uses a certificate that’s not from a known CA, you will need to import a truststore containing either the server certificate itself or its issuing CA. Checkout the keystore doc for more details import a truststore or a keystore works the same way. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/email.html#sending-emails", "relUrl": "/charts/alfresco-repository/docs/email.html#sending-emails" - },"65": { + },"69": { "doc": "Email features", "title": "Accepting incoming email", "content": "Enabling Alfresco Inbound SMTP capabilities allow content to be fed into Alfresco repository using email and SMTP protocol. It is HIGHLY recommended to not expose Alfresco SMTP server directly to the outside world and instead have an SMTP proxy to implement required security measures. configuration: smtp: enabled: true port: 1465 service: annotations: service.beta.kubernetes.io/load-balancer-source-ranges: 10.0.0.0/24 service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp service.beta.kubernetes.io/aws-load-balancer-subnets: subnet-xxxx, subnet-yyyy service.beta.kubernetes.io/aws-load-balancer-ssl-cert=arn:aws:acm:region:account:certificate/certificate_ID environment: CATALINA_OPTS: >- -Demail.inbound.unknownUser=anonymous -Demail.server.domain=myecm.domain.tld -Demail.server.allowed.senders=ecm-ingestor@myecm.domain.tld -Demail.server.blocked.senders=.* -Demail.server.auth.enabled=true . Here we configure an SMTPs service to listen on port 1465 through an AWS loadbalancer and accept emails from a single sender. This loadbalancer will be responsible for doing the SSL off-load and further traffic will be cleartext. This is suitable in most cases as - as said earlier - your SMTP server should never be exposed directly on internet and have an SMTP proxy in front of it. In case you really need to terminate the SSL session on the Alfresco repo see the keystore doc . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/email.html#accepting-incoming-email", "relUrl": "/charts/alfresco-repository/docs/email.html#accepting-incoming-email" - },"66": { + },"70": { "doc": "Email features", "title": "Enabling IMAP", "content": "Similarly to SMTP inbound, it is possible to enable IMAP interface to the repository using the configuration below: . To get broader view on the available properties to configure IMAP please refer to the IMAP documentation . configuration: imap: enabled: true port: 1145 service: annotations: service.beta.kubernetes.io/load-balancer-source-ranges: 10.0.0.0/24 service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp environment: CATALINA_OPTS: >- -Dimap.server.attachments.extraction.enabled=false . As usual, in order to configure IMAPs or IMAP/TLS refer to the keystore documentation. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/email.html#enabling-imap", "relUrl": "/charts/alfresco-repository/docs/email.html#enabling-imap" - },"67": { + },"71": { "doc": "Email features", "title": "Email features", "content": " ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/email.html", "relUrl": "/charts/alfresco-repository/docs/email.html" - },"68": { + },"72": { "doc": "Enterprise license", "title": "Deploy Alfresco repository with enterprise license", "content": "Alfresco content repository Docker images come with an embedded license which last only 2 days. If you’ve built a custom image, it may have a one year license but in order to change it you would need to build a new image. You can also configure this chart so the license is instead read from a kubernetes secret so that, when it’s time to renew the license you only need to update that secret. This configuration relies on 2 steps: . | creating a secret to hold the license | configuring the chart to use that secret | . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/enterprise-license.html#deploy-alfresco-repository-with-enterprise-license", "relUrl": "/charts/alfresco-repository/docs/enterprise-license.html#deploy-alfresco-repository-with-enterprise-license" - },"69": { + },"73": { "doc": "Enterprise license", "title": "Create a kubernetes secret to store the license", "content": "Make sure your license available is readable and you have appropriate kubernetes access in order to create a secret in the ACS namespace where you want to deploy the helm release. ACS_NAMESPACE=acs kubectl create secret generic mylicense \\ --namespace $ACS_NAMESPACE \\ --from-file ~/Downloads/Alfresco-ent72-foobar.lic . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/enterprise-license.html#create-a-kubernetes-secret-to-store-the-license", "relUrl": "/charts/alfresco-repository/docs/enterprise-license.html#create-a-kubernetes-secret-to-store-the-license" - },"70": { + },"74": { "doc": "Enterprise license", "title": "Configure the chart to leverage that secret", "content": "In the chart value file add the following: . alfresco-repository: configuration: repository: existingSecrets: - name: mylicense key: Alfresco-ent72-foobar.lic purpose: acs-license . License files for your Alfresco enterprise subscription can be obtained from the Hyland Community portal . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/enterprise-license.html#configure-the-chart-to-leverage-that-secret", "relUrl": "/charts/alfresco-repository/docs/enterprise-license.html#configure-the-chart-to-leverage-that-secret" - },"71": { + },"75": { "doc": "Enterprise license", "title": "Applying a new license (in case this is not a fresh deployment)", "content": "Before your license expires you will want to apply a new one. It’s actually very easy do to so. All you need to do is overwrite the secret you created on previous deployment. You can use the exact same command just replacing the license file with the new one. Once that’s done you can refresh the license from the Alfresco admin console and use the “Apply a new license” feature (check the admin doc . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/enterprise-license.html#applying-a-new-license-in-case-this-is-not-a-fresh-deployment", "relUrl": "/charts/alfresco-repository/docs/enterprise-license.html#applying-a-new-license-in-case-this-is-not-a-fresh-deployment" - },"72": { + },"76": { "doc": "Enterprise license", "title": "Enterprise license", "content": " ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/enterprise-license.html", "relUrl": "/charts/alfresco-repository/docs/enterprise-license.html" - },"73": { + },"77": { "doc": "Guides", "title": "Guides", "content": "This section groups all the available guides tailored to achieve specific use cases with the Helm charts. ", "url": "/alfresco-helm-charts/docs/guides/", "relUrl": "/docs/guides/" - },"74": { + },"78": { "doc": "Home", "title": "Alfresco Helm Charts", "content": "This website contains user documentation for the independent and lightweight Helm charts for Alfresco Content Services platform that can be used as building blocks by devops teams to build the Content Services platform that match the organization needs. Check the acs-deployment repository for an example of how to leverage these charts on an umbrella chart. If you want to understand what are the principles to leverage in order to build on top of Alfresco components’ chart please refer to the Build your own charts section. Each individual chart has its own autogenerated reference documentation in charts. Default values are documented there. There is also a section for guides describing how to cover specific use cases. ", "url": "/alfresco-helm-charts/index.html#alfresco-helm-charts", "relUrl": "/index.html#alfresco-helm-charts" - },"75": { + },"79": { "doc": "Home", "title": "Home", "content": " ", "url": "/alfresco-helm-charts/index.html", "relUrl": "/index.html" - },"76": { + },"80": { "doc": "Custom keystores", "title": "Using custom keystore", "content": "Alfresco uses a set of keystores for different purposes. Among others thing keystores can be used for metadata encryption or traffic encryption. The alfresco-content-repository image comes with a keystore which contains a single security key. That key is primarily used for metadata encryption and it required when the repository starts up. In production environment it is recommended to use a custom keystore rather than the one present in the image. One may also need to have additional keystores deployed, for instance to allow using TLS encryption for a service the repository provides using an x509 certificate. We describe below how to do both. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/keystores.html#using-custom-keystore", "relUrl": "/charts/alfresco-repository/docs/keystores.html#using-custom-keystore" - },"77": { + },"81": { "doc": "Custom keystores", "title": "The metadata keystore", "content": "This keystore is used for property encryption and needs to remain identical throughout the life of the repository. Losing this keystore or its passwords will result in a repository that cannot startup so it is absolutely crucial to to back them up in some safe place. First create a local keystore. It is recommended to use p12 containers nowadays and leverage AES algorithm: . keytool -genseckey \\ -keystore /path/to/keystore.p12 -storetype PKCS12 \\ -storepass secret -keyalg AES \\ -keysize 256 \\ -alias metadata . Now we need to create a secret with from that keystore file and its password in the namespace where Alfresco will be deployed: . kubectl create secret generic repository-keystores \\ --from-file=/path/to/keystore.p12 \\ --from-literal \"ENC_METADATA_STOREPASS=secret\" \\ --from-literal \"ENC_METADATA_KEYPASS=secret\" . Note, unlike the older JCEKS format, PKCS12 do not allow having different passwords for the keystore and the key. so both variables need to be populated with the same value (the same one that was used whn generating the keystore using keytool (here “secret”). Once the secret is created in target namespace we need to let the chart know it needs to mount it and provide necessary options for the repository to access that keystore. To do so use the properties below: . --- configuration: repository: existingSecrets: - name: repository-keystores key: ENC_METADATA_STOREPASS - name: repository-keystores key: ENC_METADATA_KEYPASS environment: JAVA_OPTS: >- -Dencryption.keystore.type=PKCS12 -Dencryption.cipherAlgorithm=AES/CBC/PKCS5Padding -Dencryption.keyAlgorithm=AES -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore.p12 -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.algorithm=AES extraVolumes: - name: keystore secret: secretName: repository-keystores extraVolumeMounts: - name: keystore readOnly: true mountPath: /usr/local/tomcat/shared/classes/alfresco/extension/keystore . Note credentials are not passed directly using environment.JAVA_OPTS but secrets. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/keystores.html#the-metadata-keystore", "relUrl": "/charts/alfresco-repository/docs/keystores.html#the-metadata-keystore" - },"78": { + },"82": { "doc": "Custom keystores", "title": "Other keystore", "content": "The same approach would work to deploy any keystore. Below example describes how to deploy a custom keystore (here for imaps configuration) together with the required option so the repository can use it. First let’s create a keysotre with a self-signed cert & store it in a p12 file. openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name localhost keytool -importkeystore \\ -deststorepass secret -destkeypass secret -destkeystore keystore.p12 -deststoretype PKCS12 \\ -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass secret \\ -alias localhost . Java prefers working with PKCS12 containers generated using keytool so that’s why we generate 2 p12 files . Then create a secret from this keystore file: . kubectl create secret generic repository-keystores \\ --from-file=keystore.p12 \\ . Now in order to make sure the repo can open the keystore we need to give the necessary credentials. We will pass credentials values as kubernetes secret keys’ values and their related java properties as their keys. For example in order to pass the property javax.net.ssl.keyStorePassword=secret we would create the secret as follow: . kubectl create secret generic kesystore-secret \\ --from-literal MYKEYSTORE_PASS=secret . credentials can be held in the same secret as the keystore itself. Now we need to reference these secrets and pass the non sensitive properties as environment.JAVA_OPTS when deploying the alfresco-repository chart: . extraVolumes: - name: keystore secret: secretName: repository-keystores extraVolumeMounts: - name: keystore readOnly: true mountPath: /usr/local/tomcat/shared/classes/alfresco/extension/keystore configuration: repository: existingSecrets: - name: kesystore-secret key: javax.net.ssl.keyStorePassword purpose: property:javax.net.ssl.keyStorePassword environment: JAVA_OPTS: >- -Djavax.net.ssl.keyStore=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore.p12 . This very same procdure can apply to other service which require a certification to enable traffic encryption. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/keystores.html#other-keystore", "relUrl": "/charts/alfresco-repository/docs/keystores.html#other-keystore" - },"79": { + },"83": { "doc": "Custom keystores", "title": "Custom keystores", "content": " ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/keystores.html", "relUrl": "/charts/alfresco-repository/docs/keystores.html" - },"80": { + },"84": { "doc": "Charts Reference", "title": "Charts Reference", "content": "This section groups all the reference documentation available for the charts we maintain. They are automatically generated via helm-docs. ", "url": "/alfresco-helm-charts/docs/reference.html", "relUrl": "/docs/reference.html" - },"81": { + },"85": { "doc": "Global properties", "title": "Configuring Alfresco repository", "content": "Alfresco repository can be configured using properties files. The most common one is alfresco-global.properties. Another option to pass configuration properties for the Alfresco repository is to use the CATALINA_OPTSenvironment variable. Using env vars to configure an application is very common in containerized environments. In some circumstances you might need/want to use subsystem configuration. This is mostly useful in case you need to instantiate several times the same subsystem, otherwise you should prefer properties or environment variables. Neither environment variables nor configmaps are really suitable to pass sensitive data. For that purpose secrets are recommended. Below we provide details on how to use each of these option and how (the subsystem approach is explained here. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/repository-properties.html#configuring-alfresco-repository", "relUrl": "/charts/alfresco-repository/docs/repository-properties.html#configuring-alfresco-repository" - },"82": { + },"86": { "doc": "Global properties", "title": "Repository configuration using alfresco-global.properties", "content": "Although the alfresco-repository chart do not generate the alfresco-globa.properties file, it can be passed as a pre-existing configmap making it easy for you to port your existing configuration to kubernetes environments. Such a pre-existing secret must be referenced using the value configuration.repository.existingConfigMap. configuration: repository: existingConfigMap: my-global-properties-cm . This configmap should be the mere representation of the file, for example: . apiVersion: v1 kind: ConfigMap metadata: name: my-global-properties-cm data: alfresco-global.properties: | deployment.method=HELM_CHART alfresco.host=myecm.domain.tld alfresco.port=443 alfresco.protocol=https . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/repository-properties.html#repository-configuration-using-alfresco-globalproperties", "relUrl": "/charts/alfresco-repository/docs/repository-properties.html#repository-configuration-using-alfresco-globalproperties" - },"83": { + },"87": { "doc": "Global properties", "title": "Repository configuration using environment variables", "content": "Using environment variable is quite similar to using a properties file. All one need to do in order to switch from one approach to the other is to prefix the property with the -D java uses to set system properties. Such properties are passed as shown below using the environment.CATALINA_OPTS value. environment: CATALINA_OPTS: >- -DalfrescoNtlm1:alfrescoNtlm,ldap1:ldap -Dsynchronization.externalUserControl=true -Dsynchronization.externalUserControlSubsystemName=ldap1 -Dldap.synchronization.userAccountStatusProperty=pwdAccountLockedTime -Dldap.synchronization.disabledAccountPropertyValue=000001010000Z . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/repository-properties.html#repository-configuration-using-environment-variables", "relUrl": "/charts/alfresco-repository/docs/repository-properties.html#repository-configuration-using-environment-variables" - },"84": { + },"88": { "doc": "Global properties", "title": "Sensitive data within the repository configuration", "content": "Sometimes the data required as a repository property is considered sensitive. In such case we recommend using the approach below. In the first place you will need a secret to hold the sensitive data you want to pass to the Alfresco repository. One can be created as follow: . kubectl create secret generic repo-secret \\ --from-literal \"REPO_ADMIN_PASSWORD=moreSecureThanAdmin\" . Now we will reference that secret in the list of configuration.repository.existingSecrets by specifying its name, the key which holds the sensitive data we need and specify the name of the property we want to assign that value to. Here the name of the secret is repo-scret, the key holding the sensitive value is REPO_ADMIN_PASSWORD and the property must be specified using purpose attribute and following the syntax “property:doted.notation.property” . configuration: repository: existingSecrets: - name: repo-secret key: REPO_ADMIN_PASSWORD purpose: property:alfresco_user_store.adminpassword . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/repository-properties.html#sensitive-data-within-the-repository-configuration", "relUrl": "/charts/alfresco-repository/docs/repository-properties.html#sensitive-data-within-the-repository-configuration" - },"85": { + },"89": { "doc": "Global properties", "title": "Global properties", "content": " ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/repository-properties.html", "relUrl": "/charts/alfresco-repository/docs/repository-properties.html" - },"86": { + },"90": { "doc": "Subsystems", "title": "Configuring Alfresco subsystems", "content": "This chart offers a rather simple mechanism to configure Alfresco Subsystems. Although subsystems are well known to most Alfresco administrators, in a kubernetes environment they should be used only when necessary (e.g. if in need to instantiate several instances of the same subsystem) . Subsystem configuration relies on providing a secret which contains all the configuration files for the subsystems. The secret needs to be added to the list of configuration.repository.existingSecrets: . configuration: repository: existingSecrets: - name: ldap1 purpose: subsystems:Authentication:ldap . For the above configuration to work there are some rules to follow: . | name must match both the secret name and the subsystem instance name (in case the subsystem name must be referenced somewhere else, e.g. in authentication.chain) | purpose must be of the form: subsystems:subsystemName:subsystemType | The secret must contain all necessary files to configure the subsystem. Usually a bean definition XML file and properties file. (see example below) | . Kubernetes secrets can not be bigger than 1MB. That means that this method will not work in case a subsystem contain 1MB of data or more. This should not be the case for most subsystems but is important t know in case of customizations . ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/subsystems.html#configuring-alfresco-subsystems", "relUrl": "/charts/alfresco-repository/docs/subsystems.html#configuring-alfresco-subsystems" - },"87": { + },"91": { "doc": "Subsystems", "title": "Examples: ContentStore configuration", "content": "Creating the subsystem’s secret: . Place all the configuration files in a folder on your local system. Sample files can be extracted from the S3 AMP file. For more details on the content of the files check out the Alfresco S3 connector docs. mkdir s3-config unzip -d s3-config ~/Downloads/alfresco-s3-connector-5.1.0.amp config/alfresco/subsystems/ContentStore/S3/ tree s3-config s3-config/ ├── s3-contentstore-context.xml └── s3-contentstore.properties ... By default subsystem Beans may include other XML files from upper level directories. This is not possible with as kubernetes secrets are projected down from a single directory (mount point). If your subsystem config does this kind of inclusion you’ll need to amend the Bean to not use import statement or import from the current directory. Create the secret using kubectl . kubectl create secret generic S3 --from-file=s3-config/ . Pass the following configuration.repository.existingSecrets together with the property to set the new contentstore subsystem as the default contentstore: . configuration: repository: existingSecrets: - name: repository-secrets key: license.lic purpose: acs-license - name: S3 purpose: subsystems:ContentStore:S3 environment: CATALINA_OPTS: >- -Dfilecontentstore.subsystem.name=S3 . As a list, configuration.repository/existingSecrets cannot be merged so you would need to re-define the license secret to have it deployed. ", "url": "/alfresco-helm-charts/charts/alfresco-repository/docs/subsystems.html#examples-contentstore-configuration", "relUrl": "/charts/alfresco-repository/docs/subsystems.html#examples-contentstore-configuration" - },"88": { + },"92": { "doc": "Subsystems", "title": "Subsystems", "content": " ", diff --git a/charts/activemq/README.html b/charts/activemq/README.html index 625c44f6..119d61ab 100644 --- a/charts/activemq/README.html +++ b/charts/activemq/README.html @@ -1 +1 @@ - activemq | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

activemq

Version: 3.5.3 AppVersion: 5.18.4

A Helm chart providing a basic Apache ActiveMQ deployment required to evaluate ACS (not meant to be used in production).

Source Code

Requirements

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

Values

Key Type Default Description
adminUser.existingSecretName string nil An existing kubernetes secret that contains BROKER_USERNAME and BROKER_PASSWORD keys to override the default user credentials
adminUser.password string "admin" Password for the default user with administrative privileges
adminUser.user string "admin" Username for the default user with administrative privileges
enabled bool true  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" Authenticate to image registry before pulling by providing an existing secret of type kubernetes.io/dockerconfigjson
image.pullPolicy string "IfNotPresent"  
image.repository string "alfresco/alfresco-activemq"  
image.tag string "5.18.4-jre17-rockylinux8"  
livenessProbe.failureThreshold int 6  
livenessProbe.initialDelaySeconds int 60  
livenessProbe.periodSeconds int 10  
livenessProbe.timeoutSeconds int 1  
nodeSelector object {}  
persistence.accessModes list ["ReadWriteOnce"] defines type of access required by the persistent volume [Access_Modes] (https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
persistence.baseSize string "20Gi"  
persistence.data.mountPath string "/opt/activemq/data"  
persistence.data.subPath string "alfresco-infrastructure/activemq-data"  
persistence.enabled bool true  
persistence.existingClaim string nil  
persistence.storageClass string nil  
podSecurityContext.fsGroup int 1000  
podSecurityContext.runAsGroup int 1000  
podSecurityContext.runAsUser int 33031  
readinessProbe.failureThreshold int 6  
readinessProbe.initialDelaySeconds int 5  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 1  
replicaCount int 1  
resources.limits.cpu string "2"  
resources.limits.memory string "2048Mi"  
resources.requests.cpu string "0.25"  
resources.requests.memory string "512Mi"  
service.name string "activemq"  
services.broker.ports.external.amqp int 5672  
services.broker.ports.external.openwire int 61616  
services.broker.ports.external.stomp int 61613  
services.broker.ports.internal.amqp int 5672  
services.broker.ports.internal.openwire int 61616  
services.broker.ports.internal.stomp int 61613  
services.broker.type string "ClusterIP"  
services.webConsole.ports.external.webConsole int 8161  
services.webConsole.ports.internal.webConsole int 8161  
services.webConsole.type string "NodePort"  

+ activemq | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

activemq

Version: 3.5.3 AppVersion: 5.18.4

A Helm chart providing a basic Apache ActiveMQ deployment required to evaluate ACS (not meant to be used in production).

Source Code

Requirements

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

Values

Key Type Default Description
adminUser.existingSecretName string nil An existing kubernetes secret that contains BROKER_USERNAME and BROKER_PASSWORD keys to override the default user credentials
adminUser.password string "admin" Password for the default user with administrative privileges
adminUser.user string "admin" Username for the default user with administrative privileges
enabled bool true  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" Authenticate to image registry before pulling by providing an existing secret of type kubernetes.io/dockerconfigjson
image.pullPolicy string "IfNotPresent"  
image.repository string "alfresco/alfresco-activemq"  
image.tag string "5.18.4-jre17-rockylinux8"  
livenessProbe.failureThreshold int 6  
livenessProbe.initialDelaySeconds int 60  
livenessProbe.periodSeconds int 10  
livenessProbe.timeoutSeconds int 1  
nodeSelector object {}  
persistence.accessModes list ["ReadWriteOnce"] defines type of access required by the persistent volume [Access_Modes] (https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
persistence.baseSize string "20Gi"  
persistence.data.mountPath string "/opt/activemq/data"  
persistence.data.subPath string "alfresco-infrastructure/activemq-data"  
persistence.enabled bool true  
persistence.existingClaim string nil  
persistence.storageClass string nil  
podSecurityContext.fsGroup int 1000  
podSecurityContext.runAsGroup int 1000  
podSecurityContext.runAsUser int 33031  
readinessProbe.failureThreshold int 6  
readinessProbe.initialDelaySeconds int 5  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 1  
replicaCount int 1  
resources.limits.cpu string "2"  
resources.limits.memory string "2048Mi"  
resources.requests.cpu string "0.25"  
resources.requests.memory string "512Mi"  
service.name string "activemq"  
services.broker.ports.external.amqp int 5672  
services.broker.ports.external.openwire int 61616  
services.broker.ports.external.stomp int 61613  
services.broker.ports.internal.amqp int 5672  
services.broker.ports.internal.openwire int 61616  
services.broker.ports.internal.stomp int 61613  
services.broker.type string "ClusterIP"  
services.webConsole.ports.external.webConsole int 8161  
services.webConsole.ports.internal.webConsole int 8161  
services.webConsole.type string "NodePort"  

diff --git a/charts/alfresco-activiti-admin/README.html b/charts/alfresco-activiti-admin/README.html index ca1e469b..9526ff7f 100644 --- a/charts/alfresco-activiti-admin/README.html +++ b/charts/alfresco-activiti-admin/README.html @@ -1 +1 @@ - alfresco-activiti-admin | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-activiti-admin

Version: 0.1.1 AppVersion: 24.2.0

A Helm chart for Alfresco Activiti

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.8.5

Values

Key Type Default Description
affinity object {}  
database.driver string nil JDBC driver Class
database.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver Class for admin app
database.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database for admin app
database.existingConfigMap.name string nil  
database.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password for admin app
database.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username for admin app
database.existingSecret.name string nil Name of a pre-existing secret containing database credentials for admin app
database.password string nil JDBC password to use to connect to the DB for admin app
database.url string nil JDBC url to connect to the external DB for admin app
database.username string nil JDBC username to use to connect to the DB for admin app
envFromExistingConfigMap string nil Name of a pre-existing configmap to load env vars from (overrides .environment values)
environment.ACTIVITI_ADMIN_REST_APP_HOST string "http://localhost" activiti-app address
environment.ACTIVITI_ADMIN_REST_APP_PASSWORD string "admin" activiti-app password
environment.ACTIVITI_ADMIN_REST_APP_PORT string "80" activiti-app port
environment.ACTIVITI_ADMIN_REST_APP_USERNAME string "admin@app.activiti.com" activiti-app username
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 8080  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-process-services-admin"  
image.tag string "24.2.0"  
ingress.annotations.”nginx.ingress.kubernetes.io/affinity” string "cookie"  
ingress.annotations.”nginx.ingress.kubernetes.io/proxy-body-size” string "5g"  
ingress.className string "nginx" supported ingress class
ingress.enabled bool true Toggle ingress for APS admin
ingress.hosts[0].paths[0].path string "/activiti-admin"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.tls list []  
livenessProbe.failureThreshold int 5  
livenessProbe.initialDelaySeconds int 25  
livenessProbe.path string "/activiti-admin/"  
livenessProbe.periodSeconds int 10  
livenessProbe.timeoutSeconds int 5  
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsUser int 33007  
readinessProbe.failureThreshold int 5  
readinessProbe.initialDelaySeconds int 25  
readinessProbe.path string "/activiti-admin/"  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 5  
resources.limits.cpu string "1000m"  
resources.limits.memory string "2Gi"  
resources.requests.cpu string "250m"  
resources.requests.memory string "512Mi"  
service.externalPort int 80  
service.name string "activiti-admin"  
service.type string "ClusterIP"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
tolerations list []  
volumeMounts list []  
volumes list []  
workaround.ACTIVITI-5113 bool false Enable workaround for ACTIVITI-5113 required for versions before 24.2.0

+ alfresco-activiti-admin | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-activiti-admin

Version: 0.1.1 AppVersion: 24.2.0

A Helm chart for Alfresco Activiti

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.8.5

Values

Key Type Default Description
affinity object {}  
database.driver string nil JDBC driver Class
database.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver Class for admin app
database.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database for admin app
database.existingConfigMap.name string nil  
database.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password for admin app
database.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username for admin app
database.existingSecret.name string nil Name of a pre-existing secret containing database credentials for admin app
database.password string nil JDBC password to use to connect to the DB for admin app
database.url string nil JDBC url to connect to the external DB for admin app
database.username string nil JDBC username to use to connect to the DB for admin app
envFromExistingConfigMap string nil Name of a pre-existing configmap to load env vars from (overrides .environment values)
environment.ACTIVITI_ADMIN_REST_APP_HOST string "http://localhost" activiti-app address
environment.ACTIVITI_ADMIN_REST_APP_PASSWORD string "admin" activiti-app password
environment.ACTIVITI_ADMIN_REST_APP_PORT string "80" activiti-app port
environment.ACTIVITI_ADMIN_REST_APP_USERNAME string "admin@app.activiti.com" activiti-app username
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 8080  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-process-services-admin"  
image.tag string "24.2.0"  
ingress.annotations.”nginx.ingress.kubernetes.io/affinity” string "cookie"  
ingress.annotations.”nginx.ingress.kubernetes.io/proxy-body-size” string "5g"  
ingress.className string "nginx" supported ingress class
ingress.enabled bool true Toggle ingress for APS admin
ingress.hosts[0].paths[0].path string "/activiti-admin"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.tls list []  
livenessProbe.failureThreshold int 5  
livenessProbe.initialDelaySeconds int 25  
livenessProbe.path string "/activiti-admin/"  
livenessProbe.periodSeconds int 10  
livenessProbe.timeoutSeconds int 5  
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsUser int 33007  
readinessProbe.failureThreshold int 5  
readinessProbe.initialDelaySeconds int 25  
readinessProbe.path string "/activiti-admin/"  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 5  
resources.limits.cpu string "1000m"  
resources.limits.memory string "2Gi"  
resources.requests.cpu string "250m"  
resources.requests.memory string "512Mi"  
service.externalPort int 80  
service.name string "activiti-admin"  
service.type string "ClusterIP"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
tolerations list []  
volumeMounts list []  
volumes list []  
workaround.ACTIVITI-5113 bool false Enable workaround for ACTIVITI-5113 required for versions before 24.2.0

diff --git a/charts/alfresco-activiti/README.html b/charts/alfresco-activiti/README.html index 38c9c421..84b55f0e 100644 --- a/charts/alfresco-activiti/README.html +++ b/charts/alfresco-activiti/README.html @@ -1 +1 @@ - alfresco-activiti | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-activiti

Version: 0.1.1 AppVersion: 24.2.0

A Helm chart for Alfresco Activiti

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.8.5

Values

Key Type Default Description
affinity object {}  
database.driver string nil JDBC driver Class
database.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver Class for aps app
database.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database for aps app
database.existingConfigMap.name string nil  
database.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password for aps app
database.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username for aps app
database.existingSecret.name string nil Name of a pre-existing secret containing database credentials for aps app
database.password string nil JDBC password to use to connect to the DB for aps app
database.url string nil JDBC url to connect to the external DB for aps app
database.username string nil JDBC username to use to connect to the DB for aps app
envFromExistingConfigMap string nil Name of a pre-existing configmap to load env vars from (overrides .environment values)
environment.ACTIVITI_CORS_ALLOWED_HEADERS string "Authorization,Content-Type,Cache-Control,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,X-CSRF-Token" Cross Origin Resource Sharing configuration allowed http headers
environment.ACTIVITI_CORS_ALLOWED_METHODS string "GET,POST,HEAD,OPTIONS,PUT,DELETE" Cross Origin Resource Sharing configuration allowed http methods
environment.ACTIVITI_CORS_ALLOWED_ORIGIN_PATTERNS string "*" Cross Origin Resource Sharing configuration allowed origins (list of glob-like patterns)
environment.ACTIVITI_CORS_ENABLED string "true" Cross Origin Resource Sharing configuration toggle
environment.ACTIVITI_CSRF_DISABLED string "true" Cross Site Resource Forgery configuration toggle
environment.IDENTITY_CREDENTIALS_SECRET string "" Alfresco Identity Service application secret
environment.IDENTITY_SERVICE_ALWAYS_REFRESH_TOKEN string "true" Alfresco Identity Service refresh service token
environment.IDENTITY_SERVICE_AUTH string "http://localhost:8080/auth" Alfresco Identity Service address
environment.IDENTITY_SERVICE_AUTODETECT_BEARER_ONLY string "true" Alfresco Identity Service Bearer only toggle
environment.IDENTITY_SERVICE_ENABLED string "false" Alfresco Identity Service configuration toggle
environment.IDENTITY_SERVICE_ENABLE_BASIC_AUTH string "true" Alfresco Identity Service allow basic authentication (should only be used over SSL)
environment.IDENTITY_SERVICE_PRINCIPAL_ATTRIBUTE string "email" Alfresco Identity Service Attribute to map to user login
environment.IDENTITY_SERVICE_PUBLIC_CLIENT string "true" Alfresco Identity Service public client toggle
environment.IDENTITY_SERVICE_REALM string "alfresco" Alfresco Identity Service Realm
environment.IDENTITY_SERVICE_RESOURCE string "alfresco" Alfresco Identity Service resource name to use
environment.IDENTITY_SERVICE_SSL_REQUIRED string "none" Alfresco Identity Service force using SSL
environment.IDENTITY_SERVICE_TOKEN_STORE string "session" Alfresco Identity Service token storage configuration
environment.IDENTITY_SERVICE_USE_BROWSER_BASED_LOGOUT string "true" Alfresco Identity Service browser initiated logout toggle
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 8080  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-process-services"  
image.tag string "24.2.0"  
ingress.annotations.”nginx.ingress.kubernetes.io/affinity” string "cookie"  
ingress.annotations.”nginx.ingress.kubernetes.io/proxy-body-size” string "5g"  
ingress.className string "nginx" supported ingress class
ingress.enabled bool true Toggle ingress for APS application
ingress.hosts[0].paths[0].path string "/activiti-app"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.tls list []  
license.secretName string nil  
livenessProbe.failureThreshold int 5  
livenessProbe.initialDelaySeconds int 25  
livenessProbe.path string "/activiti-app/app/rest/locale"  
livenessProbe.periodSeconds int 10  
livenessProbe.timeoutSeconds int 5  
nodeSelector object {}  
persistence.accessModes[0] string "ReadWriteOnce"  
persistence.baseSize string "20Gi" Initial default size of dynamically provisioned storage
persistence.data object {"mountPath":"/usr/local/data","subPath":"alfresco-process-services/process-data"} Where to mount data into the container
persistence.enabled bool false Persist Alfresco Process data
persistence.existingClaim string nil Define if you want to reuse an already existing PVC
persistence.storageClass string nil Define if you already have a custom storage class defined for dynamically provisioned storage
podAnnotations object {}  
podLabels object {}  
podSecurityContext.fsGroup int 33007  
podSecurityContext.runAsGroup int 33007  
podSecurityContext.runAsUser int 33007  
readinessProbe.failureThreshold int 5  
readinessProbe.initialDelaySeconds int 25  
readinessProbe.path string "/activiti-app/app/rest/locale"  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 5  
replicaCount int 1  
resources.limits.cpu string "4000m"  
resources.limits.memory string "8Gi"  
resources.requests.cpu string "500m"  
resources.requests.memory string "1Gi"  
service.externalPort int 80  
service.name string "aps"  
service.type string "ClusterIP"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
tolerations list []  
volumeMounts list []  
volumes list []  
workaround.ACTIVITI-5113 bool false  

+ alfresco-activiti | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-activiti

Version: 0.1.1 AppVersion: 24.2.0

A Helm chart for Alfresco Activiti

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.8.5

Values

Key Type Default Description
affinity object {}  
database.driver string nil JDBC driver Class
database.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver Class for aps app
database.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database for aps app
database.existingConfigMap.name string nil  
database.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password for aps app
database.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username for aps app
database.existingSecret.name string nil Name of a pre-existing secret containing database credentials for aps app
database.password string nil JDBC password to use to connect to the DB for aps app
database.url string nil JDBC url to connect to the external DB for aps app
database.username string nil JDBC username to use to connect to the DB for aps app
envFromExistingConfigMap string nil Name of a pre-existing configmap to load env vars from (overrides .environment values)
environment.ACTIVITI_CORS_ALLOWED_HEADERS string "Authorization,Content-Type,Cache-Control,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,X-CSRF-Token" Cross Origin Resource Sharing configuration allowed http headers
environment.ACTIVITI_CORS_ALLOWED_METHODS string "GET,POST,HEAD,OPTIONS,PUT,DELETE" Cross Origin Resource Sharing configuration allowed http methods
environment.ACTIVITI_CORS_ALLOWED_ORIGIN_PATTERNS string "*" Cross Origin Resource Sharing configuration allowed origins (list of glob-like patterns)
environment.ACTIVITI_CORS_ENABLED string "true" Cross Origin Resource Sharing configuration toggle
environment.ACTIVITI_CSRF_DISABLED string "true" Cross Site Resource Forgery configuration toggle
environment.IDENTITY_CREDENTIALS_SECRET string "" Alfresco Identity Service application secret
environment.IDENTITY_SERVICE_ALWAYS_REFRESH_TOKEN string "true" Alfresco Identity Service refresh service token
environment.IDENTITY_SERVICE_AUTH string "http://localhost:8080/auth" Alfresco Identity Service address
environment.IDENTITY_SERVICE_AUTODETECT_BEARER_ONLY string "true" Alfresco Identity Service Bearer only toggle
environment.IDENTITY_SERVICE_ENABLED string "false" Alfresco Identity Service configuration toggle
environment.IDENTITY_SERVICE_ENABLE_BASIC_AUTH string "true" Alfresco Identity Service allow basic authentication (should only be used over SSL)
environment.IDENTITY_SERVICE_PRINCIPAL_ATTRIBUTE string "email" Alfresco Identity Service Attribute to map to user login
environment.IDENTITY_SERVICE_PUBLIC_CLIENT string "true" Alfresco Identity Service public client toggle
environment.IDENTITY_SERVICE_REALM string "alfresco" Alfresco Identity Service Realm
environment.IDENTITY_SERVICE_RESOURCE string "alfresco" Alfresco Identity Service resource name to use
environment.IDENTITY_SERVICE_SSL_REQUIRED string "none" Alfresco Identity Service force using SSL
environment.IDENTITY_SERVICE_TOKEN_STORE string "session" Alfresco Identity Service token storage configuration
environment.IDENTITY_SERVICE_USE_BROWSER_BASED_LOGOUT string "true" Alfresco Identity Service browser initiated logout toggle
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 8080  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-process-services"  
image.tag string "24.2.0"  
ingress.annotations.”nginx.ingress.kubernetes.io/affinity” string "cookie"  
ingress.annotations.”nginx.ingress.kubernetes.io/proxy-body-size” string "5g"  
ingress.className string "nginx" supported ingress class
ingress.enabled bool true Toggle ingress for APS application
ingress.hosts[0].paths[0].path string "/activiti-app"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.tls list []  
license.secretName string nil  
livenessProbe.failureThreshold int 5  
livenessProbe.initialDelaySeconds int 25  
livenessProbe.path string "/activiti-app/app/rest/locale"  
livenessProbe.periodSeconds int 10  
livenessProbe.timeoutSeconds int 5  
nodeSelector object {}  
persistence.accessModes[0] string "ReadWriteOnce"  
persistence.baseSize string "20Gi" Initial default size of dynamically provisioned storage
persistence.data object {"mountPath":"/usr/local/data","subPath":"alfresco-process-services/process-data"} Where to mount data into the container
persistence.enabled bool false Persist Alfresco Process data
persistence.existingClaim string nil Define if you want to reuse an already existing PVC
persistence.storageClass string nil Define if you already have a custom storage class defined for dynamically provisioned storage
podAnnotations object {}  
podLabels object {}  
podSecurityContext.fsGroup int 33007  
podSecurityContext.runAsGroup int 33007  
podSecurityContext.runAsUser int 33007  
readinessProbe.failureThreshold int 5  
readinessProbe.initialDelaySeconds int 25  
readinessProbe.path string "/activiti-app/app/rest/locale"  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 5  
replicaCount int 1  
resources.limits.cpu string "4000m"  
resources.limits.memory string "8Gi"  
resources.requests.cpu string "500m"  
resources.requests.memory string "1Gi"  
service.externalPort int 80  
service.name string "aps"  
service.type string "ClusterIP"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
tolerations list []  
volumeMounts list []  
volumes list []  
workaround.ACTIVITI-5113 bool false  

diff --git a/charts/alfresco-activiti/docs/databases-configuration.html b/charts/alfresco-activiti/docs/databases-configuration.html index 8aeb1815..45b73d89 100644 --- a/charts/alfresco-activiti/docs/databases-configuration.html +++ b/charts/alfresco-activiti/docs/databases-configuration.html @@ -1,4 +1,4 @@ - Database configuration | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Alfresco Process Service database configuration

Alfresco Process Service uses a relational database to store data.

It is not possible to use the same database for both applications. Though, both databases can be hosted on the same database server.

Configuring the APS database

This charts uses generic configuration means reused in all our charts. You should start reading the getting-started guide.

Using values

The most straightforward way to configure the APS database is to use the Helm values file. The following example shows how to configure the APS database:

database:
+            Database configuration | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Alfresco Process Service database configuration

Alfresco Process Service uses a relational database to store data.

It is not possible to use the same database for both applications. Though, both databases can be hosted on the same database server.

Configuring the APS database

This charts uses generic configuration means reused in all our charts. You should start reading the getting-started guide.

Using values

The most straightforward way to configure the APS database is to use the Helm values file. The following example shows how to configure the APS database:

database:
   url: jdbc:postgresql://postgresql:5432/activiti
   username: alfresco
   password: alfresco
diff --git a/charts/alfresco-activiti/docs/elasticsearch-configuration.html b/charts/alfresco-activiti/docs/elasticsearch-configuration.html
index 4a8dc3cb..b6969ef4 100644
--- a/charts/alfresco-activiti/docs/elasticsearch-configuration.html
+++ b/charts/alfresco-activiti/docs/elasticsearch-configuration.html
@@ -1,4 +1,4 @@
-            Index configuration | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Alfresco Process Services search index configuration

Alfresco Process Services can use an Elasticsearch index. This document provides information on how to configure the search index in Alfresco Process Services.

Elasticsearch configuration

It is quite common to tie Alfresco Process Services to an Elasticsearch index which lives outside of the Kubernetes cluster. For example your index might be provided by a managed Elasticsearch service such as AWS OpenSearch.

APS for now only support ElasticSearch 7.x

In order to connect to an external Elasticsearch index, you need to configure the following properties in the values.yaml file:

environment:
+            Index configuration | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Alfresco Process Services search index configuration

Alfresco Process Services can use an Elasticsearch index. This document provides information on how to configure the search index in Alfresco Process Services.

Elasticsearch configuration

It is quite common to tie Alfresco Process Services to an Elasticsearch index which lives outside of the Kubernetes cluster. For example your index might be provided by a managed Elasticsearch service such as AWS OpenSearch.

APS for now only support ElasticSearch 7.x

In order to connect to an external Elasticsearch index, you need to configure the following properties in the values.yaml file:

environment:
   ACTIVITI_ES_REST_CLIENT_ADDRESS: vpc-id.region.es.amazonaws.com
   ACTIVITI_ES_REST_CLIENT_PORT: 443
   ACTIVITI_ES_REST_CLIENT_SCHEMA: https
diff --git a/charts/alfresco-adf-app/README.html b/charts/alfresco-adf-app/README.html
index 7d91bfd9..0455d949 100644
--- a/charts/alfresco-adf-app/README.html
+++ b/charts/alfresco-adf-app/README.html
@@ -1 +1 @@
-            alfresco-adf-app | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

alfresco-adf-app

Version: 0.1.0 Type: application

A generic Alfresco Development Framework Helm chart for Kubernetes

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

Key Type Default Description
affinity object {}  
env object {}  
fullnameOverride string ""  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" 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
image.pullPolicy string "IfNotPresent"  
image.repository string ""  
image.tag string ""  
imagePullSecrets list []  
ingress.annotations object {}  
ingress.className string "nginx"  
ingress.enabled bool true  
ingress.hosts[0].host string "chart-example.local"  
ingress.hosts[0].paths[0].path string "/"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.tls list []  
nameOverride string ""  
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 101 Retrocompat with Activiti Common chart
replicaCount int 1  
resources.limits.cpu string "100m"  
resources.limits.memory string "128Mi"  
resources.requests.cpu string "100m"  
resources.requests.memory string "128Mi"  
securityContext object {}  
service.port int 80  
service.targetPort int 8080  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.automount bool true Automatically mount a ServiceAccount’s API credentials?
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
tolerations list []  
volumeMounts list [] Additional volumeMounts on the output Deployment definition
volumes list [] Additional volumes on the output Deployment definition

+ alfresco-adf-app | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-adf-app

Version: 0.1.0 Type: application

A generic Alfresco Development Framework Helm chart for Kubernetes

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

Key Type Default Description
affinity object {}  
env object {}  
fullnameOverride string ""  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" 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
image.pullPolicy string "IfNotPresent"  
image.repository string ""  
image.tag string ""  
imagePullSecrets list []  
ingress.annotations object {}  
ingress.className string "nginx"  
ingress.enabled bool true  
ingress.hosts[0].host string "chart-example.local"  
ingress.hosts[0].paths[0].path string "/"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.tls list []  
nameOverride string ""  
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 101 Retrocompat with Activiti Common chart
replicaCount int 1  
resources.limits.cpu string "100m"  
resources.limits.memory string "128Mi"  
resources.requests.cpu string "100m"  
resources.requests.memory string "128Mi"  
securityContext object {}  
service.port int 80  
service.targetPort int 8080  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.automount bool true Automatically mount a ServiceAccount’s API credentials?
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
tolerations list []  
volumeMounts list [] Additional volumeMounts on the output Deployment definition
volumes list [] Additional volumes on the output Deployment definition

diff --git a/charts/alfresco-ai-transformer/README.html b/charts/alfresco-ai-transformer/README.html index 3b79e55e..15dce3ef 100644 --- a/charts/alfresco-ai-transformer/README.html +++ b/charts/alfresco-ai-transformer/README.html @@ -1 +1 @@ - alfresco-ai-transformer | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-ai-transformer

Version: 1.2.3 Type: application AppVersion: 3.1.3

A Helm chart for deploying Alfresco ai transformer service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.3

Values

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"  
aws.existingConfigMap.keys.region string "AWS_REGION"  
aws.existingConfigMap.keys.s3Bucket string "AWS_S3_BUCKET"  
aws.existingConfigMap.name string nil  
aws.existingSecret.keys.accessKeyId string "AWS_ACCESS_KEY_ID"  
aws.existingSecret.keys.secretAccessKey string "AWS_SECRET_ACCESS_KEY"  
aws.existingSecret.name string nil  
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"  
image.repository string "quay.io/alfresco/alfresco-ai-docker-engine"  
image.tag string "3.1.3"  
livenessProbe.initialDelaySeconds int 10  
livenessProbe.livenessPercent int 400  
livenessProbe.livenessTransformPeriodSeconds int 600  
livenessProbe.maxTransformSeconds int 1800  
livenessProbe.maxTransforms int 10000  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
messageBroker.existingConfigMap object {"keys":{"url":"BROKER_URL"},"name":null} Alternatively, provide credentials via an existing secret and set the keys as they are given
messageBroker.existingSecret.keys.password string "BROKER_PASSWORD"  
messageBroker.existingSecret.keys.username string "BROKER_USERNAME"  
messageBroker.existingSecret.name string nil  
messageBroker.password string nil  
messageBroker.url string nil  
messageBroker.user string nil  
nodeSelector object {}  
podSecurityContext.runAsUser int 33015  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 60  
readinessProbe.timeoutSeconds int 10  
replicaCount int 2  
resources.limits.cpu string "2"  
resources.limits.memory string "1000Mi"  
resources.requests.cpu string "0.25"  
resources.requests.memory string "1000Mi"  
service.externalPort int 80  
service.name string "ai-transformer"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "ai-transformer-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
sfs.existingConfigMap.keys.url string "FILE_STORE_URL"  
sfs.existingConfigMap.name string nil  
sfs.url string nil Alfresco Transformation filestore (e.g. http://acs-alfresco-transform-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

+ alfresco-ai-transformer | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-ai-transformer

Version: 1.2.3 Type: application AppVersion: 3.1.3

A Helm chart for deploying Alfresco ai transformer service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.3

Values

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"  
aws.existingConfigMap.keys.region string "AWS_REGION"  
aws.existingConfigMap.keys.s3Bucket string "AWS_S3_BUCKET"  
aws.existingConfigMap.name string nil  
aws.existingSecret.keys.accessKeyId string "AWS_ACCESS_KEY_ID"  
aws.existingSecret.keys.secretAccessKey string "AWS_SECRET_ACCESS_KEY"  
aws.existingSecret.name string nil  
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"  
image.repository string "quay.io/alfresco/alfresco-ai-docker-engine"  
image.tag string "3.1.3"  
livenessProbe.initialDelaySeconds int 10  
livenessProbe.livenessPercent int 400  
livenessProbe.livenessTransformPeriodSeconds int 600  
livenessProbe.maxTransformSeconds int 1800  
livenessProbe.maxTransforms int 10000  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
messageBroker.existingConfigMap object {"keys":{"url":"BROKER_URL"},"name":null} Alternatively, provide credentials via an existing secret and set the keys as they are given
messageBroker.existingSecret.keys.password string "BROKER_PASSWORD"  
messageBroker.existingSecret.keys.username string "BROKER_USERNAME"  
messageBroker.existingSecret.name string nil  
messageBroker.password string nil  
messageBroker.url string nil  
messageBroker.user string nil  
nodeSelector object {}  
podSecurityContext.runAsUser int 33015  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 60  
readinessProbe.timeoutSeconds int 10  
replicaCount int 2  
resources.limits.cpu string "2"  
resources.limits.memory string "1000Mi"  
resources.requests.cpu string "0.25"  
resources.requests.memory string "1000Mi"  
service.externalPort int 80  
service.name string "ai-transformer"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "ai-transformer-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
sfs.existingConfigMap.keys.url string "FILE_STORE_URL"  
sfs.existingConfigMap.name string nil  
sfs.url string nil Alfresco Transformation filestore (e.g. http://acs-alfresco-transform-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

diff --git a/charts/alfresco-common/README.html b/charts/alfresco-common/README.html index 37218713..d530252d 100644 --- a/charts/alfresco-common/README.html +++ b/charts/alfresco-common/README.html @@ -1 +1 @@ - alfresco-common | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-common

Version: 3.1.3 Type: library

A helper subchart to avoid duplication in alfresco charts and set common external dependencies

Please refer to the documentation for information on the Helm charts and deployment instructions.

Requirements

Repository Name Version
oci://registry-1.docker.io/bitnamicharts common 1.x.x

+ alfresco-common | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-common

Version: 3.1.3 Type: library

A helper subchart to avoid duplication in alfresco charts and set common external dependencies

Please refer to the documentation for information on the Helm charts and deployment instructions.

Requirements

Repository Name Version
oci://registry-1.docker.io/bitnamicharts common 1.x.x

diff --git a/charts/alfresco-connector-ms365/README.html b/charts/alfresco-connector-ms365/README.html index fb28f298..d905dc10 100644 --- a/charts/alfresco-connector-ms365/README.html +++ b/charts/alfresco-connector-ms365/README.html @@ -1 +1 @@ - alfresco-connector-ms365 | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-connector-ms365

Version: 0.7.1 Type: application AppVersion: 2.0.1

A Helm chart for deploying Alfresco connector ms365 service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

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-connector-ms365.name\" . }}\n - key: app.kubernetes.io/instance\n operator: In\n values:\n - {{ .Release.Name }}\n topologyKey: failure-domain.beta.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app.kubernetes.io/name\n operator: In\n values:\n - {{ template \"alfresco-connector-ms365.name\" . }}\n - key: app.kubernetes.io/instance\n operator: In\n values:\n - {{ .Release.Name }}\n topologyKey: kubernetes.io/hostname" Pod affinity, passed thru tpl function
environment object {}  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 9095  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-ooi-service"  
image.tag string "2.0.1"  
ingress.extraAnnotations object {}  
ingress.path string "/ooi-service"  
ingress.tls list []  
livenessProbe.initialDelaySeconds int 10  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33006  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 60  
readinessProbe.timeoutSeconds int 10  
replicaCount int 2  
repository.existingConfigMap.keys.host string "REPO_HOST" name of the key in the configMap where to find the repository service host
repository.existingConfigMap.keys.port string "REPO_PORT" name of the key in the configMap where to find the repository service port
repository.existingConfigMap.name string nil a pre-existing configmap which provides expected configuration for ms365
repository.host string "acs-alfresco-cs-repository" ACS repository host
repository.port int 80 ACS repository port
resources.limits.cpu string "2"  
resources.limits.memory string "1000Mi"  
resources.requests.cpu string "0.25"  
resources.requests.memory string "1000Mi"  
service.externalPort int 80  
service.name string "ms365-service"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "ms365-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
tolerations list []  

+ alfresco-connector-ms365 | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-connector-ms365

Version: 0.7.1 Type: application AppVersion: 2.0.1

A Helm chart for deploying Alfresco connector ms365 service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

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-connector-ms365.name\" . }}\n - key: app.kubernetes.io/instance\n operator: In\n values:\n - {{ .Release.Name }}\n topologyKey: failure-domain.beta.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app.kubernetes.io/name\n operator: In\n values:\n - {{ template \"alfresco-connector-ms365.name\" . }}\n - key: app.kubernetes.io/instance\n operator: In\n values:\n - {{ .Release.Name }}\n topologyKey: kubernetes.io/hostname" Pod affinity, passed thru tpl function
environment object {}  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 9095  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-ooi-service"  
image.tag string "2.0.1"  
ingress.extraAnnotations object {}  
ingress.path string "/ooi-service"  
ingress.tls list []  
livenessProbe.initialDelaySeconds int 10  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33006  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 60  
readinessProbe.timeoutSeconds int 10  
replicaCount int 2  
repository.existingConfigMap.keys.host string "REPO_HOST" name of the key in the configMap where to find the repository service host
repository.existingConfigMap.keys.port string "REPO_PORT" name of the key in the configMap where to find the repository service port
repository.existingConfigMap.name string nil a pre-existing configmap which provides expected configuration for ms365
repository.host string "acs-alfresco-cs-repository" ACS repository host
repository.port int 80 ACS repository port
resources.limits.cpu string "2"  
resources.limits.memory string "1000Mi"  
resources.requests.cpu string "0.25"  
resources.requests.memory string "1000Mi"  
service.externalPort int 80  
service.name string "ms365-service"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "ms365-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
tolerations list []  

diff --git a/charts/alfresco-connector-msteams/README.html b/charts/alfresco-connector-msteams/README.html index 27642dae..3ea3377d 100644 --- a/charts/alfresco-connector-msteams/README.html +++ b/charts/alfresco-connector-msteams/README.html @@ -1 +1 @@ - alfresco-connector-msteams | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-connector-msteams

Version: 0.5.1 Type: application AppVersion: 2.0.1

A Helm chart for deploying Alfresco connector msteams service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

Key Type Default Description
alfresco.baseUrl string "change_me_alf_base_url"  
alfresco.digitalWorkspace.contextPath string "/workspace/"  
environment string nil  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 3978  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-ms-teams-service"  
image.tag string "2.0.1"  
ingress.extraAnnotations object {}  
ingress.path string "/ms-teams-service"  
ingress.tls list []  
livenessProbe.initialDelaySeconds int 10  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
microsoft.app.existingSecret.keys.id string "MICROSOFT_APP_ID"  
microsoft.app.existingSecret.keys.password string "MICROSOFT_APP_PASSWORD"  
microsoft.app.existingSecret.name string nil  
microsoft.app.id string nil  
microsoft.app.oauth.connectionName string "alfresco"  
microsoft.app.password string nil  
nodeSelector object {}  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33041  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 60  
readinessProbe.timeoutSeconds int 10  
replicaCount int 2  
repository.existingConfigMap.keys.url string "ALFRESCO_BASE_URL" Key within the configmap holding the full url to connect to the alfresco repository
repository.existingConfigMap.name string nil Alternatively, provide repository connection details via an existing configmap
repository.url string nil URL of the Alfresco repository
resources.limits.cpu string "1"  
resources.limits.memory string "1000Mi"  
resources.requests.cpu string "0.5"  
resources.requests.memory string "1000Mi"  
service.externalPort int 80  
service.name string "ms-teams-service"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "msteams-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
teams.chat.filenameEnabled bool true  
teams.chat.imageEnabled bool true  
teams.chat.metadataEnabled bool true  

+ alfresco-connector-msteams | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-connector-msteams

Version: 0.5.1 Type: application AppVersion: 2.0.1

A Helm chart for deploying Alfresco connector msteams service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

Key Type Default Description
alfresco.baseUrl string "change_me_alf_base_url"  
alfresco.digitalWorkspace.contextPath string "/workspace/"  
environment string nil  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
image.internalPort int 3978  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-ms-teams-service"  
image.tag string "2.0.1"  
ingress.extraAnnotations object {}  
ingress.path string "/ms-teams-service"  
ingress.tls list []  
livenessProbe.initialDelaySeconds int 10  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
microsoft.app.existingSecret.keys.id string "MICROSOFT_APP_ID"  
microsoft.app.existingSecret.keys.password string "MICROSOFT_APP_PASSWORD"  
microsoft.app.existingSecret.name string nil  
microsoft.app.id string nil  
microsoft.app.oauth.connectionName string "alfresco"  
microsoft.app.password string nil  
nodeSelector object {}  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33041  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 60  
readinessProbe.timeoutSeconds int 10  
replicaCount int 2  
repository.existingConfigMap.keys.url string "ALFRESCO_BASE_URL" Key within the configmap holding the full url to connect to the alfresco repository
repository.existingConfigMap.name string nil Alternatively, provide repository connection details via an existing configmap
repository.url string nil URL of the Alfresco repository
resources.limits.cpu string "1"  
resources.limits.memory string "1000Mi"  
resources.requests.cpu string "0.5"  
resources.requests.memory string "1000Mi"  
service.externalPort int 80  
service.name string "ms-teams-service"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "msteams-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
teams.chat.filenameEnabled bool true  
teams.chat.imageEnabled bool true  
teams.chat.metadataEnabled bool true  

diff --git a/charts/alfresco-repository/README.html b/charts/alfresco-repository/README.html index 7107f4a8..ad94b1e4 100644 --- a/charts/alfresco-repository/README.html +++ b/charts/alfresco-repository/README.html @@ -1 +1 @@ - alfresco-repository | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-repository

Version: 0.5.1 Type: application AppVersion: 23.2.1

Alfresco content repository Helm chart

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.5.6

Values

Key Type Default Description
affinity object {}  
args list []  
autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
autoscaling.enabled bool false Toggle repository autoscaling
autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicatset
autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicatset
command list []  
configuration.db.driver string nil JDBC driver class of the driver if none is provided the it is guessed from the URL provided
configuration.db.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver class to use. The configmap may leverage the alfresco-repository.db.cm named template to auto-generate it from the sole url parameter.
configuration.db.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database
configuration.db.existingConfigMap.name string nil  
configuration.db.existingSecret object {"keys":{"password":"DATABASE_PASSWORD","username":"DATABASE_USERNAME"},"name":null} Existing secret and their keys where to find the database username & password.
configuration.db.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password
configuration.db.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username
configuration.db.existingSecret.name string nil Name of a pre-existing secret containing database credentials
configuration.db.password string nil Password to authentication to the repository database
configuration.db.url string nil JDBC url of the database This is a mandatory parameter
configuration.db.username string nil Username to authentication to the repository database
configuration.hz.port int 5701 Hazelcast listener port Only change it if you use a custom image where the port has been changed from default
configuration.imap object see below Basic IMAP capabilities config (limited to enabling/disabling). In order to pass more IMAP properties and configure the subsystem more deeply, please use value environment.CATALINA_OPTS or configuration.repository.existingConfiMap and check the available properties for this subsystem
configuration.imap.enabled bool false Enable/Disable Alfresco repository IMAP capabilities
configuration.imap.port int 1143 port to use to listen for IMAP clients
configuration.imap.protocol string "imap" Protocol to use to talk to IMAP clients (imap or imaps)
configuration.imap.service.annotations string nil Use annations to get custom behavior of the loadbalancer exposing the service
configuration.messageBroker.existingConfigMap.keys.url string "BROKER_URL" Key within the configmap holding the message broker URL. It MUST be a failover URL as per the spec below: https://activemq.apache.org/failover-transport-reference.html
configuration.messageBroker.existingConfigMap.name string nil Name of a pre-existing configmap containing the message broker URL
configuration.messageBroker.existingSecret.keys.password string "BROKER_PASSWORD" Key within the secret holding the message broker password
configuration.messageBroker.existingSecret.keys.username string "BROKER_USERNAME" Key within the secret holding the message broker username
configuration.messageBroker.existingSecret.name string nil Name of a pre-existing secret containing message broker credentials
configuration.messageBroker.password string nil Password to authenticate to the message broker
configuration.messageBroker.url string nil Message Broker URL
configuration.messageBroker.username string nil Username to authenticate to the message broker
configuration.repository.existingConfigMap string nil a configmap containing the “alfresco-global.properties” key populated with actual Alfresco repository properties see details
configuration.repository.existingSecrets list [{"key":"license.lic","name":"repository-secrets","purpose":"acs-license"}] A list of secrets to make available to the repository as env vars. This list can contain special secrets marked with predefined purpose: acs-license to pass license as a secret or subsystems:: to configure an Alfresco subsystem. See Configuring Alfresco Subsystem for more details.
configuration.search.existingConfigMap.keys.flavor string "SEARCH_FLAVOR" configmap key where to find the search engine used
configuration.search.existingConfigMap.keys.host string "SEARCH_HOST" configmap key where to find the hostname part of the search URL. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter.
configuration.search.existingConfigMap.keys.port string "SEARCH_PORT" configmap key where to find the port part of the search URL. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter.
configuration.search.existingConfigMap.keys.securecomms string "SEARCH_SECURECOMMS" configmap key where to find the search communication security type. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter.
configuration.search.existingConfigMap.keys.solr_base_url string "SOLR_BASE_URL" configmap key where to find the root path to Solr. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter. Not applicable to Elasticsearch
configuration.search.existingConfigMap.keys.url string "SEARCH_URL" Key within the configmap holding the search service URL.
configuration.search.existingConfigMap.name string nil Optional configmap containing the search service URL
configuration.search.existingSecret.keys.password string "ELASTICSEARCH_PASSWORD" Key within the secret holding the search service password
configuration.search.existingSecret.keys.solr-secret string "SOLR_SECRET" Key within the secret holding the index shared secret
configuration.search.existingSecret.keys.username string "ELASTICSEARCH_USERNAME" Key within the secret holding the search service username
configuration.search.existingSecret.name string nil Optional secret containing search service credentials
configuration.search.flavor string "noindex" Can be either solr, elasticsearch or noindex
configuration.search.password string nil Password to authenticate to the search service
configuration.search.solr-secret string nil Solr inter process shared secret
configuration.search.url string nil URL where the search service can be found
configuration.search.username string nil Username to authenticate to the search service
configuration.smtp object see below Basic SMTP capabilities config (limited to enabling/disabling). In order to pass more SMTP properties and configure the subsystem more deeply, please use value environment.CATALINA_OPTS or configuration.repository.existingConfigMap and check the available properties for this subsystem
configuration.smtp.enabled bool false Enable/Disable Alfresco repository SMTP capabilities
configuration.smtp.port int 1025 port to use to listen for SMTP clients
configuration.smtp.service.annotations string nil Use annations to get custom behavior of the loadbalancer exposing the service
environment.CATALINA_OPTS string nil Java or Tomcat system properties. These properties must be provided as a single string following the pattern “-Dproperty=value -Dmoreprop=morevalue”. They override the content of the global properties file but you should prefer providing configuration.repository.existingConfigMap.
environment.JAVA_OPTS string "-XX:MaxRAMPercentage=80" Set JVM options
extraInitContainers list []  
extraSideContainers list []  
extraVolumeMounts list []  
extraVolumes list []  
fullnameOverride string ""  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" 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.known_urls string nil a fallback for .Values.known_urls that can be shared between charts
image.port int 8080  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-content-repository"  
image.tag string "23.2.1"  
imagePullSecrets list []  
ingress.annotations object {"nginx.ingress.kubernetes.io/affinity":"cookie","nginx.ingress.kubernetes.io/proxy-body-size":"5g","nginx.ingress.kubernetes.io/session-cookie-hash":"sha1","nginx.ingress.kubernetes.io/session-cookie-name":"alfrescoRepo"} provide annotations for nginx ingress (no toher ingress is supported at that point)
ingress.className string "nginx" supported ingress class
ingress.enabled bool true Toggle ingress
ingress.hosts[0].paths[0].path string "/"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.hosts[0].paths[1].path string "/api-explorer"  
ingress.hosts[0].paths[1].pathType string "Prefix"  
ingress.tls list []  
livenessProbe.httpGet.path string "/alfresco/api/-default-/public/alfresco/versions/1/probes/-live-"  
livenessProbe.httpGet.port string "http"  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 3  
nameOverride string ""  
nodeSelector object {}  
persistence.accessModes list ["ReadWriteMany"] Specify a storageClass for dynamic provisioning
persistence.baseSize string "20Gi"  
persistence.data.mountPath string "/usr/local/tomcat/alf_data"  
persistence.data.subPath string "alfresco-content-services/repository-data"  
persistence.enabled bool false Persist Contentsotre data
persistence.existingClaim string nil Use pre-provisioned pv through its claim (e.g. static provisioning)
persistence.storageClass string nil Bind PVC based on storageClass (e.g. dynamic provisioning)
podAnnotations object {}  
podSecurityContext.fsGroup int 1000  
podSecurityContext.runAsGroup int 1000  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33000  
readinessProbe.httpGet.path string "/alfresco/api/-default-/public/alfresco/versions/1/probes/-ready-"  
readinessProbe.httpGet.port string "http"  
readinessProbe.periodSeconds int 20  
readinessProbe.timeoutSeconds int 3  
replicaCount int 1  
resources.limits.cpu string "4"  
resources.limits.memory string "8Gi"  
resources.requests.cpu string "2"  
resources.requests.memory string "2Gi"  
securityContext object {}  
service.name string "repository"  
service.port int 80  
service.type string "ClusterIP"  
serviceAccount.annotations object {}  
serviceAccount.create bool true  
serviceAccount.name string "alfresco-repo-sa"  
startupProbe.failureThreshold int 9  
startupProbe.httpGet.path string "/alfresco/api/-default-/public/alfresco/versions/1/probes/-live-"  
startupProbe.httpGet.port string "http"  
startupProbe.periodSeconds int 20  
startupProbe.timeoutSeconds int 3  
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
strategy.type string "RollingUpdate"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
terminationGracePeriod int 60 How long to wait for tomcat to complete shutdown before killing it
tolerations list []  

+ alfresco-repository | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-repository

Version: 0.5.1 Type: application AppVersion: 23.2.1

Alfresco content repository Helm chart

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.5.6

Values

Key Type Default Description
affinity object {}  
args list []  
autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
autoscaling.enabled bool false Toggle repository autoscaling
autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicatset
autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicatset
command list []  
configuration.db.driver string nil JDBC driver class of the driver if none is provided the it is guessed from the URL provided
configuration.db.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver class to use. The configmap may leverage the alfresco-repository.db.cm named template to auto-generate it from the sole url parameter.
configuration.db.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database
configuration.db.existingConfigMap.name string nil  
configuration.db.existingSecret object {"keys":{"password":"DATABASE_PASSWORD","username":"DATABASE_USERNAME"},"name":null} Existing secret and their keys where to find the database username & password.
configuration.db.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password
configuration.db.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username
configuration.db.existingSecret.name string nil Name of a pre-existing secret containing database credentials
configuration.db.password string nil Password to authentication to the repository database
configuration.db.url string nil JDBC url of the database This is a mandatory parameter
configuration.db.username string nil Username to authentication to the repository database
configuration.hz.port int 5701 Hazelcast listener port Only change it if you use a custom image where the port has been changed from default
configuration.imap object see below Basic IMAP capabilities config (limited to enabling/disabling). In order to pass more IMAP properties and configure the subsystem more deeply, please use value environment.CATALINA_OPTS or configuration.repository.existingConfiMap and check the available properties for this subsystem
configuration.imap.enabled bool false Enable/Disable Alfresco repository IMAP capabilities
configuration.imap.port int 1143 port to use to listen for IMAP clients
configuration.imap.protocol string "imap" Protocol to use to talk to IMAP clients (imap or imaps)
configuration.imap.service.annotations string nil Use annations to get custom behavior of the loadbalancer exposing the service
configuration.messageBroker.existingConfigMap.keys.url string "BROKER_URL" Key within the configmap holding the message broker URL. It MUST be a failover URL as per the spec below: https://activemq.apache.org/failover-transport-reference.html
configuration.messageBroker.existingConfigMap.name string nil Name of a pre-existing configmap containing the message broker URL
configuration.messageBroker.existingSecret.keys.password string "BROKER_PASSWORD" Key within the secret holding the message broker password
configuration.messageBroker.existingSecret.keys.username string "BROKER_USERNAME" Key within the secret holding the message broker username
configuration.messageBroker.existingSecret.name string nil Name of a pre-existing secret containing message broker credentials
configuration.messageBroker.password string nil Password to authenticate to the message broker
configuration.messageBroker.url string nil Message Broker URL
configuration.messageBroker.username string nil Username to authenticate to the message broker
configuration.repository.existingConfigMap string nil a configmap containing the “alfresco-global.properties” key populated with actual Alfresco repository properties see details
configuration.repository.existingSecrets list [{"key":"license.lic","name":"repository-secrets","purpose":"acs-license"}] A list of secrets to make available to the repository as env vars. This list can contain special secrets marked with predefined purpose: acs-license to pass license as a secret or subsystems:: to configure an Alfresco subsystem. See Configuring Alfresco Subsystem for more details.
configuration.search.existingConfigMap.keys.flavor string "SEARCH_FLAVOR" configmap key where to find the search engine used
configuration.search.existingConfigMap.keys.host string "SEARCH_HOST" configmap key where to find the hostname part of the search URL. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter.
configuration.search.existingConfigMap.keys.port string "SEARCH_PORT" configmap key where to find the port part of the search URL. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter.
configuration.search.existingConfigMap.keys.securecomms string "SEARCH_SECURECOMMS" configmap key where to find the search communication security type. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter.
configuration.search.existingConfigMap.keys.solr_base_url string "SOLR_BASE_URL" configmap key where to find the root path to Solr. The configmap may leverage the alfresco-repository.solr.cm named template to auto-generate it from the sole url parameter. Not applicable to Elasticsearch
configuration.search.existingConfigMap.keys.url string "SEARCH_URL" Key within the configmap holding the search service URL.
configuration.search.existingConfigMap.name string nil Optional configmap containing the search service URL
configuration.search.existingSecret.keys.password string "ELASTICSEARCH_PASSWORD" Key within the secret holding the search service password
configuration.search.existingSecret.keys.solr-secret string "SOLR_SECRET" Key within the secret holding the index shared secret
configuration.search.existingSecret.keys.username string "ELASTICSEARCH_USERNAME" Key within the secret holding the search service username
configuration.search.existingSecret.name string nil Optional secret containing search service credentials
configuration.search.flavor string "noindex" Can be either solr, elasticsearch or noindex
configuration.search.password string nil Password to authenticate to the search service
configuration.search.solr-secret string nil Solr inter process shared secret
configuration.search.url string nil URL where the search service can be found
configuration.search.username string nil Username to authenticate to the search service
configuration.smtp object see below Basic SMTP capabilities config (limited to enabling/disabling). In order to pass more SMTP properties and configure the subsystem more deeply, please use value environment.CATALINA_OPTS or configuration.repository.existingConfigMap and check the available properties for this subsystem
configuration.smtp.enabled bool false Enable/Disable Alfresco repository SMTP capabilities
configuration.smtp.port int 1025 port to use to listen for SMTP clients
configuration.smtp.service.annotations string nil Use annations to get custom behavior of the loadbalancer exposing the service
environment.CATALINA_OPTS string nil Java or Tomcat system properties. These properties must be provided as a single string following the pattern “-Dproperty=value -Dmoreprop=morevalue”. They override the content of the global properties file but you should prefer providing configuration.repository.existingConfigMap.
environment.JAVA_OPTS string "-XX:MaxRAMPercentage=80" Set JVM options
extraInitContainers list []  
extraSideContainers list []  
extraVolumeMounts list []  
extraVolumes list []  
fullnameOverride string ""  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" 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.known_urls string nil a fallback for .Values.known_urls that can be shared between charts
image.port int 8080  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-content-repository"  
image.tag string "23.2.1"  
imagePullSecrets list []  
ingress.annotations object {"nginx.ingress.kubernetes.io/affinity":"cookie","nginx.ingress.kubernetes.io/proxy-body-size":"5g","nginx.ingress.kubernetes.io/session-cookie-hash":"sha1","nginx.ingress.kubernetes.io/session-cookie-name":"alfrescoRepo"} provide annotations for nginx ingress (no toher ingress is supported at that point)
ingress.className string "nginx" supported ingress class
ingress.enabled bool true Toggle ingress
ingress.hosts[0].paths[0].path string "/"  
ingress.hosts[0].paths[0].pathType string "Prefix"  
ingress.hosts[0].paths[1].path string "/api-explorer"  
ingress.hosts[0].paths[1].pathType string "Prefix"  
ingress.tls list []  
livenessProbe.httpGet.path string "/alfresco/api/-default-/public/alfresco/versions/1/probes/-live-"  
livenessProbe.httpGet.port string "http"  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 3  
nameOverride string ""  
nodeSelector object {}  
persistence.accessModes list ["ReadWriteMany"] Specify a storageClass for dynamic provisioning
persistence.baseSize string "20Gi"  
persistence.data.mountPath string "/usr/local/tomcat/alf_data"  
persistence.data.subPath string "alfresco-content-services/repository-data"  
persistence.enabled bool false Persist Contentsotre data
persistence.existingClaim string nil Use pre-provisioned pv through its claim (e.g. static provisioning)
persistence.storageClass string nil Bind PVC based on storageClass (e.g. dynamic provisioning)
podAnnotations object {}  
podSecurityContext.fsGroup int 1000  
podSecurityContext.runAsGroup int 1000  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33000  
readinessProbe.httpGet.path string "/alfresco/api/-default-/public/alfresco/versions/1/probes/-ready-"  
readinessProbe.httpGet.port string "http"  
readinessProbe.periodSeconds int 20  
readinessProbe.timeoutSeconds int 3  
replicaCount int 1  
resources.limits.cpu string "4"  
resources.limits.memory string "8Gi"  
resources.requests.cpu string "2"  
resources.requests.memory string "2Gi"  
securityContext object {}  
service.name string "repository"  
service.port int 80  
service.type string "ClusterIP"  
serviceAccount.annotations object {}  
serviceAccount.create bool true  
serviceAccount.name string "alfresco-repo-sa"  
startupProbe.failureThreshold int 9  
startupProbe.httpGet.path string "/alfresco/api/-default-/public/alfresco/versions/1/probes/-live-"  
startupProbe.httpGet.port string "http"  
startupProbe.periodSeconds int 20  
startupProbe.timeoutSeconds int 3  
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
strategy.type string "RollingUpdate"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
terminationGracePeriod int 60 How long to wait for tomcat to complete shutdown before killing it
tolerations list []  

diff --git a/charts/alfresco-repository/docs/autoscaling.html b/charts/alfresco-repository/docs/autoscaling.html index 459938fe..33be6d48 100644 --- a/charts/alfresco-repository/docs/autoscaling.html +++ b/charts/alfresco-repository/docs/autoscaling.html @@ -1,3 +1,3 @@ - Autoscaling | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Alfresco repository auto scaling

This document describes auto scaling principles implemented in this Helm chart.

This document do not explain how to setup Kubernetes worker nodes auto-scaling. That is a completely different topic which can be addressed in different ways and is up to the Kubernetes administrator.

Horizontal Pod Auto scaling

For general concepts about HPA please refer to official Kubernetes documentation.

Repository pods auto scaling is disabled by default. If you want to enable it you need to use the additional value:

autoscaling:
+            Autoscaling | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Alfresco repository auto scaling

This document describes auto scaling principles implemented in this Helm chart.

This document do not explain how to setup Kubernetes worker nodes auto-scaling. That is a completely different topic which can be addressed in different ways and is up to the Kubernetes administrator.

Horizontal Pod Auto scaling

For general concepts about HPA please refer to official Kubernetes documentation.

Repository pods auto scaling is disabled by default. If you want to enable it you need to use the additional value:

autoscaling:
   enabled: true
 

The default configuration implemented in this chart aims at being able to cope with peak load or spare resources on low level of utilization while also minimizing the number of scaling events because changing the cluster topology means additional computation.

Default behaviour:

Without any further configuration scaling would happen as follow:

  • Cluster would spin up new pods every minute if the current average pods’ load is above 75% CPU usage during 30 seconds.
  • Cluster would spin up no more than 2 pods or 50% more pods of the existing replicas (whichever is bigger) per minute.
  • There would never be more than 3 replicas in the Replicaset
  • There would never be less than 1 replicas in the Replicaset
  • Cluster would remove one pod at most if the CPU load get consistently below 75% for 5 minutes.
  • Cluster would kill pod only one after the other within a minute.

CPU utilization/load is calculated with regards to the CPU resource request setting (.resources.requests.cpu) which is now set to 1 CPU by default.

Customizing auto scaling

The values and behaviour exposed above are defaults we think are sensible to start with. Of course they will not fit every single deployment/installation of Alfresco on Kubernetes.

Below are ways to tweak the auto scaling behaviour for your own setup.

Settings the CPU resources correctly.

CPU Resources request is the basis of calculation for the cluster to trigger scaling events. It is then very important to make sure it is set appropriately before enabling auto scaling. Imagine you have a production Kubernetes cluster with large worker nodes (say 3 * 32 CPU nodes). Having CPU requests set to 2 would most likely make the cluster spin up new pods very quickly. Instead it would be better to ensure your repository pods have a sensible .resources.requests.cpu value set to say 8. Also you should note that the very same .resources.requests.cpu value is used by the Kubernetes scheduler, so setting it too high is not a good idea either. It should be set to a value which will allow pods to be scheduled on worker nodes alongside other pods.

default .resources.limits.cpu is set to 4 CPU so you will also want to increase this value to something like 12.

Just by setting a sensible .resources.requests.cpu the auto scaling behaviour would already make much more sense given the worker nodes’ size.

Configuring the auto scaling behaviour

The autoscaling.* values below can be fined tuned. There a few things to take into account when changing those as explained:

  • .minReplicas: This parameter is used to limit the lowest number of replicas
  • .maxReplicas: This parameter is used to limit the highest number of replicas the more member the Hazelcast cluster has, the more chatty the cluster is. Keeping the cluster below 6 to 8 nodes seems a good target.
  • .behavior.scaleUp.stabilizationWindowSeconds: This parameter is used to avoid flapping replicasets. A very short peak load is not worth a scale up. So you surely want to avoid scaling without making sure the load has increased consistently and scale up needs to happen. That parameter tells for how long the load should be over target before the HPA controller decides to increase the number of replicas. The shorter this value, the more likely you are to spin up pods for short peak workload, so the pod could even be ready after the load is actually back to normal. Setting this too low when CPU resources requests is set to 1 is counter productive as it’s pretty easy to make 1 CPU busy.
  • .behavior.scaleDown.stabilizationWindowSeconds: This parameter is used in the same manner as for scale up events. One notable difference though is that scaling down has an immediate effect on the way the application handles the workload while scaling up is more expensive as pods need to startup before it can actually start handling requests. For that reason we think one should always be more cautious when brining the number of replica down. You probably want to avoid taking pods down too quickly if your workload is not very consistent.
  • `.behavior.scaleUp.policies[]:
    • .periodSeconds: The faster an individual repo pod is to startup (Tomcat complete startup) the lower this parameter can be. 60s appeared a good value for startup times around 90s. The lower this parameter the faster new pods can be spun up and the faster peak load can be handled.
    • .type & value: For exact details on setting this part of the auto scaler policy check the kubernetes doc. Policies let you define the way you want to act upon scaling events. For scale up events, if you know your load peak are steep (but consistent) then you will want to scale the replicaset by more pods than if you load is growing more slowly.

diff --git a/charts/alfresco-repository/docs/email.html b/charts/alfresco-repository/docs/email.html index c81a53ab..9bcf3c73 100644 --- a/charts/alfresco-repository/docs/email.html +++ b/charts/alfresco-repository/docs/email.html @@ -1,4 +1,4 @@ - Email features | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Configuring email related features

Alfresco repository can interact with users through emails in different ways. Below we describe how to enable and configure the 3 main email features Alfresco offers:

  • Sending emails
  • Accepting incoming email
  • IMAP interface to the repository

Sending emails

To enable Alfresco to send emails, it needs to communicate with a mail relay that administrators must configure. This mail relay is considered an integral part of the required architecture, and administrators can configure it using standard Alfresco properties.

There are 2 ways to pass properties to the repository:

  • Using configuration.repository.existingConfigMap
  • Using environment.CATALINA_OPTS env var.

Using a configmap

Passing properties through a configmap is as simple as setting it in the alfresco-global.properties file. Start by creating a file called alfresco-global.properties as a regular properties file:

mail.host=mysmtp.infra.local
+            Email features | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Configuring email related features

Alfresco repository can interact with users through emails in different ways. Below we describe how to enable and configure the 3 main email features Alfresco offers:

  • Sending emails
  • Accepting incoming email
  • IMAP interface to the repository

Sending emails

To enable Alfresco to send emails, it needs to communicate with a mail relay that administrators must configure. This mail relay is considered an integral part of the required architecture, and administrators can configure it using standard Alfresco properties.

There are 2 ways to pass properties to the repository:

  • Using configuration.repository.existingConfigMap
  • Using environment.CATALINA_OPTS env var.

Using a configmap

Passing properties through a configmap is as simple as setting it in the alfresco-global.properties file. Start by creating a file called alfresco-global.properties as a regular properties file:

mail.host=mysmtp.infra.local
 mail.port=587
 mail.username=alfresco
 mail.from.default=alfresco@domain.tld
diff --git a/charts/alfresco-repository/docs/enterprise-license.html b/charts/alfresco-repository/docs/enterprise-license.html
index a64fc8c3..9f7741b2 100644
--- a/charts/alfresco-repository/docs/enterprise-license.html
+++ b/charts/alfresco-repository/docs/enterprise-license.html
@@ -1,4 +1,4 @@
-            Enterprise license | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Deploy Alfresco repository with enterprise license

Alfresco content repository Docker images come with an embedded license which last only 2 days. If you’ve built a custom image, it may have a one year license but in order to change it you would need to build a new image. You can also configure this chart so the license is instead read from a kubernetes secret so that, when it’s time to renew the license you only need to update that secret.

This configuration relies on 2 steps:

  • creating a secret to hold the license
  • configuring the chart to use that secret

Create a kubernetes secret to store the license

Make sure your license available is readable and you have appropriate kubernetes access in order to create a secret in the ACS namespace where you want to deploy the helm release.

ACS_NAMESPACE=acs
+            Enterprise license | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Deploy Alfresco repository with enterprise license

Alfresco content repository Docker images come with an embedded license which last only 2 days. If you’ve built a custom image, it may have a one year license but in order to change it you would need to build a new image. You can also configure this chart so the license is instead read from a kubernetes secret so that, when it’s time to renew the license you only need to update that secret.

This configuration relies on 2 steps:

  • creating a secret to hold the license
  • configuring the chart to use that secret

Create a kubernetes secret to store the license

Make sure your license available is readable and you have appropriate kubernetes access in order to create a secret in the ACS namespace where you want to deploy the helm release.

ACS_NAMESPACE=acs
 kubectl create secret generic mylicense \
   --namespace $ACS_NAMESPACE \
   --from-file ~/Downloads/Alfresco-ent72-foobar.lic
diff --git a/charts/alfresco-repository/docs/keystores.html b/charts/alfresco-repository/docs/keystores.html
index e1fedfe8..1a2c6793 100644
--- a/charts/alfresco-repository/docs/keystores.html
+++ b/charts/alfresco-repository/docs/keystores.html
@@ -1,4 +1,4 @@
-            Custom keystores | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Using custom keystore

Alfresco uses a set of keystores for different purposes. Among others thing keystores can be used for metadata encryption or traffic encryption.

The alfresco-content-repository image comes with a keystore which contains a single security key. That key is primarily used for metadata encryption and it required when the repository starts up. In production environment it is recommended to use a custom keystore rather than the one present in the image.

One may also need to have additional keystores deployed, for instance to allow using TLS encryption for a service the repository provides using an x509 certificate. We describe below how to do both.

The metadata keystore

This keystore is used for property encryption and needs to remain identical throughout the life of the repository. Losing this keystore or its passwords will result in a repository that cannot startup so it is absolutely crucial to to back them up in some safe place.

First create a local keystore. It is recommended to use p12 containers nowadays and leverage AES algorithm:

keytool -genseckey \
+            Custom keystores | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Using custom keystore

Alfresco uses a set of keystores for different purposes. Among others thing keystores can be used for metadata encryption or traffic encryption.

The alfresco-content-repository image comes with a keystore which contains a single security key. That key is primarily used for metadata encryption and it required when the repository starts up. In production environment it is recommended to use a custom keystore rather than the one present in the image.

One may also need to have additional keystores deployed, for instance to allow using TLS encryption for a service the repository provides using an x509 certificate. We describe below how to do both.

The metadata keystore

This keystore is used for property encryption and needs to remain identical throughout the life of the repository. Losing this keystore or its passwords will result in a repository that cannot startup so it is absolutely crucial to to back them up in some safe place.

First create a local keystore. It is recommended to use p12 containers nowadays and leverage AES algorithm:

keytool -genseckey \
   -keystore /path/to/keystore.p12
   -storetype PKCS12 \
   -storepass secret -keyalg AES \
diff --git a/charts/alfresco-repository/docs/repository-properties.html b/charts/alfresco-repository/docs/repository-properties.html
index 30c49068..e358fa55 100644
--- a/charts/alfresco-repository/docs/repository-properties.html
+++ b/charts/alfresco-repository/docs/repository-properties.html
@@ -1,4 +1,4 @@
-            Global properties | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Configuring Alfresco repository

Alfresco repository can be configured using properties files. The most common one is alfresco-global.properties.

Another option to pass configuration properties for the Alfresco repository is to use the CATALINA_OPTSenvironment variable. Using env vars to configure an application is very common in containerized environments.

In some circumstances you might need/want to use subsystem configuration. This is mostly useful in case you need to instantiate several times the same subsystem, otherwise you should prefer properties or environment variables.

Neither environment variables nor configmaps are really suitable to pass sensitive data. For that purpose secrets are recommended.

Below we provide details on how to use each of these option and how (the subsystem approach is explained here.

Repository configuration using alfresco-global.properties

Although the alfresco-repository chart do not generate the alfresco-globa.properties file, it can be passed as a pre-existing configmap making it easy for you to port your existing configuration to kubernetes environments. Such a pre-existing secret must be referenced using the value configuration.repository.existingConfigMap.

configuration:
+            Global properties | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Configuring Alfresco repository

Alfresco repository can be configured using properties files. The most common one is alfresco-global.properties.

Another option to pass configuration properties for the Alfresco repository is to use the CATALINA_OPTSenvironment variable. Using env vars to configure an application is very common in containerized environments.

In some circumstances you might need/want to use subsystem configuration. This is mostly useful in case you need to instantiate several times the same subsystem, otherwise you should prefer properties or environment variables.

Neither environment variables nor configmaps are really suitable to pass sensitive data. For that purpose secrets are recommended.

Below we provide details on how to use each of these option and how (the subsystem approach is explained here.

Repository configuration using alfresco-global.properties

Although the alfresco-repository chart do not generate the alfresco-globa.properties file, it can be passed as a pre-existing configmap making it easy for you to port your existing configuration to kubernetes environments. Such a pre-existing secret must be referenced using the value configuration.repository.existingConfigMap.

configuration:
   repository:
     existingConfigMap: my-global-properties-cm
 

This configmap should be the mere representation of the file, for example:

apiVersion: v1
diff --git a/charts/alfresco-repository/docs/subsystems.html b/charts/alfresco-repository/docs/subsystems.html
index 53b0a4ac..6fc3f618 100644
--- a/charts/alfresco-repository/docs/subsystems.html
+++ b/charts/alfresco-repository/docs/subsystems.html
@@ -1,4 +1,4 @@
-            Subsystems | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Configuring Alfresco subsystems

This chart offers a rather simple mechanism to configure Alfresco Subsystems. Although subsystems are well known to most Alfresco administrators, in a kubernetes environment they should be used only when necessary (e.g. if in need to instantiate several instances of the same subsystem)

Subsystem configuration relies on providing a secret which contains all the configuration files for the subsystems. The secret needs to be added to the list of configuration.repository.existingSecrets:

configuration:
+            Subsystems | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Configuring Alfresco subsystems

This chart offers a rather simple mechanism to configure Alfresco Subsystems. Although subsystems are well known to most Alfresco administrators, in a kubernetes environment they should be used only when necessary (e.g. if in need to instantiate several instances of the same subsystem)

Subsystem configuration relies on providing a secret which contains all the configuration files for the subsystems. The secret needs to be added to the list of configuration.repository.existingSecrets:

configuration:
   repository:
     existingSecrets:
       - name: ldap1
diff --git a/charts/alfresco-search-enterprise/README.html b/charts/alfresco-search-enterprise/README.html
index b7e81073..da65467c 100644
--- a/charts/alfresco-search-enterprise/README.html
+++ b/charts/alfresco-search-enterprise/README.html
@@ -1 +1 @@
-            alfresco-search-enterprise | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

alfresco-search-enterprise

Version: 3.2.6 Type: application AppVersion: 4.0.1

A Helm chart for deploying Alfresco Elasticsearch connector

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
https://helm.elastic.co elasticsearch 7.17.3

Values

Key Type Default Description
affinity object {}  
ats.existingConfigMap.keys.sfs_url string "SFS_URL" Key within the configmap holding the URL of the alfresco shared filestore
ats.existingConfigMap.keys.transform_url string "ATS_URL" Key within the configmap holding the URL of the alfresco transform
ats.existingConfigMap.name string nil Alternatively, provide ATS details via an existing configmap
ats.sfs_url string nil URL of the alfresco shared filestore
ats.transform_url string nil URL of the alfresco transform (trouter or tengine-aio)
contentMediaTypeCache.enabled bool true  
contentMediaTypeCache.refreshTime string "0 0 * * * *"  
fullnameOverride string ""  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
imagePullSecrets list []  
indexName string "alfresco" Name of the existing search index, usually created by repo
liveIndexing.content.image.pullPolicy string "IfNotPresent"  
liveIndexing.content.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-content"  
liveIndexing.content.image.tag string "4.0.1"  
liveIndexing.content.replicaCount int 1  
liveIndexing.mediation.image.pullPolicy string "IfNotPresent"  
liveIndexing.mediation.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-mediation"  
liveIndexing.mediation.image.tag string "4.0.1"  
liveIndexing.metadata.image.pullPolicy string "IfNotPresent"  
liveIndexing.metadata.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-metadata"  
liveIndexing.metadata.image.tag string "4.0.1"  
liveIndexing.metadata.replicaCount int 1  
liveIndexing.path.image.pullPolicy string "IfNotPresent"  
liveIndexing.path.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-path"  
liveIndexing.path.image.tag string "4.0.1"  
liveIndexing.path.replicaCount int 1  
messageBroker.existingConfigMap.keys.url string "BROKER_URL" Key within the configmap holding the URL of the message broker
messageBroker.existingConfigMap.name string nil Alternatively, provide message broker connection details via an existing configmap
messageBroker.existingSecret object {"keys":{"password":"BROKER_PASSWORD","username":"BROKER_USERNAME"},"name":null} Provide connection details alternatively via an existing secret that contains BROKER_URL, BROKER_USERNAME and BROKER_PASSWORD keys
messageBroker.password string nil Broker password
messageBroker.url string nil Broker URL formatted as per: https://activemq.apache.org/failover-transport-reference
messageBroker.username string nil Broker username
nameOverride string ""  
nodeSelector object {}  
pathIndexingComponent.enabled bool true  
podAnnotations object {}  
podSecurityContext object {}  
reindexing.db.existingConfigMap.keys.url string "DATABASE_URL" Key within the configmap holding the full JDBC url to connect to database service
reindexing.db.existingConfigMap.name string nil Alternatively, provide database connection details via an existing configmap
reindexing.db.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password
reindexing.db.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username
reindexing.db.existingSecret.name string nil Alternatively, provide database credentials via an existing secret
reindexing.db.password string nil The password required to access the service
reindexing.db.url string nil Provide the full JDBC url to connect to database service e.g.: jdbc:postgresql://hostname:5432/database
reindexing.db.username string nil The username required to access the service
reindexing.enabled bool true Create the one-shot job to trigger the reindexing of repo contents
reindexing.image.pullPolicy string "IfNotPresent"  
reindexing.image.repository string "quay.io/alfresco/alfresco-elasticsearch-reindexing"  
reindexing.image.tag string "4.0.1"  
reindexing.initcontainers.waitForRepository.resources.limits.cpu string "0.25"  
reindexing.initcontainers.waitForRepository.resources.limits.memory string "10Mi"  
reindexing.pathIndexingEnabled bool true  
reindexing.repository.existingConfigMap.keys.url string "REPOSITORY_URL" Key within the configmap holding the full url to connect to the alfresco repository
reindexing.repository.existingConfigMap.name string nil Alternatively, provide repository connection details via an existing configmap
reindexing.repository.url string nil URL of the Alfresco repository
reindexing.resources.limits.cpu string "2"  
reindexing.resources.limits.memory string "512Mi"  
reindexing.resources.requests.cpu string "0.5"  
reindexing.resources.requests.memory string "128Mi"  
resources.limits.cpu string "2"  
resources.limits.memory string "2048Mi"  
resources.requests.cpu string "0.5"  
resources.requests.memory string "256Mi"  
search.existingConfigMap.keys.url string "SEARCH_URL" Key within the configmap holding the URL of the search/indexing service
search.existingConfigMap.name string nil Alternatively, provide search/indexing service connection details via an existing configmap
search.existingSecret.keys.password string "SEARCH_PASSWORD" Key within the secret that holds the search/indexing password
search.existingSecret.keys.username string "SEARCH_USERNAME" Key within the secret that holds the search/indexing username
search.existingSecret.name string nil Alternatively, provide search/indexing credentials via an existing secret
search.password string nil The password required to access the search/indexing service, if any
search.url string nil The URL where the search/indexing service is available
search.user string nil The username required to access the search/indexing service, if any
securityContext object {}  
serviceAccount.annotations object {}  
serviceAccount.create bool true  
serviceAccount.name string "alfresco-search-enterprise-sa"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
tolerations list []  

+ alfresco-search-enterprise | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-search-enterprise

Version: 3.2.6 Type: application AppVersion: 4.0.1

A Helm chart for deploying Alfresco Elasticsearch connector

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
https://helm.elastic.co elasticsearch 7.17.3

Values

Key Type Default Description
affinity object {}  
ats.existingConfigMap.keys.sfs_url string "SFS_URL" Key within the configmap holding the URL of the alfresco shared filestore
ats.existingConfigMap.keys.transform_url string "ATS_URL" Key within the configmap holding the URL of the alfresco transform
ats.existingConfigMap.name string nil Alternatively, provide ATS details via an existing configmap
ats.sfs_url string nil URL of the alfresco shared filestore
ats.transform_url string nil URL of the alfresco transform (trouter or tengine-aio)
contentMediaTypeCache.enabled bool true  
contentMediaTypeCache.refreshTime string "0 0 * * * *"  
fullnameOverride string ""  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
imagePullSecrets list []  
indexName string "alfresco" Name of the existing search index, usually created by repo
liveIndexing.content.image.pullPolicy string "IfNotPresent"  
liveIndexing.content.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-content"  
liveIndexing.content.image.tag string "4.0.1"  
liveIndexing.content.replicaCount int 1  
liveIndexing.mediation.image.pullPolicy string "IfNotPresent"  
liveIndexing.mediation.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-mediation"  
liveIndexing.mediation.image.tag string "4.0.1"  
liveIndexing.metadata.image.pullPolicy string "IfNotPresent"  
liveIndexing.metadata.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-metadata"  
liveIndexing.metadata.image.tag string "4.0.1"  
liveIndexing.metadata.replicaCount int 1  
liveIndexing.path.image.pullPolicy string "IfNotPresent"  
liveIndexing.path.image.repository string "quay.io/alfresco/alfresco-elasticsearch-live-indexing-path"  
liveIndexing.path.image.tag string "4.0.1"  
liveIndexing.path.replicaCount int 1  
messageBroker.existingConfigMap.keys.url string "BROKER_URL" Key within the configmap holding the URL of the message broker
messageBroker.existingConfigMap.name string nil Alternatively, provide message broker connection details via an existing configmap
messageBroker.existingSecret object {"keys":{"password":"BROKER_PASSWORD","username":"BROKER_USERNAME"},"name":null} Provide connection details alternatively via an existing secret that contains BROKER_URL, BROKER_USERNAME and BROKER_PASSWORD keys
messageBroker.password string nil Broker password
messageBroker.url string nil Broker URL formatted as per: https://activemq.apache.org/failover-transport-reference
messageBroker.username string nil Broker username
nameOverride string ""  
nodeSelector object {}  
pathIndexingComponent.enabled bool true  
podAnnotations object {}  
podSecurityContext object {}  
reindexing.db.existingConfigMap.keys.url string "DATABASE_URL" Key within the configmap holding the full JDBC url to connect to database service
reindexing.db.existingConfigMap.name string nil Alternatively, provide database connection details via an existing configmap
reindexing.db.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password
reindexing.db.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username
reindexing.db.existingSecret.name string nil Alternatively, provide database credentials via an existing secret
reindexing.db.password string nil The password required to access the service
reindexing.db.url string nil Provide the full JDBC url to connect to database service e.g.: jdbc:postgresql://hostname:5432/database
reindexing.db.username string nil The username required to access the service
reindexing.enabled bool true Create the one-shot job to trigger the reindexing of repo contents
reindexing.image.pullPolicy string "IfNotPresent"  
reindexing.image.repository string "quay.io/alfresco/alfresco-elasticsearch-reindexing"  
reindexing.image.tag string "4.0.1"  
reindexing.initcontainers.waitForRepository.resources.limits.cpu string "0.25"  
reindexing.initcontainers.waitForRepository.resources.limits.memory string "10Mi"  
reindexing.pathIndexingEnabled bool true  
reindexing.repository.existingConfigMap.keys.url string "REPOSITORY_URL" Key within the configmap holding the full url to connect to the alfresco repository
reindexing.repository.existingConfigMap.name string nil Alternatively, provide repository connection details via an existing configmap
reindexing.repository.url string nil URL of the Alfresco repository
reindexing.resources.limits.cpu string "2"  
reindexing.resources.limits.memory string "512Mi"  
reindexing.resources.requests.cpu string "0.5"  
reindexing.resources.requests.memory string "128Mi"  
resources.limits.cpu string "2"  
resources.limits.memory string "2048Mi"  
resources.requests.cpu string "0.5"  
resources.requests.memory string "256Mi"  
search.existingConfigMap.keys.url string "SEARCH_URL" Key within the configmap holding the URL of the search/indexing service
search.existingConfigMap.name string nil Alternatively, provide search/indexing service connection details via an existing configmap
search.existingSecret.keys.password string "SEARCH_PASSWORD" Key within the secret that holds the search/indexing password
search.existingSecret.keys.username string "SEARCH_USERNAME" Key within the secret that holds the search/indexing username
search.existingSecret.name string nil Alternatively, provide search/indexing credentials via an existing secret
search.password string nil The password required to access the search/indexing service, if any
search.url string nil The URL where the search/indexing service is available
search.user string nil The username required to access the search/indexing service, if any
securityContext object {}  
serviceAccount.annotations object {}  
serviceAccount.create bool true  
serviceAccount.name string "alfresco-search-enterprise-sa"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
tolerations list []  

diff --git a/charts/alfresco-search-service/README.html b/charts/alfresco-search-service/README.html index 1fd9cd67..163e186c 100644 --- a/charts/alfresco-search-service/README.html +++ b/charts/alfresco-search-service/README.html @@ -1 +1 @@ - alfresco-search-service | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-search-service

Version: 3.3.1 AppVersion: 2.0.10

A Helm chart for deploying Alfresco Search Service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Homepage: https://www.alfresco.com

Source Code

Requirements

Repository Name Version
  alfresco-insight-zeppelin 3.0.1
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2

Values

Key Type Default Description
affinity string "" Pod affinity, passed thru tpl function
alfresco-insight-zeppelin.enabled bool false  
environment.SOLR_CREATE_ALFRESCO_DEFAULTS string "alfresco,archive"  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
ingress.annotations object {"nginx.ingress.kubernetes.io/auth-realm":"Authentication Required - Alfresco Search Services","nginx.ingress.kubernetes.io/auth-type":"basic","nginx.ingress.kubernetes.io/whitelist-source-range":"0.0.0.0/0"} nginx ingress annotations (see https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations)
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.className string "nginx"  
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 []  
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.10"  
livenessProbe.initialDelaySeconds int 130  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
nodeSelector object {}  
persistence.accessModes[0] string "ReadWriteOnce"  
persistence.baseSize string "10Gi" Capacity of the PVC for persistency
persistence.enabled bool true When disabled, data is lost when pod is terminated/rescheduled
persistence.existingClaim string nil Provide a pre-existing PVC for persistency
persistence.search.data.mountPath string "/opt/alfresco-search-services/data"  
persistence.search.data.subPath string "alfresco-content-services/solr-data"  
persistence.storageClass string nil Bind PVC based on storageClass (e.g. dynamic provisioning)
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.existingConfigMap.keys.host string "SOLR_ALFRESCO_HOST" Key within the configmap holding the repository hostname
repository.existingConfigMap.keys.port string "SOLR_ALFRESCO_PORT" Key within the configmap holding the repository port
repository.existingConfigMap.keys.securecomms string "SOLR_ALFRESCO_SECURE_COMMS" Key within the configmap holding the repository security level
repository.existingConfigMap.name string nil Name of a pre-existing configmap containing Alfresco repository URL
repository.existingSecret.keys.sharedSecret string "SOLR_ALFRESCO_SECURECOMMS_SECRET" Key within the secret holding the repository shared secret
repository.existingSecret.name string nil Alternatively, provide a pre-existing secret containing the shared secret used with repository when securecomms is secret
repository.host string nil Alfresco repository hostname
repository.port string nil Alfresco repository port
repository.securecomms string "secret" Alfresco repository security level to use when tracking the repo (‘none’ or ‘secret’)
repository.sharedSecret string nil Shared secret used with repository when securecomms is secret
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.10"  
service.name string "solr"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.automount bool true Automatically mount a ServiceAccount’s API credentials?
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
tolerations list []  
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

+ alfresco-search-service | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-search-service

Version: 3.3.1 AppVersion: 2.0.10

A Helm chart for deploying Alfresco Search Service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Homepage: https://www.alfresco.com

Source Code

Requirements

Repository Name Version
  alfresco-insight-zeppelin 3.0.1
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2

Values

Key Type Default Description
affinity string "" Pod affinity, passed thru tpl function
alfresco-insight-zeppelin.enabled bool false  
environment.SOLR_CREATE_ALFRESCO_DEFAULTS string "alfresco,archive"  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
ingress.annotations object {"nginx.ingress.kubernetes.io/auth-realm":"Authentication Required - Alfresco Search Services","nginx.ingress.kubernetes.io/auth-type":"basic","nginx.ingress.kubernetes.io/whitelist-source-range":"0.0.0.0/0"} nginx ingress annotations (see https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations)
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.className string "nginx"  
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 []  
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.10"  
livenessProbe.initialDelaySeconds int 130  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 10  
nodeSelector object {}  
persistence.accessModes[0] string "ReadWriteOnce"  
persistence.baseSize string "10Gi" Capacity of the PVC for persistency
persistence.enabled bool true When disabled, data is lost when pod is terminated/rescheduled
persistence.existingClaim string nil Provide a pre-existing PVC for persistency
persistence.search.data.mountPath string "/opt/alfresco-search-services/data"  
persistence.search.data.subPath string "alfresco-content-services/solr-data"  
persistence.storageClass string nil Bind PVC based on storageClass (e.g. dynamic provisioning)
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.existingConfigMap.keys.host string "SOLR_ALFRESCO_HOST" Key within the configmap holding the repository hostname
repository.existingConfigMap.keys.port string "SOLR_ALFRESCO_PORT" Key within the configmap holding the repository port
repository.existingConfigMap.keys.securecomms string "SOLR_ALFRESCO_SECURE_COMMS" Key within the configmap holding the repository security level
repository.existingConfigMap.name string nil Name of a pre-existing configmap containing Alfresco repository URL
repository.existingSecret.keys.sharedSecret string "SOLR_ALFRESCO_SECURECOMMS_SECRET" Key within the secret holding the repository shared secret
repository.existingSecret.name string nil Alternatively, provide a pre-existing secret containing the shared secret used with repository when securecomms is secret
repository.host string nil Alfresco repository hostname
repository.port string nil Alfresco repository port
repository.securecomms string "secret" Alfresco repository security level to use when tracking the repo (‘none’ or ‘secret’)
repository.sharedSecret string nil Shared secret used with repository when securecomms is secret
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.10"  
service.name string "solr"  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.automount bool true Automatically mount a ServiceAccount’s API credentials?
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
tolerations list []  
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

diff --git a/charts/alfresco-search-service/charts/alfresco-insight-zeppelin/README.html b/charts/alfresco-search-service/charts/alfresco-insight-zeppelin/README.html index b50bb146..d8a95910 100644 --- a/charts/alfresco-search-service/charts/alfresco-insight-zeppelin/README.html +++ b/charts/alfresco-search-service/charts/alfresco-insight-zeppelin/README.html @@ -1 +1 @@ - alfresco-insight-zeppelin | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-insight-zeppelin

Version: 3.0.1 AppVersion: 2.0.10

A Helm chart for deploying Alfresco Insight Zeppelin

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Homepage: https://www.alfresco.com

Source Code

Requirements

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

Values

Key Type Default Description
affinity string "" Pod affinity, passed thru tpl function
environment.ZEPPELIN_INTP_MEM string "-Xms512m -Xmx1g"  
environment.ZEPPELIN_MEM string "-Xms512m -Xmx1g"  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" Global definition of Docker registry pull secret which can be overridden from parent ACS Helm chart(s)
global.strategy.rollingUpdate.maxSurge int 1  
global.strategy.rollingUpdate.maxUnavailable int 0  
image.internalPort int 9090  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/insight-zeppelin"  
image.tag string "2.0.10"  
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  
repository.existingConfigMap.keys.host string "REPO_HOST" Key within the configmap holding the repository hostname
repository.existingConfigMap.keys.port string "REPO_PORT" Key within the configmap holding the repository port
repository.existingConfigMap.name string nil Name of a pre-existing configmap containing Alfresco repository URL
repository.url string "http://alfresco-search-service" Alfresco repository URL
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"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.automount bool true Automatically mount a ServiceAccount’s API credentials?
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
tolerations list []  

+ alfresco-insight-zeppelin | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-insight-zeppelin

Version: 3.0.1 AppVersion: 2.0.10

A Helm chart for deploying Alfresco Insight Zeppelin

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Homepage: https://www.alfresco.com

Source Code

Requirements

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

Values

Key Type Default Description
affinity string "" Pod affinity, passed thru tpl function
environment.ZEPPELIN_INTP_MEM string "-Xms512m -Xmx1g"  
environment.ZEPPELIN_MEM string "-Xms512m -Xmx1g"  
global.alfrescoRegistryPullSecrets string "quay-registry-secret" Global definition of Docker registry pull secret which can be overridden from parent ACS Helm chart(s)
global.strategy.rollingUpdate.maxSurge int 1  
global.strategy.rollingUpdate.maxUnavailable int 0  
image.internalPort int 9090  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/insight-zeppelin"  
image.tag string "2.0.10"  
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  
repository.existingConfigMap.keys.host string "REPO_HOST" Key within the configmap holding the repository hostname
repository.existingConfigMap.keys.port string "REPO_PORT" Key within the configmap holding the repository port
repository.existingConfigMap.name string nil Name of a pre-existing configmap containing Alfresco repository URL
repository.url string "http://alfresco-search-service" Alfresco repository URL
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"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.automount bool true Automatically mount a ServiceAccount’s API credentials?
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
tolerations list []  

diff --git a/charts/alfresco-share/README.html b/charts/alfresco-share/README.html index 8778a6ec..f039554a 100644 --- a/charts/alfresco-share/README.html +++ b/charts/alfresco-share/README.html @@ -1 +1 @@ - alfresco-share | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-share

Version: 0.6.1 Type: application AppVersion: 23.2.1

Alfresco Share Helm chart for Kubernetes

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

Key Type Default Description
affinity string "" string representation of the YAML affinity rules (can use templates)
args list []  
command list []  
environment.CATALINA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
extraInitContainers list []  
extraSideContainers list []  
extraVolumeMounts list []  
extraVolumes list []  
fullnameOverride string "" Define a fully static name
global.alfrescoRegistryPullSecrets string "quay-registry-secret" 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.known_urls string nil a fallback for .Values.known_urls that can be shared between charts
hazelcast.port int 5701 Port used to expose the Hazelcast service when replicaCount > 1
image.port int 8080 Internal port where the pod is listening. Should only be changed is you use a custom image which uses a different port.
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-share"  
image.tag string "23.2.1"  
imagePullSecrets list []  
ingress.annotations.”nginx.ingress.kubernetes.io/affinity” string "cookie"  
ingress.annotations.”nginx.ingress.kubernetes.io/proxy-body-size” string "5g"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-expires” string "604800"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-max-age” string "604800"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-name” string "alfrescoShare"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-path” string "/share"  
ingress.className string "nginx"  
ingress.enabled bool true  
ingress.hosts[0].paths[0].path string "/share"  
ingress.hosts[0].paths[0].pathType string "ImplementationSpecific"  
ingress.tls list []  
known_urls string nil Provide the list of URL considered allowed to access Share resources (used for CSRF protection). The value be either a list of strings or a single string separated by spaces.
livenessProbe.initialDelaySeconds int 15  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 5  
managedApplicationContext.enabled bool true Automatically inject a custom application context file which for now only enables hazelcast clustering when more than one replica is configured. Should be disabled when providing a custom application context file.
nameOverride string "" Define a partially static name
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsNonRoot bool true  
readinessProbe.initialDelaySeconds int 15  
readinessProbe.periodSeconds int 30  
readinessProbe.timeoutSeconds int 5  
replicaCount int 1 Define the number of replicas to run. Multiple replicas are only supported on Share 23.1.1 and later
repository.existingConfigMap.keys.host string "REPO_HOST" name of the key in the configMap where to find the repository service host
repository.existingConfigMap.keys.port string "REPO_PORT" name of the key in the configMap where to find the repository service port
repository.existingConfigMap.name string nil a pre-existing configmap which provides expected configuration for Share
repository.host string "localhost" repository hostname/servicename
repository.port int 8080 repository port where service is exposed
resources.limits.cpu string "4"  
resources.limits.memory string "2000Mi"  
resources.requests.cpu string "250m"  
resources.requests.memory string "512Mi"  
securityContext.capabilities.drop[0] string "NET_RAW"  
securityContext.capabilities.drop[1] string "ALL"  
securityContext.runAsNonRoot bool false  
service.name string "share"  
service.port int 80  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "share-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
strategy.type string "RollingUpdate"  
tolerations list []  

+ alfresco-share | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-share

Version: 0.6.1 Type: application AppVersion: 23.2.1

Alfresco Share Helm chart for Kubernetes

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

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

Values

Key Type Default Description
affinity string "" string representation of the YAML affinity rules (can use templates)
args list []  
command list []  
environment.CATALINA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
extraInitContainers list []  
extraSideContainers list []  
extraVolumeMounts list []  
extraVolumes list []  
fullnameOverride string "" Define a fully static name
global.alfrescoRegistryPullSecrets string "quay-registry-secret" 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.known_urls string nil a fallback for .Values.known_urls that can be shared between charts
hazelcast.port int 5701 Port used to expose the Hazelcast service when replicaCount > 1
image.port int 8080 Internal port where the pod is listening. Should only be changed is you use a custom image which uses a different port.
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/alfresco-share"  
image.tag string "23.2.1"  
imagePullSecrets list []  
ingress.annotations.”nginx.ingress.kubernetes.io/affinity” string "cookie"  
ingress.annotations.”nginx.ingress.kubernetes.io/proxy-body-size” string "5g"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-expires” string "604800"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-max-age” string "604800"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-name” string "alfrescoShare"  
ingress.annotations.”nginx.ingress.kubernetes.io/session-cookie-path” string "/share"  
ingress.className string "nginx"  
ingress.enabled bool true  
ingress.hosts[0].paths[0].path string "/share"  
ingress.hosts[0].paths[0].pathType string "ImplementationSpecific"  
ingress.tls list []  
known_urls string nil Provide the list of URL considered allowed to access Share resources (used for CSRF protection). The value be either a list of strings or a single string separated by spaces.
livenessProbe.initialDelaySeconds int 15  
livenessProbe.periodSeconds int 20  
livenessProbe.timeoutSeconds int 5  
managedApplicationContext.enabled bool true Automatically inject a custom application context file which for now only enables hazelcast clustering when more than one replica is configured. Should be disabled when providing a custom application context file.
nameOverride string "" Define a partially static name
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.runAsNonRoot bool true  
readinessProbe.initialDelaySeconds int 15  
readinessProbe.periodSeconds int 30  
readinessProbe.timeoutSeconds int 5  
replicaCount int 1 Define the number of replicas to run. Multiple replicas are only supported on Share 23.1.1 and later
repository.existingConfigMap.keys.host string "REPO_HOST" name of the key in the configMap where to find the repository service host
repository.existingConfigMap.keys.port string "REPO_PORT" name of the key in the configMap where to find the repository service port
repository.existingConfigMap.name string nil a pre-existing configmap which provides expected configuration for Share
repository.host string "localhost" repository hostname/servicename
repository.port int 8080 repository port where service is exposed
resources.limits.cpu string "4"  
resources.limits.memory string "2000Mi"  
resources.requests.cpu string "250m"  
resources.requests.memory string "512Mi"  
securityContext.capabilities.drop[0] string "NET_RAW"  
securityContext.capabilities.drop[1] string "ALL"  
securityContext.runAsNonRoot bool false  
service.name string "share"  
service.port int 80  
service.type string "ClusterIP"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "share-sa" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
strategy.rollingUpdate.maxSurge int 1  
strategy.rollingUpdate.maxUnavailable int 0  
strategy.type string "RollingUpdate"  
tolerations list []  

diff --git a/charts/alfresco-sync-service/README.html b/charts/alfresco-sync-service/README.html index 65f3bc4a..1dc1c94d 100644 --- a/charts/alfresco-sync-service/README.html +++ b/charts/alfresco-sync-service/README.html @@ -1 +1 @@ - alfresco-sync-service | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-sync-service

Version: 5.2.3 AppVersion: 5.0.0

Alfresco Sync Service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Source Code

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.5.6

Values

Key Type Default Description
affinity string ""  
database.driver string "org.postgresql.Driver" The JDBC Driver to connect to the DB. If different from the default make sure your container image ships it.
database.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver class to use. The configmap may leverage the alfresco-repository.db.cm named template to auto-generate it from the sole url parameter.
database.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database
database.existingConfigMap.name string nil  
database.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password
database.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username
database.existingSecret.name string nil Name of a pre-existing secret containing database credentials
database.password string nil JDBC password to use to connect to the DB
database.url string nil JDBC url to connect to the external DB
database.username string nil JDBC username to use to connect to the DB
environment.JAVA_OPTS string "-Dsql.db.pool.initial=25 -Dsql.db.pool.max=75 -Dsync.metrics.reporter.graphite.enabled=false -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
global object {"alfrescoRegistryPullSecrets":"quay-registry-secret","strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}}} Global definition of Docker registry pull secret which can be overridden from parent ACS Helm chart(s)
hazelcast.service.port int 5701  
hazelcast.service.type string "ClusterIP"  
image.internalPort int 9090  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/service-sync"  
image.tag string "5.0.0"  
ingress.extraAnnotations object {} useful when running Sync service without SSL termination done by a load balancer, e.g. when ran on Minikube for testing purposes nginx.ingress.kubernetes.io/ssl-redirect: “false”
ingress.path string "/syncservice"  
ingress.tls list []  
livenessProbe.initialDelaySeconds int 30  
livenessProbe.periodSeconds int 30  
livenessProbe.timeoutSeconds int 10  
messageBroker.existingConfigMap.keys.url string "BROKER_URL" configmap key where to find the URL of the message broker
messageBroker.existingConfigMap.name string nil Name of a pre-existing configmap containing message broker details
messageBroker.existingSecret.keys.password string "BROKER_PASSWORD" Key within the secret holding the message broker password
messageBroker.existingSecret.keys.username string "BROKER_USERNAME" Key within the secret holding the message broker username
messageBroker.existingSecret.name string nil Name of a pre-existing secret containing message broker credentials
messageBroker.nameOverride string "activemq" A name that will be used as a base to get broker connection details
messageBroker.password string nil Credential to use to authenticate to the broker.
messageBroker.url string nil A failover URI formatted string, see: https://activemq.apache.org/failover-transport-reference
messageBroker.username string nil Username to authenticate as.
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.fsGroup int 1000  
podSecurityContext.runAsGroup int 1000  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33020  
readinessProbe.failureThreshold int 12  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 10  
replicaCount int 1  
repository.existingConfigMap.keys.host string "REPO_HOST" configmap key where to find the URL of the message broker
repository.existingConfigMap.keys.port string "REPO_PORT"  
repository.existingConfigMap.keys.scheme string "REPO_SCHEME"  
repository.existingConfigMap.name string nil Name of a pre-existing configmap containing message broker details
repository.host string nil ACS repository host
repository.port string nil ACS repository port
repository.scheme string nil ACS repository port
resources.limits.cpu string "2"  
resources.limits.memory string "2000Mi"  
resources.requests.cpu string "0.5"  
resources.requests.memory string "800Mi"  
service.externalPort int 80  
service.name string "syncservice"  
service.type string "NodePort"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "alfresco-sync"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
terminationGracePeriodSeconds int 60  
tolerations list []  

+ alfresco-sync-service | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-sync-service

Version: 5.2.3 AppVersion: 5.0.0

Alfresco Sync Service

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Source Code

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.2
oci://registry-1.docker.io/bitnamicharts postgresql 12.5.6

Values

Key Type Default Description
affinity string ""  
database.driver string "org.postgresql.Driver" The JDBC Driver to connect to the DB. If different from the default make sure your container image ships it.
database.existingConfigMap.keys.driver string "DATABASE_DRIVER" configmap key where to find the JDBC driver class to use. The configmap may leverage the alfresco-repository.db.cm named template to auto-generate it from the sole url parameter.
database.existingConfigMap.keys.url string "DATABASE_URL" configmap key where to find the URL of the database
database.existingConfigMap.name string nil  
database.existingSecret.keys.password string "DATABASE_PASSWORD" Key within the secret holding the database password
database.existingSecret.keys.username string "DATABASE_USERNAME" Key within the secret holding the database username
database.existingSecret.name string nil Name of a pre-existing secret containing database credentials
database.password string nil JDBC password to use to connect to the DB
database.url string nil JDBC url to connect to the external DB
database.username string nil JDBC username to use to connect to the DB
environment.JAVA_OPTS string "-Dsql.db.pool.initial=25 -Dsql.db.pool.max=75 -Dsync.metrics.reporter.graphite.enabled=false -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
global object {"alfrescoRegistryPullSecrets":"quay-registry-secret","strategy":{"rollingUpdate":{"maxSurge":1,"maxUnavailable":0}}} Global definition of Docker registry pull secret which can be overridden from parent ACS Helm chart(s)
hazelcast.service.port int 5701  
hazelcast.service.type string "ClusterIP"  
image.internalPort int 9090  
image.pullPolicy string "IfNotPresent"  
image.repository string "quay.io/alfresco/service-sync"  
image.tag string "5.0.0"  
ingress.extraAnnotations object {} useful when running Sync service without SSL termination done by a load balancer, e.g. when ran on Minikube for testing purposes nginx.ingress.kubernetes.io/ssl-redirect: “false”
ingress.path string "/syncservice"  
ingress.tls list []  
livenessProbe.initialDelaySeconds int 30  
livenessProbe.periodSeconds int 30  
livenessProbe.timeoutSeconds int 10  
messageBroker.existingConfigMap.keys.url string "BROKER_URL" configmap key where to find the URL of the message broker
messageBroker.existingConfigMap.name string nil Name of a pre-existing configmap containing message broker details
messageBroker.existingSecret.keys.password string "BROKER_PASSWORD" Key within the secret holding the message broker password
messageBroker.existingSecret.keys.username string "BROKER_USERNAME" Key within the secret holding the message broker username
messageBroker.existingSecret.name string nil Name of a pre-existing secret containing message broker credentials
messageBroker.nameOverride string "activemq" A name that will be used as a base to get broker connection details
messageBroker.password string nil Credential to use to authenticate to the broker.
messageBroker.url string nil A failover URI formatted string, see: https://activemq.apache.org/failover-transport-reference
messageBroker.username string nil Username to authenticate as.
nodeSelector object {}  
podAnnotations object {}  
podLabels object {}  
podSecurityContext.fsGroup int 1000  
podSecurityContext.runAsGroup int 1000  
podSecurityContext.runAsNonRoot bool true  
podSecurityContext.runAsUser int 33020  
readinessProbe.failureThreshold int 12  
readinessProbe.initialDelaySeconds int 20  
readinessProbe.periodSeconds int 10  
readinessProbe.timeoutSeconds int 10  
replicaCount int 1  
repository.existingConfigMap.keys.host string "REPO_HOST" configmap key where to find the URL of the message broker
repository.existingConfigMap.keys.port string "REPO_PORT"  
repository.existingConfigMap.keys.scheme string "REPO_SCHEME"  
repository.existingConfigMap.name string nil Name of a pre-existing configmap containing message broker details
repository.host string nil ACS repository host
repository.port string nil ACS repository port
repository.scheme string nil ACS repository port
resources.limits.cpu string "2"  
resources.limits.memory string "2000Mi"  
resources.requests.cpu string "0.5"  
resources.requests.memory string "800Mi"  
service.externalPort int 80  
service.name string "syncservice"  
service.type string "NodePort"  
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "alfresco-sync"  
tags.ci bool false A chart tag used for Hyland’s CI purpose. Do not set it to true.
terminationGracePeriodSeconds int 60  
tolerations list []  

diff --git a/charts/alfresco-transform-service/README.html b/charts/alfresco-transform-service/README.html index eab17e9f..cd82fbc8 100644 --- a/charts/alfresco-transform-service/README.html +++ b/charts/alfresco-transform-service/README.html @@ -1 +1 @@ - alfresco-transform-service | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-transform-service

Version: 1.3.2 Type: application AppVersion: 4.1.2

A Helm chart for deploying Alfresco Transform Services

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.3

Values

Key Type Default Description
filestore.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.filestore.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.filestore.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
filestore.enabled bool true  
filestore.environment.”scheduler.cleanup.interval” string "86400000"  
filestore.environment.”scheduler.content.age.millis” string "86400000"  
filestore.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
filestore.image.internalPort int 8099  
filestore.image.pullPolicy string "IfNotPresent"  
filestore.image.repository string "quay.io/alfresco/alfresco-shared-file-store"  
filestore.image.tag string "4.1.2"  
filestore.initContainer.image.pullPolicy string "IfNotPresent"  
filestore.initContainer.image.repository string "busybox"  
filestore.initContainer.image.tag string "1.35.0"  
filestore.initContainer.resources.limits.cpu string "0.50"  
filestore.initContainer.resources.limits.memory string "10Mi"  
filestore.livenessProbe.initialDelaySeconds int 10  
filestore.livenessProbe.path string "/live"  
filestore.livenessProbe.periodSeconds int 20  
filestore.livenessProbe.timeoutSeconds int 10  
filestore.nodeSelector object {}  
filestore.persistence.accessModes list ["ReadWriteOnce"] Specify a storageClass for dynamic provisioning
filestore.persistence.data.mountPath string "/tmp/Alfresco"  
filestore.persistence.data.subPath string "alfresco-content-services/filestore-data"  
filestore.persistence.enabled bool false Persist filestore data
filestore.persistence.existingClaim string nil Use pre-provisioned pv through its claim (e.g. static provisionning)
filestore.persistence.storageClass string nil Bind PVC based on storageClass (e.g. dynamic provisionning)
filestore.podAnnotations object {}  
filestore.podLabels object {}  
filestore.podSecurityContext.fsGroup int 1000  
filestore.podSecurityContext.runAsGroup int 1000  
filestore.podSecurityContext.runAsUser int 33030  
filestore.readinessProbe.initialDelaySeconds int 20  
filestore.readinessProbe.path string "/ready"  
filestore.readinessProbe.periodSeconds int 60  
filestore.readinessProbe.timeoutSeconds int 10  
filestore.replicaCount int 1  
filestore.resources.limits.cpu string "2"  
filestore.resources.limits.memory string "1Gi"  
filestore.resources.requests.cpu string "100m"  
filestore.resources.requests.memory string "250Mi"  
filestore.service.externalPort int 80  
filestore.service.name string "filestore"  
filestore.service.type string "ClusterIP"  
filestore.tolerations list []  
filestore.volumeMounts list []  
filestore.volumes list []  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
global.strategy.rollingUpdate.maxSurge int 1  
global.strategy.rollingUpdate.maxUnavailable int 0  
imagemagick.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.imagemagick.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.imagemagick.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
imagemagick.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
imagemagick.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
imagemagick.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
imagemagick.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
imagemagick.autoscaling.enabled bool false Toggle imagemagick autoscaling
imagemagick.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
imagemagick.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
imagemagick.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
imagemagick.enabled bool true  
imagemagick.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
imagemagick.image.internalPort int 8090  
imagemagick.image.pullPolicy string "IfNotPresent"  
imagemagick.image.repository string "quay.io/alfresco/alfresco-imagemagick"  
imagemagick.image.tag string "5.1.2"  
imagemagick.livenessProbe.initialDelaySeconds int 10  
imagemagick.livenessProbe.livenessPercent int 150  
imagemagick.livenessProbe.livenessTransformPeriodSeconds int 600  
imagemagick.livenessProbe.maxTransformSeconds int 900  
imagemagick.livenessProbe.maxTransforms int 10000  
imagemagick.livenessProbe.path string "/live"  
imagemagick.livenessProbe.periodSeconds int 20  
imagemagick.livenessProbe.timeoutSeconds int 10  
imagemagick.nodeSelector object {}  
imagemagick.podAnnotations object {}  
imagemagick.podLabels object {}  
imagemagick.podSecurityContext.runAsNonRoot bool true  
imagemagick.podSecurityContext.runAsUser int 33002  
imagemagick.readinessProbe.initialDelaySeconds int 20  
imagemagick.readinessProbe.path string "/ready"  
imagemagick.readinessProbe.periodSeconds int 30  
imagemagick.readinessProbe.timeoutSeconds int 10  
imagemagick.replicaCount int 2  
imagemagick.resources.limits.cpu string "4"  
imagemagick.resources.limits.memory string "4Gi"  
imagemagick.resources.requests.cpu string "250m"  
imagemagick.resources.requests.memory string "250Mi"  
imagemagick.service.externalPort int 80  
imagemagick.service.name string "imagemagick"  
imagemagick.service.type string "ClusterIP"  
imagemagick.tolerations list []  
imagemagick.volumeMounts list []  
imagemagick.volumes list []  
libreoffice.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.libreoffice.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.libreoffice.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
libreoffice.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
libreoffice.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
libreoffice.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
libreoffice.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
libreoffice.autoscaling.enabled bool false Toggle libreoffice autoscaling
libreoffice.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
libreoffice.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
libreoffice.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
libreoffice.enabled bool true  
libreoffice.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
libreoffice.image.internalPort int 8090  
libreoffice.image.pullPolicy string "IfNotPresent"  
libreoffice.image.repository string "quay.io/alfresco/alfresco-libreoffice"  
libreoffice.image.tag string "5.1.2"  
libreoffice.livenessProbe.initialDelaySeconds int 10  
libreoffice.livenessProbe.livenessPercent int 250  
libreoffice.livenessProbe.livenessTransformPeriodSeconds int 600  
libreoffice.livenessProbe.maxTransformSeconds int 1800  
libreoffice.livenessProbe.maxTransforms int 99999  
libreoffice.livenessProbe.path string "/live"  
libreoffice.livenessProbe.periodSeconds int 20  
libreoffice.livenessProbe.timeoutSeconds int 10  
libreoffice.nodeSelector object {}  
libreoffice.podAnnotations object {}  
libreoffice.podLabels object {}  
libreoffice.podSecurityContext.runAsNonRoot bool true  
libreoffice.podSecurityContext.runAsUser int 33003  
libreoffice.readinessProbe.initialDelaySeconds int 20  
libreoffice.readinessProbe.path string "/ready"  
libreoffice.readinessProbe.periodSeconds int 30  
libreoffice.readinessProbe.timeoutSeconds int 10  
libreoffice.replicaCount int 2  
libreoffice.resources.limits.cpu string "4"  
libreoffice.resources.limits.memory string "4Gi"  
libreoffice.resources.requests.cpu string "250m"  
libreoffice.resources.requests.memory string "500Mi"  
libreoffice.service.externalPort int 80  
libreoffice.service.name string "libreoffice"  
libreoffice.service.type string "ClusterIP"  
libreoffice.tolerations list []  
libreoffice.volumeMounts list []  
libreoffice.volumes list []  
messageBroker.existingConfigMap.keys.url string "BROKER_URL"  
messageBroker.existingConfigMap.name string nil Alternatively, provide message broker URL via an existing ConfigMap
messageBroker.existingSecret.keys.password string "BROKER_PASSWORD"  
messageBroker.existingSecret.keys.user string "BROKER_USERNAME"  
messageBroker.existingSecret.name string nil Alternatively, provide message broker credentials via an existing Secret
messageBroker.password string nil Activemq password
messageBroker.url string nil Activemq connection url (e.g. failover:(nio://my-broker:61616)?timeout=3000&jms.useCompression=true)
messageBroker.user string nil Activemq username
pdfrenderer.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.pdfrenderer.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.pdfrenderer.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
pdfrenderer.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
pdfrenderer.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
pdfrenderer.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
pdfrenderer.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
pdfrenderer.autoscaling.enabled bool false Toggle pdfrenderer autoscaling
pdfrenderer.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
pdfrenderer.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
pdfrenderer.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
pdfrenderer.enabled bool true  
pdfrenderer.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
pdfrenderer.image.internalPort int 8090  
pdfrenderer.image.pullPolicy string "IfNotPresent"  
pdfrenderer.image.repository string "quay.io/alfresco/alfresco-pdf-renderer"  
pdfrenderer.image.tag string "5.1.2"  
pdfrenderer.livenessProbe.initialDelaySeconds int 10  
pdfrenderer.livenessProbe.livenessPercent int 150  
pdfrenderer.livenessProbe.livenessTransformPeriodSeconds int 600  
pdfrenderer.livenessProbe.maxTransformSeconds int 1200  
pdfrenderer.livenessProbe.maxTransforms int 10000  
pdfrenderer.livenessProbe.path string "/live"  
pdfrenderer.livenessProbe.periodSeconds int 20  
pdfrenderer.livenessProbe.timeoutSeconds int 10  
pdfrenderer.nodeSelector object {}  
pdfrenderer.podAnnotations object {}  
pdfrenderer.podLabels object {}  
pdfrenderer.podSecurityContext.runAsNonRoot bool true  
pdfrenderer.podSecurityContext.runAsUser int 33001  
pdfrenderer.readinessProbe.initialDelaySeconds int 20  
pdfrenderer.readinessProbe.path string "/ready"  
pdfrenderer.readinessProbe.periodSeconds int 30  
pdfrenderer.readinessProbe.timeoutSeconds int 10  
pdfrenderer.replicaCount int 2  
pdfrenderer.resources.limits.cpu string "2"  
pdfrenderer.resources.limits.memory string "2Gi"  
pdfrenderer.resources.requests.cpu string "100m"  
pdfrenderer.resources.requests.memory string "250Mi"  
pdfrenderer.service.externalPort int 80  
pdfrenderer.service.name string "pdfrenderer"  
pdfrenderer.service.type string "ClusterIP"  
pdfrenderer.tolerations list []  
pdfrenderer.volumeMounts list []  
pdfrenderer.volumes list []  
serviceAccount.annotations object {}  
serviceAccount.automount bool true  
serviceAccount.create bool true  
serviceAccount.name string ""  
tags.ci bool false Enable dependencies required for CI. Do not enable.
tika.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.tika.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.tika.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
tika.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
tika.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
tika.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
tika.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
tika.autoscaling.enabled bool false Toggle tika autoscaling
tika.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
tika.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
tika.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
tika.enabled bool true  
tika.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
tika.image.internalPort int 8090  
tika.image.pullPolicy string "IfNotPresent"  
tika.image.repository string "quay.io/alfresco/alfresco-tika"  
tika.image.tag string "5.1.2"  
tika.livenessProbe.initialDelaySeconds int 30  
tika.livenessProbe.livenessPercent int 400  
tika.livenessProbe.livenessTransformPeriodSeconds int 600  
tika.livenessProbe.maxTransformSeconds int 1800  
tika.livenessProbe.maxTransforms int 10000  
tika.livenessProbe.path string "/live"  
tika.livenessProbe.periodSeconds int 20  
tika.livenessProbe.timeoutSeconds int 10  
tika.nodeSelector object {}  
tika.podAnnotations object {}  
tika.podLabels object {}  
tika.podSecurityContext.runAsNonRoot bool true  
tika.podSecurityContext.runAsUser int 33004  
tika.readinessProbe.initialDelaySeconds int 30  
tika.readinessProbe.path string "/ready"  
tika.readinessProbe.periodSeconds int 30  
tika.readinessProbe.timeoutSeconds int 10  
tika.replicaCount int 2  
tika.resources.limits.cpu string "4"  
tika.resources.limits.memory string "4Gi"  
tika.resources.requests.cpu string "250m"  
tika.resources.requests.memory string "600Mi"  
tika.service.externalPort int 80  
tika.service.name string "tika"  
tika.service.type string "ClusterIP"  
tika.tolerations list []  
tika.volumeMounts list []  
tika.volumes list []  
transformmisc.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-misc.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-misc.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
transformmisc.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
transformmisc.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
transformmisc.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
transformmisc.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
transformmisc.autoscaling.enabled bool false Toggle transformmisc autoscaling
transformmisc.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
transformmisc.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
transformmisc.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
transformmisc.enabled bool true  
transformmisc.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
transformmisc.image.internalPort int 8090  
transformmisc.image.pullPolicy string "IfNotPresent"  
transformmisc.image.repository string "quay.io/alfresco/alfresco-transform-misc"  
transformmisc.image.tag string "5.1.2"  
transformmisc.livenessProbe.initialDelaySeconds int 10  
transformmisc.livenessProbe.livenessPercent int 400  
transformmisc.livenessProbe.livenessTransformPeriodSeconds int 600  
transformmisc.livenessProbe.maxTransformSeconds int 1800  
transformmisc.livenessProbe.maxTransforms int 10000  
transformmisc.livenessProbe.path string "/live"  
transformmisc.livenessProbe.periodSeconds int 20  
transformmisc.livenessProbe.timeoutSeconds int 10  
transformmisc.nodeSelector object {}  
transformmisc.podAnnotations object {}  
transformmisc.podLabels object {}  
transformmisc.podSecurityContext.runAsNonRoot bool true  
transformmisc.podSecurityContext.runAsUser int 33006  
transformmisc.readinessProbe.initialDelaySeconds int 20  
transformmisc.readinessProbe.path string "/ready"  
transformmisc.readinessProbe.periodSeconds int 30  
transformmisc.readinessProbe.timeoutSeconds int 10  
transformmisc.replicaCount int 2  
transformmisc.resources.limits.cpu string "2"  
transformmisc.resources.limits.memory string "2Gi"  
transformmisc.resources.requests.cpu string "100m"  
transformmisc.resources.requests.memory string "250Mi"  
transformmisc.service.externalPort int 80  
transformmisc.service.name string "transformmisc"  
transformmisc.service.type string "ClusterIP"  
transformmisc.tolerations list []  
transformmisc.volumeMounts list []  
transformmisc.volumes list []  
transformrouter.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-router.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-router.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
transformrouter.enabled bool true  
transformrouter.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
transformrouter.image.internalPort int 8095  
transformrouter.image.pullPolicy string "IfNotPresent"  
transformrouter.image.repository string "quay.io/alfresco/alfresco-transform-router"  
transformrouter.image.tag string "4.1.2"  
transformrouter.livenessProbe.initialDelaySeconds int 20  
transformrouter.livenessProbe.path string "/actuator/health"  
transformrouter.livenessProbe.periodSeconds int 30  
transformrouter.livenessProbe.timeoutSeconds int 10  
transformrouter.nodeSelector object {}  
transformrouter.podAnnotations object {}  
transformrouter.podLabels object {}  
transformrouter.podSecurityContext.runAsNonRoot bool true  
transformrouter.podSecurityContext.runAsUser int 33016  
transformrouter.readinessProbe.initialDelaySeconds int 20  
transformrouter.readinessProbe.path string "/actuator/health"  
transformrouter.readinessProbe.periodSeconds int 60  
transformrouter.readinessProbe.timeoutSeconds int 10  
transformrouter.replicaCount int 2  
transformrouter.resources.limits.cpu string "1"  
transformrouter.resources.limits.memory string "1Gi"  
transformrouter.resources.requests.cpu string "100m"  
transformrouter.resources.requests.memory string "250Mi"  
transformrouter.service.externalPort int 80  
transformrouter.service.name string "transform-router"  
transformrouter.service.type string "ClusterIP"  
transformrouter.tolerations list []  
transformrouter.volumeMounts list []  
transformrouter.volumes list []  

+ alfresco-transform-service | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

alfresco-transform-service

Version: 1.3.2 Type: application AppVersion: 4.1.2

A Helm chart for deploying Alfresco Transform Services

Checkout alfresco-content-services chart’s doc for an example of how to leverage this chart from an umbrella chart.

Requirements

Repository Name Version
https://alfresco.github.io/alfresco-helm-charts/ activemq 3.5.3
https://alfresco.github.io/alfresco-helm-charts/ alfresco-common 3.1.3

Values

Key Type Default Description
filestore.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.filestore.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.filestore.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
filestore.enabled bool true  
filestore.environment.”scheduler.cleanup.interval” string "86400000"  
filestore.environment.”scheduler.content.age.millis” string "86400000"  
filestore.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
filestore.image.internalPort int 8099  
filestore.image.pullPolicy string "IfNotPresent"  
filestore.image.repository string "quay.io/alfresco/alfresco-shared-file-store"  
filestore.image.tag string "4.1.2"  
filestore.initContainer.image.pullPolicy string "IfNotPresent"  
filestore.initContainer.image.repository string "busybox"  
filestore.initContainer.image.tag string "1.35.0"  
filestore.initContainer.resources.limits.cpu string "0.50"  
filestore.initContainer.resources.limits.memory string "10Mi"  
filestore.livenessProbe.initialDelaySeconds int 10  
filestore.livenessProbe.path string "/live"  
filestore.livenessProbe.periodSeconds int 20  
filestore.livenessProbe.timeoutSeconds int 10  
filestore.nodeSelector object {}  
filestore.persistence.accessModes list ["ReadWriteOnce"] Specify a storageClass for dynamic provisioning
filestore.persistence.data.mountPath string "/tmp/Alfresco"  
filestore.persistence.data.subPath string "alfresco-content-services/filestore-data"  
filestore.persistence.enabled bool false Persist filestore data
filestore.persistence.existingClaim string nil Use pre-provisioned pv through its claim (e.g. static provisionning)
filestore.persistence.storageClass string nil Bind PVC based on storageClass (e.g. dynamic provisionning)
filestore.podAnnotations object {}  
filestore.podLabels object {}  
filestore.podSecurityContext.fsGroup int 1000  
filestore.podSecurityContext.runAsGroup int 1000  
filestore.podSecurityContext.runAsUser int 33030  
filestore.readinessProbe.initialDelaySeconds int 20  
filestore.readinessProbe.path string "/ready"  
filestore.readinessProbe.periodSeconds int 60  
filestore.readinessProbe.timeoutSeconds int 10  
filestore.replicaCount int 1  
filestore.resources.limits.cpu string "2"  
filestore.resources.limits.memory string "1Gi"  
filestore.resources.requests.cpu string "100m"  
filestore.resources.requests.memory string "250Mi"  
filestore.service.externalPort int 80  
filestore.service.name string "filestore"  
filestore.service.type string "ClusterIP"  
filestore.tolerations list []  
filestore.volumeMounts list []  
filestore.volumes list []  
global.alfrescoRegistryPullSecrets string "quay-registry-secret"  
global.strategy.rollingUpdate.maxSurge int 1  
global.strategy.rollingUpdate.maxUnavailable int 0  
imagemagick.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.imagemagick.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.imagemagick.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
imagemagick.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
imagemagick.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
imagemagick.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
imagemagick.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
imagemagick.autoscaling.enabled bool false Toggle imagemagick autoscaling
imagemagick.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
imagemagick.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
imagemagick.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
imagemagick.enabled bool true  
imagemagick.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
imagemagick.image.internalPort int 8090  
imagemagick.image.pullPolicy string "IfNotPresent"  
imagemagick.image.repository string "quay.io/alfresco/alfresco-imagemagick"  
imagemagick.image.tag string "5.1.2"  
imagemagick.livenessProbe.initialDelaySeconds int 10  
imagemagick.livenessProbe.livenessPercent int 150  
imagemagick.livenessProbe.livenessTransformPeriodSeconds int 600  
imagemagick.livenessProbe.maxTransformSeconds int 900  
imagemagick.livenessProbe.maxTransforms int 10000  
imagemagick.livenessProbe.path string "/live"  
imagemagick.livenessProbe.periodSeconds int 20  
imagemagick.livenessProbe.timeoutSeconds int 10  
imagemagick.nodeSelector object {}  
imagemagick.podAnnotations object {}  
imagemagick.podLabels object {}  
imagemagick.podSecurityContext.runAsNonRoot bool true  
imagemagick.podSecurityContext.runAsUser int 33002  
imagemagick.readinessProbe.initialDelaySeconds int 20  
imagemagick.readinessProbe.path string "/ready"  
imagemagick.readinessProbe.periodSeconds int 30  
imagemagick.readinessProbe.timeoutSeconds int 10  
imagemagick.replicaCount int 2  
imagemagick.resources.limits.cpu string "4"  
imagemagick.resources.limits.memory string "4Gi"  
imagemagick.resources.requests.cpu string "250m"  
imagemagick.resources.requests.memory string "250Mi"  
imagemagick.service.externalPort int 80  
imagemagick.service.name string "imagemagick"  
imagemagick.service.type string "ClusterIP"  
imagemagick.tolerations list []  
imagemagick.volumeMounts list []  
imagemagick.volumes list []  
libreoffice.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.libreoffice.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.libreoffice.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
libreoffice.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
libreoffice.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
libreoffice.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
libreoffice.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
libreoffice.autoscaling.enabled bool false Toggle libreoffice autoscaling
libreoffice.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
libreoffice.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
libreoffice.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
libreoffice.enabled bool true  
libreoffice.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
libreoffice.image.internalPort int 8090  
libreoffice.image.pullPolicy string "IfNotPresent"  
libreoffice.image.repository string "quay.io/alfresco/alfresco-libreoffice"  
libreoffice.image.tag string "5.1.2"  
libreoffice.livenessProbe.initialDelaySeconds int 10  
libreoffice.livenessProbe.livenessPercent int 250  
libreoffice.livenessProbe.livenessTransformPeriodSeconds int 600  
libreoffice.livenessProbe.maxTransformSeconds int 1800  
libreoffice.livenessProbe.maxTransforms int 99999  
libreoffice.livenessProbe.path string "/live"  
libreoffice.livenessProbe.periodSeconds int 20  
libreoffice.livenessProbe.timeoutSeconds int 10  
libreoffice.nodeSelector object {}  
libreoffice.podAnnotations object {}  
libreoffice.podLabels object {}  
libreoffice.podSecurityContext.runAsNonRoot bool true  
libreoffice.podSecurityContext.runAsUser int 33003  
libreoffice.readinessProbe.initialDelaySeconds int 20  
libreoffice.readinessProbe.path string "/ready"  
libreoffice.readinessProbe.periodSeconds int 30  
libreoffice.readinessProbe.timeoutSeconds int 10  
libreoffice.replicaCount int 2  
libreoffice.resources.limits.cpu string "4"  
libreoffice.resources.limits.memory string "4Gi"  
libreoffice.resources.requests.cpu string "250m"  
libreoffice.resources.requests.memory string "500Mi"  
libreoffice.service.externalPort int 80  
libreoffice.service.name string "libreoffice"  
libreoffice.service.type string "ClusterIP"  
libreoffice.tolerations list []  
libreoffice.volumeMounts list []  
libreoffice.volumes list []  
messageBroker.existingConfigMap.keys.url string "BROKER_URL"  
messageBroker.existingConfigMap.name string nil Alternatively, provide message broker URL via an existing ConfigMap
messageBroker.existingSecret.keys.password string "BROKER_PASSWORD"  
messageBroker.existingSecret.keys.user string "BROKER_USERNAME"  
messageBroker.existingSecret.name string nil Alternatively, provide message broker credentials via an existing Secret
messageBroker.password string nil Activemq password
messageBroker.url string nil Activemq connection url (e.g. failover:(nio://my-broker:61616)?timeout=3000&jms.useCompression=true)
messageBroker.user string nil Activemq username
pdfrenderer.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.pdfrenderer.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.pdfrenderer.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
pdfrenderer.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
pdfrenderer.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
pdfrenderer.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
pdfrenderer.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
pdfrenderer.autoscaling.enabled bool false Toggle pdfrenderer autoscaling
pdfrenderer.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
pdfrenderer.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
pdfrenderer.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
pdfrenderer.enabled bool true  
pdfrenderer.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
pdfrenderer.image.internalPort int 8090  
pdfrenderer.image.pullPolicy string "IfNotPresent"  
pdfrenderer.image.repository string "quay.io/alfresco/alfresco-pdf-renderer"  
pdfrenderer.image.tag string "5.1.2"  
pdfrenderer.livenessProbe.initialDelaySeconds int 10  
pdfrenderer.livenessProbe.livenessPercent int 150  
pdfrenderer.livenessProbe.livenessTransformPeriodSeconds int 600  
pdfrenderer.livenessProbe.maxTransformSeconds int 1200  
pdfrenderer.livenessProbe.maxTransforms int 10000  
pdfrenderer.livenessProbe.path string "/live"  
pdfrenderer.livenessProbe.periodSeconds int 20  
pdfrenderer.livenessProbe.timeoutSeconds int 10  
pdfrenderer.nodeSelector object {}  
pdfrenderer.podAnnotations object {}  
pdfrenderer.podLabels object {}  
pdfrenderer.podSecurityContext.runAsNonRoot bool true  
pdfrenderer.podSecurityContext.runAsUser int 33001  
pdfrenderer.readinessProbe.initialDelaySeconds int 20  
pdfrenderer.readinessProbe.path string "/ready"  
pdfrenderer.readinessProbe.periodSeconds int 30  
pdfrenderer.readinessProbe.timeoutSeconds int 10  
pdfrenderer.replicaCount int 2  
pdfrenderer.resources.limits.cpu string "2"  
pdfrenderer.resources.limits.memory string "2Gi"  
pdfrenderer.resources.requests.cpu string "100m"  
pdfrenderer.resources.requests.memory string "250Mi"  
pdfrenderer.service.externalPort int 80  
pdfrenderer.service.name string "pdfrenderer"  
pdfrenderer.service.type string "ClusterIP"  
pdfrenderer.tolerations list []  
pdfrenderer.volumeMounts list []  
pdfrenderer.volumes list []  
serviceAccount.annotations object {}  
serviceAccount.automount bool true  
serviceAccount.create bool true  
serviceAccount.name string ""  
tags.ci bool false Enable dependencies required for CI. Do not enable.
tika.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.tika.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.tika.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
tika.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
tika.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
tika.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
tika.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
tika.autoscaling.enabled bool false Toggle tika autoscaling
tika.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
tika.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
tika.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
tika.enabled bool true  
tika.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
tika.image.internalPort int 8090  
tika.image.pullPolicy string "IfNotPresent"  
tika.image.repository string "quay.io/alfresco/alfresco-tika"  
tika.image.tag string "5.1.2"  
tika.livenessProbe.initialDelaySeconds int 30  
tika.livenessProbe.livenessPercent int 400  
tika.livenessProbe.livenessTransformPeriodSeconds int 600  
tika.livenessProbe.maxTransformSeconds int 1800  
tika.livenessProbe.maxTransforms int 10000  
tika.livenessProbe.path string "/live"  
tika.livenessProbe.periodSeconds int 20  
tika.livenessProbe.timeoutSeconds int 10  
tika.nodeSelector object {}  
tika.podAnnotations object {}  
tika.podLabels object {}  
tika.podSecurityContext.runAsNonRoot bool true  
tika.podSecurityContext.runAsUser int 33004  
tika.readinessProbe.initialDelaySeconds int 30  
tika.readinessProbe.path string "/ready"  
tika.readinessProbe.periodSeconds int 30  
tika.readinessProbe.timeoutSeconds int 10  
tika.replicaCount int 2  
tika.resources.limits.cpu string "4"  
tika.resources.limits.memory string "4Gi"  
tika.resources.requests.cpu string "250m"  
tika.resources.requests.memory string "600Mi"  
tika.service.externalPort int 80  
tika.service.name string "tika"  
tika.service.type string "ClusterIP"  
tika.tolerations list []  
tika.volumeMounts list []  
tika.volumes list []  
transformmisc.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-misc.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-misc.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
transformmisc.autoscaling.behavior.scaleDown.policies list [{"periodSeconds":60,"type":"Pods","value":1}] list of available policies for scaling down scale down either by one pod or by destroying 25% of the pods (whichever is smaller)
transformmisc.autoscaling.behavior.scaleDown.stabilizationWindowSeconds int 60  
transformmisc.autoscaling.behavior.scaleUp.policies list [{"periodSeconds":60,"type":"Percent","value":50},{"periodSeconds":60,"type":"Pods","value":2}] list of available policies for scaling up scale up either by one pod or by adding 50% more pods (whichever is bigger)
transformmisc.autoscaling.behavior.scaleUp.stabilizationWindowSeconds int 30  
transformmisc.autoscaling.enabled bool false Toggle transformmisc autoscaling
transformmisc.autoscaling.maxReplicas int 3 maximum number of replicas to spin up within the replicaset
transformmisc.autoscaling.metrics list [{"resource":{"name":"cpu","target":{"averageUtilization":75,"type":"Utilization"}},"type":"Resource"}] a list of resource the HPA controller should monitor For more details check https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-resource-metrics
transformmisc.autoscaling.minReplicas int 1 minimum number of replicas to spin up within the replicaset
transformmisc.enabled bool true  
transformmisc.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
transformmisc.image.internalPort int 8090  
transformmisc.image.pullPolicy string "IfNotPresent"  
transformmisc.image.repository string "quay.io/alfresco/alfresco-transform-misc"  
transformmisc.image.tag string "5.1.2"  
transformmisc.livenessProbe.initialDelaySeconds int 10  
transformmisc.livenessProbe.livenessPercent int 400  
transformmisc.livenessProbe.livenessTransformPeriodSeconds int 600  
transformmisc.livenessProbe.maxTransformSeconds int 1800  
transformmisc.livenessProbe.maxTransforms int 10000  
transformmisc.livenessProbe.path string "/live"  
transformmisc.livenessProbe.periodSeconds int 20  
transformmisc.livenessProbe.timeoutSeconds int 10  
transformmisc.nodeSelector object {}  
transformmisc.podAnnotations object {}  
transformmisc.podLabels object {}  
transformmisc.podSecurityContext.runAsNonRoot bool true  
transformmisc.podSecurityContext.runAsUser int 33006  
transformmisc.readinessProbe.initialDelaySeconds int 20  
transformmisc.readinessProbe.path string "/ready"  
transformmisc.readinessProbe.periodSeconds int 30  
transformmisc.readinessProbe.timeoutSeconds int 10  
transformmisc.replicaCount int 2  
transformmisc.resources.limits.cpu string "2"  
transformmisc.resources.limits.memory string "2Gi"  
transformmisc.resources.requests.cpu string "100m"  
transformmisc.resources.requests.memory string "250Mi"  
transformmisc.service.externalPort int 80  
transformmisc.service.name string "transformmisc"  
transformmisc.service.type string "ClusterIP"  
transformmisc.tolerations list []  
transformmisc.volumeMounts list []  
transformmisc.volumes list []  
transformrouter.affinity string "podAntiAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 10\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-router.name\" . }}\n topologyKey: topology.kubernetes.io/zone\n - weight: 5\n podAffinityTerm:\n labelSelector:\n matchExpressions:\n - key: app\n operator: In\n values:\n - {{ template \"alfresco-transform-service.transform-router.name\" . }}\n topologyKey: app.kubernetes.io/name" Pod affinity, passed thru tpl function
transformrouter.enabled bool true  
transformrouter.environment.JAVA_OPTS string "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"  
transformrouter.image.internalPort int 8095  
transformrouter.image.pullPolicy string "IfNotPresent"  
transformrouter.image.repository string "quay.io/alfresco/alfresco-transform-router"  
transformrouter.image.tag string "4.1.2"  
transformrouter.livenessProbe.initialDelaySeconds int 20  
transformrouter.livenessProbe.path string "/actuator/health"  
transformrouter.livenessProbe.periodSeconds int 30  
transformrouter.livenessProbe.timeoutSeconds int 10  
transformrouter.nodeSelector object {}  
transformrouter.podAnnotations object {}  
transformrouter.podLabels object {}  
transformrouter.podSecurityContext.runAsNonRoot bool true  
transformrouter.podSecurityContext.runAsUser int 33016  
transformrouter.readinessProbe.initialDelaySeconds int 20  
transformrouter.readinessProbe.path string "/actuator/health"  
transformrouter.readinessProbe.periodSeconds int 60  
transformrouter.readinessProbe.timeoutSeconds int 10  
transformrouter.replicaCount int 2  
transformrouter.resources.limits.cpu string "1"  
transformrouter.resources.limits.memory string "1Gi"  
transformrouter.resources.requests.cpu string "100m"  
transformrouter.resources.requests.memory string "250Mi"  
transformrouter.service.externalPort int 80  
transformrouter.service.name string "transform-router"  
transformrouter.service.type string "ClusterIP"  
transformrouter.tolerations list []  
transformrouter.volumeMounts list []  
transformrouter.volumes list []  

diff --git a/charts/alfresco-transform-service/docs/autoscaling.html b/charts/alfresco-transform-service/docs/autoscaling.html new file mode 100644 index 00000000..3fd9011b --- /dev/null +++ b/charts/alfresco-transform-service/docs/autoscaling.html @@ -0,0 +1,4 @@ + Autoscaling | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Alfresco Transform Service auto scaling

This document describes auto scaling principles implemented in this Helm chart.

This document do not explain how to setup Kubernetes worker nodes auto-scaling. That is a completely different topic which can be addressed in different ways and is up to the Kubernetes administrator.

Horizontal Pod Auto scaling

For general concepts about HPA please refer to official Kubernetes documentation.

Tengine pods auto scaling is disabled by default. If you want to enable it you need to use the additional value:

tengine:
+  autoscaling:
+    enabled: true
+

Where tengine is one of imagemagick, libreoffice, transformmisc, tika or pdfrenderer.

The default configuration implemented in this chart aims at being able to cope with peak load or spare resources on low level of utilization while also minimizing the number of scaling events because changing the cluster topology means additional computation.

Default behaviour

Without any further configuration scaling would happen as follow:

  • Cluster would spin up new pods every minute if the current average pods’ load remains above 75% CPU usage on average during 30 seconds.
  • Cluster would spin up no more than 2 pods or 50% more pods of the existing replicas (whichever is bigger) per minute.
  • There would never be more than 3 replicas in the Replicaset
  • There would never be less than 1 replicas in the Replicaset
  • Cluster would remove one pod at most if the CPU load get consistently below 75% on average for 5 minutes.
  • Cluster would kill pod only one after the other within a minute.

CPU utilization/load is calculated with regards to the CPU resource request setting (.resources.requests.cpu) which is now set to 1 CPU by default.

Customizing auto scaling

The values and behaviour exposed above are defaults we think are sensible to start with. Of course they will not fit every single deployment/installation of Alfresco on Kubernetes.

Below are ways to tweak the auto scaling behaviour for your own setup.

Settings the CPU resources correctly

CPU Resources request is the basis of calculation for the cluster to trigger scaling events. It is then very important to make sure it is set appropriately before enabling auto scaling. Imagine you have a production Kubernetes cluster with large worker nodes (say 3 * 32 CPU nodes). Having CPU requests set to 1 would most likely make the cluster spin up new pods very quickly. Instead it would be better to ensure your tengine pods have a sensible .resources.requests.cpu value set to say 4. Also you should note that the very same .resources.requests.cpu value is used by the Kubernetes scheduler, so setting it too high is not a good idea either. It should be set to a value which will allow pods to be scheduled on worker nodes alongside other pods.

default .resources.limits.cpu is set to 4 CPU so you will also want to increase this value to something like 12.

Just by setting a sensible .resources.requests.cpu the auto scaling behaviour would already make much more sense given the worker nodes’ size.

Configuring the auto scaling behaviour

The autoscaling.* values below can be fined tuned. There a few things to take int account when changing those as explained:

  • .minReplicas: This parameter is used to limit the lowest number of replicas
  • .maxReplicas: This parameter is used to limit the highest number of replicas
  • .behavior.scaleUp.stabilizationWindowSeconds: This parameter is used to avoid flapping replicasets. A very short peak load is not worth a scale up. So you surely want to avoid scaling without making sure the load has increased consistently and scale up needs to happen. That parameter tells for how long the load should be over target before the HPA controller decides to increase the number of replicas. The shorter this value, the more likely you are to spin up pods for short peak workload, so the pod could even be ready after the load is actually back to normal. Setting this too low when CPU resources requests is set to 1 is counter productive as it’s pretty easy to make 1 CPU busy.
  • .behavior.scaleDown.stabilizationWindowSeconds: This parameter is used in the same manner as for scale up events. One notable difference though is that scaling down has an immediate effect on the way the application handles the workload while scaling up is more expensive as pods need to startup before it can actually start handling requests. For that reason we think one should always be more cautious when brining the number of replica down. You probably want to avoid taking pods down too quickly if your workload is not very consistent.
  • `.behavior.scaleUp.policies[]:
    • .periodSeconds: The faster an individual tengine pod is to startup (Tomcat complete startup) the lower this parameter can be. 60s appeared a good value for startup times around 90s. The lower this parameter the faster new pods can be spun up and the faster peak load can be handled.
    • .type & value: For exact details on setting this part of the auto scaler policy check the kubernetes doc. Policies let you define the way you want to act upon scaling events. For scale up events, if you know your load peak are steep (but consistent) then you will want to scale the replicaset by more pods than if you load is growing more slowly.

diff --git a/docs/build-your-own-charts.html b/docs/build-your-own-charts.html index baff099d..56ae5fec 100644 --- a/docs/build-your-own-charts.html +++ b/docs/build-your-own-charts.html @@ -1,4 +1,4 @@ - Build your own charts | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Building your Content platform architecture with Alfresco charts

The alfresco-common library chart

Alfresco charts depend on a common library chart called alfresco-common. This chart provides a set of named templates one can use in order to build his own content platform chart.

Named templates are reusable functions that can only return strings and always take a single argument, which eventually can be an object. For example the URL helper file provides functions to extract various elements from a given URL. For example:

  • {{ template "alfresco-common.url.scheme" "https://hub.alfresco.com/" }} will return “https”
  • {{ template "alfresco-common.url.port" "https://hub.alfresco.com/" }} will return “443”

Check out the dedicated Chart documentation to get a more comprehensive list of named templates the chart offers.

Alfresco components charts

The individual Alfresco components’ chart are meant to be configurable and reusable. They do not provide a working system on their own and need to be either used from an “umbrella chart” or be given additional details about other components they interact with in order to actually deliver the service they are meant to deliver. For example the alfresco-repository chart needs to have a database to initialize its content repository.

This document explains what are the options you can leverage to “pipe” an Alfresco chart with another or with an external service.

Understanding the Alfresco Content platform

Before you begin, make sure you do understand the Alfresco Content platform and its components so you know exactly what you need or do not need.

⚠️TODO: create chart diagram showing dependencies and level of dependencies

Creating your Alfresco platform

There are numerous ways to create your own Alfresco deployment and the component charts hosted in this repository can be used as building blocks for this purpose. Depending on preferences you may want to use Terraform, Kustomize or simply wrap the component charts into an “umbrella chart”.

Here we’ll focus on the later option but the same configuration principles apply to other methods.

In the example below we’ll go through the process of integrating an ACS content platform made of:

  • Alfresco content repository
  • A database that hosted outside of the kubernetes cluster

Below example also present using an “umbrella” Helm chart but most of the same approach is applicable to other deployment method as explained above.

Declaring chart as dependency

Helm provides a mechanism to declare dependencies and re-use existing charts.

We’ll start by initializing a chart and declare the dependency to the alfresco-repository chart.

helm create myecmplatform && cd $_
+            Build your own charts | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Building your Content platform architecture with Alfresco charts

The alfresco-common library chart

Alfresco charts depend on a common library chart called alfresco-common. This chart provides a set of named templates one can use in order to build his own content platform chart.

Named templates are reusable functions that can only return strings and always take a single argument, which eventually can be an object. For example the URL helper file provides functions to extract various elements from a given URL. For example:

  • {{ template "alfresco-common.url.scheme" "https://hub.alfresco.com/" }} will return “https”
  • {{ template "alfresco-common.url.port" "https://hub.alfresco.com/" }} will return “443”

Check out the dedicated Chart documentation to get a more comprehensive list of named templates the chart offers.

Alfresco components charts

The individual Alfresco components’ chart are meant to be configurable and reusable. They do not provide a working system on their own and need to be either used from an “umbrella chart” or be given additional details about other components they interact with in order to actually deliver the service they are meant to deliver. For example the alfresco-repository chart needs to have a database to initialize its content repository.

This document explains what are the options you can leverage to “pipe” an Alfresco chart with another or with an external service.

Understanding the Alfresco Content platform

Before you begin, make sure you do understand the Alfresco Content platform and its components so you know exactly what you need or do not need.

⚠️TODO: create chart diagram showing dependencies and level of dependencies

Creating your Alfresco platform

There are numerous ways to create your own Alfresco deployment and the component charts hosted in this repository can be used as building blocks for this purpose. Depending on preferences you may want to use Terraform, Kustomize or simply wrap the component charts into an “umbrella chart”.

Here we’ll focus on the later option but the same configuration principles apply to other methods.

In the example below we’ll go through the process of integrating an ACS content platform made of:

  • Alfresco content repository
  • A database that hosted outside of the kubernetes cluster

Below example also present using an “umbrella” Helm chart but most of the same approach is applicable to other deployment method as explained above.

Declaring chart as dependency

Helm provides a mechanism to declare dependencies and re-use existing charts.

We’ll start by initializing a chart and declare the dependency to the alfresco-repository chart.

helm create myecmplatform && cd $_
 

Edit the Chart.yaml to give the chart a sensible description, a version and optionally specify the version of your content platform. Then declare the dependency as shown below:

dependencies:
   - name: alfresco-repository
     version: 0.1.0
diff --git a/docs/guides/alfresco-process.html b/docs/guides/alfresco-process.html
index db454861..1174b89b 100644
--- a/docs/guides/alfresco-process.html
+++ b/docs/guides/alfresco-process.html
@@ -1 +1 @@
-            Process Services | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied          
+            Process Services | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied          
diff --git a/docs/guides/alfresco-repository.html b/docs/guides/alfresco-repository.html
index 7476b9e0..5eec72a2 100644
--- a/docs/guides/alfresco-repository.html
+++ b/docs/guides/alfresco-repository.html
@@ -1 +1 @@
-            Repository | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied          
+            Repository | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied          
diff --git a/docs/guides/alfresco-transform-service.html b/docs/guides/alfresco-transform-service.html
new file mode 100644
index 00000000..17af2240
--- /dev/null
+++ b/docs/guides/alfresco-transform-service.html
@@ -0,0 +1 @@
+            Alfresco Transform Service | Alfresco Helm Charts Documentation                 Skip to main content   Link      Menu      Expand       (external link)    Document      Search       Copy       Copied        

Table of contents


diff --git a/docs/guides/index.html b/docs/guides/index.html index 39383f22..e8210e2a 100644 --- a/docs/guides/index.html +++ b/docs/guides/index.html @@ -1 +1 @@ - Guides | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

This section groups all the available guides tailored to achieve specific use cases with the Helm charts.


Table of contents


+ Guides | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

This section groups all the available guides tailored to achieve specific use cases with the Helm charts.


Table of contents


diff --git a/docs/reference.html b/docs/reference.html index 24713f9c..99694bc1 100644 --- a/docs/reference.html +++ b/docs/reference.html @@ -1 +1 @@ - Charts Reference | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied + Charts Reference | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied diff --git a/index.html b/index.html index 5c379330..d0904f99 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ - Home | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Alfresco Helm Charts

This website contains user documentation for the independent and lightweight Helm charts for Alfresco Content Services platform that can be used as building blocks by devops teams to build the Content Services platform that match the organization needs.

Check the acs-deployment repository for an example of how to leverage these charts on an umbrella chart.

If you want to understand what are the principles to leverage in order to build on top of Alfresco components’ chart please refer to the Build your own charts section.

Each individual chart has its own autogenerated reference documentation in charts. Default values are documented there.

There is also a section for guides describing how to cover specific use cases.


+ Home | Alfresco Helm Charts Documentation Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Alfresco Helm Charts

This website contains user documentation for the independent and lightweight Helm charts for Alfresco Content Services platform that can be used as building blocks by devops teams to build the Content Services platform that match the organization needs.

Check the acs-deployment repository for an example of how to leverage these charts on an umbrella chart.

If you want to understand what are the principles to leverage in order to build on top of Alfresco components’ chart please refer to the Build your own charts section.

Each individual chart has its own autogenerated reference documentation in charts. Default values are documented there.

There is also a section for guides describing how to cover specific use cases.