Cloud Native Experience Reference

CNE Azure Ready: Helm Values Reference

This reference describes the values files in the GitOps repository of a CNE Azure Ready deployment, the Helm charts that read them, and their default values. It describes liferay-azure-bootstrap 0.3.0 and the charts it installs: liferay-azure 0.3.0 (which wraps liferay-default 4.0.0), liferay-infrastructure 0.2.0, liferay-azure-infrastructure-provider 0.3.0, and observability 2.0.0.

The bootstrap reads config.json. After the bootstrap, you set environment values in the GitOps repository, and Argo CD applies each change you commit. For the values in config.json, see CNE Azure Ready: Bootstrap Configuration Reference.

GitOps Values Files

Argo CD reads these files from the GitOps repository:

liferay/
├── projects
│   └── <projectId>
│       ├── base
│       │   ├── infrastructure.yaml
│       │   └── liferay.yaml
│       ├── environments
│       │   └── <environmentId>
│       │       ├── infrastructure.yaml
│       │       └── liferay.yaml
│       └── project.yaml
└── system
    ├── infrastructure-provider.yaml
    └── observability.yaml
FileChartArgo CD ApplicationScope
liferay/projects/<projectId>/environments/<environmentId>/liferay.yamlliferay-azure<projectId>-<environmentId>-appThe Liferay DXP workload of one environment
liferay/projects/<projectId>/environments/<environmentId>/infrastructure.yamlliferay-infrastructure<projectId>-<environmentId>-infraThe Azure resources, search cluster, gateway, certificates, and license of one environment
liferay/projects/<projectId>/project.yamlliferay-infrastructure<projectId>-resourcesResources shared by a project’s environments
liferay/system/infrastructure-provider.yamlliferay-azure-infrastructure-providerliferay-infrastructure-providerResources shared by the whole deployment
liferay/system/observability.yamlobservabilityliferay-observabilityThe observability stack

Argo CD creates an environment’s applications from the files in its environments/<environmentId> folder: an environment folder without a liferay.yaml has no Liferay DXP application, and one without an infrastructure.yaml has no infrastructure application. Both environment applications deploy to the liferay-<projectId>-<environmentId> namespace.

For liferay.yaml and infrastructure.yaml, Argo CD applies the file in liferay/projects/<projectId>/base first and the environment’s file second, so a value in the environment’s file overrides the same value in base. Put values that every environment of a project shares in base.

Values the Platform Sets

The platform passes these values to the charts as Argo CD Helm parameters, which take precedence over the values files. Do not set them in your files.

ApplicationValues
<projectId>-<environmentId>-appglobal.database.engine (from setup.database.engine in config.json), global.liferayServiceAccount.create (false), global.liferayServiceAccount.name (liferay-default), liferay-default.network.gatewayName (<projectId>-<environmentId>-gateway), liferay-default.clientExtensions.delivery.*, liferay-default.licensing.onlineActivationWorkflow.enabled (true), and global.azure.prometheusWorkspaceEndpoint
<projectId>-<environmentId>-infraclusterSecretStoreName, environmentId, projectId, gateway.className (liferay-gateway-class), gateway.name (<projectId>-<environmentId>-gateway), overlayBucket.enabled (false), and persistence.storageClassName (managed-csi-premium-v2)
<projectId>-resourcesenabled (false) and projectId
liferay-infrastructure-providerdatabase.engine, deploymentContext.*, deploymentName, and liferay-subchart-backup-restore.database.engine
liferay-observabilitycentralHub.*, the namespaceOverride values, cloudProvider (azure), and the azure.* values

liferay.yaml

liferay.yaml configures the liferay-azure chart. liferay-azure wraps the liferay-default chart, so nest every value under liferay-default::

liferay-default:
   replicaCount: 2

An environment whose liferay.yaml sets nothing runs with the values in the next two sections.

Azure Settings

liferay-azure sets these values for liferay-default. They override the liferay-default defaults listed in Core Liferay Values.

ValueAzure Setting
annotationsOpenTelemetry injection turned off: instrumentation.opentelemetry.io/inject-dotnet, inject-java, inject-nodejs, and inject-python, and sidecar.opentelemetry.io/inject, each "false"
autoscaling.typekeda
autoscaling.keda.triggerAuthentication.specA TriggerAuthentication that uses the azure-workload pod identity provider
configmap.dataElasticsearch 7 and Elasticsearch 8 connector configurations that read the connection from SEARCH_URL, SEARCH_USERNAME, and SEARCH_PASSWORD, and an Azure Blob Storage document store configuration
customEnvLIFERAY_DISABLE_TRIAL_LICENSE=true, the Azure Blob Storage document store (com.liferay.portal.store.azure.AzureStore), database user liferay with the password from DATABASE_PASSWORD, and forwarded port and protocol headers enabled
customEnvFromThe database-server-details ConfigMap and the database-app-password, document-library-connection-details, and search-connection-details Secrets
customInitContainersA wait-for-elasticsearch init container that reads search-connection-details
customLabelsorigin: liferay-azure
customVolumeMountsMounts of the Elasticsearch 7, Elasticsearch 8, and Azure Blob Storage configurations from the liferay-configmap volume into /opt/liferay/osgi/configs
customVolumesThe liferay-init-scripts-azure ConfigMap volume, which holds the wait-for-elasticsearch.sh script
database.host${env.DATABASE_ENDPOINT}
database.tlsRequiredtrue
network.enabledtrue
network.timeoutsbackendRequest: 300s and request: 300s
overlay.typeazureblob
persistence.defaultStorageClassNamemanaged-csi
podLabelsazure.workload.identity/use: "true"
podSecurityContext and securityContextRun as user 1000 (runAsNonRoot: true), with the RuntimeDefault seccomp profile; the container drops all capabilities and disallows privilege escalation
resourcesRequests of 2000m CPU and 4Gi memory; limits of 4000m CPU and 12Gi memory
volumeClaimTemplatesliferay-persistent-volume, ReadWriteOnce, 10Gi

Because the trial license is disabled, Liferay DXP starts only with a license you provide. See CNE Azure Ready: Managing Secrets and Licenses.

The database engine comes from setup.database.engine in config.json, which the platform passes as global.database.engine. Setting database.engine to a different engine fails the render.

To configure autoscaling, see CNE Azure Ready: Configuring Autoscaling. On Azure, autoscaling.enabled is false by default, and autoscaling.keda.prometheusServerAddress is empty. Set prometheusServerAddress for the Prometheus triggers. The platform passes the Azure Monitor workspace endpoint as global.azure.prometheusWorkspaceEndpoint, but no liferay-azure 0.3.0 template reads it.

Core Liferay Values

This YAML lists the liferay-default 4.0.0 values and their defaults, except the marketplace, licensing.offline, and licensing.offlineActivationBundle values, because CNE Azure Ready 0.3.0 supports neither Marketplace add-on delivery nor offline licensing. Nest them under liferay-default: in liferay.yaml. Where a default is a long list or a set of templates, the block shows [...] or {...} and the comment names the default entries.

affinity: {}                                    # Set the pod template affinity field
annotations: {}                                 # Set StatefulSet and pod template annotations
autoscaling:                                    # Autoscaling configuration
   enabled: false                               # Enable autoscaling; when true, the StatefulSet does not set replicas
   hpa:                                         # HorizontalPodAutoscaler, used when type is hpa
      annotations: {}                           # Set HorizontalPodAutoscaler metadata annotations
      maxReplicas: 100                          # Set HorizontalPodAutoscaler spec maxReplicas field
      metrics: [...]                            # Set HorizontalPodAutoscaler spec metrics field; default is 80 percent average CPU utilization
      minReplicas: 1                            # Set HorizontalPodAutoscaler spec minReplicas field
   keda:                                        # KEDA ScaledObject, used when type is keda
      customTriggers: {}                        # Triggers merged over triggers by name; set enabled: false on a trigger to drop it
      maxReplicaCount: 100                      # Set ScaledObject spec maxReplicaCount field
      minReplicaCount: 1                        # Set ScaledObject spec minReplicaCount field
      pollingInterval: 30                       # Set ScaledObject spec pollingInterval field
      prometheusServerAddress: ""               # Server address for Prometheus triggers that set none
      triggerAuthentication:                    # KEDA TriggerAuthentication, created when spec is set
         annotations: {}                        # Set TriggerAuthentication metadata annotations
         spec: {}                               # Set TriggerAuthentication spec; every trigger references it
      triggers:                                 # Default triggers by name; a trigger without a type is a Prometheus trigger
         cpu-usage-percent: {...}               # CPU utilization, value "80"
         hikari-active-connections: {...}       # Maximum active Hikari connections, threshold "50"
         jvm-memory-heap-used-percent: {...}    # JVM heap used percent, threshold "80"
         jvm-threads-current: {...}             # JVM current threads, threshold "500"
   type: hpa                                    # Autoscaler type: hpa or keda
clientExtensions:                               # Client extension delivery through the Liferay DXP operator
   delivery:
      enabled: false                            # Bind the client extension delivery ClusterRole to the operator service account
      operatorServiceAccount:
         name: dxp-operator                     # Service account of the Liferay DXP operator
         namespace: dxp-operator-system         # Namespace of the Liferay DXP operator
   policy:
      allowedNamespaces: []                     # Namespaces listed in the client-extension-policy ConfigMap
configmap:                                      # Central ConfigMap configuration
   annotations: {}                              # Set central ConfigMap metadata annotations
   data: {}                                     # Add entries to the central ConfigMap data
   overrideDefaults: false                      # If true, excludes the default data in templates/configmap.yaml
customEnv: {}                                   # Named lists of container env entries
customEnvFrom: {}                               # Named lists of container envFrom entries
customInitContainers:                           # Named lists of init containers
   x-license-sync: [...]                        # License sync sidecar, rendered when licensing.enabled is true
   x-liferay-overlay: [...]                     # Overlay copy, rendered when overlay.enabled is true and overlay.copy is set
   x-liferay-prepopulate-data: [...]            # Prepares the persistent volume and the Tomcat configuration
   x-liferay-wait-on-services: [...]            # Waits for the StatefulSet dependencies
customLabels:                                   # Labels added to the chart's resources
   origin: liferay-cloud
customPorts: {}                                 # Named lists of container ports
customPullSecrets: {}                           # Named lists of imagePullSecrets entries
customServicePorts: {}                          # Named lists of Service ports
customVolumeClaimTemplates: {}                  # Named lists of StatefulSet volumeClaimTemplates
customVolumeMounts: {}                          # Named lists of container volumeMounts
customVolumes:                                  # Named lists of pod volumes
   x-liferay-init-scripts-default: [...]        # The liferay-init-scripts-default ConfigMap volume
database:                                       # Database connection
   engine: ""                                   # postgresql; sets the JDBC driver, URL, and Hibernate dialect
   host: ""                                     # Database host; required when engine is set
   port: ""                                     # Database port; defaults to 5432 for postgresql
   tlsRequired: false                           # Add the engine's TLS parameter to the JDBC URL
dependencies: {}                                # Services that become ready before Liferay DXP starts
env: [...]                                      # Container env; defaults set clustering, JMX agent, and pod variables
envFrom:                                        # Container envFrom
   -  secretRef:
         name: liferay-default                  # Secret the chart creates with a generated admin password
fullnameOverride: ""                            # Override the liferay.fullname value used in the helper template
global:
   liferayServiceAccount:                       # Liferay DXP ServiceAccount and Role
      annotations: {}                           # Set ServiceAccount metadata annotations
      automount: true                           # Set ServiceAccount automountServiceAccountToken field
      create: true                              # Create the ServiceAccount
      name: ""                                  # ServiceAccount name; defaults to the chart name
      role:
         annotations: {}                        # Set Role metadata annotations
         rules: [...]                           # Role rules; the default allows get, list, and watch on ConfigMaps
image:                                          # Liferay DXP container image
   pullPolicy: IfNotPresent                     # Set container imagePullPolicy field
   pullSecrets: []
   repository: liferay/dxp                      # Image repository
   tag: 2026.q1.8-lts                           # Image tag
initContainers: []                              # Set pod template initContainers field
licensing:                                      # Licensing through the Liferay DXP operator; unknown keys are rejected
   activationCodeSecretKey: activationCode      # Key of the activation code in its Secret
   activationCodeSecretName: ""                 # Secret that holds the activation code; defaults to <name>-activation
   dxpVersion: ""                               # DXP version the operator reports; defaults to the image tag
   enabled: false                               # Create the LiferayEnvironment and sync the license into the deploy folder
   environmentName: ""                          # Environment name the operator reports; defaults to the namespace
   onlineActivationWorkflow:                    # Argo workflow that submits the activation code
      clusterRoleName: online-activation-cluster-role                          # ClusterRole the workflow service account is bound to
      clusterWorkflowTemplateName: online-activation-cluster-workflow-template # ClusterWorkflowTemplate the workflow runs
      enabled: false                            # Create the online activation workflow and its RBAC; the platform sets true
      serviceAccountName: online-activation-service-account                    # Service account the workflow runs as
      ttlSecondsAfterCompletion: 3600           # Seconds a finished workflow is kept before it is deleted
      userAccess:                               # Service account a user submits the workflow with
         roleName: online-activation-user-role                                 # Role that allows submitting and watching the workflow
         serviceAccountName: online-activation-user-service-account            # Service account bound to the role
         tokenSecretName: online-activation-user-token                         # Secret that holds the service account token
      workflowTemplateName: online-activation-workflow-template                # WorkflowTemplate a user submits
   secretName: ""                               # Secret the license is mounted from; defaults to <name>-entitlements
   syncInterval: 60                             # Seconds between license syncs into the deploy folder
livenessProbe:                                  # Set container livenessProbe field
   failureThreshold: 3
   httpGet:
      path: /c/portal/robots
      port: http
   initialDelaySeconds: 60
   periodSeconds: 30
   timeoutSeconds: 5
nameOverride: ""                                # Override the Chart.Name value used in the helper template
network:                                        # Gateway API routing to Liferay DXP
   annotations: {}                              # Set HTTPRoute metadata annotations
   enabled: false                               # Render the HTTPRoute and its BackendTrafficPolicy
   endpointRef: http                            # Gateway listener the HTTPRoute attaches to
   extraParentRefs: []                          # Additional HTTPRoute parentRefs
   extraRules: []                               # Additional HTTPRoute rules
   forceHttpsRedirect: false                    # Redirect HTTP to HTTPS when endpointRef is not http
   gatewayName: ""                              # Gateway the HTTPRoute attaches to
   hostnames: []                                # HTTPRoute hostnames; the first becomes the default virtual host
   hsts:
      enabled: true                             # Add the Strict-Transport-Security response header
      value: max-age=31536000                   # Strict-Transport-Security header value
   perHostnameRoutes: false                     # Render one HTTPRoute per hostname
   securityPolicyAuthorizationSpec: {}          # Authorization for an Envoy Gateway SecurityPolicy on the route
   sessionPersistence:                          # Set HTTPRoute rule sessionPersistence field
      cookieConfig:
         lifetimeType: Session
      sessionName: LIFERAY_SESSION
      type: Cookie
   timeouts: {}                                 # Set HTTPRoute rule backendRequest and request timeouts
networkPolicy:                                  # Kubernetes NetworkPolicy for the Liferay DXP pods
   allowGatewayIngress: true                    # Allow ingress from the gateway pods when network.enabled is true
   allowMetricsIngress: true                    # Allow ingress to metricsPort from metricsNamespace
   annotations: {}                              # Set NetworkPolicy metadata annotations
   cluster:
      kubernetesEndpointCidrs: ""               # Comma-separated CIDRs allowed for egress on port 443
   enabled: false                               # Render the NetworkPolicy
   extraEgress: []                              # Additional egress rules
   extraIngress: []                             # Additional ingress rules
   gatewayNamespace: envoy-gateway-system       # Namespace of the gateway pods
   gatewayPodLabel: envoy                       # app.kubernetes.io/name label of the gateway pods
   metricsNamespace: observability              # Namespace allowed to reach metricsPort
   metricsPort: 12345                           # Metrics port
nodeSelector: {}                                # Set pod template nodeSelector field
overlay:                                        # Files copied from overlay storage before Liferay DXP starts
   copy: []                                     # Entries with from (path in overlay storage) and into (path on the persistent volume)
   enabled: false                               # Render the overlay init container
   image:                                       # Image of the overlay init container
      repository: rclone/rclone
      tag: "1.66"
   initScriptsVolumeName: liferay-init-scripts-default  # Volume that holds overlay-sync.sh
   type: ""                                     # rclone backend type
persistence:
   defaultStorageClassName: ""                  # storageClassName for volumeClaimTemplates that set none
podLabels: {}                                   # Set pod template labels
podSecurityContext: {}                          # Set pod securityContext field
portalBundleDenyList: []                        # Add bundles to the bundle deny list in portal-cloud.properties
portalComponentDenyList: []                     # Add components to the component deny list in portal-cloud.properties
portalProperties:                               # Set portal properties in portal-cloud.properties
ports: [...]                                    # Container ports: glowroot 4000, session 4100, cluster 7800, cluster-tx 7801, debug 8000, http 8080
pullSecrets: []                                 # Set pod imagePullSecrets field
readinessProbe:                                 # Set container readinessProbe field
   failureThreshold: 2
   httpGet:
      path: /c/portal/robots
      port: http
   initialDelaySeconds: 0
   periodSeconds: 10
   timeoutSeconds: 5
replicaCount: 1                                 # Set StatefulSet replicas when autoscaling is disabled
resources:                                      # Set container resources field
   limits:
      cpu: 4000m
      memory: 8Gi
   requests:
      cpu: 2000m
      memory: 6Gi
schedulingGates: []                             # Set pod schedulingGates field
search:
   engine: ""                                   # When opensearch, adds the Elasticsearch connector bundles to the deny list
securityContext: {}                             # Set container securityContext field
service:                                        # Liferay DXP Service configuration
   annotations: {}                              # Set Service metadata annotations
   ports: [...]                                 # Service ports: cluster 7800, cluster-tx 7801, http 8080
   type: ClusterIP                              # Set Service spec type field
startupProbe:                                   # Set container startupProbe field
   failureThreshold: 90
   httpGet:
      path: /c/portal/robots
      port: http
   initialDelaySeconds: 60
   periodSeconds: 10
   timeoutSeconds: 5
tolerations: []                                 # Set pod tolerations field
tomcat:
   maxThreads: ""                               # Set maxThreads in Tomcat's server.xml
   sessionReplication:
      transportTimeoutMs: 300000                # Tomcat session replication sender timeout
updateStrategy:                                 # Set StatefulSet updateStrategy field
   type: RollingUpdate
volumeClaimTemplates: [...]                     # liferay-persistent-volume, ReadWriteOnce, 1Gi
volumeMounts: [...]                             # Mounts from liferay-persistent-volume and liferay-configmap
volumes: [...]                                  # liferay-configmap, from the liferay-default ConfigMap

To set portal properties, see Configuring Portal Properties. To route domains to Liferay DXP, see CNE Azure Ready: Configuring Liferay Domains and TLS. To copy OSGi modules or client extensions from overlay storage, see CNE Azure Ready: Adding OSGi Modules or Client Extensions With Overlays.

infrastructure.yaml

infrastructure.yaml configures the liferay-infrastructure chart. The chart renders the environment’s Elasticsearch cluster, gateway, and secrets. It also renders a LiferayInfrastructure resource, which the Azure composition turns into the environment’s Azure resources. Defaults come from the LiferayInfrastructure resource definition, except where the table says the Azure composition sets them.

Database

These values configure the environment’s database server:

ValueDescriptionDefault
database.highAvailabilityEnables high availability on the database server.false
database.instanceTypeSets the Azure Database flexible server SKU.Set by the Azure composition: GP_Standard_D2s_v3
database.storageGBSets the database storage, in GB.32
database.versionSets the database engine version.Set by the Azure composition: "16"
database.restore.pointInTime.timeSets the UTC time to restore the database to, in the form YYYY-MM-DDTHH:MM:SSZ. It is required when you restore.None

The database engine comes from setup.database.engine in config.json, not from this file.

The resource definition also accepts database.restore.snapshot, but the Azure composition fails a restore that does not set database.restore.pointInTime.time. To restore an environment, see CNE Azure Ready: Backup and Restore.

Backup

These values configure scheduled backups of the environment’s document library:

ValueDescriptionDefault
backup.enabledEnables scheduled backups of the environment.false
backup.frequencySets how often backups run: Daily or Weekly.Daily
backup.dayOfWeekSets the day a weekly backup runs, Sunday through Saturday.Sunday
backup.timeOfDaySets the time a backup runs, in the form HH:MM.05:00
backup.timeZoneSets the time zone of timeOfDay.UTC
backup.retentionDaysSets the number of days a backup is kept. The resource definition accepts 1 to 3650; the Azure composition applies a value between 7 and 35.30
backup.vaultTagsSets the tags on the environment’s backup vault.{}
backup.restore.sanitizationScriptsLists named SQL scripts that the chart stores in the backup-restore-sanitization ConfigMap when backup.enabled is true.{}

For the backup and restore procedures, see CNE Azure Ready: Backup and Restore.

On Azure, search.engine must be elasticsearch. When search.engine is empty, it resolves to elasticsearch. Setting opensearch fails the render with Search engine opensearch is not available on this cloud, which supports: elasticsearch.

ValueDescriptionDefault
search.engineSets the search engine."", which resolves to elasticsearch
search.elasticsearch.versionSets the Elasticsearch version.8.19.11
search.elasticsearch.nodeCountSets the number of Elasticsearch nodes.1
search.elasticsearch.volumeSizeSets the data volume size of each node.10Gi
search.elasticsearch.envSets environment variables for the Elasticsearch container.ES_JAVA_OPTS: -Xms4g -Xmx4g
search.elasticsearch.resourcesSets the resources of the Elasticsearch container.Requests of 500m CPU and 4Gi memory; limits of 1000m CPU and 8Gi memory

Elasticsearch data volumes use the managed-csi-premium-v2 storage class, which the platform sets. For more information, see CNE Azure Ready: Using Elasticsearch.

Endpoints and Gateway

endpoints is a map of gateway listeners, keyed by listener name. The gateway always has an http listener on port 80; an endpoint named http replaces it.

ValueDescriptionDefault
endpoints.<name>.hostnameSets the hostname the listener serves.None
endpoints.<name>.portSets the listener port, 80 or 443. A port 80 endpoint other than http must set a hostname.None
endpoints.<name>.protocolSets the listener protocol, such as HTTP or HTTPS.None
endpoints.<name>.tls.externalSecretKeysLists the secret store keys of the listener’s certificates. They are required for HTTPS and not allowed otherwise. Each key must start with liferay-certificates-, must be a valid DNS-1123 name, and must not end with a hyphen followed by six characters.None
gateway.accessControl.enabledWhen true, the gateway accepts traffic only from allowedCIDRs.false
gateway.accessControl.allowedCIDRsLists the IPv4 or IPv6 CIDRs allowed when accessControl.enabled is true. The list must not be empty when access control is enabled.[]
gateway.annotationsSets annotations on the Gateway resource.{}
gateway.clientTrafficPolicySpecSets the spec of an Envoy Gateway ClientTrafficPolicy attached to the gateway.{}

For the procedure, see CNE Azure Ready: Configuring Liferay Domains and TLS.

License

These values sync a license from the secret store into the environment:

ValueDescriptionDefault
license.externalSecretKeySets the secret store key of the license. It must start with liferay-licenses- and must not end with a hyphen followed by six letters or digits. When it is set, the chart syncs the license into the environment.""
license.externalSecretPropertyNames the property of the secret store entry that holds the license.license.xml
license.targetSecretNameNames the Kubernetes Secret that receives the license. It must be a valid DNS-1123 name."", which names the Secret liferay-license

For the procedure, see CNE Azure Ready: Managing Secrets and Licenses.

Storage, Tags, and Deletion

These values set tags, encryption, overlay access, and what happens to the environment’s Azure resources when it’s deleted:

ValueDescriptionDefault
storage.tagsSets the tags on the environment’s storage accounts.{}
commonTagsSets tags that the Azure composition adds to the environment’s Azure resources.{}
forceDestroyWhen true, turns off soft delete on the environment’s backup vault.false
orphanOnDeleteWhen true, the Azure resources remain in Azure when the environment is deleted.false
overlayAccess.enabledWhen true, grants the environment read access to the project’s overlay storage and creates the overlay-bucket-details Secret in the environment’s namespace.false
cmk.enabledWhen true, encrypts the environment’s storage accounts and database with a customer-managed key in Azure Key Vault.false

The Azure composition enables blob versioning on the environment’s storage accounts. No value turns it off.

project.yaml

project.yaml configures the project’s shared resources through the liferay-infrastructure chart. It has no base layering, and the platform sets enabled to false, so the chart renders only the overlay storage. An environment’s overlayBucket values have no effect, because the platform sets overlayBucket.enabled to false for every environment.

ValueDescriptionDefault
overlayBucket.enabledCreates the project’s overlay storage.false
overlayBucket.commonTagsSets the tags on the overlay storage resources.{}
overlayBucket.orphanOnDeleteWhen true, the overlay storage remains in Azure when the project’s resources are deleted.false
overlayBucket.forceDestroyHas no effect on Azure. The chart passes it to the LiferayOverlay resource, but the Azure overlay composition does not read it.false

An environment reads the overlay storage when its infrastructure.yaml sets overlayAccess.enabled: true. For the procedure, see CNE Azure Ready: Adding OSGi Modules or Client Extensions With Overlays.

infrastructure-provider.yaml

liferay/system/infrastructure-provider.yaml configures the liferay-azure-infrastructure-provider chart, which installs the resources the whole deployment shares.

ValueDescriptionDefault
network.databaseSubnetCidrSets the CIDR of the database subnet, which the chart creates in the deployment’s virtual network.10.0.16.0/20
liferay-subchart-backup-restore.liferayInfrastructure.databaseWaitTimeoutSecondsSets the seconds the restore workflow waits for the restored database.14400
liferay-subchart-backup-restore.liferayInfrastructure.waitTimeoutSecondsSets the seconds the restore workflow waits for the infrastructure by default.3600

The virtual network’s address space is the vpc_cidr Terraform variable, 10.0.0.0/16 by default, and the cluster subnet is cidrsubnet(vpc_cidr, 4, 0), which is 10.0.0.0/20 for the default address space. The default databaseSubnetCidr, 10.0.16.0/20, is the block that follows the cluster subnet in the default address space.

observability.yaml

liferay/system/observability.yaml configures the observability 2.0.0 chart. Its top-level values are alerting, alloy, aws, azure, centralHub, cloudProvider, customLabels, dashboards, datasource, frontend, fullnameOverride, gcp, grafana, grafana-alloy, kube-state-metrics, nameOverride, prometheus-node-exporter, and rdsExporter.

The bootstrap sets the azure.* values and cloudProvider. For the observability procedures, see CNE Azure Ready: Monitoring With Grafana.