Which technologies does the Entando Operator use and where can I learn more about it?

Hey guy, I need some info about the Entando Operator. Tech stack, docs, etc.

Entando Operator

With the launch of Entando 6 we introduced the Entando operator. The operator coordinates the installation and communication between components in an Entando application and in some cases across many applications in different namespaces

In some case there is confusion between a Kubernetes operator and an OpenShift operator that uses the OpenShift Operator Framework. In Entando 6.x we do not utilize the OpenShift operator framework or OpenShift sdk in any way. Entando utilizes Kubernetes controllers to manage the lifecycle of an Entando application and its associated microservices. Kubernetes controllers are supported on all kubernetes platforms including OpenShift 3.11 and 4. This same controller functionality is utilized by many applications running on OpenShift 3.11 outside of Entando as well.

On Permissions

By default an Entando application and the Kubernetes controllers are namespace scoped and their access levels are managed by service accounts. The installation of the custom resource definitions is done at the cluster level which is normal for CRDs and doesn’t install any running software in the cluster but makes APIs available in namespaces that contain Entando applications. This is a standard kubernetes pattern.

Technical Details

The concept of an Operator is not specific to OpenShift. An Operator in Kubernetes is a pattern of using listeners and controllers to take action based on the availability of resources in the cluster or in specific namespaces.

However, OpenShift provides the OpenShift Operator Framework and OpenShift Operator SDK (which are in tech preview on 3.11). Entando does not utilize those OpenShift specific frameworks or SDKs. Instead we use APIs that are fully supported across different types of Kubernetes frameworks.

Here is more documentation on custom resources and the operator pattern in Kuberntes

And here is a link to the source for some of the Entando operator implementation and some of the controllers

1 Like