Alfresco Community Kubernetes Deployment CLI using Helm and Docker Desktop or Kubernetes In Docker (KinD) cluster.
Additional details are available in ACS Deployment.
Requires separate install of kubectl and Helm.
Apply following configurations to Docker Desktop settings:
Settings > Resources > Advanced > Memory: 16 GB
Settings > Kubernetes > Enable Kubernetes: ON
After changing the necessary settings Apply and restart
the docker desktop.
Take a look to the KinD quickstart to learn how to install the binary cli on your machine and to learn briefly the main commands that you can run.
Apply following configurations to Docker Desktop settings:
Settings > Resources > Advanced > Memory: 16 GB
Settings > Kubernetes > Enable Kubernetes: OFF
After changing the necessary settings Apply and restart
the docker desktop.
Download the binary compiled for your architecture (Linux, Windows or Mac OS) from Releases.
You may rename the binary to
alf-k8s
, all the following samples are using this command name by default.
Using -h
flag provides detail on the use of the different commands available.
Create
Create
command produces required assets to deploy Alfresco Community in Kubernetes.
$ ./alf-k8s create -h
Create assets to deploy Alfresco in Kubernetes
Usage:
alf-k8s create [flags]
Flags:
--docker-user string Username for Docker Hub
--docker-password string Password for username in Docker Hub
-h, --help help for create
-i, --interactive Input values replying to command line prompts instead of using command line parameters
-k, --kubernetes string Kubernetes cluster: docker-desktop (default) or kind
-o, --output string Local Directory to write produced assets, 'output' by default
-p, --password string Password for Alfresco admin user
-t, --tls Enable TLS protocol for ingress
-v, --version string Version of ACS to be deployed (23.1 or 23.2)
Using
docker-user
anddocker-password
is recommended to avoid quota restrictions from Docker Hub when usingkind
as Kubernetes cluster
Using command line parameters
Run the command selecting the Alfresco Community version to be deployed . Additional options can be set using any parameter value from flags list.
$ ./alf-k8s create -v 23.2
The previous command uses Docker Desktop as Kubernetes cluster, add
-k kind
to use kind instead.
Replying to prompts
Run the command using interactive mode.
$ ./alf-k8s create -i
? Which ACS version do you want to use? 23.2
? What Kubernetes cluster do you want to use? docker-desktop
? Do you want to use HTTPs for Ingress? No
? Choose the password for your admin user admin
Even when using interactive mode, output directory can be specified using the
-o
flag.
Output folder
Kubernetes assets will be produced by default in output
folder:
$ tree output
output
├── common.sh
├── custom
│ ├── Chart.yaml
│ └── templates
│ └── configmap-repo.yaml
├── start.sh
├── stop.sh
└── values
├── community_values.yaml
├── resources_values.yaml
└── version_values.yaml
Alfresco can be deployed to Kubernetes (only in Mac OS or Linux) using provided shell script:
$ cd output
$ ./start.sh
...
You can access all components of Alfresco Content Services using the same root address, but different paths as follows:
Content: http://localhost/alfresco
Share: http://localhost/share
API-Explorer: http://localhost/api-explorer
Alfresco Digital Workspace: http://localhost/workspace/
Once the deployment has been tested, resources can be released using the following shell script:
$ ./stop.sh
release "acs" uninstalled
namespace "alfresco" deleted
release "ingress-nginx" uninstalled
namespace "ingress-nginx" deleted
The easiest way to troubleshoot issues on a Kubernetes deployment is to use the Lens desktop application, which is available for Mac, Windows and Linux. Follow the getting started guide to configure your environment.
Alternatively, the traditional Kubernetes dashboard can also be used. Presuming you have deployed the dashboard in the cluster you can use the following steps to explore your deployment:
-
Retrieve the service account token with the following command:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')
-
Run the kubectl proxy:
kubectl proxy &
-
Open a browser and navigate to:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
-
Select "Token", enter the token retrieved in step 1 and press the "Sign in" button
-
Select "alfresco" from the "Namespace" drop-down menu, click the "Pods" link and click on a pod name