The new deployment using Kubernetes + Helm

Document created by alfresco Employee on Apr 9, 2018Last modified by fcorti on May 4, 2018
Version 30Show Document
  • View in full screen mode

In this quest of the Early Access Program, we would like to drive you through the installation on Kubernetes through the Helm charts as alternative to the Docker deployment. As you probably know, the Kubernetes+Helm deployment is recommended for production environments and Docker deployment is recommended for development/tests environments only.


The main goal of this quest is to let you try the installation path and hear your feedback on this modern approach of deploying Alfresco. For further details about the ACS deployment, check the GitHub repository here.


Please leave a comment to this document, after you will have completed the following tasks into your environment.



Before you start


The Alfresco Content Services build using Kubernetes (or docker-compose) contains:

  • Repository:
    • Alfresco Share Services AMP.
    • Alfresco Office Service (AOS).
    • Alfresco vti-bin WAR (part of AOS integration).
    • Alfresco Google Docs AMP.
  • Alfresco Share.
    • Alfresco Google Docs Share AMP.
  • Postgres database.
  • Alfresco Search Services (Solr 6).




We will be using Minikube to demonstrate how you can deploy the Alfresco Content Services helm charts. To use the Alfresco Content Services 6.0 reference deployment, you need to install the following software:

  • Docker v17.0.9.1.
  • Minikube v0.25.0. Needed to run Kubernetes locally.
  • Helm v2.7.0. Package manager for Kubernetes clusters. Helm package is a Helm Chart.


If you need a tutorial providing details on creating and running a Kubernetes cluster both locally for development (using Minikube) and remotely on AWS (using kops) check: alfresco-anaxes-shipyard/ at master · Alfresco/alfresco-anaxes-shipyard · GitHub 

Minikube is recommended to try the deployment in your local development environment, being a lightweight tooling that makes it easy to run Kubernetes locally. Minikube option is only useful for test purposes and it won't be supported. With the final release you will be able to choose to deploy the infrastructure to support Alfresco Content Services to the cloud using AWS too.


Step 1 - Verifying Minikube setup


Setting up and starting up minikube may be a little bit different depending on the environment you are working with. We recommend to go through the official documentation, to verify everything is working properly. Ensure that you:

  • Run Minikube with at least 8GB of RAM.
  • Verify Minikube version is 0.25.


Please complete step 1 described here before moving to the next task.


Step 2 - Installing the ingress service


Typically, services and pods (the smallest deployable object in the Kubernetes object model) have IPs only routable by the cluster network. All traffic that ends up at an edge router is either dropped or forwarded elsewhere. An Ingress is a collection of rules that allow inbound connections to reach the cluster services. In this task you are going to install the ingress service and retrieve the full URL for future use.


Please complete step 2 described here before moving to the next task. As output  you should define an URL similar to http://<minikube_ip>:<ingress_port>.


Step 3 - Adding the alfresco incubator helm repository


In this task you are going to download and install the Helm charts for the public repository.


Please complete step 3 described here before moving to the next task.


Step 4 - Deploying Alfresco Content Services


When you install Alfresco Content Services from the alfresco helm repository, you don't need to download any code locally. All the charts will be picked up from the helm repository.


As a final task, complete step 4 described here.


Please remember to use here the right URL of the ingress service, as previously installed in step 2.


Checking that ACS is up and running


The fastest and easier way to check your installation (and startup) is through the dashboard. To run the dashboard, open a terminal and run the following command.

minikube dashboard


This command will open a browser session with the Kubernetes dashboard into it. Click on the following items to check their status.

  • Deployments providing declarative updates for Pods and ReplicaSets.
  • Pods as groups of one or more containers.
  • Services as an abstraction which defines a logical set of pods and a policy by which to access them.


In every list you should see a green light for each listed item. To check the logs, click on the logs icon of each pod in the pods page.


After the deployment, the startup will require some minutes to be completed. Only when all the check will be green for the pods, move to the next step.


Accessing the services 


During the execution of step 4 (deploying Alfresco Content Services) you should see something like:


Content: http://<minikube_ip>:<ingress_port>/alfresco
Share: http://<minikube_ip>:<ingress_port>/share
Solr: http://<minikube_ip>:<ingress_port>/solr


At this point you should be able to open your browser to those addresses and check that alfresco, share and solr work fine. As you can see, the URLs are made by: the Cluster IP, the Ingress port, the usual /alfresco, /share, /solr endpoints. The login/password for the administrator profile is always admin.


Cleaning up the deployment


Once you’ve finished looking at the deployment, you can tear it down so that it doesn’t take up memory when working with more deployments. Do reach the goal:


1. List the releases that are currently running:


helm ls


2. Uninstall each release:


helm delete <release-name>


Congratulations! Now you have your environment completely clean and ready to repeat the deployment again, maybe with a different configuration and setup.


Now what?


Please leave feedback on your experience and feedback in deploying Alfresco Content Services 6.0 using Kubernetes through Helm charts.


Continue to the Insight Engine >>

6 people found this helpful