Skip to content

Percona Everest installation and workflow

This section provides an overview of how Percona Everest is installed, the components involved, and the workflow, from operator installation to database provisioning, backups, and restores.

Percona Everest installation workflow

Starting with Percona Everest v1.4.0, the CLI installation is a wrapper around two helm charts:

The installation flow is as follows:

  1. The everest-core helm chart is installed in the everest-system namespace:

    This step deploys all the core components required for Percona Everest to function.

    Component category Namespace Components
    OLM components everest-olm olm-operator, catalog-operator, package-server, everest-catalog
    Monitoring stack everest-monitoring vm-operator, kube-state-metrics
    Everest components everest-system everest-server, everest-operator
  2. The everest-db-namespace chart is installed in the everest namespace. This chart handles the deployment of database operators using the following workflow:

    1. Creates OLM subscriptions for each of the selected database operators (by default, all supported operators are selected).
    2. OLM reconciles the subscriptions and creates an install plan for each operator.
    3. A Helm hook creates the everest-operators-installer job that waits for the OLM install plan to be created and approves it once created.
    4. OLM reconciles the approved install plan and creates a cluster-service-version for each database operator. The CSV includes all the manifests needed to install the operator. OLM automatically applies these manifests, and the operator is installed.

Configurable installation options

Percona Everest supports several configuration flags for customizing the installation.

Namespace configuration

Flag Description
--namespaces everest Uses the default everest namespace and installs all supported operators (PXC, PSMDB, and PG).
--skip-db-namespace Skips creation of database namespaces.
Example

You can provision multiple database namespaces simultaneously by providing a comma-separated list with the --namespaces flag.

everestctl install --namespaces n1,n2

Operator installation flags

If you want to skip the installation of certain operators, you can use the following flags:

Flag Description
--operator.mongodb=false Skip installing MongoDB operator.
--operator.postgresql=false Skip installing PostgreSQL operator.
--operator.mysql=false Skip installing PXC operator.

Manage namespaces

You can manage database namespaces after the initial installation using the following commands:

everestctl namespaces add [NAMESPACE]
everestctl namespaces update [NAMESPACE]
everestctl namespaces remove [NAMESPACE]

For detailed information on managing namespaces, see the Namespaces management section.

The helm installation method provides an identical flow to the one described above, with similar configuration options. Refer to the helm chart documentation for a complete list of available configuration options.

Percona Everest server and operator workflow

Database creation workflow

Here’s the database creation workflow in Percona Everest:

  1. The Percona Everest user is authenticated and logged in, and a JWT Token is provided.
  2. The user creates a database via the Percona Everest UI, or APl.
  3. The Percona Everest API is invoked to create a new database. The Percona Everest server then creates a DatabaseCluster custom resource on the kubernetes cluster.
  4. In the everest-operator reconciliation loop, once the DatabaseCluster object is recognized, an appropriate custom resource for the database is created, for example, if it’s MySQL, PerconaXtraDBCluster is created.
  5. The database operator takes over the task of creating the database and the necessary objects to manage it.

    Note

    Similar workflows apply to backups, restores, monitoring, and deletions, although the object types may vary.

    All the custom resources connected to Percona Everest follow a similar flow, except for the DatabaseEngine.

Database engine workflow

Here’s the workflow for the database engine in Percona Everest:

  1. The user installs the everest-db-namespace chart either as part of the initial installation or as a separate step.
  2. OLM subscriptions are created for the operators chosen while installing the Helm chart.
  3. OLM reconciles the Subscriptions and creates an InstallPlan.
  4. The Helm chart creates a Kubernetes job called everest-operators-installer that waits for the InstallPlan to be created and approves it.
  5. OLM detects that the InstallPlan has been approved and creates a ClusterServiceVersion, deploying all components that comprise the database operator.
  6. The Percona Everest operator detects the database operator’s deployment resource and reconciles the DatabaseEngine CR of the corresponding type.

  7. During reconciliation, the Percona Everest operator detects the installed database operator version and queries Percona’s Version Service to fetch supported engine versions.

    Example

    Check Percona’s Version Service to get the engine versions supported by that operator.

    To check which MongoDB versions are supported by PSMDB operator v1.19.0, visit:

    🔗 Supported MongoDB versions – PSMDB Operator v1.19.0.

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.