This blog is focused on the installation of AMCOP Release 2.1 on any existing Kubernetes deployment using AMCOP Operator. See demo here.
Pre-requisites:
A Kubernetes cluster, which will host AMCOP deployment. AMCOP is validated to work with a minimal single node all-in-one cluster with following hardware configuration
- 8 vCPUs, 32 GB RAM and 80 GB SSD
Storage Class:
AMCOP requires usage of persistent volumes to manage stateful information. These persistent volumes are required to be provided by a default storage class configured with a persistent volume provisioner, more details are available at kubernetes storage class.
Check if there is already a default storage class available in your kubernetes cluster
kubectl get storageclass
If you’re using public cloud, chances are you’ll already be having a default storage class.
Otherwise for the deployment you can proceed with the following to create your own storage class with persistent volume provisioner, where persistent volumes will be backed by local SSD.
kubectl apply -f https://aarna-network.gitlab.io/amcop-deployment/amcop-k8s-operator/storage.yaml
AMCOP Operator:
Once availability of storage class is ensured, we will roll out AMCOP Operator itself
kubectl apply -f https://aarna-networks.gitlab.io/amcop-deployment/amcop-k8s-operator/v2.1.0/operator.yaml
This will deploy the AMCOP Operator deployment along with necessary constructs for RBAC and CRD. This AMCOP Operator deployment carries the intelligence about the components required for AMCOP Release 2.1, dependencies between them and information about ordered roll out of these components.
Additionally, it introduces the Custom Resource Definition (CRD) for defining properties of AMCOP deployment
- Enabling disabling certain components
- Choosing specific storage class instead of the default
AMCOP Custom Resource:
Once AMCOP operator deployment is available, you can now use the Custom Resource of type Installer to customize AMCOP deployment.
apiVersion: amcop.aarnanetworks.com/v1alpha1
kind: Installer
metadata:
name: default
spec:
db:
persistent:
storageClass: ""
debug: enable
cds: enable
In Most of the cases, you will not require to change these parameters and can safely execute creation of Custom Resource using following
kubectl apply -f https://aarna-networks.gitlab.io/amcop-deployment/amcop-k8s-operator/v2.1.0/default.yaml
Upon creation of this Custom Resource, AMCOP Operator starts deployment of various AMCOP components in a staged manner. Progress of deployment can be monitored by watching kubernetes pods in amcop-system namespace or by watching the status of Custom Resource itself.
kubectl get installer.amcop
Over time, when all the components of AMCOP are rolled out successfully. The status of deployment will change from “RollingOut” to “Deployed”, beyond this you can then start using AMCOP.
See a recording of the technical meetup that covered this topic in more depth along with a hands-on demo. If you would like to replicate any of this work in your environment, please contact us.
Interested in an AMCOP presentation and demo meeting? Let us know at [email protected] and we can schedule it.