The edbctl hybrid-manager command manages Hybrid Manager (HM) instances, including lifecycle operations, setup, monitoring access, PostgreSQL diagnostics, and troubleshooting. These commands interact directly with the Kubernetes cluster via kubectl context. API credentials are not required.
Commands
edbctl hybrid-manager command has the following options:
- edbctl hybrid-manager create-install-secrets — Create secrets needed to install Hybrid Manager on a Kubernetes cluster.
- edbctl hybrid-manager diagnostic-container — Launch a diagnostic container.
- edbctl hybrid-manager get-pg-activity — Display PG cluster activity history.
- edbctl hybrid-manager get-pg-all — Run all PG cluster queries.
- edbctl hybrid-manager get-pg-disk — Display PG pod disk usage.
- edbctl hybrid-manager get-pg-gucs — Display PostgreSQL GUC parameters.
- edbctl hybrid-manager get-pg-info — Display PG cluster overview and instance status.
- edbctl hybrid-manager get-pg-owner — Display PG cluster owner.
- edbctl hybrid-manager list-install-secrets — List secrets needed to install Hybrid Manager on a Kubernetes cluster.
- edbctl hybrid-manager open-alertmanager — Open Alert manager UI.
- edbctl hybrid-manager open-grafana — Open Grafana UI.
- edbctl hybrid-manager open-prometheus — Open Prometheus UI.
- edbctl hybrid-manager open-thanos — Open Thanos Query UI.
- edbctl hybrid-manager prepare-bootstrap-operator-conversion — Prepare a Bootstrap-installed Hybrid Manager for conversion to the Operator method.
- edbctl hybrid-manager resume-component — Resume a suspended hybrid manager component.
- edbctl hybrid-manager retry-component — Retry a hybrid manager component that is in error state.
- edbctl hybrid-manager status — Check the status of Hybrid Manager and its components.
- edbctl hybrid-manager suspend-component — Suspend a hybrid manager component.
- edbctl hybrid-manager upgrade-operator — Install or upgrade the Hybrid Manager Operator to the latest version.
edbctl hybrid-manager create-install-secrets
Interactively creates secrets on a Kubernetes cluster in preparation for Hybrid Manager bootstrapping. You can also use the edbctl hm alias for this command.
edbctl hybrid-manager create-install-secrets --version <version> [--scenario <scenarios>] [--force] [options]
Where options are:
--version string The version of Hybrid Manager to install on the cluster (required).
Use "latest" or "latest-ir" for the latest Innovation Release,
or "latest-lts" for the latest LTS release.
-s, --scenario strings The scenarios to install secrets for (all scenarios if not specified).
-f, --force Force update of existing secrets.
-I, --interactive Execute command interactively.
-y, --yes Auto-confirm all confirmations.
-h, --help Help for create-install-secrets.These examples show how to create install secrets:
# Interactive mode (default): requires interactive_mode config set to on edbctl hm create-install-secrets --version v2026.2.0 --scenario core --scenario ai edbctl hm create-install-secrets --version v2026.2.0 # creates secrets for all scenarios edbctl hm create-install-secrets --version v2026.2.0 --force # updates existing secrets edbctl hm create-install-secrets --version latest-ir # resolves to the latest Innovation Release edbctl hm create-install-secrets --version latest-lts # resolves to the latest LTS release # Skip confirmations: use --yes flag or set confirm_mode config to off edbctl hm create-install-secrets --version v2026.2.0 -y # Non-interactive mode (for CI/CD pipelines): set interactive_mode and confirm_mode config to off, # then provide credentials via environment variables (e.g. EDB_CORE_ADMIN_EMAIL1) # edbctl config set interactive_mode off # edbctl config set confirm_mode off # export EDB_CORE_ADMIN_EMAIL1=admin@example.com edbctl hm create-install-secrets --version v2026.2.0 --force
edbctl hybrid-manager diagnostic-container
Launches an ephemeral diagnostic container on a target pod or node for troubleshooting. Attaches an interactive TTY session to the debug container. The container is removed when the session ends.
edbctl hybrid-manager diagnostic-container --pod <pod> [--type pod|node] [--namespace <namespace>] [--version <version>] [--registry <registry>] [options]
Where options are:
--pod string Target pod or node name (required). -t, --type string Target type: pod or node (default: pod). -n, --namespace string Target namespace (required for pod targets). -v, --version string Diagnostic image tag (omit to use the image default). -r, --registry string Container registry URL (default "docker.enterprisedb.com/pgai-platform"). -h, --help Help for diagnostic-container.
These examples show how to launch a diagnostic container:
edbctl hybrid-manager diagnostic-container --pod my-pod -n my-namespace edbctl hybrid-manager diagnostic-container --pod my-node --type node edbctl hybrid-manager diagnostic-container --pod my-pod -n my-namespace --version 2026.2.0
edbctl hybrid-manager get-pg-activity
Queries the Beacon database for cluster activity records such as create and delete operations.
edbctl hybrid-manager get-pg-activity --pg-id <cluster-id> [options]
Where options are:
--pg-id string PG cluster ID. -c, --create Show CREATE activities only. -d, --delete Show DELETE activities only. -t, --timestamp-only Show timestamps only. -o, --output string [table json yaml xml json-raw] (default "table"). -h, --help Help for get-pg-activity.
These examples show how to display PG cluster activity:
edbctl hybrid-manager get-pg-activity --pg-id p-abc123def edbctl hybrid-manager get-pg-activity --pg-id p-abc123def --create edbctl hybrid-manager get-pg-activity --pg-id p-abc123def -o json
edbctl hybrid-manager get-pg-all
Retrieves all PostgreSQL cluster data in a single invocation: cluster info and instance status, GUC parameters, disk usage per pod, and activity history. Equivalent to running get-pg-info, get-pg-gucs, get-pg-disk, and get-pg-activity in sequence.
edbctl hybrid-manager get-pg-all --pg-id <cluster-id> [options]
Where options are:
--pg-id string PG cluster ID. -o, --output string [table json yaml xml json-raw] (default "table"). -h, --help Help for get-pg-all.
These examples show how to run all PG cluster queries:
edbctl hybrid-manager get-pg-all --pg-id p-abc123def edbctl hybrid-manager get-pg-all --pg-id p-abc123def -o json
edbctl hybrid-manager get-pg-disk
Shows filesystem usage, base size, temp size, and WAL size for a PostgreSQL pod. Use --pg-id to discover pods for a PG cluster automatically, or --pod to target a specific pod directly. Exactly one of --pg-id or --pod must be provided.
edbctl hybrid-manager get-pg-disk [--pg-id <cluster-id> | --pod <pod>] [options]
Where options are:
--pg-id string PG cluster ID (discovers pods automatically).
--pod string Target a specific pod directly.
-n, --namespace string Override namespace (with --pod only; auto-detected if omitted).
-a, --all Show disk info for all pods in the cluster (with --pg-id only).
-o, --output string [table json yaml xml json-raw] (default "table").
-I, --interactive Execute command interactively.
-h, --help Help for get-pg-disk.These examples show how to display PG pod disk usage:
edbctl hybrid-manager get-pg-disk --pg-id p-abc123def edbctl hybrid-manager get-pg-disk --pg-id p-abc123def --all edbctl hybrid-manager get-pg-disk --pod p-abc123def-a-1 edbctl hybrid-manager get-pg-disk --pod p-abc123def-a-1 -n custom-namespace edbctl hybrid-manager get-pg-disk --pg-id p-abc123def -o json
edbctl hybrid-manager get-pg-gucs
Reads GUC (Grand Unified Configuration) parameters from the ClusterWrapper CRD per instance.
edbctl hybrid-manager get-pg-gucs --pg-id <cluster-id> [options]
Where options are:
--pg-id string PG cluster ID. -o, --output string [table json yaml xml json-raw] (default "table"). -h, --help Help for get-pg-gucs.
These examples show how to display PostgreSQL GUC parameters:
edbctl hybrid-manager get-pg-gucs --pg-id p-abc123def edbctl hybrid-manager get-pg-gucs --pg-id p-abc123def -o json
edbctl hybrid-manager get-pg-info
Retrieves cluster metadata and per-instance health from ClusterWrapper and CNP Cluster CRDs.
edbctl hybrid-manager get-pg-info --pg-id <cluster-id> [options]
Where options are:
--pg-id string PG cluster ID. -o, --output string [table json yaml xml json-raw] (default "table"). -h, --help Help for get-pg-info.
These examples show how to display PG cluster overview and instance status:
edbctl hybrid-manager get-pg-info --pg-id p-abc123def edbctl hybrid-manager get-pg-info --pg-id p-abc123def -o json
edbctl hybrid-manager get-pg-owner
Queries the Beacon database to find the user who created the PG cluster.
edbctl hybrid-manager get-pg-owner --pg-id <cluster-id> [options]
Where options are:
--pg-id string PG cluster ID. -o, --output string [table json yaml xml json-raw] (default "table"). -h, --help Help for get-pg-owner.
These examples show how to display PG cluster owner:
edbctl hybrid-manager get-pg-owner --pg-id p-abc123def edbctl hybrid-manager get-pg-owner --pg-id p-abc123def -o json
edbctl hybrid-manager list-install-secrets
Provides a formatted list of secrets required for the given Hybrid Manager version and scenario set. You can also use the edbctl hm alias for this command.
edbctl hybrid-manager list-install-secrets --version <version> [--scenario <scenarios>] [options]
Where options are:
--version string The version of Hybrid Manager to list secrets for (required).
Use "latest" or "latest-ir" for the latest Innovation Release,
or "latest-lts" for the latest LTS release.
-s, --scenario strings The scenarios to list secrets for (all scenarios if not specified).
-o, --output string [table json yaml xml json-raw] (default "table").
-h, --help Help for list-install-secrets.These examples show how to list install secrets:
edbctl hm list-install-secrets --version v2026.2.0 --scenario core --scenario ai edbctl hm list-install-secrets --version v2026.2.0 # lists secrets for all scenarios edbctl hm list-install-secrets --version latest-ir # resolves to the latest Innovation Release edbctl hm list-install-secrets --version latest-lts # resolves to the latest LTS release
edbctl hybrid-manager open-alertmanager
Opens the Alertmanager web UI via port-forward and browser. Sets up a port-forward to the alertmanager-operated service and opens the web UI in the default browser. Press Ctrl+C to stop.
edbctl hybrid-manager open-alertmanager [options]
Where options are:
-b, --background Run port-forward in the background. -h, --help Help for open-alertmanager.
These examples show how to open the Alertmanager UI:
edbctl hybrid-manager open-alertmanager edbctl hybrid-manager open-alertmanager --background
edbctl hybrid-manager open-grafana
Opens the Grafana web UI via port-forward and browser. Sets up a port-forward to the grafana service and opens the web UI in the default browser. Press Ctrl+C to stop.
edbctl hybrid-manager open-grafana [options]
Where options are:
-b, --background Run port-forward in the background. -h, --help Help for open-grafana.
These examples show how to open the Grafana UI:
edbctl hybrid-manager open-grafana edbctl hybrid-manager open-grafana --background
edbctl hybrid-manager open-prometheus
Opens the Prometheus web UI via port-forward and browser. Sets up a port-forward to the prometheus-k8s service and opens the web UI in the default browser. Press Ctrl+C to stop.
edbctl hybrid-manager open-prometheus [options]
Where options are:
-b, --background Run port-forward in the background. -h, --help Help for open-prometheus.
These examples show how to open the Prometheus UI:
edbctl hybrid-manager open-prometheus edbctl hybrid-manager open-prometheus --background
edbctl hybrid-manager open-thanos
Opens the Thanos Query web UI via port-forward and browser. Sets up a port-forward to the thanos-query-frontend service and opens the web UI in the default browser. Press Ctrl+C to stop.
edbctl hybrid-manager open-thanos [options]
Where options are:
-b, --background Run port-forward in the background. -h, --help Help for open-thanos.
These examples show how to open the Thanos Query UI:
edbctl hybrid-manager open-thanos edbctl hybrid-manager open-thanos --background
Note
The resume-component, retry-component, and suspend-component commands prompt for confirmation by default. Use --yes (-y) to skip the prompt for CI or scripted use.
edbctl hybrid-manager resume-component
Resumes a suspended Hybrid Manager component.
edbctl hybrid-manager resume-component <component-name> [options]
Where options are:
-y, --yes Auto-confirm all confirmations. -h, --help Help for resume-component.
This example shows how to resume a component:
edbctl hybrid-manager resume-component upm-istio
edbctl hybrid-manager retry-component
Retries a Hybrid Manager component that is in an error state.
edbctl hybrid-manager retry-component <component-name> [options]
Where options are:
-y, --yes Auto-confirm all confirmations. -h, --help Help for retry-component.
This example shows how to retry a component:
edbctl hybrid-manager retry-component upm-istio
edbctl hybrid-manager status
Checks the status of Hybrid Manager and its components.
edbctl hybrid-manager status [options]
Where options are:
-o, --output string [table json yaml xml json-raw] (default "table"). -h, --help Help for status.
This example shows how to check the Hybrid Manager status:
edbctl hybrid-manager status
edbctl hybrid-manager suspend-component
Suspends a Hybrid Manager component.
edbctl hybrid-manager suspend-component <component-name> [options]
Where options are:
-y, --yes Auto-confirm all confirmations. -h, --help Help for suspend-component.
This example shows how to suspend a component:
edbctl hybrid-manager suspend-component upm-istio
edbctl hybrid-manager prepare-bootstrap-operator-conversion
Prepares a Bootstrap-installed Hybrid Manager for conversion to the Operator installation method. The command does two things in a single run: exports the existing HybridControlPlane CR (created by the bootstrap install) to a manifest so it can be re-applied under the operator, and transfers Helm ownership of the existing cluster resources from the bootstrap release to the operator release by deleting the bootstrap controller Deployments and re-annotating CRDs, RBAC, Services, the ServiceAccount, and webhook configurations.
No CRDs or database clusters are deleted. The transfer is idempotent and safe to re-run. Installing the operator chart and applying the exported CR remain manual follow-up steps.
You can also use the edbctl hm alias for this command.
edbctl hybrid-manager prepare-bootstrap-operator-conversion [options]
Where options are:
-o, --output string File to write the exported HybridControlPlane CR (default "hybridmanager.yaml").
-n, --namespace string Bootstrap namespace (default "edbpgai-bootstrap").
--operator-namespace string Namespace the operator chart will be installed into (default: same as --namespace).
--source-release string Helm release currently owning the resources (default "edbpgai-bootstrap").
--target-release string Helm release to transfer ownership to (default "edb-hcp-operator").
--dry-run Preview deletions and annotations without changing the cluster.
-y, --yes Auto-confirm all confirmations.
-h, --help Help for prepare-bootstrap-operator-conversion.These examples show how to prepare a Bootstrap-installed Hybrid Manager for conversion:
# Export the CR and transfer ownership (prompts before the transfer) edbctl hm prepare-bootstrap-operator-conversion # Preview everything without changing the cluster edbctl hm prepare-bootstrap-operator-conversion --dry-run # Write the exported CR to a specific path edbctl hm prepare-bootstrap-operator-conversion -o hm.yaml
edbctl hybrid-manager upgrade-operator
Installs or upgrades the Hybrid Manager (HM) Operator to the latest available LTS version using Helm. Run this command to ensure the operator is up to date before installing or upgrading Hybrid Manager itself.
From the 1.4.0 LTS release (or the 2026.6.0 Innovation release) onwards, operator images are embedded in the HM release and synced with edbctl image sync-to-local-registry. As a result, you can install the operator directly from Cloudsmith or from a private registry.
Note
When deploying from a private registry, run this command only after you finish syncing images for the target HM version to that registry. Otherwise the operator image may not be present and the upgrade fails.
Note
This command uses Helm to install the operator. To uninstall it, run helm uninstall against the release.
Note
On OpenShift, installing the operator from the OperatorHub certified operator is often a better option than this command.
You can also use the edbctl hm alias for this command.
edbctl hybrid-manager upgrade-operator --registry-uri <registry-uri> --registry-username <username> --registry-password <password> [options]
Where options are:
--registry-uri string Container registry URI to pull the operator image from (required).
--registry-username string Username for authenticating to the container registry (required).
--registry-password string Password for authenticating to the container registry (required).
--registry-insecure Allow insecure connections to the container registry (for example, self-signed TLS).
--release-name string Helm release name to use for the operator chart (default "edb-hcp-operator").
--namespace string Kubernetes namespace where the operator is or will be installed (default "edb-hcp-operator-system").
--set stringArray Additional Helm chart values to set (for example, --set key=value).
--timeout duration Time to wait for the operator release to become ready before rolling back (default 5m0s).
--verbose Show verbose Helm output (chart pull, resource creation, and readiness progress).
-y, --yes Auto-confirm all confirmations.
-h, --help Help for upgrade-operator.These examples show how to install or upgrade the operator:
# Install or upgrade the operator directly from EDB Cloudsmith edbctl hm upgrade-operator --registry-uri docker.enterprisedb.com/pgai-platform --registry-username <edb-cloudsmith-username> --registry-password <edb-cloudsmith-password> # Install or upgrade the operator from a private registry edbctl hm upgrade-operator --registry-uri <registry-uri> --registry-username <username> --registry-password <password> # Install into a custom namespace with a custom Helm release name edbctl hm upgrade-operator --registry-uri <registry-uri> --registry-username <username> --registry-password <password> --namespace my-operator-ns --release-name my-operator # Skip TLS verification for a registry with a self-signed certificate edbctl hm upgrade-operator --registry-uri <registry-uri> --registry-username <username> --registry-password <password> --registry-insecure # Override additional chart values and extend the readiness timeout edbctl hm upgrade-operator --registry-uri <registry-uri> --registry-username <username> --registry-password <password> --set hmRegistry.enabled=true --timeout 10m # Auto-confirm the prompt (non-interactive) edbctl hm upgrade-operator --registry-uri <registry-uri> --registry-username <username> --registry-password <password> --yes