[CLI] Installation log should display the same operator names as selected in the wizard
Description
Attachments
- 20 Mar 2025, 01:08 PM
- 19 Mar 2025, 12:56 PM
Activity
Maxim Kondratenko March 21, 2025 at 7:28 AM
Summary:
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.CLI flag
--operator.xtradb-cluster
will be removed in next releases.CLI uses
MySQL
product name in output and interaction elements with user.
Resolving.
Manish Chawla March 20, 2025 at 1:08 PMEdited
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.
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.
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 @Manish Chawla
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.
Product names will be displayed in CLI and logs as:
MySQL
,MongoDB
andPostgreSQL
There are no changes in UI and API so far.
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 namesMySQL, MongoDB, PostgreSQL
during installation as[pxc, psmdb, pg]
are short abbreviations used within our group and may not be clear to other users.