The Domino Platform Operator is a Kubernetes operator that manages the lifecycle of Domino on Kubernetes.
It reads from a custom resource definition (CRD) to understand the desired state of the Domino Platform. It then orchestrates Kubernetes Jobs to install and upgrade Domino using a fleetcommand-agent
image that is coupled with every release version of Domino.
Unlike fleetcommand-agent
, the Platform Operator’s reconciliation logic is not tied to a specific Domino version, so it can be used to upgrade across multiple versions of Domino unless otherwise specified in the release notes. Upgrading the operator itself, however, does not necessitate any downtime for a Domino cluster.
Whenever the Domino
custom resource definition is updated in the cluster, a reconciliation is triggered that evaluates whether the change materially alters the state of the Domino platform (i.e. the version of the agent was changed, the version of the cluster was changed, configuration values were changed, etc.).
If the change is found to be material, the operator will provision a new Kubernetes job that uses the fleetcommand-agent
version set in the Domino
specification with the configuration values mounted from the .spec.config
field.
Note
|
You may recognize the structure of the .spec.config field from previous Domino versions as the domino.yml file or agent.yaml file. More on the configuration options available in the Domino custom resource definition can be found in the configuration reference topic.
|
The operator ships with a companion command line tool named ddlctl
which can be used not only to interact with the Domino
custom resource in your cluster, but also to create and manage the definitions. More information on ddlctl
can be found in the ddlctl section.
As Domino
is reconciled like any other Kubernetes resource, the success or failure of its reconciliation will be reflected in the status.
Let’s look at an example of what this looks like using ddlctl
.
-
With
ddlctl
, you can easily fetch the status ofdomino
in your cluster:$ ddlctl get domino
-
This will parse the conditions of the
domino
resource within thedomino-operator
namespace and report on it in a human readable format:VERSION READY MESSAGE JOB STATE AGENT VERSION DRY RUN SUSPENDED 6.0.0 True job platform-operator-s5lfx succeeded JobSucceeded 6.0.0.catalog-xxxx false false