360 lines
13 KiB
YAML
360 lines
13 KiB
YAML
# Default values for property-settings-svc-v2-chart.
|
|
# This is a YAML-formatted file.
|
|
# Declare variables to be passed into your templates.
|
|
|
|
# External service dependencies - URLs can be overridden via Helm parameters
|
|
hades:
|
|
baseUrl: "http://hades-service:8080"
|
|
|
|
# This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
|
|
replicaCount: 1
|
|
|
|
# Common labels to add to all resources
|
|
# These labels enable Backstage discovery and Hades IP registration
|
|
commonLabels:
|
|
backstage.io/kubernetes-id: "property-settings-v2-service"
|
|
osmos.ai/track: "true"
|
|
|
|
# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/
|
|
image:
|
|
repository: europe-west1-docker.pkg.dev/prj-onlinesales-prod-01/os-docker-images/onlinesales/github-actions/prod/java/propertysettingsservicev3
|
|
# This sets the pull policy for images.
|
|
pullPolicy: IfNotPresent
|
|
# Overrides the image tag whose default is the chart appVersion.
|
|
tag: "dev-4862005c33f336a5eaadc8424d5a6bebb66c345f"
|
|
|
|
# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
imagePullSecrets: []
|
|
# This is to override the chart name.
|
|
nameOverride: "property-settings"
|
|
fullnameOverride: ""
|
|
|
|
# This section builds out the service account more information can be found here: https://kubernetes.io/docs/concepts/security/service-accounts/
|
|
serviceAccount:
|
|
# Specifies whether a service account should be created.
|
|
create: true
|
|
# Automatically mount a ServiceAccount's API credentials?
|
|
automount: true
|
|
# Annotations to add to the service account.
|
|
annotations: {}
|
|
# The name of the service account to use.
|
|
# If not set and create is true, a name is generated using the fullname template.
|
|
name: ""
|
|
|
|
# This is for setting Kubernetes Annotations to a Pod.
|
|
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
|
podAnnotations:
|
|
osmos.ai/service-name: "psDbService_rw"
|
|
# This is for setting Kubernetes Labels to a Pod.
|
|
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
|
podLabels: {}
|
|
|
|
podSecurityContext: {}
|
|
# fsGroup: 2000
|
|
|
|
securityContext: {}
|
|
# capabilities:
|
|
# drop:
|
|
# - ALL
|
|
# readOnlyRootFilesystem: true
|
|
# runAsNonRoot: true
|
|
# runAsUser: 1000
|
|
|
|
# This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/
|
|
service:
|
|
# This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
|
type: ClusterIP
|
|
# This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports
|
|
port: 8080
|
|
|
|
# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/
|
|
ingress:
|
|
enabled: false
|
|
className: ""
|
|
annotations:
|
|
nginx.ingress.kubernetes.io/ssl-redirect: "false"
|
|
hosts:
|
|
- host: chart-example.local
|
|
paths:
|
|
- path: /
|
|
pathType: ImplementationSpecific
|
|
tls: []
|
|
# - secretName: chart-example-tls
|
|
# hosts:
|
|
# - chart-example.local
|
|
|
|
# -- Expose the service via gateway-api HTTPRoute
|
|
# Requires Gateway API resources and suitable controller installed within the cluster
|
|
# (see: https://gateway-api.sigs.k8s.io/guides/)
|
|
httpRoute:
|
|
# HTTPRoute enabled.
|
|
enabled: false
|
|
# HTTPRoute annotations.
|
|
annotations: {}
|
|
# Which Gateways this Route is attached to.
|
|
parentRefs:
|
|
- name: gateway
|
|
sectionName: http
|
|
# namespace: default
|
|
# Hostnames matching HTTP header.
|
|
hostnames:
|
|
- chart-example.local
|
|
# List of rules and filters applied.
|
|
rules:
|
|
- matches:
|
|
- path:
|
|
type: PathPrefix
|
|
value: /propertySettingsSvcV2
|
|
# filters:
|
|
# - type: RequestHeaderModifier
|
|
# requestHeaderModifier:
|
|
# set:
|
|
# - name: My-Overwrite-Header
|
|
# value: this-is-the-only-value
|
|
# remove:
|
|
# - User-Agent
|
|
# - matches:
|
|
# - path:
|
|
# type: PathPrefix
|
|
# value: /echo
|
|
# headers:
|
|
# - name: version
|
|
# value: v2
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
|
|
# This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /propertySettingsSvcV3/properties?jsonQuery=%7B%22requestType%22%3A%22GetAllProperties%22%2C%22isActive%22%3A%22true%22%2C%22propertyTypeFilter%22%3A%5B%22BUSINESS_SEGMENT_SET%22%5D%2C%22isBestProperty%22%3Afalse%2C%22entityDetails%22%3A%5B%7B%22entityType%22%3A%22AGENCY%22%2C%22entityValue%22%3A%22424_1%22%7D%5D%2C%22application%22%3A%22nagios%22%7D
|
|
port: http
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 30
|
|
timeoutSeconds: 10
|
|
failureThreshold: 3
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /propertySettingsSvcV3/properties?jsonQuery=%7B%22requestType%22%3A%22GetAllProperties%22%2C%22isActive%22%3A%22true%22%2C%22propertyTypeFilter%22%3A%5B%22BUSINESS_SEGMENT_SET%22%5D%2C%22isBestProperty%22%3Afalse%2C%22entityDetails%22%3A%5B%7B%22entityType%22%3A%22AGENCY%22%2C%22entityValue%22%3A%22424_1%22%7D%5D%2C%22application%22%3A%22nagios%22%7D
|
|
port: http
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 30
|
|
timeoutSeconds: 10
|
|
failureThreshold: 3
|
|
|
|
# This section is for setting up autoscaling more information can be found here: https://kubernetes.io/docs/concepts/workloads/autoscaling/
|
|
autoscaling:
|
|
enabled: false
|
|
minReplicas: 1
|
|
maxReplicas: 10
|
|
targetCPUUtilizationPercentage: 200
|
|
targetMemoryUtilizationPercentage: 80
|
|
|
|
# Traefik Ingress Configuration (for test setup with IP header injection)
|
|
# Enable this to route traffic through Traefik with custom IP header injection
|
|
traefik:
|
|
# Enable Traefik routing for Hades calls
|
|
enabled: false
|
|
# Service-specific IP address for X-Client-IP header
|
|
clientIP: "10.0.0.1"
|
|
# Base URL for routing to Hades via Traefik (path-based routing - no DNS config needed)
|
|
hadesUrl: "http://traefik.traefik.svc.cluster.local/property-hades"
|
|
# Middleware reference (must exist in cluster)
|
|
middleware:
|
|
name: "property-settings-caller-headers"
|
|
namespace: "traefik"
|
|
|
|
# Additional volumes on the output Deployment definition.
|
|
volumes: []
|
|
# The deployment will automatically add config and db-config volumes
|
|
# - config volume mounts ConfigMap with application configuration files
|
|
# - db-config volume mounts Secret with Hibernate mapping
|
|
|
|
# Additional volumeMounts on the output Deployment definition.
|
|
volumeMounts: []
|
|
# The deployment automatically mounts:
|
|
# - /etc/onlinesales/config/propertySettingsSvcV2 (from config ConfigMap)
|
|
# - /etc/onlinesales/db (from db-config Secret)
|
|
|
|
nodeSelector: {}
|
|
|
|
tolerations: []
|
|
|
|
affinity: {}
|
|
|
|
# MySQL Database Configuration
|
|
# Set mysql.enabled to true to deploy MySQL as part of this chart
|
|
# Set mysql.enabled to false to use an external MySQL database
|
|
mysql:
|
|
enabled: true
|
|
image: "mysql"
|
|
imageTag: "8.4"
|
|
imagePullPolicy: IfNotPresent
|
|
mysqlRootPassword: "changeme"
|
|
mysqlUser: "propertysettings"
|
|
mysqlPassword: "changeme"
|
|
mysqlDatabase: "property_settings_db_v2"
|
|
persistence:
|
|
enabled: true
|
|
size: 8Gi
|
|
storageClass: ""
|
|
resources:
|
|
requests:
|
|
cpu: 250m
|
|
memory: 256Mi
|
|
configurationFiles:
|
|
mysql.cnf: |-
|
|
[mysqld]
|
|
character-set-server=utf8
|
|
collation-server=utf8_general_ci
|
|
sql_mode=NO_ENGINE_SUBSTITUTION
|
|
max_allowed_packet=16M
|
|
log_bin_trust_function_creators=ON
|
|
|
|
# Database initialization
|
|
# Automatically runs all SQL migration files from sql/ directory in alphabetical order
|
|
# SQL files are loaded via ConfigMap and executed by a Helm Job (post-install/post-upgrade hook)
|
|
# To use a specific set of files, manage them in the sql/ directory:
|
|
# - For clean installation: Use 000-003 files (004 can be removed or renamed)
|
|
# - For complete dump with data: Use only 004 file (rename others to .bak or remove)
|
|
dbInit:
|
|
enabled: true
|
|
|
|
# External MySQL Configuration (used when mysql.enabled=false)
|
|
externalDatabase:
|
|
host: "mysql.example.com"
|
|
port: 3306
|
|
database: "property_settings_db_v2"
|
|
username: "propertysettings"
|
|
password: "changeme"
|
|
# Root password for database initialization (defaults to password if not set)
|
|
rootPassword: "changeme"
|
|
|
|
# Application Configuration Files
|
|
# These values are used to generate the ConfigMap mounted at /etc/onlinesales/config/propertySettingsSvcV2
|
|
|
|
appEnv:
|
|
test
|
|
|
|
config:
|
|
# Main service configuration
|
|
propertySettingsService:
|
|
prod:
|
|
logConfig: "/etc/onlinesales/config/propertySettingsSvcV2/log.cfg"
|
|
hibernateConfig: "/etc/onlinesales/db/propertySettingsV2.hbm.xml"
|
|
restAccessorConfig: "/etc/onlinesales/config/propertySettingsSvcV2/prodRestAccessor.cfg"
|
|
test:
|
|
logConfig: "/etc/onlinesales/config/propertySettingsSvcV2/log.cfg"
|
|
hibernateConfig: "/etc/onlinesales/db/propertySettingsV2.hbm.xml"
|
|
restAccessorConfig: "/etc/onlinesales/config/propertySettingsSvcV2/testRestAccessor.cfg"
|
|
|
|
# Logging configuration
|
|
log: |
|
|
log4j.rootLogger=DEBUG, root
|
|
log4j.logger.OS=DEBUG, root
|
|
log4j.logger.org.hibernate=DEBUG, root
|
|
log4j.appender.root=org.apache.log4j.ConsoleAppender
|
|
log4j.appender.root.layout=org.apache.log4j.PatternLayout
|
|
log4j.appender.root.layout.ConversionPattern=<%d> %5p [%t](%c) [%X{request_id}] - %m%n
|
|
log4j.additivity.OS=false
|
|
|
|
log4j.logger.SOKRATI_METRICS=OFF, A3
|
|
log4j.appender.A3=org.apache.log4j.ConsoleAppender
|
|
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
|
|
log4j.appender.A3.layout.ConversionPattern=<%d> %5p [%t](%c) - %m%n
|
|
log4j.additivity.SOKRATI_METRICS=false
|
|
|
|
# Production REST accessor configuration
|
|
prodRestAccessor: |
|
|
{
|
|
"post_properties":
|
|
{
|
|
"url": "http://property-settings-v2-service:8080/propertySettingsSvcV2/properties",
|
|
"type": "post",
|
|
"response": "com.sokrati.propertySettingsSvcObjectsV2.PostPropertiesResponse"
|
|
},
|
|
"get_all_properties":
|
|
{
|
|
"url": "http://property-settings-v2-service:8080/propertySettingsSvcV2/properties",
|
|
"type": "get",
|
|
"response": "com.sokrati.propertySettingsSvcObjectsV2.GetPropertiesResponse"
|
|
},
|
|
"get_best_properties":
|
|
{
|
|
"url": "http://property-settings-v2-service:8080/propertySettingsSvcV2/properties",
|
|
"type": "get",
|
|
"response": "com.sokrati.propertySettingsSvcObjectsV2.GetPropertiesResponse"
|
|
},
|
|
"fetch_context":
|
|
{
|
|
"url": "http://hades-service:8080/hadesV2/context",
|
|
"type": "get",
|
|
"response": "com.sokrati.hadesObjects.ContextResponse"
|
|
}
|
|
}
|
|
|
|
# Test REST accessor configuration
|
|
testRestAccessor: |
|
|
{
|
|
"post_properties":
|
|
{
|
|
"url": "http://property-settings-v2-service:8080/propertySettingsSvcV2/properties",
|
|
"type": "post",
|
|
"response": "com.sokrati.propertySettingsSvcObjectsV2.PostPropertiesResponse"
|
|
},
|
|
"get_all_properties":
|
|
{
|
|
"url": "http://property-settings-v2-service:8080/propertySettingsSvcV2/properties",
|
|
"type": "get",
|
|
"response": "com.sokrati.propertySettingsSvcObjectsV2.GetPropertiesResponse"
|
|
},
|
|
"get_best_properties":
|
|
{
|
|
"url": "http://property-settings-v2-service:8080/propertySettingsSvcV2/properties",
|
|
"type": "get",
|
|
"response": "com.sokrati.propertySettingsSvcObjectsV2.GetPropertiesResponse"
|
|
},
|
|
"fetch_context":
|
|
{
|
|
"url": "http://hades-service:8080/hadesV2/context",
|
|
"type": "get",
|
|
"response": "com.sokrati.hadesObjects.ContextResponse"
|
|
}
|
|
}
|
|
|
|
# Authentication configuration
|
|
auth: |
|
|
{
|
|
prod: {
|
|
hades_auth_url : "http://hades-service:8080/hadesV2/authorize",
|
|
auth_enable : false
|
|
},
|
|
test: {
|
|
hades_auth_url : "http://hades-service:8080/hadesV2/authorize",
|
|
auth_enable : false
|
|
}
|
|
}
|
|
|
|
# Statistics logging configuration
|
|
statsLogging: |
|
|
{
|
|
test: {
|
|
metric_name_prefix: "",
|
|
statsd_host: "localhost",
|
|
statsd_port: "8125",
|
|
logging_enabled: "true",
|
|
},
|
|
prod: {
|
|
metric_name_prefix: "",
|
|
statsd_host: "localhost",
|
|
statsd_port: "8125",
|
|
logging_enabled: "true",
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|