Skip to main content

Validate the Global View OVA deployment

After deploying the Virtana Global View OVA and completing initial configuration, verify that all cluster services, databases, messaging queues, and application pods have started and reached their expected operational state.

Check pod status

Open a terminal or SSH session into your Global View appliance and run:

kubectl get pods --all-namespaces

The command returns one row for each pod, grouped by namespace. The output includes the NAMESPACE, NAME, READY, STATUS, RESTARTS, and AGE columns.

virtana@virtana-gv-appliance:~$ kubectl get pods --all-namespaces
NAMESPACE         NAME                                                READY   STATUS      RESTARTS      AGE
calico-system     calico-apiserver-64857c5597-nb8zf                   1/1     Running     0             68d
calico-system     calico-apiserver-64857c5597-vkpbp                   1/1     Running     0             68d
calico-system     calico-kube-controllers-6c9d56bcc5-k7mvd            1/1     Running     0             68d
calico-system     calico-node-crf6m                                   1/1     Running     0             68d
calico-system     calico-typha-947b97979-nfh9d                        1/1     Running     0             68d
calico-system     goldmane-7fb659c977-dkmjz                           1/1     Running     0             68d
calico-system     whisker-7d8968f975-zbq8b                            2/2     Running     0             68d
controlplane      actions-service-55888bdd4-zrhvn                     1/1     Running     0             67d
controlplane      alerts-gateway-service-7856fddf75-kq5gh             1/1     Running     0             67d
controlplane      alerts-service-7cb45df6b-gkxk4                      1/1     Running     0             67d
controlplane      appmon-api-svc-575d6cf654-ggbg5                     1/1     Running     0             67d
controlplane      audit-logs-service-678c7dd4dd-n7kll                 1/1     Running     0             67d
controlplane      authentication-service-6f5977f454-jsjgs             1/1     Running     0             67d
controlplane      authorization-service-677877cb5c-ztbck              1/1     Running     0             67d
controlplane      branding-service-7d796b8c7-gndml                    1/1     Running     0             67d
controlplane      controlplane-growthbook-768b8898c7-7xhkw            1/1     Running     0             67d
controlplane      controlplane-infra-cnpg-operator-77864c548d-pkgj6   1/1     Running     1 (24d ago)   67d
controlplane      controlplane-infra-kafka-broker-0                   1/1     Running     0             67d
controlplane      controlplane-infra-kafka-broker-1                   1/1     Running     0             67d
controlplane      controlplane-infra-kafka-broker-2                   1/1     Running     0             67d
controlplane      controlplane-infra-mongodb-b8c45cc48-m6gxb          1/1     Running     0             67d
controlplane      controlplane-infra-postgresql-main-1                1/1     Running     1 (40d ago)   67d
controlplane      controlplane-infra-redis-0                          1/1     Running     0             67d
controlplane      controlplane-minio-7657c8778b-ljfhn                 1/1     Running     0             67d
controlplane      cp-metrics-service-55f9dcd999-bn9mv                 1/1     Running     0             67d
controlplane      create-databases-hf79k                              0/1     Completed   0             67d
controlplane      insights-service-59f84f5b9c-b29kb                   1/1     Running     0             67d
controlplane      integration-mgmt-service-7474bdf86-dhs9d            1/1     Running     0             67d
controlplane      inventory-service-55858f9d79-rtrcs                  1/1     Running     0             67d
controlplane      kafka-configurator-8phtv                            0/1     Completed   0             67d
controlplane      licensing-service-5bfc8b8c64-m4jx8                  1/1     Running     0             67d
controlplane      onprem-cost-service-57c795b647-x9tlh                1/1     Running     0             67d
controlplane      org-creation-h94qk                                  0/1     Completed   0             67d
controlplane      org-zero-creation-nrs5z                             0/1     Completed   0             67d
controlplane      organization-service-78cbcc7789-6mttt               1/1     Running     0             67d
controlplane      reporting-service-68594f7b79-tsmn9                  1/1     Running     0             67d
controlplane      solrcloud-solr-0                                    1/1     Running     0             67d
controlplane      solrcloud-solr-1                                    1/1     Running     0             67d
controlplane      solrcloud-solr-2                                    1/1     Running     0             67d
controlplane      solrcloud-zookeeper-0                               1/1     Running     0             67d
controlplane      solrcloud-zookeeper-1                               1/1     Running     0             67d
controlplane      solrcloud-zookeeper-2                               1/1     Running     0             67d
controlplane      strimzi-cluster-operator-78c9bdd977-626xd           1/1     Running     0             67d
controlplane      ui-6bd7c7ccfc-r47jx                                 1/1     Running     0             67d
controlplane      ui-notification-service-578d949c99-gk9ld            1/1     Running     0             67d
controlplane      user-service-7dcbbdbc66-5llgn                       1/1     Running     0             67d
controlplane      user-settings-service-7fd99fd766-smd4r              1/1     Running     0             67d
controlplane      victoria-metrics-single-0                           1/1     Running     0             67d
controlplane      virtana-ai-6c57fdb549-lsdcq                         1/1     Running     2 (67d ago)   67d
controlplane      virtana-mcp-server-69955df887-cvqlb                 1/1     Running     0             67d
controlplane      vp-infrastructure-cloudcapi-5cd9fb7f95-z56sr        1/1     Running     0             67d
controlplane      vp-sslgen-2tzlm                                     0/1     Completed   0             67d
controlplane      vp-swagger-server-7cc574f8d7-w6tj8                  1/1     Running     0             67d
controlplane      workflow-job-service-9956479d8-2jrs4                1/1     Running     0             67d
ingress-nginx     ingress-nginx-controller-6797f4dc8c-nhbt8           1/1     Running     0             68d
keycloak          1-keycloak-sslgen-preinstall-4rxk5                  0/1     Completed   0             67d
keycloak          keycloak-6b7c876948-cl4xg                           1/1     Running     0             67d
keycloak          postgres-0                                          1/1     Running     0             67d
kube-system       coredns-697968c856-bhw2c                            1/1     Running     0             68d
kube-system       local-path-provisioner-774c6665dc-9grhh             1/1     Running     0             68d
kube-system       metrics-server-6f4c6675d5-m6lfv                     1/1     Running     0             68d
tigera-operator   tigera-operator-8458958b4d-6fm9v                    1/1     Running     2 (24d ago)   68d

Evaluate pod states

Review the output against the expected states below:

  • Running: All long-running system, infrastructure, and application pods must be in the Running state, with all ready containers matching the total count.

  • Completed: One-time install and database initialization jobs must show Completed.

  • Unhealthy States: Any pod in a state such as CrashLoopBackOff, ImagePullBackOff, Error, or Pending indicates a deployment or resource issue.

Expected pods by namespace

A Global View appliance running version 2026.6.1 distributes its pods across six Kubernetes namespaces. All of the pods listed in this section are mandatory. The ingress-nginx, keycloak, and controlplane namespaces hold the Virtana Platform components that Global View installs. The calico-system, kube-system, and tigera-operator namespaces hold the Kubernetes and networking system components that ship in the OVA and start automatically.

Pods in the ingress-nginx namespace

The ingress-nginx namespace holds the ingress controller, which is the entry point for all external traffic to Global View. If the pod in this namespace isn't running, the Global View web interface and APIs are unreachable even when every other pod is healthy.

The following table lists the pod that must be present in the ingress-nginx namespace.

Pod name prefix

Expected status

Purpose

ingress-nginx-controller-

Running

Routes external HTTP and HTTPS traffic into the cluster and forwards each request to the correct Global View service.

Pods in the keycloak namespace

The keycloak namespace holds the identity and authentication server that Global View uses to sign users in, along with the PostgreSQL database that stores its realm, user, and session data. If the pods in this namespace aren't healthy, users can't sign in to Global View.

The following table lists the pods that must be present in the keycloak namespace.

Pod name prefix

Expected status

Purpose

keycloak-

Running

Runs the Keycloak identity and authentication server, which handles user sign-in, tokens, and identity provider federation.

postgres-0

Running

Runs the PostgreSQL database that stores Keycloak realms, users, clients, and sessions.

1-keycloak-sslgen-preinstall-

Completed

Generates the TLS certificate that Keycloak uses. This job runs once, before Keycloak starts.

Infrastructure pods in the controlplane namespace

The infrastructure pods in the controlplane namespace provide the databases, message bus, search, object storage, and metrics storage that the Global View application microservices depend on. Validate these pods first. If an infrastructure pod isn't running, the microservices that depend on it stay in a transient or failed state. An infrastructure failure is therefore the most common root cause when many pods are unhealthy at once.

The following table lists the infrastructure pods that must be present in the controlplane namespace.

Pod name prefix

Expected status

Purpose

controlplane-growthbook-

Running

Runs GrowthBook, the feature flag service that controls which Global View features are enabled.

controlplane-infra-cnpg-operator-

Running

Runs the CloudNativePG operator, which creates and manages the main PostgreSQL cluster.

controlplane-infra-postgresql-main-1

Running

Runs the main PostgreSQL database, which stores the platform's relational data.

controlplane-infra-kafka-broker-0, controlplane-infra-kafka-broker-1, and controlplane-infra-kafka-broker-2

Running

Run the three Kafka brokers that form the platform message bus. Services exchange events through Kafka.

strimzi-cluster-operator-

Running

Runs the Strimzi operator, which creates and manages the Kafka cluster.

controlplane-infra-mongodb-

Running

Runs the MongoDB database, which stores the platform's document data.

controlplane-infra-redis-0

Running

Runs the Redis in-memory cache, which services use for caching and short-lived state.

controlplane-minio-

Running

Runs MinIO object storage, which holds generated files such as reports and exports.

solrcloud-solr-0, solrcloud-solr-1, and solrcloud-solr-2

Running

Run the three SolrCloud nodes that index platform data and serve search queries.

solrcloud-zookeeper-0, solrcloud-zookeeper-1, and solrcloud-zookeeper-2

Running

Run the three ZooKeeper nodes that coordinate the SolrCloud cluster.

victoria-metrics-single-0

Running

Runs VictoriaMetrics, the time series database that stores platform metrics.

Application microservice pods in the controlplane namespace

The application microservice pods in the controlplane namespace provide the Global View features that users interact with, such as the web interface, alerting, inventory, reporting, and licensing. Every pod in the following table must show Running with a ready replica count that matches its total replica count, such as 1/1.

The following table lists the application microservice pods that must be present in the controlplane namespace.

Pod name prefix

Expected status

Purpose

actions-service-

Running

Runs the actions that you configure for alerts and automated workflows.

alerts-gateway-service-

Running

Receives inbound alert events from monitored sources and passes them to the alerts service.

alerts-service-

Running

Evaluates alert definitions and manages the lifecycle of each alert.

appmon-api-svc-

Running

Serves the application monitoring APIs.

audit-logs-service-

Running

Records audit log entries for user and system activity.

authentication-service-

Running

Handles sign-in requests and validates tokens, working with Keycloak.

authorization-service-

Running

Enforces the role and permission checks that control what each user can see and do.

branding-service-

Running

Serves the branding assets, such as logos and themes, that customize the web interface.

cp-metrics-service-

Running

Collects and serves the platform's own operational metrics.

insights-service-

Running

Generates the insights and recommendations that Global View presents.

integration-mgmt-service-

Running

Manages the integrations that connect Global View to external data sources.

inventory-service-

Running

Maintains the inventory of discovered resources and their relationships.

licensing-service-

Running

Validates the license and tracks entitlement and license consumption.

onprem-cost-service-

Running

Calculates cost data for on-premises infrastructure.

organization-service-

Running

Manages organizations and their configuration.

reporting-service-

Running

Generates reports and runs report schedules.

ui-

Running

Serves the Global View web interface.

ui-notification-service-

Running

Delivers in-app notifications to the web interface.

user-service-

Running

Manages user records and user group membership.

user-settings-service-

Running

Stores each user's preferences and settings.

virtana-ai-

Running

Provides the AI-assisted analysis features, including Copilot.

virtana-mcp-server-

Running

Serves the Virtana Model Context Protocol (MCP) endpoint, which lets AI clients query Virtana Platform data.

vp-infrastructure-cloudcapi-

Running

Provides the cloud infrastructure collection API.

vp-swagger-server-

Running

Serves the interactive API reference for the Virtana Platform APIs.

workflow-job-service-

Running

Runs scheduled and background workflow jobs.

Installation job pods in the controlplane namespace

The installation job pods in the controlplane namespace run once during installation to prepare the platform, and then exit. Each of these pods must show Completed with a ready count of 0/1. A job pod that shows Error means that an installation task failed, and the services that depend on that task can't start.

The following table lists the installation job pods that must be present in the controlplane namespace.

Pod name prefix

Expected status

Purpose

check-smtp-

Completed

Verifies the SMTP configuration that the platform uses to send email notifications.

create-databases-

Completed

Creates the platform databases in PostgreSQL.

kafka-configurator-

Completed

Creates the Kafka topics that the platform services use to exchange events.

org-creation-

Completed

Creates the initial organization.

org-zero-creation-

Completed

Creates the default system organization that the platform uses internally.

vp-sslgen-

Completed

Generates the TLS certificates that the platform services use.

Note

Completed job pods stay in the kubectl get pods output until Kubernetes removes them. If your cluster applies a job cleanup policy, a job pod can be absent from the output even though the installation succeeded. A missing job pod is a concern only when the services that depend on that job aren't Running.

Pods in the system namespaces

The calico-system, kube-system, and tigera-operator namespaces hold the Kubernetes and container networking components that are built into the Global View OVA (Open Virtualization Appliance). These pods start automatically when you deploy the appliance, and Global View can't run without them. Include them in your validation so that you can confirm the appliance's foundation is healthy before you investigate a platform service.

The following table lists the system pods that must be present in a Global View appliance.

Namespace

Pod name prefix

Expected status

Purpose

calico-system

calico-apiserver-

Running

Serves the Calico API for network policy resources. Two replicas run by default.

calico-system

calico-kube-controllers-

Running

Keeps Calico network state in sync with Kubernetes resources.

calico-system

calico-node-

Running

Runs the Calico networking agent that programs the network on each node. One pod runs on every node in the cluster.

calico-system

calico-typha-

Running

Distributes Calico datastore updates to the Calico agents, which reduces load on the Kubernetes API server.

calico-system

goldmane-

Running

Aggregates Calico network flow data.

calico-system

whisker-

Running

Serves the Calico network flow visualization interface. This pod runs two containers, so its ready count is 2/2.

kube-system

coredns-

Running

Resolves DNS names inside the cluster so that services can find each other.

kube-system

local-path-provisioner-

Running

Provisions persistent volumes on the appliance's local disk for the platform's stateful components.

kube-system

metrics-server-

Running

Collects CPU and memory metrics for the cluster's nodes and pods.

tigera-operator

tigera-operator-

Running

Installs and manages the Calico networking deployment.

Troubleshooting Pod states that indicate a problem

A Global View pod that shows any state other than Running or Completed in the kubectl get pods --all-namespaces output points to a specific class of problem. Use the following table to identify the cause of each state and the action to take. Before you investigate an individual microservice, confirm that the infrastructure pods in the controlplane namespace are running. A failed database, Kafka broker, or Solr node causes the microservices that depend on it to fail as well.

The following table describes the pod states that indicate a problem in a Global View deployment.

Pod state

Description

Action

Pending

Kubernetes can't place the pod on a node. The most common causes are insufficient CPU or memory on the appliance and a persistent volume claim that isn't bound.

Run kubectl describe pod pod-name -n namespace and read the Events section. If the events report insufficient resources, confirm that the appliance meets the Global View sizing requirements, and increase the virtual machine's CPU or memory allocation.

ContainerCreating, PodInitializing, or Init:0/1

The pod is starting. These states are expected shortly after deployment, while Kubernetes pulls images and runs init containers.

Wait a few minutes and run kubectl get pods --all-namespaces again. If the pod doesn't reach Running, run kubectl describe pod pod-name -n namespace to see which init container or dependency is blocking it.

CrashLoopBackOff

The container starts and then exits repeatedly. The most common causes are a configuration error and an unavailable dependency, such as PostgreSQL, Kafka, or Solr.

Confirm that the infrastructure pods in the controlplane namespace are Running. Then read the logs from the previous container run: kubectl logs pod-name -n namespace --previous.

ImagePullBackOff or ErrImagePull

Kubernetes can't pull the container image. The Global View OVA ships with its container images preloaded. This state therefore usually means that an image is missing from the appliance, or that its tag doesn't match the tag the deployment expects.

Run kubectl describe pod pod-name -n namespace and read the Events section to identify the image and the error. Then contact Virtana Support with that output.

Error

The container exited with a non-zero exit code. For an installation job pod, this state means the installation task failed.

Read the container logs to find the failure: kubectl logs pod-name -n namespace. For a job pod, resolve the reported cause and then rerun the installation step that creates the job.

Running with a ready count lower than the total count, such as 0/1

The container is running but hasn't passed its readiness probe, so the pod isn't serving traffic yet. This state often means the service is still waiting for a dependency.

Run kubectl describe pod pod-name -n namespace to see the readiness probe result, and read the container logs to find the dependency the service is waiting for.

The pod is missing from the output

Kubernetes never created a required pod, or a cluster cleanup policy removed a completed job pod.

If the missing pod is an installation job and the services that depend on it are Running, you don't need to take any action. Otherwise, confirm that the installation finished without errors, and contact Virtana Support with the output of kubectl get pods --all-namespaces -o wide.

Important

Don't delete or restart the stateful infrastructure pods in the controlplane namespace, such as controlplane-infra-postgresql-main-1, the controlplane-infra-kafka-broker- pods, or the solrcloud-zookeeper- pods, to clear a failed state. Restarting these pods interrupts data collection and can leave dependent microservices in a failed state. Diagnose the failure first, and contact Virtana Support before you restart an infrastructure pod.