Skip to main content
Version: 1.15

Install OpenEverest using Helm

This section explains how to install OpenEverest using Helm as an alternative to everestctl. Helm charts simplify the deployment process by packaging all necessary resources and configurations, making them ideal for automating and managing installations in Kubernetes environments.

OpenEverest Helm charts can be found in openeverest/helm-charts repository in Github.

Important

If you installed OpenEverest using Helm, make sure to uninstall it exclusively through Helm for a seamless removal.

Install OpenEverest and deploy database namespaces​

Here are the steps to install OpenEverest and deploy additional database namespaces:

  1. Add the OpenEverest Helm repository:

    helm repo add openeverest https://openeverest.github.io/helm-charts/
    helm repo update
  2. Install OpenEverest:

    helm install everest openeverest/openeverest \
    --namespace everest-system \
    --create-namespace
    What's happening under the hood

    The command does the following:

    1. Deploys the OpenEverest components in the everest-system namespace. Currently, specifying a different namespace for OpenEverest is not supported.

    2. Deploys a new namespace called everest for your databases and the database operators.

      You can override the name of the database namespace by using the dbNamespace.namespaceOverride parameter. If you prefer to deploy just the core components, set dbNamespace.enabled=false

    Optional installation flags

    | Flags | Description |Helm flag | |------------------|--------------------------------------------------------------------------------------------------|----------------------------------| | PMM deployment | Deploy Percona Monitoring and Management (PMM) as a sub-chart. PMM will be automatically deployed within the everest-system namespace. | --set pmm.enabled=true | | TLS enabled | Enable TLS encryption for secure communication between OpenEverest components.| --set server.tls.enabled=true |

    Examples

    Install with PMM enabled

    helm install everest-core openeverest/openeverest --namespace=everest-system --create-namespace --set pmm.enabled=true

    Install OpenEverest with TLS enabled:

    helm install everest openeverest/openeverest \
    --namespace everest-system \
    --create-namespace
    --set server.tls.enabled=true

    For comprehensive instructions on enabling TLS for OpenEverest, see the section TLS setup with OpenEverest.

  3. Once the installation is complete, retrieve the admin password.

    kubectl get secret everest-accounts -n everest-system -o jsonpath='{.data.users\.yaml}' | base64 --decode | yq '.admin.passwordHash'
    • The default username for logging into the OpenEverest UI is admin. You can set a different default admin password by using the server.initialAdminPassword parameter during installation.

    • The default admin password is stored in plain text. It is highly recommended to update the password using everestctl to ensure that the passwords are hashed. Instructions for installing everestctl can be found at everestctl installation guide.

      To access detailed information on user management, see the manage users in OpenEverest section.

  4. Access the OpenEverest UI/API using one of the following options for exposing it, as OpenEverest is not exposed with an external IP by default:

    Use the following commands to change the Everest service type to LoadBalancer:

    1. Run the following command:

      helm upgrade everest-core openeverest/openeverest \
      --namespace everest-system \
      --reuse-values \
      --set server.service.type=LoadBalancer
    2. Retrieve the external IP address for the everest service. This is the address where you can then launch OpenEverest at the end of the installation procedure. In this example, the external IP address used is http://34.175.201.246.

      kubectl get svc/everest -n everest-system
      Expected output
      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
      everest LoadBalancer 10.43.172.194 34.175.201.246 8080:8080/TCP 10s
      When TLS is enabled
      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
      everest LoadBalancer 10.43.172.194 34.175.201.246 443:8080/TCP 10s
  5. Deploy additional database namespaces:

    Once OpenEverest is successfully running, you can create additional database namespaces using the everest-db-namespace Helm chart.

    If you set dbNamespaces.enabled=false in step 2, you can deploy a database namespace with the following command:

    helm install everest \
    openeverest/everest-db-namespace \
    --create-namespace \
    --namespace <DB namespace>
    note
    • All database operators are installed in your database namespace by default. You can override this by specifying one or more of the following options: [dbNamespace.pxc=false, dbNamespace.pg=false, dbNamespace.psmdb=false].
    • Installation without chart hooks (i.e, the use of --no-hooks) is currently not supported.

Configure parameters​

You can customize various parameters in the OpenEverest Helm charts for your deployment to meet your specific needs. Refer to the Helm documentation to discover how to configure these parameters.

A few parameters are listed in the following table. For a detailed list of the parameters, see the README.

openeverest/openeverest chart

KeyTypeDefaultDescription
server.initialAdminPasswordstring""Initial password configured for admin user.

If it is not set, a random password is generated. It is recommended to reset the admin password after installation.
server.oidcobject{}OIDC configuration for Everest.

These settings are applied only during installation. To modify the settings after installation, you have to manually update the everest-settings ConfigMap.

openeverest/everest-db-namespace subchart

KeyTypeDefaultDescription
pxcbooltrueInstalls the Percona XtraDB Cluster operator if set.
everest-db-namespacepostgresqlbooltrue
psmdbbooltrueInstalls the Percona Server MongoDB operator if set.

Next steps​

Provision a database →