> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# How it works

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](/6.3/admin/configuration) topic.
</Note>

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](/6.3/admin/installation/platform-operator/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 of `domino` in your cluster:

  ```shell theme={null}
  $ ddlctl get domino
  ```

* This will parse the conditions of the `domino` resource within the `domino-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
  ```
