Permalink
Find file Copy path
129 lines (97 sloc) 4.96 KB

Alfresco Content Services Deployment with Helm using Minikube

Prerequisites

To run the Alfresco Content Services (ACS) deployment using Minikube requires:

Component Getting Started Guide
Minikube https://github.com/kubernetes/minikube
Kubectl https://kubernetes.io/docs/tasks/tools/install-kubectl/
Helm https://docs.helm.sh/using_helm/#quickstart-guide

Starting Minikube VM

  • Allocate at least 16GB RAM (to distribute among the Alfresco Content Services cluster nodes), 2 CPU cores, and 20GB disk space to the Minikube VM:
minikube start --cpus=4 --memory=16000
  • Check that Minikube is running:
minikube version
minikube ip
  • Start the Dashboard to see a web-based user interface of the Minikube cluster:
minikube dashboard

Here's an example start up command for Windows 10. You'll need to have the "My_Virtual_Switch" set up before this first command - see blog:

minikube start --vm-driver="hyperv" --cpus=4 --memory=12000 --hyperv-virtual-switch="My_Virtual_Switch" --v=7 --alsologtostderr

This downloads a Linux ISO and installs it in your Hyper V Manager. You should see a minikube VM, after it's installed. It also installs all the required software in that VM, to simulate a Kubernetes cluster.
You may need to add the --extra-config=kubelet.ImagePullProgressDeadline=30m0s parameter to your start command, as the docker images are rather big.

Note: Although 16GB is the required minimum memory setting, keep in mind that 12GB is lower than the required minimum, and may need to be adapted for your environment.

Initializing Helm

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller

Adding Alfresco incubator Helm repository

  • Add incubator or stable repository to your local Helm.
helm repo add alfresco-incubator http://kubernetes-charts.alfresco.com/incubator
helm repo add alfresco-stable http://kubernetes-charts.alfresco.com/stable
  • Update the repository indexes:
helm repo update
  • Check that the repository was added:
helm repo list

Installing the ingress service

  • Deploy nginx:
helm install stable/nginx-ingress --set rbac.create=true

After running this command remember the name of the ingress deployment, for example: "singed-chipmunk"

Deploying Alfresco Content Services using Helm charts

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. You also have the option to install from the source code, which you'll need to download and modify. Before starting the deployment, gather the required configuration.

  • Get the IP and port of the ingress controller
minikube ip
# It will print something like: 172.31.147.123
kubectl get service singed-chipmunk-nginx-ingress-controller -o jsonpath={.spec.ports[0].nodePort}
# This will print a port like: 30917

Option 1: Deploying Alfresco Content Services from the chart repository

  • Run the following command to deploy Alfresco Content Services using the incubator or stable chart (add the corresponding Helm repository as per this section):
helm install alfresco-incubator/alfresco-content-services --set externalProtocol="http" --set externalHost="172.31.147.123" --set externalPort="30917"

Option 2: Deploying Alfresco Content Services from the source code

If you want to modify the deployment and test it, the best option is to run the deployment from the source code.

git clone git@github.com:Alfresco/acs-deployment.git
cd acs-deployment
  • Update the dependencies required:
cd helm/alfresco-content-services
helm dependency update
cd ..

Note: Make sure you run the command from the correct directory.

  • Run the following command to deploy Alfresco Content Services:
helm install alfresco-content-services --set externalProtocol="http" --set externalHost="172.31.147.123" --set externalPort="30917"

Checking your deployment

After installing Alfresco Content Services, the following URLs are displayed in the terminal:

  Content: http://172.31.147.123:30917/alfresco
  Share: http://172.31.147.123:30917/share
  Solr: http://172.31.147.123:30917/solr

You'll need to wait for some time for the deployment to start up. Use the Minikube dashboard to track the state of the deployment.

Cleaning up your deployment

See clean up steps for more details.