[CLI] Installation log should display the same operator names as selected in the wizard

Description

Tested with Everest v1.1.0-rc2 version.

Install operators using the wizard

./everestctl-1.1.0-rc2 install --version-metadata-url https://check-dev.percona.com ? Namespaces managed by Everest [comma separated] n1 ? What operators do you want to install? MySQL, MongoDB, PostgreSQL ℹ️ Installing Everest version 1.1.0-rc2 ✓ Install Operator Lifecycle Manager ✓ Install Percona OLM Catalog ✓ Create namespace 'everest-monitoring' ✓ Install VictoriaMetrics Operator ✓ Provision monitoring stack ✓ Create namespace 'n1' ✓ Install operators [pxc, psmdb, pg] in namespace 'n1' ✓ Configure RBAC in namespace 'n1' ✓ Install Everest Operator ✓ Install Everest API server 🚀 Everest has been successfully installed! ....

During selection, the operators are displayed as MySQL, MongoDB, PostgreSQL, however during installation, cli displays them as [pxc, psmdb, pg]. It would be better to use the same names MySQL, MongoDB, PostgreSQL during installation as [pxc, psmdb, pg] are short abbreviations used within our group and may not be clear to other users.

Attachments

2
  • 20 Mar 2025, 01:08 PM
  • 19 Mar 2025, 12:56 PM

Activity

Show:

Maxim Kondratenko March 21, 2025 at 7:28 AM

Summary:

  1. The CLI flag --operator.xtradb-cluster is marked as deprecated. It still continues working if user passes it, but a warning message will be presented that he needs to use --operator.mysql instead.

  2. CLI flag --operator.xtradb-cluster will be removed in next releases.

  3. CLI uses MySQLproduct name in output and interaction elements with user.

 

Resolving.

Manish Chawla March 20, 2025 at 1:08 PM
Edited

Test 3: Check install help, it should contain mysql and not pxc.

./everestctl-linux-amd64 install --help Install Percona Everest using Helm Usage: everestctl install [flags] Examples: everestctl install --namespaces dev,staging,prod --operator.mongodb=true --operator.postgresql=false --operator.mysql=false --skip-wizard Flags: --helm.repository string Helm chart repository to download the Everest charts from (default "https://percona.github.io/percona-helm-charts/") --helm.set strings Set helm values on the command line (can specify multiple values with commas: key1=val1,key2=val2) -f, --helm.values strings Specify values in a YAML file or a URL (can specify multiple) -h, --help help for install --namespaces string Comma-separated namespaces list Percona Everest can manage (default "everest") --operator.mongodb Install MongoDB operator (default true) --operator.mysql Install MySQL operator (default true) --operator.postgresql Install PostgreSQL operator (default true) --skip-db-namespace Skip creating a database namespace with install --skip-env-detection Skip detecting Kubernetes environment where Everest is installed --skip-wizard Skip installation wizard --version string Everest version to install. By default the latest version is installed --version-metadata-url string URL to retrieve version metadata information from (default "https://check.percona.com") Global Flags: --json Set output type to JSON -k, --kubeconfig string Path to a kubeconfig. If not set, will use KUBECONFIG env var (default "~/.kube/config") -v, --verbose Enable Verbose mode

Result: The help now contains reference to mysql, mongodb and postgresql.

Test 4: Install a1 namespace with mysql operator only. Add another namespace a2 with mysql and mongodb operator.

./everestctl-linux-amd64 install --namespaces a1 --chart-dir "helm-chart" --version "$(cat version.txt)" --version-metadata-url http://localhost:8081 --operator.mysql=true --operator.mongodb=false --operator.postgresql=false --skip-wizard --helm.set "versionMetadataURL=http://$SERVICE_IP" --helm.set "server.service.type=LoadBalancer" ℹ️ Installing Everest version 1.10000.0-rc20250319093616 ✅ Installing Everest Helm chart ✅ Ensuring Everest API deployment is ready ✅ Ensuring Everest operator deployment is ready ✅ Ensuring OLM components are ready ✅ Ensuring Everest CatalogSource is ready ✅ Ensuring monitoring stack is ready ✅ Provisioning database namespace 'a1' 🚀 Thank you for installing Everest (v1.10000.0-rc20250319093616)! ...

Login and create a mysql database in a1 namespace.

Namespaces and pods

kubectl get ns NAME STATUS AGE a1 Active 106s default Active 3h22m everest-monitoring Active 2m8s everest-olm Active 2m8s everest-system Active 2m8s kube-node-lease Active 3h22m kube-public Active 3h22m kube-system Active 3h22m kubectl get pods -n a1 NAME READY STATUS RESTARTS AGE mysql-jh0-haproxy-0 2/2 Running 0 37m mysql-jh0-haproxy-1 2/2 Running 0 36m mysql-jh0-haproxy-2 2/2 Running 0 36m mysql-jh0-pxc-0 1/1 Running 0 37m mysql-jh0-pxc-1 1/1 Running 0 36m mysql-jh0-pxc-2 1/1 Running 0 35m percona-xtradb-cluster-operator-f677d45c9-kqr9s 1/1 Running 0 40m

Add another namespace a2 with mysql and pg operator.

./everestctl-linux-amd64 namespaces add a2 --chart-dir "helm-chart" --operator.mysql=true --operator.mongodb=true --operator.postgresql=false --skip-wizard --helm.set "versionMetadataURL=http://$SERVICE_IP" --helm.set "server.service.type=LoadBalancer" ✅ Provisioning database namespace 'a2'

Create databases in a2 namespace.

kubectl get pods -n a2 NAME READY STATUS RESTARTS AGE mongodb-d65-rs0-0 2/2 Running 0 29m mysql-2m4-haproxy-0 2/2 Running 0 29m mysql-2m4-pxc-0 1/1 Running 0 29m percona-server-mongodb-operator-f7d475cd7-s729k 1/1 Running 0 31m percona-xtradb-cluster-operator-56c9f5c8f-tdlz6 1/1 Running 0 32m

Result: Databases were created successfully.

Test 5: Install using wizard in multiple namespaces a1, a2, a3 with mysql operator. Add another namespace a4 with pg operator.

./everestctl-linux-amd64 install --chart-dir "helm-chart" --version "$(cat version.txt)" --version-metadata-url http://localhost:8081 --helm.set "versionMetadataURL=http://$SERVICE_IP" ❓ Provide database namespaces to be managed by Everest: a1,a2,a3 ❓ Which operators do you want to install? [X] MySQL [ ] MongoDB > [ ] PostgreSQL Handling connection for 8081 ℹ️ Installing Everest version 1.10000.0-rc20250319093616 ✅ Installing Everest Helm chart ✅ Ensuring Everest API deployment is ready ✅ Ensuring Everest operator deployment is ready ✅ Ensuring OLM components are ready ✅ Ensuring Everest CatalogSource is ready ✅ Ensuring monitoring stack is ready ✅ Provisioning database namespace 'a1' ✅ Provisioning database namespace 'a2' ✅ Provisioning database namespace 'a3' 🚀 Thank you for installing Everest (v1.10000.0-rc20250319093616)!

Add another namespace a4 with pg operator.

./everestctl-linux-amd64 namespaces add a4 --chart-dir "helm-chart" --helm.set "versionMetadataURL=http://$SERVICE_IP" ❓ Which operators do you want to install? [ ] MySQL > [ ] MongoDB [X] PostgreSQL ✅ Provisioning database namespace 'a4'

Login and create databases in each namespace.

image-20250320-125015.png

Result: Databases were created successfully.

Test 6: Install without adding any db namespace. Add another namespace a1 with all operators.

./everestctl-linux-amd64 install --skip-db-namespace --chart-dir "helm-chart" --version "$(cat version.txt)" --version-metadata-url http://localhost:8081 --skip-wizard --helm.set "versionMetadataURL=http://$SERVICE_IP" ℹ️ Installing Everest version 1.10000.0-rc20250319093616 ✅ Installing Everest Helm chart ✅ Ensuring Everest API deployment is ready ✅ Ensuring Everest operator deployment is ready ✅ Ensuring OLM components are ready ✅ Ensuring Everest CatalogSource is ready ✅ Ensuring monitoring stack is ready 🚀 Thank you for installing Everest (v1.10000.0-rc20250319093616)! Follow the steps below to get started: 1 ⮕ PROVISION A NAMESPACE FOR YOUR DATABASE: Install a namespace for your databases using the following command: everestctl namespaces add [NAMESPACE] 2 ⮕ RETRIEVE THE INITIAL ADMIN PASSWORD: Run the following command to get the initial admin password: everestctl accounts initial-admin-password ⚠️ NOTE: The initial password is stored in plain text. For security, change it immediately using the following command: everestctl accounts set-password --username admin 3 ⮕ ACCESS THE EVEREST UI: To access the web UI, set up port-forwarding and visit http://localhost:8080 in your browser: kubectl port-forward -n everest-system svc/everest 8080:8080

Namespaces

kubectl get ns NAME STATUS AGE default Active 9h everest-monitoring Active 42s everest-olm Active 42s everest-system Active 42s kube-node-lease Active 9h kube-public Active 9h kube-system Active 9h

Add another namespace a1 with all operators.

./everestctl-linux-amd64 namespaces add a1 --chart-dir "helm-chart" --skip-wizard --helm.set "versionMetadataURL=http://$SERVICE_IP" ✅ Provisioning database namespace 'a1'

Create databases in a1 namespace

Pods running in a1 namespace

kubectl get pods -n a1 NAME READY STATUS RESTARTS AGE mongodb-2ki-rs0-0 2/2 Running 0 58s mysql-uut-haproxy-0 1/2 Running 0 73s mysql-uut-pxc-0 1/1 Running 0 73s percona-postgresql-operator-8487bcb67-mz9fr 1/1 Running 0 3m35s percona-server-mongodb-operator-f88b7dd47-mj729 1/1 Running 0 3m44s percona-xtradb-cluster-operator-f677d45c9-bxtfx 1/1 Running 0 3m41s postgresql-fcz-backup-9gj8-47klh 1/1 Running 0 10s postgresql-fcz-instance1-xmrq-0 4/4 Running 0 47s postgresql-fcz-pgbouncer-7d55b7cfc6-9m2zb 2/2 Running 0 47s postgresql-fcz-repo-host-0 2/2 Running 0 47s

Result: Databases were created successfully.

Manish Chawla March 19, 2025 at 2:52 PM

Test 2: Try to install with --operator.xtradb-cluster=true

./everestctl-linux-amd64 install --chart-dir "helm-chart" --version "$(cat version.txt)" --version-metadata-url http://localhost:8081 --operator.xtradb-cluster=true --operator.mongodb=true --operator.postgresql=true --skip-wizard --namespaces everest --helm.set "versionMetadataURL=http://$SERVICE_IP" Flag --operator.xtradb-cluster has been deprecated, please use --operator.mysql instead ℹ️ Installing Everest version 1.10000.0-rc20250319093616 ✅ Installing Everest Helm chart ✅ Ensuring Everest API deployment is ready ✅ Ensuring Everest operator deployment is ready ✅ Ensuring OLM components are ready ✅ Ensuring Everest CatalogSource is ready ✅ Ensuring monitoring stack is ready ✅ Provisioning database namespace 'everest' 🚀 Thank you for installing Everest (v1.10000.0-rc20250319093616)! ...

Result: The installation is successful with the message: Flag --operator.xtradb-cluster has been deprecated, please use --operator.mysql instead

Manish Chawla March 19, 2025 at 12:56 PM

Tested with FB https://github.com/percona/everest/actions/runs/13858102967

Test 1: Default install in everest namespace

./everestctl-linux-amd64 install --chart-dir "helm-chart" --version "$(cat version.txt)" --version-metadata-url http://localhost:8081 --operator.mysql=true --operator.mongodb=true --operator.postgresql=true --skip-wizard --namespaces everest --helm.set "versionMetadataURL=http://$SERVICE_IP" --helm.set "server.service.type=LoadBalancer" Handling connection for 8081 ℹ️ Installing Everest version 1.10000.0-rc20250314135454 ✅ Installing Everest Helm chart ✅ Ensuring Everest API deployment is ready ✅ Ensuring Everest operator deployment is ready ✅ Ensuring OLM components are ready ✅ Ensuring Everest CatalogSource is ready ✅ Ensuring monitoring stack is ready ✅ Provisioning database namespace 'everest' 🚀 Thank you for installing Everest (v1.10000.0-rc20250314135454)! Follow the steps below to get started: 1 ⮕ RETRIEVE THE INITIAL ADMIN PASSWORD: Run the following command to get the initial admin password: everestctl accounts initial-admin-password ⚠️ NOTE: The initial password is stored in plain text. For security, change it immediately using the following command: everestctl accounts set-password --username admin 2 ⮕ ACCESS THE EVEREST UI: To access the web UI, set up port-forwarding and visit http://localhost:8080 in your browser: kubectl port-forward -n everest-system svc/everest 8080:8080

Issue: The front end does not load if load balancer is used for the everest service.

Retest again after fix with new FB https://github.com/percona/everest/actions/runs/13941046949?pr=1097

Test 1: Default install in everest namespace

cd fb_everest_1312 SERVICE_IP=$(./vs.sh) kubectl port-forward svc/percona-version-service 8081:80 & ./everestctl-linux-amd64 install --chart-dir "helm-chart" --version "$(cat version.txt)" --version-metadata-url http://localhost:8081 --operator.mysql=true --operator.mongodb=true --operator.postgresql=true --skip-wizard --namespaces everest --helm.set "versionMetadataURL=http://$SERVICE_IP" --helm.set "server.service.type=LoadBalancer" ℹ️ Installing Everest version 1.10000.0-rc20250319093616 ✅ Installing Everest Helm chart ✅ Ensuring Everest API deployment is ready ✅ Ensuring Everest operator deployment is ready ✅ Ensuring OLM components are ready ✅ Ensuring Everest CatalogSource is ready ✅ Ensuring monitoring stack is ready ✅ Provisioning database namespace 'everest' 🚀 Thank you for installing Everest (v1.10000.0-rc20250319093616)! Follow the steps below to get started: 1 ⮕ RETRIEVE THE INITIAL ADMIN PASSWORD: Run the following command to get the initial admin password: everestctl accounts initial-admin-password ⚠️ NOTE: The initial password is stored in plain text. For security, change it immediately using the following command: everestctl accounts set-password --username admin 2 ⮕ ACCESS THE EVEREST UI: To access the web UI, set up port-forwarding and visit http://localhost:8080 in your browser: kubectl port-forward -n everest-system svc/everest 8080:8080

Check cli version

./everestctl-linux-amd64 version ProjectName: everestctl Version: v1.10000.0-rc20250319093616 FullCommit: b671b7436ff71a5a38f6a54b6976bd00746971ce ServerVersion: v1.10000.0-rc20250319093616

Login in Everest UI using load balancer and create a mysql, mongodb and pg database.

image-20250319-124706.png

Result: Databases were created successfully.

Uninstall the setup

./everestctl-linux-amd64 uninstall -y -f ✅ Deleting database clusters in namespace 'everest' ✅ Deleting backup storages in namespace 'everest' ✅ Deleting monitoring instances in namespace 'everest' ✅ Deleting database namespace 'everest' ✅ Uninstalling Helm chart ✅ Deleting namespace 'everest-monitoring' ✅ Deleting namespace 'everest-system' ✅ Deleting CRDs Everest has been uninstalled successfully

Result: Everest is uninstalled successfully.

Maxim Kondratenko March 13, 2025 at 7:00 AM

Hi

  1. now CLI uses the following flags:

--operator.mongodb= --operator.postgresql= --operator.mysql=

And please adjust your tests in order to use a new flag --operator.mysql=instead of --operator.xtradb-cluster. The old one is deprecated, it’s hidden for now and shall be removed completely in future.

 

  1. Product names will be displayed in CLI and logs as: MySQL, MongoDBand PostgreSQL

  2. There are no changes in UI and API so far.

Unresolved

Details

Assignee

Reporter

QA

Story Points

Fix versions

Priority

Smart Checklist

Created August 7, 2024 at 7:03 AM
Updated March 21, 2025 at 7:28 AM

Flag notifications