pega-helm-charts
pega-helm-charts copied to clipboard
Pega helm chart v2.2.0 is NOT WORKING on GKE
Describe the bug Pega helm chart v2.2.0 is not working on GKE. The all the pods start well and once Pega is up and running, Pega shuts down... This process repeats indefinitely without reaching a stable state... To make it work I needed to rollback my charts to the v2.1.1.
To Reproduce
In a GKE deployment run the following command
helm install
Expected behavior Clean cluster initialization with Pods reaching a "stable" state
Chart version v2.2.0 with no customizations
Server (if applicable, please complete the following information):
- Environment: Google Cloud - GKE
- Database: Google Cloud Managed PostgreSQL 12
Additional context
Hi @alemax22, can you please share the values.yaml file used for deployment
Yes, sure. I have removed the confidential data
---
global:
# This values.yaml file is an example. For more information about
# each configuration option, see the project readme.
custom: &custom
volumes:
- name: pega-shared-storage
persistentVolumeClaim:
claimName: shared-claim
volumeMounts:
- name: pega-shared-storage
mountPath: /shared
prlog4j2: |-
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<LogStashJSONLayoutPega/>
</Console>
<RollingRandomAccessFile name="PEGA" fileName="/shared/logs/${env:HOSTNAME}/PegaRULES.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaRULES-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d [%20.20t] [%10.10X{pegathread}] [%20.20X{tenantid}] [%20.20X{app}] (%30.30c{3}) %-5p %X{stack} %X{RequestorId} %X{userid} - %m%n</Pattern>
</PatternLayout>
<Filters>
<!--Deny message logged under ALERT log level-->
<ThresholdFilter level="ALERT" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
<!-- RollingFile Appender for pegarules PERFORMANCE Alert logs -->
<RollingRandomAccessFile name="ALERT" fileName="/shared/logs/${env:HOSTNAME}/PegaRULES-ALERT.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaRULES-ALERT-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<ThreadContextMapFilter onMatch="DENY" onMismatch="NEUTRAL" operator="or">
<KeyValuePair key="alertType" value="security"/>
</ThreadContextMapFilter>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaRULES-ALERTSECURITY logs -->
<RollingRandomAccessFile name="ALERTSECURITY" fileName="/shared/logs/${env:HOSTNAME}/PegaRULES-ALERTSECURITY.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaRULES-ALERTSECURITY-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<ThreadContextMapFilter onMatch="ACCEPT" onMismatch="DENY" operator="or">
<KeyValuePair key="alertType" value="security"/>
</ThreadContextMapFilter>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaBIX logs -->
<RollingRandomAccessFile name="BIX" fileName="/shared/logs/${env:HOSTNAME}/PegaBIX.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaBIX-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d [%20.20t] [%20.20X{tenantid}] [%20.20X{app}] (%30.30c{3}) %-5p %X{stack} %X{userid} - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaRULES-SecurityEvent logs -->
<RollingRandomAccessFile name="SECURITYEVENT" fileName="/shared/logs/${env:HOSTNAME}/PegaRULES-SecurityEvent.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaRULES-SecurityEvent-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaCLUSTER logs -->
<RollingRandomAccessFile name="CLUSTER" fileName="/shared/logs/${env:HOSTNAME}/PegaCLUSTER.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaCLUSTER-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d [%20.20t] [%20.20X{tenantid}] [%20.20X{app}] (%30.30c{3}) %-5p %X{stack} %X{RequestorId} %X{userid} - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaDATAFLOW logs -->
<RollingRandomAccessFile name="DATAFLOW" fileName="/shared/logs/${env:HOSTNAME}/PegaDATAFLOW.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaDATAFLOW-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d (%30.30c{3}) %-5p - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaMOBILE logs -->
<RollingRandomAccessFile name="MOBILE" fileName="/shared/logs/${env:HOSTNAME}/PegaMOBILE.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaMOBILE-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for PegaMOBILEBUILD logs -->
<RollingRandomAccessFile name="MOBILEBUILD" fileName="/shared/logs/${env:HOSTNAME}/PegaMOBILEBUILD.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaMOBILEBUILD-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingRandomAccessFile>
<!-- RollingFile Appender for USAGEMETRICS logs -->
<!-- Added for Usage Metrics -->
<RollingRandomAccessFile name="USAGEMETRICS" fileName="/shared/logs/${env:HOSTNAME}/PegaUSAGE.json.log" filePattern="/shared/logs/${env:HOSTNAME}/PegaUSAGE-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
<DefaultRolloverStrategy max="1"/>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<asyncRoot>
<AppenderRef ref="CONSOLE"/>
<AppenderRef ref="PEGA"/>
<AppenderRef ref="JSONAppender" />
<AppenderRef ref="ALERT" level="ALERT"/>
<AppenderRef ref="ALERTSECURITY" level="ALERT"/>
</asyncRoot>
<Logger name="com.pega.pegarules.session.internal.mgmt.SecurityEventLogger" additivity="false" level="info">
<AppenderRef ref="SECURITYEVENT"/>
</Logger>
<Logger name="com.pega.pegarules.data.internal.access.ExtractImpl" additivity="false" level="info">
<AppenderRef ref="BIX"/>
</Logger>
<Logger name="com.pega.pegarules.data.internal.access.ExtractParameters" additivity="false" level="info">
<AppenderRef ref="BIX"/>
</Logger>
<Logger name="com.pega.pegarules.data.internal.access.DatabaseUtilsCommonImpl" additivity="false" level="info">
<AppenderRef ref="BIX"/>
</Logger>
<Logger name="com.hazelcast" additivity="false" level="info">
<AppenderRef ref="CLUSTER"/>
</Logger>
<Logger name="com.pega.hazelcast" additivity="false" level="info">
<AppenderRef ref="CLUSTER"/>
</Logger>
<Logger name="org.apache.ignite" additivity="false" level="info">
<AppenderRef ref="CLUSTER"/>
</Logger>
<Logger name="com.pega.MobileLogger" additivity="false" level="info">
<AppenderRef ref="MOBILE"/>
</Logger>
<Logger name="com.pega.MobileBuildLogger" additivity="false" level="info">
<AppenderRef ref="MOBILEBUILD"/>
</Logger>
<Logger name="com.pega.dsm.dnode.impl.dataflow.service.DataFlowDiagnosticsFileLogger" additivity="false" level="info">
<AppenderRef ref="DATAFLOW"/>
</Logger>
<!-- Added for Usage Metrics -->
<AsyncLogger name="com.pega.pegarules.session.internal.usagemetrics" additivity="false" level="USAGE">
<AppenderRef ref="USAGEMETRICS"/>
</AsyncLogger>
</Loggers>
</Configuration>
contextXML: |-
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Manager pathname="" />
<Resource name="jdbc/PegaRULES"
auth="Container"
type="javax.sql.DataSource"
driverClassName="{{ .Env.JDBC_CLASS }}"
url="{{ .Env.JDBC_URL }}"
username="{{ .Env.SECRET_DB_USERNAME }}"
password="{{ .Env.SECRET_DB_PASSWORD }}"
maxTotal="{{ .Env.JDBC_MAX_ACTIVE }}"
minIdle="{{ .Env.JDBC_MIN_IDLE }}"
maxIdle="{{ .Env.JDBC_MAX_IDLE }}"
maxWaitMillis="{{ .Env.JDBC_MAX_WAIT }}"
initialSize="{{ .Env.JDBC_INITIAL_SIZE }}"
connectionProperties="{{ .Env.JDBC_CONNECTION_PROPERTIES }}"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
/>
<Resource name="jdbc/db2DataSource"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2://databasehostURL"
username="Username"
password="Password"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
/>
<Environment name="prconfig/database/databases/PegaInternalDB2/dataSourceAdmin" value="java:comp/env/jdbc/db2DataSource" type="java.lang.String"/>
<Environment name="prconfig/database/databases/PegaInternalDB2/defaultSchema" value="SchemaName" type="java.lang.String"/>
{{ if and .Env.DB_RW_USERNAME .Env.JDBC_RW_URL }}
<Resource name="jdbc/PegaRULESLongRW"
auth="Container"
type="javax.sql.DataSource"
driverClassName="{{ .Env.JDBC_CLASS }}"
url="{{ .Env.JDBC_RW_URL }}"
username="{{ .Env.DB_RW_USERNAME }}"
password=""
maxTotal="{{ .Env.JDBC_MAX_ACTIVE }}"
minIdle="{{ default .Env.JDBC_RO_MIN_IDLE .Env.JDBC_MIN_IDLE }}"
maxIdle="{{ .Env.JDBC_MAX_IDLE }}"
maxWaitMillis="{{ .Env.JDBC_MAX_WAIT }}"
initialSize="{{ default .Env.JDBC_RO_INITIAL_SIZE .Env.JDBC_INITIAL_SIZE }}"
connectionProperties="socketTimeout=1200;statement_timeout=1200500;idle_in_transaction_session_timeout=1200500;"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
/>
{{ end }}
{{ if and .Env.JDBC_RO_URL .Env.DB_RO_USERNAME .Env.DB_RO_PASSWORD }}
<Resource name="jdbc/PegaRULESReadOnly"
auth="Container"
type="javax.sql.DataSource"
driverClassName="{{ .Env.JDBC_CLASS }}"
url="{{ .Env.JDBC_RO_URL }}"
username="{{ .Env.DB_RO_USERNAME }}"
password="{{ .Env.DB_RO_PASSWORD }}"
maxTotal="{{ .Env.JDBC_MAX_ACTIVE }}"
minIdle="{{ default .Env.JDBC_RO_MIN_IDLE .Env.JDBC_MIN_IDLE }}"
maxIdle="{{ .Env.JDBC_MAX_IDLE }}"
maxWaitMillis="{{ .Env.JDBC_MAX_WAIT }}"
initialSize="{{ default .Env.JDBC_RO_INITIAL_SIZE .Env.JDBC_INITIAL_SIZE }}"
connectionProperties="{{ .Env.JDBC_CONNECTION_PROPERTIES }}"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
/>
<Environment name="prconfig/database/databases/PegaRULES/dataSourceReadOnly" value="java:comp/env/jdbc/PegaRULESReadOnly" type="java.lang.String" />
<Environment name="prconfig/database/databases/PegaDATA/dataSourceReadOnly" value="java:comp/env/jdbc/PegaRULESReadOnly" type="java.lang.String" />
{{ if .Env.CUSTOMERDATA_SCHEMA }}
<Environment name="prconfig/database/databases/CustomerData/dataSourceReadOnly" value="java:comp/env/jdbc/PegaRULESReadOnly" type="java.lang.String" />
{{ end }}
{{ end }}
<Environment name="url/initialization/explicittempdir" value="path" type="java.lang.String"/>
<Environment name="prconfig/database/databases/PegaRULES/defaultSchema" value="{{ .Env.RULES_SCHEMA }}" type="java.lang.String" />
<Environment name="prconfig/database/databases/PegaDATA/defaultSchema" value="{{ .Env.DATA_SCHEMA }}" type="java.lang.String" />
{{ if .Env.CUSTOMERDATA_SCHEMA }}
<Environment name="prconfig/database/databases/CustomerData/defaultSchema" value="{{ .Env.CUSTOMERDATA_SCHEMA }}" type="java.lang.String" />
{{ else }}
<Environment name="prconfig/database/databases/CustomerData/defaultSchema" value="{{ .Env.DATA_SCHEMA }}" type="java.lang.String" />
{{ end }}
{{ if .Env.REQUESTOR_PASSIVATION_TIMEOUT }}
<Environment name="prconfig/timeout/browser" value="{{ .Env.REQUESTOR_PASSIVATION_TIMEOUT }}" type="java.lang.String" />
{{ end }}
{{ if .Env.CONTEXT_XML_SNIPPET }}
{{ .Env.CONTEXT_XML_SNIPPET }}
{{ end }}
</Context>
prconfig: |-
<?xml version="1.0" encoding="UTF-8"?>
<pegarules>
<!-- This is a minimum format prconfig.xml file. Only the settings which are required to access settings in the database are included.
All other settings which were formerly located only in this file are now Data-Admin-System-Settings. -->
<env name="initialization/settingsource" value="merged" />
<env name="database/databases/PegaRULES/dataSource" value="java:comp/env/jdbc/PegaRULES"/>
<env name="database/databases/PegaDATA/dataSource" value="java:comp/env/jdbc/PegaRULES"/>
<env name="database/databases/PegaInternalDB2/dataSource" value="java:comp/env/jdbc/db2DataSource"/>
<env name="security/urlaccesslog" value="NORMAL" />
<env name="security/urlaccessmode" value="WARN" />
<!-- Most nodes have a 'default' classification and for these nodes, no additional changes need to be made to this file. However,
if this is node has a non-general purpose, for example: 'Agent', then the node classification setting should be added to this file. -->
<!--env name="initialization/nodeclassification" value="Agent" / -->
<!-- Settings can still be put in this file. If they are, then the value in this file will override the value in the database
for this node. This is useful for settings which are specific to this node and should not be shared by multiple nodes on this
system. -->
<!-- Flag to notify that hazelcast version 4 is enabled -->
<env name="cluster/hazelcast/v4/enabled" value="true" type="java.lang.String"/>
<env name="services/stream/name/pattern" value="pegadev01-{stream.name}"/>
</pegarules>
# Enter your Kubernetes provider.
provider: "gke"
deployment:
# The name specified will be used to prefix all of the Pega pods (replacing "pega" with something like "app1-dev").
name: "pega"
# Deploy Pega nodes
actions:
execute: "deploy"
# Provide JDBC connection information to the Pega relational database
# If you are installing or upgrading on IBM DB2, update the udb.conf file in the /charts/pega/charts/installer/config/udb directory with any additional connection properties.
jdbc:
# url Valid values are:
#
# Oracle jdbc:oracle:thin:@//localhost:1521/dbName
# IBM DB/2 z / OS jdbc:db2://localhost:50000/dbName
# IBM DB/2 jdbc:db2://localhost:50000/dbName:fullyMaterializeLobData=true;fullyMaterializeInputStreams=true;
# progressiveStreaming=2;useJDBC4ColumnNameAndLabelSemantics=2;
# SQL Server jdbc:sqlserver://localhost:1433;databaseName=dbName;selectMethod=cursor;sendStringParametersAsUnicode=false
# PostgreSQL jdbc:postgresql://localhost:5432/dbName
url: "jdbc:postgresql://10.150.15.3:5432/pegadev01"
# driverClass -- jdbc class. Valid values are:
#
# Oracle oracle.jdbc.OracleDriver
# IBM DB/2 com.ibm.db2.jcc.DB2Driver
# SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver
# PostgreSQL org.postgresql.Driver
driverClass: "org.postgresql.Driver"
# pega.database.type Valid values are: mssql, oracledate, udb, db2zos, postgres
dbType: "postgres"
# For databases that use multiple JDBC driver files (such as DB2), specify comma separated values for 'driverUri'
driverUri: "https://jdbc.postgresql.org/download/postgresql-42.2.23.jar, https://download.oracle.com/otn-pub/otn_software/jdbc/215/ojdbc11.jar, https://repo1.maven.org/maven2/com/ibm/mq/com.ibm.mq.allclient/9.1.0.0/com.ibm.mq.allclient-9.1.0.0.jar"
username: "UsernamePostgres"
password: "PasswordDatabasePostgres"
# CUSTOM CONNECTION PROPERTIES
# Add a list of ; delimited connections properties. The list must end with ;
# For example: connectionProperties=user=usr;password=pwd;
connectionProperties: ""
rulesSchema: "pegarules871"
dataSchema: "pegadata"
customerDataSchema: "customerdata"
# If using a custom Docker registry, supply the credentials here to pull Docker images.
docker:
registry:
url: "repository.host.name/pocpega/pocpega/"
#username: "YOUR_DOCKER_REGISTRY_USERNAME"
#password: "YOUR_DOCKER_REGISTRY_PASSWORD"
# Docker image information for the Pega docker image, containing the application server.
pega:
image: "repository.host.name/pocpega/pocpega/my-pega:8.7.1"
utilityImages:
busybox:
image: busybox:1.31.0
imagePullPolicy: IfNotPresent
k8s_wait_for:
image: dcasavant/k8s-wait-for
imagePullPolicy: "IfNotPresent"
# Upgrade specific properties
upgrade:
# Configure only for aks/pks
# Run "kubectl cluster-info" command to get the service host and https service port of kubernetes api server.
# Example - Kubernetes master is running at https://<service_host>:<https_service_port>
kube-apiserver:
serviceHost: "API_SERVICE_ADDRESS"
httpsServicePort: "SERVICE_PORT_HTTPS"
# Specify the Pega tiers to deploy
tier:
- name: "web"
# Create a an interactive tier for web users. This tier uses
# the WebUser node type and will be exposed via a service to
# the load balancer.
nodeType: "WebUser"
custom: *custom
# Pega requestor specific properties
requestor:
# Inactivity time after which requestor is passivated
passivationTimeSec: 900
service:
# For help configuring the service block, see the Helm chart documentation
# https://github.com/pegasystems/pega-helm-charts/blob/master/charts/pega/README.md#service
port: 80
targetPort: 8080
ingress:
# For help configuring the ingress block including TLS, see the Helm chart documentation
# https://github.com/pegasystems/pega-helm-charts/blob/master/charts/pega/README.md#ingress
# Enter the domain name to access web nodes via a load balancer.
# e.g. web.mypega.example.com
domain: "pegadev01.mydomani.com"
tls:
# Enable TLS encryption
enabled: true
# secretName:
useManagedCertificate: false
ssl_annotation:
ingress.gcp.kubernetes.io/pre-shared-cert: pegadev01-ssl-ingress
kubernetes.io/ingress.global-static-ip-name: pegadev01-web
annotations:
kubernetes.io/ingress.class: "gce-internal"
replicas: 1
javaOpts: ""
pegaDiagnosticUser: ""
pegaDiagnosticPassword: ""
deploymentStrategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
livenessProbe:
port: 8081
# Optionally overridde default resource specifications
# cpuRequest: 2
# memRequest: "12Gi"
# cpuLimit: 4
# memLimit: "12Gi"
# initialHeap: "4096m"
# maxHeap: "8192m"
# To configure an alternative user for custom image, set value for runAsUser.
# See, https://github.com/pegasystems/pega-helm-charts/blob/master/charts/pega/README.md#security-context
# securityContext:
# runAsUser: 9001
hpa:
enabled: true
minReplicas: 1
maxReplicas: 4
# Set enabled to true to include a Pod Disruption Budget for this tier.
# To enable this budget, specifiy either a pdb.minAvailable or pdb.maxUnavailable
# value and comment out the other parameter.
pdb:
enabled: false
minAvailable: 1
# maxUnavailable: "50%"
- name: "batch"
# Create a background tier for batch processing. This tier uses
# a collection of background node types and will not be exposed to
# the load balancer.
nodeType: "BackgroundProcessing,Search,Batch,RealTime,Custom1,Custom2,Custom3,Custom4,Custom5,BIX"
custom: *custom
replicas: 1
javaOpts: ""
pegaDiagnosticUser: ""
pegaDiagnosticPassword: ""
deploymentStrategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
livenessProbe:
port: 8081
# To configure an alternative user for your custom image, set value for runAsUser
# See, https://github.com/pegasystems/pega-helm-charts/blob/master/charts/pega/README.md#security-context
# securityContext:
# runAsUser: 9001
hpa:
enabled: true
minReplicas: 1
maxReplicas: 3
# Set enabled to true to include a Pod Disruption Budget for this tier.
# To enable this budget, specifiy either a pdb.minAvailable or pdb.maxUnavailable
# value and comment out the other parameter.
pdb:
enabled: false
minAvailable: 1
# maxUnavailable: "50%"
- name: "stream"
# Create a stream tier for queue processing. This tier deploys
# as a stateful set to ensure durability of queued data. It may
# be optionally exposed to the load balancer.
nodeType: "Stream"
custom: *custom
# Pega requestor specific properties
requestor:
# Inactivity time after which requestor is passivated
passivationTimeSec: 900
service:
port: 7003
targetPort: 7003
# If a nodeSelector is required for this or any tier, it may be specified here:
# nodeSelector:
# disktype: ssd
ingress:
# Enter the domain name to access web nodes via a load balancer.
# e.g. web.mypega.example.com
domain: "streamdev01.mydomani.com"
tls:
# Enable TLS encryption
enabled: true
# secretName:
useManagedCertificate: false
ssl_annotation:
ingress.gcp.kubernetes.io/pre-shared-cert: streamdev01-ssl-ingress
kubernetes.io/ingress.global-static-ip-name: streamdev01-stream
annotations:
kubernetes.io/ingress.class: "gce-internal"
livenessProbe:
port: 8081
# To configure an alternative user for your custom image, set value for runAsUser
# See, https://github.com/pegasystems/pega-helm-charts/blob/master/charts/pega/README.md#security-context
# securityContext:
# runAsUser: 9001
replicas: 2
volumeClaimTemplate:
resources:
requests:
storage: 30Gi
# Set enabled to true to include a Pod Disruption Budget for this tier.
# To enable this budget, specifiy either a pdb.minAvailable or pdb.maxUnavailable
# value and comment out the other parameter.
pdb:
enabled: false
minAvailable: 1
# maxUnavailable: "50%"
# External services
# Cassandra automatic deployment settings.
cassandra:
enabled: false
persistence:
enabled: true
resources:
requests:
memory: "4Gi"
cpu: 2
limits:
memory: "8Gi"
cpu: 4
# DDS (external Cassandra) connection settings.
# These settings should only be modified if you are using a custom Cassandra deployment.
dds:
externalNodes: ""
port: "9042"
username: "dnode_ext"
password: "dnode_ext"
clientEncryption: false
trustStore: ""
trustStorePassword: ""
keyStore: ""
keyStorePassword: ""
# Elasticsearch deployment settings.
# Note: This Elasticsearch deployment is used for Pega search, and is not the same Elasticsearch deployment used by the EFK stack.
# These search nodes will be deployed regardless of the Elasticsearch configuration above.
# Refer to README document to configure `Search and Reporting Service` as a search functionality provider under this section.
pegasearch:
image: "repository.host.name/pocpega/pocpega/my-pega-search:8.7.1"
memLimit: "10Gi"
replicas: 1
# Pega Installer settings.
installer:
image: "repository.host.name/pocpega/pocpega/my-pega-installer:8.7.1"
# Set the initial [email protected] password for your installation. This will need to be changed at first login. # The adminPassword value cannot start with "@".
adminPassword: "adminPassword"
# Upgrade specific properties
upgrade:
# Type of upgrade
# Valid upgradeType values are 'in-place' , 'zero-downtime' , 'custom' , 'out-of-place-rules' , 'out-of-place-data' .
upgradeType: "zero-downtime"
# Specify a name for a target rules schema that the upgrade process creates for patches and upgrades.
targetRulesSchema: "pegarules871"
# Specify a name for a target data schema that the upgrade process creates for patches and upgrades.
# For postgres databases that you are upgrading from Pega Infinity version 8.4.0 and later
# And for Oracle databases that you are upgrading from Pega Infinity version 8.4.3 and later.
targetDataSchema: "pegadatatemp"
# Hazelcast settings (applicable from Pega 8.6)
hazelcast:
image: "YOUR_HAZELCAST_IMAGE:TAG"
# Setting below to true will deploy the infinity in client server hazelcast mode
enabled: false
# No. of initial members to join
replicas: 3
# UserName to be used in client server hazelcast mode for authentication
username: ""
# Password to be used in client server hazelcast mode for authentication
password: ""
hi @alemax22 can you please share the pega-web pod logs?
hi @alemax22 , is the issue resolved? if not can you please share us the logs?
Hi @pega-sagas1, we still having the problem, I will share the logs with you as soon as I can. If I try to upgrade the deployment right now I will stop the work of all our developers...
@alemax22 We are trying to reproduce this scenario. We would like to know what storage class being used for persistent volumes, if possible please provide the configuration files for PV and PVC.
Yes sure: Filestore-StorageClass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: filestore-standard
annotations:
components.gke.io/component-name: filestorecsi
components.gke.io/component-version: 0.4.18
components.gke.io/layer: addon
provisioner: filestore.csi.storage.gke.io
parameters:
tier: standard
network: "projects/pocpega/global/networks/vpc-pocpega"
reserved-ip-range: net-pocpega
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
SharedVolumeClaim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shared-claim
labels:
app: pega-shared
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 100Gi
storageClassName: filestore-standard
@alemax22 Can you try with the latest images from pegasystems/pega?
@alemax22 Please update the latest docker image from pegasystems/pega and try again. If issue still persists please reopen the issue.