Global View upgrade (2026.4.1)
Global View is one of the core components of the Virtana Platform (VP). It provides a centralized, unified dashboard to monitor and manage performance across your entire infrastructure, consolidating insights from multiple sources into a single pane of glass.
Prerequisities
An existing Virtana Platform installation running version 2025.12.1.
A Kubernetes cluster with Helm 3.x installed is required.
Access to the Virtana Helm repository.
Valid Docker registry credentials.
DNS records configured for Global View, Keycloak, and GrowthBook hostnames.
Prepare the Helm Values File
Create a new file named global-view-values.yaml. Replace all placeholder values with your environment-specific settings.
Global Configuration
global:
controlplane:
ingress:
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
postgresql:
migration:
enabled: false
storage:
size: 50Gi
environment: app
secret_source: valuesfile
storageClass: &defaultStorageClass ""
dockerRegistryCredentials:
DOCKER_SERVER: "https://index.docker.io/v2/"
DOCKER_USERNAME: "username"
DOCKER_PASSWORD: "password"
keycloak:
hostname: <KEYCLOAK_HOSTNAME>
adminUser: "vpadmin"
adminPassword: "P@ssW0rd@123"
public_dns_host_name: <global_view_hostname>
public_dns_host_am_suffix: -oc-<global_view_hostname>
organization_details:
organization_name: "<TENANT_NAME>"
first_name: "John"
last_name: "Doe"
contact_email: "xxxx.xxxx@domain.com"
create_tls_selfsigned_certs: true
affinity: &affinity {}
nodeSelector: &nodeSelector {}
tolerations: &tolerations []The following table describes each field in the configuration file.
Field | Description | Default value |
|---|---|---|
| Controls the behavior of the NGINX Ingress for the control plane. | |
| Controls automatic HTTP to HTTPS redirection. The default value decides the outcome. | false |
| Diables all incoming traffic to be served via HTTPS. | false |
| The PostgreSQL database backing the platform. | |
| Controls whether database migration jobs run automatically. If customer is running GV version 2026.12.1 or above, then this value must always be | false |
| Size of the persistent volume for PostgreSQL. | 50 Gib |
| Represents the deployment environment name or type. | app |
| Specifies where secrets should come from. | valuesfile/none |
| Default Kubernetes StorageClass name for PVCs. | &defaultStorageClass "" |
| Credentials to pull container images from a Docker registry. | |
| If you are deploying in an air gapped environment and using a private docker registry to pull container images then use private registry URL. | https://index.docker.io/v2/ |
| Private registry username. | "username" |
| Private registry password | "password" |
| If you are not using the private registry and pulling container images directly from Docker Hub, then do not change the list of servers. | "https://index.docker.io/v2/" "https://dhi.io/" |
| Docker hub username. | "username" |
| Docker hub password. | "password" |
| Integrates the platform with a Keycloak identity provider. | |
| Public hostname where Keycloak is accessible | <KEYCLOAK_HOSTNAME> |
| Credentials for the Keycloak admin account used to configure realms, clients, or users for this platform. | |
| Main DNS name for accessing the Virtana Global View UI. | <GLOBAL_VIEW_HOSTNAME> |
| Suffix used to construct additional hostnames, likely for auxiliary or AM services. | -oc-<global_view_hostname> |
| Metadata about the tenant or organization | |
| Tenant or company name | <TENANT_NAME> |
| Primary contact person | |
| Contact email for notifications or support | xxxx.xxxx@domain.com |
| Controls TLS certificate handling | true |
| Kubernetes pod affinity/anti‑affinity rules. Empty {} means pods can be scheduled anywhere. | &affinity {} |
| Simple mapping of labels > nodes. Empty {} means no node label constraints. | &nodeSelector {} |
| Allows pods to be scheduled onto tainted nodes. Empty [] means no special tolerations. | &tolerations [] |
SMTP configuration
cp-configs:
smtp:
smtpHost: smtp.gmail.com
smtpPort: "587"
smtpUsername: ""
smtpPassword: ""
smtpFromEmail: "noreplies@virtana.com"
smtpTlsInsecureSkipVerify: "false"The following table describes each field in the configuration file.
Fields | Description | Default values |
|---|---|---|
| SMTP server address | smtp.gmail.com |
| SMTP port | "587" |
| Authentication credentials for the SMTP server. | " " |
| Sender address for outgoing notification emails. | "noreplies@virtana.com" |
| "false" verifies TLS certificates | "false" |
GrowthBook configuration
growthbook:
ingress:
enabled: true
annotations:
nginx.ingress.kubernetes.io/cors-allow-origin: "https://<GROWTH_BOOK_HOSTNAME>"
appOriginName: <GROWTH_BOOK_HOSTNAME>
apiHostName: <GROWTH_BOOK_API_HOSTNAME>
affinity: *affinity
nodeSelector: *nodeSelector
tolerations: *tolerationsThe following table describes each field in the configuration file.
Fields | Description | Default values |
|---|---|---|
| Restricts browser CORS requests to the GrowthBook UI hostname. |
|
| Hostname for the GrowthBook web UI. |
|
| Hostname for the GrowthBook API endpoint. |
|
Storage and Infrastructure Components
cp-mongodb:
affinity: *affinity
nodeSelector: *nodeSelector
tolerations: *tolerations
migration:
enabled: false
persistence:
size: 50Gi
minio:
affinity: *affinity
nodeSelector: *nodeSelector
tolerations: *tolerations
persistence:
size: 20Gi
redis:
persistentVolumeClaim:
existingPersistentVolumeClaim: "redis-data-controlplane-infra-redis-master-0"
strimzi-kafka-operator:
controller:
persistence:
size: 50Gi
kafka:
controller:
persistence:
size: 50Gi
affinity: *affinity
nodeSelector: *nodeSelector
tolerations: *tolerations
cloud-native-postgresql-cluster:
affinity: *affinity
cp-metrics-service:
victoria-metrics-single:
rbac:
create: true
namespaced: true
server:
size: 100Gi
alerts-service:
solrdb:
enabled: true
persistent_ebs:
spec:
resources:
requests:
storage: 100Gi
solr:
enabled: false
persistence:
size: 50Gi
zookeeper:
persistence:
size: 20GiThe following table describes each field in the configuration file.
Fields | Description | Default values |
|---|---|---|
| Disables MongoDB data migrations | false |
| MongoDB for control plane document storage. | 50 Gib |
| S3-compatible object storage for files and artifacts. | 20 Gib |
| Reuses the existing Redis PVC from the prior installation to preserve data continuity during upgrade. | |
| Storage for the Strimzi Kafka operator controller state. | 50 Gib |
| Storage for Kafka controller/broker nodes. Use low-latency SSD storage in production. | 50 Gib |
| Time-series metrics database. Increase for long retention or high ingestion. RBAC is namespaced. | 100 Gib |
| Enables the SolrDB component. | true |
| EBS-backed Solr database for alert indexing. | 100 Gib |
| Disables the in‑chart Solr deployment. | false |
| The disk size for Solr. | 50 Gib |
| Zookeeper persistence volume size for Solr’s coordination service. | 20 Gib |
Note
For upgrade, Redis references an existingPersistentVolumeClaim instead of creating new storage. This ensures data continuity from the previous Redis deployment
Private container registry override (optional)
Create a file named global-view-image-registry.yaml. For detailed information, see Overriding the Private Container Registry.
Deploy Global View
In this step, you apply the prepared Helm values and image registry overrides to roll out the upgraded Global View stack to your Kubernetes or OpenShift cluster. The deployment is performed in the following three phases: CRDs, infrastructure modules, and service modules. It ensures that all required custom resources, storage, messaging, and application services are created and upgraded in a controlled, dependency-aware order using the virtana-repo/virtana-global-view Helm chart.
See the detailed Global View deployment steps in Deploying Global View.
Verify the upgrade
To ensure Global View is accessible, perform the following steps:
Open your web browser and navigate to
https://<global_view_hostname>/ui. Replace<global_view_hostname>with the hostname you defined during configuration.Log in using the organizational email address and the password you created during registration.
If the UI loads and login succeeds, the upgrade is complete.