Install Percona Everest using Helm¶
Warning
Google Container Registry (GCR) is scheduled to be deprecated and will officially shut down on March 18, 2025. All versions of Percona Everest prior to 1.4.0 depend on images hosted on GCR, meaning that downloading those images will fail after the shutdown date. We strongly recommend upgrading to Percona Everest version 1.4.0 as soon as possible. If you do not upgrade, Percona Everest will no longer function.
For more details, refer to the Container Registry Deprecation documentation.
This section explains how to install Percona Everest 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.
Percona Helm charts can be found in percona/percona-helm-charts repository in Github.
Install Percona Everest and deploy database namespaces¶
Here are the steps to install Percona Everest and deploy additional database namespaces:
-
Add the Percona Helm repository:
helm repo add percona https://percona.github.io/percona-helm-charts/ helm repo update
-
Install Percona Everest:
helm install everest-core percona/everest \ --namespace everest-system \ --create-namespace
What’s happening under the hood
The command does the following:
-
Deploys the Percona Everest components in the
everest-system
namespace. Currently, specifying a different namespace for Percona Everest is not supported. -
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, setdbNamespace.enabled=false
-
-
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 Everest UI is
admin
. You can set a different default admin password by using theserver.initialAdminPassword
parameter during installation.The default
admin
password is stored in plain text. It is highly recommended to update the password usingeverestctl
to ensure that the passwords are hashed.To access detailed information on user management, see the manage users in Percona Everest section.
-
Access the Everest UI/API using one of the following options for exposing it, as Everest is not exposed with an external IP by default:
-
Use the following command to change the Everest service type to
LoadBalancer
:kubectl patch svc/everest -n everest-system -p '{"spec": {"type": "LoadBalancer"}}'
-
Retrieve the external IP address for the Everest service. This is the address where you can then launch Everest 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
A NodePort is a service that makes a specific port accessible on all nodes within the cluster. It enables external traffic to reach services running within the Kubernetes cluster by assigning a static port to each node’s IP address.
-
Run the following command to change the Everest service type to
NodePort
:kubectl patch svc/everest -n everest-system -p '{"spec": {"type": "NodePort"}}
-
The following command displays the port assigned by Kubernetes to the everest service, which is
32349
in this case.kubectl get svc/everest -n everest-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE everest NodePort 10.43.139.191 <none> 8080:32349/TCP 28m
-
Retrieve the external IP addresses for the kubernetes cluster nodes.
kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IPEXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME gke-everest-test-default-pool-8bbed860-65gx Ready <none> 3m35s v1.30.3-gke.1969001 10.204.15.199 34.175.155.135 Container- Optimized OS from Google 6.1.100+ containerd://1.7.19 gke-everest-test-default-pool-8bbed860-pqzb Ready <none> 3m35s v1.30.3-gke.1969001 10.204.15.200 34.175.120.50 Container- Optimized OS from Google 6.1.100+ containerd://1.7.19 gke-everest-test-default-pool-8bbed860-s0hg Ready <none> 3m35s v1.30.3-gke.1969001 10.204.15.201 34.175.201.246 Container- Optimized OS from Google 6.1.100+ containerd://1.7.19
-
To launch the Percona Everest UI and create your first database cluster, go to the IP address/port found in steps 2 and 3. In this example, the external IP address used is http://34.175.155.135:32349. Nevertheless, you have the option to use any node IP specified in the above steps.
Run the following command to use
Kubectl port-forwarding
for connecting to Everest without exposing the service:kubectl port-forward svc/everest 8080:8080 -n everest-system
To launch the Percona Everest UI and create your first database cluster, go to your localhost IP address http://127.0.0.1:8080.
-
-
Deploy additional database namespaces:
Once Percona Everest 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 \ percona/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.
- All database operators are installed in your database namespace by default. You can override this by specifying one or more of the following options:
Configure parameters¶
You can customize various parameters in the Percona Everest 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.
percona/everest chart
Key | Type | Default | Description |
---|---|---|---|
server.initialAdminPassword |
string | ”“ | 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.oidc |
object | {} | 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 . |
percona/everest-db-namespace subchart
Key | Type | Default | Description |
---|---|---|---|
pxc |
bool | true | Installs the Percona XtraDB Cluster operator if set. |
everest-db-namespace | postgresql |
bool | true |
psmdb |
bool | true | Installs the Percona Server MongoDB operator if set. |
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.