Helm Chart Options

Helm chart for GoodData.CN

Note: The dependent subcharts (redisa-ha and postgresql-ha) are included in the GoodData.CN chart.

Requirements

RepositoryNameVersion
https://charts.bitnami.com/bitnamipostgresql-ha6.3.3
https://dandydeveloper.github.io/chartsredis-ha4.12.1

Values

KeyTypeDefaultDescription
afmExecApi.actuator.portint9001
afmExecApi.image.namestring"afm-exec-api"
afmExecApi.podDisruptionBudget.maxUnavailablestring""
afmExecApi.podDisruptionBudget.minAvailablestring""
afmExecApi.resources.limits.memorystring"600Mi"
afmExecApi.resources.requests.memorystring"350Mi"
afmExecApi.service.externalPortint9000
afmExecApi.service.internalPortint9000
afmExecApi.service.namestring"afm-exec-api"
afmExecApi.service.typestring"ClusterIP"
analyticalDesigner.image.namestring"analytical-designer"
analyticalDesigner.podDisruptionBudget.maxUnavailablestring""
analyticalDesigner.podDisruptionBudget.minAvailablestring""
analyticalDesigner.resources.limits.cpustring"50m"
analyticalDesigner.resources.limits.memorystring"25Mi"
analyticalDesigner.resources.requests.cpustring"10m"
analyticalDesigner.resources.requests.memorystring"15Mi"
analyticalDesigner.service.externalPortint9300
analyticalDesigner.service.internalPortint9300
analyticalDesigner.service.namestring"analytical-designer"
analyticalDesigner.service.typestring"ClusterIP"
antiAffinity.enabledboolfalseenables antiAffinity for all GoodData.CN Pods
antiAffinity.typestring"preferredDuringSchedulingIgnoredDuringExecution"“requiredDuringSchedulingIgnoredDuringExecution” or “preferredDuringSchedulingIgnoredDuringExecution”
apiDocs.enabledbooltrueCan be optionally disabled by setting enabled: false
apiDocs.image.namestring"apidocs"
apiDocs.podDisruptionBudget.maxUnavailablestring""
apiDocs.podDisruptionBudget.minAvailablestring""
apiDocs.replicaCountint2
apiDocs.resources.limits.cpustring"50m"
apiDocs.resources.limits.memorystring"30Mi"
apiDocs.resources.requests.cpustring"20m"
apiDocs.resources.requests.memorystring"15Mi"
apiDocs.service.externalPortint9999
apiDocs.service.internalPortint8080
apiDocs.service.namestring"apidocs"
apiDocs.service.typestring"ClusterIP"
aqe.image.namestring"aqe"
aqe.maqlTopicstring"xae.maql"
aqe.mdTopicstring"metadata.model"
aqe.podDisruptionBudget.maxUnavailablestring""
aqe.podDisruptionBudget.minAvailablestring""
aqe.resources.limits.cpustring"200m"
aqe.resources.limits.memorystring"160Mi"
aqe.resources.requests.cpustring"20m"
aqe.resources.requests.memorystring"80Mi"
aqe.service.externalPortint6569
aqe.service.internalPortint6569
aqe.service.namestring"aqe"
aqe.service.typestring"ClusterIP"
aqe.sqlTopicstring"sql.select"
authService.actuator.portint9051
authService.image.namestring"auth-service"
authService.podDisruptionBudget.maxUnavailablestring""
authService.podDisruptionBudget.minAvailablestring""
authService.resources.limits.memorystring"600Mi"
authService.resources.requests.memorystring"300Mi"
authService.service.externalPortint9050
authService.service.grpcExternalPortint6573
authService.service.grpcInternalPortint6573
authService.service.internalPortint9050
authService.service.namestring"auth-service"
authService.service.typestring"ClusterIP"
cookiePolicystring"Lax"
dashboards.image.namestring"dashboards"
dashboards.podDisruptionBudget.maxUnavailablestring""
dashboards.podDisruptionBudget.minAvailablestring""
dashboards.resources.limits.cpustring"20m"
dashboards.resources.limits.memorystring"20Mi"
dashboards.resources.requests.cpustring"10m"
dashboards.resources.requests.memorystring"10Mi"
dashboards.service.externalPortint9500
dashboards.service.internalPortint9500
dashboards.service.namestring"dashboards"
dashboards.service.typestring"ClusterIP"
deployDexIdPbooltrueIf set to true, Dex Identity Provider will be installed and configured according to values in “dex:” key below. Follow the guidelines in https://github.com/helm/charts/tree/master/stable/dex how to customize settings. Disabling this component will require every Organization to use an external Identity Provider.
deployPostgresHAbooltrueIf set to true, this chart will install bitnami/postgresql-ha as a part of the deployment. Postgres will be used for hosting Metadata and application configuration databases. If false, your existing, external Postgresql-compatible server must be configured in section service.postgres below. This option is useful for hosting metadata database in AWS RDS, for example.
deployRedisHAbooltrueIf set to true, this chart will install stable/redis-ha as a part of the deployment. If false, your existing Redis-compatible server must be configured in section service.redis below.
dex.config.database.namestring"dex"
dex.config.database.sslModestring"disable"
dex.config.enablePasswordDBbooltrueMap containing set of configured connectors. The key is the id of a connector, value is a map of connector’s parameters (excluding id and redirectURI that are added by template automatically).
dex.config.expiry.deviceRequestsstring"24h"
dex.config.expiry.idTokensstring"24h"
dex.config.expiry.signingKeysstring"48h"
dex.config.frontend.issuerstring"GoodData.CN"
dex.config.frontend.logoUrlstring"theme/logo.svg"
dex.config.frontend.themestring"gdc"
dex.config.grpc.addressstring"0.0.0.0"port is taken from ports section above
dex.config.logger.formatstring"json"
dex.config.logger.levelstring"info"
dex.config.oauth2.alwaysShowLoginScreenboolfalse
dex.config.oauth2.responseTypes[0]string"code"
dex.config.oauth2.responseTypes[1]string"token"
dex.config.oauth2.responseTypes[2]string"id_token"
dex.config.oauth2.skipApprovalScreenbooltrue
dex.config.web.addressstring"0.0.0.0"port is taken from ports section above
dex.image.namestring"dex"set to repository in local registry for air-gapped installations
dex.ingress.annotationsobject{}Custom annotations that will be added to every Ingress object created by this chart, e.g. cert-manager.io/cluster-issuer: letsencrypt-auth-production or using namespace-specific Issuer: cert-manager.io/issuer: local-ca-issuer
dex.ingress.authHoststring"localhost"hostname where the application will have its authentication Endpoint (Dex). It will be used for organizations without their own external Identity Provider.
dex.ingress.tls.authSecretNamestring""If you have pre-existing secret with your own certificate and key, put its name here. Also, if you want cert-manager, set to some Secret name where TLS certificate and key will be stored. Note that dex.ingress.authHost is required when enabling TLS. If you’re deploying to AWS, you may prefer TLS termination on AWS ELB and keep this value empty.
dex.podAnnotationsobject{}
dex.podDisruptionBudget.maxUnavailablestring""
dex.podDisruptionBudget.minAvailablestring""
dex.ports.grpc.containerPortint5000
dex.ports.grpc.servicePortint35000
dex.ports.metrics.containerPortint5558
dex.ports.metrics.servicePortint37000
dex.ports.web.containerPortint5556
dex.ports.web.servicePortint32000
dex.replicaCountint2
dex.resources.limits.cpustring"100m"
dex.resources.limits.memorystring"50Mi"
dex.resources.requests.cpustring"100m"
dex.resources.requests.memorystring"50Mi"
dex.service.namestring"dex"
dex.service.typestring"ClusterIP"
dex.uriPrefixstring"/dex"base context path prefix used by Dex to serve its resources
fullnameOverridestring""If not set, a name is generated using the fullname template.
global.imageRegistrystringnilSet the following variable to your private docker registry if you want to deploy to air-gapped installations. This affects images needed to deploy postgresql-ha subchart.
homeUi.image.namestring"home-ui"
homeUi.podDisruptionBudget.maxUnavailablestring""
homeUi.podDisruptionBudget.minAvailablestring""
homeUi.resources.limits.cpustring"20m"
homeUi.resources.limits.memorystring"20Mi"
homeUi.resources.requests.cpustring"10m"
homeUi.resources.requests.memorystring"15Mi"
homeUi.service.externalPortint9600
homeUi.service.internalPortint9600
homeUi.service.namestring"home-ui"
homeUi.service.typestring"ClusterIP"
image.defaultTagstring"latest"default image tag that will be used on all GoodData.CN apps unless specific per-application tag is specified.
image.dockerhubPrefixstring"docker.io"Registry prefix for DockerHub images. Set to docker.io if your cluster has access to DockerHub either directly or via configured registry proxy On air-gapped installations, set to local registry namespace with pre-pulled images
image.pullPolicystring"Always"
image.repositoryPrefixstring"gooddata"Registry where the GoodData.CN images are stored. Normally it points to GoodData namespace on Docker Hub. Set to repository prefix in local registry if you plan deploying to air-gapped installation
imagePullSecretslist[]List of secret name(s) to be used for pulling images from private registry.
ingress.annotationsobject{}
ingress.lbProtocolstring"https"This setting informs applications if the load balancer exposes the applications on HTTPS or plain unencrypted HTTP. For production workload, we strongly suggest using HTTPS. For local development purposes (e.g. in k3d cluster), HTTP is sufficient.
ldmModeler.image.namestring"ldm-modeler"
ldmModeler.podDisruptionBudget.maxUnavailablestring""
ldmModeler.podDisruptionBudget.minAvailablestring""
ldmModeler.resources.limits.cpustring"50m"
ldmModeler.resources.limits.memorystring"30Mi"
ldmModeler.resources.requests.cpustring"10m"
ldmModeler.resources.requests.memorystring"15Mi"
ldmModeler.service.externalPortint9400
ldmModeler.service.internalPortint8080
ldmModeler.service.namestring"ldm-modeler"
ldmModeler.service.typestring"ClusterIP"
license.existingSecretstring""
license.keystring"<put-your-license-key-here>"
loggerRingBufferSizeint262144Default Log4J ring buffer size (in bytes).
metadataApi.actuator.portint9008
metadataApi.bootstrap.existingSecretstring""If set, existing secret containing user and password can be used instead of the two values above.
metadataApi.dataSourceTopicstring"data-source.change"
metadataApi.image.namestring"metadata-api"
metadataApi.podDisruptionBudget.maxUnavailablestring""
metadataApi.podDisruptionBudget.minAvailablestring""
metadataApi.resources.limits.cpustring"1500m"
metadataApi.resources.limits.memorystring"900Mi"
metadataApi.resources.requests.cpustring"250m"
metadataApi.resources.requests.memorystring"600Mi"
metadataApi.service.externalPortint9007
metadataApi.service.grpcExternalPortint6572
metadataApi.service.grpcInternalPortint6572
metadataApi.service.internalPortint9007
metadataApi.service.namestring"metadata-api"
metadataApi.service.typestring"ClusterIP"
metadataApi.topicstring"metadata.model"
monitoring.tracing.enabledboolfalse
monitoring.tracing.zipkin.hoststring"jaeger-collector"
monitoring.tracing.zipkin.namespacestring"monitoring"
monitoring.tracing.zipkin.portint9411
nameOverridestring""If not set, a name is generated using the name template.
networkPolicy.enabledboolfalseKubernetes Network Policy enablement.
networkPolicy.nginxIngressLabelSelectorstring"app.kubernetes.io/name: ingress-nginx"Kubernetes Pod label of Nginx Ingress. Required to allow ingress traffic.
networkPolicy.nginxIngressNamespacestring"ingress-nginx"Kubernetes Namespace of Nginx Ingress. Required to allow ingress traffic.
nodeSelectorobject{}Kubernetes nodeSelector labels; applies to all GoodData.CN Pods
organizationController.image.namestring"organization-controller"
organizationController.podDisruptionBudget.maxUnavailablestring""
organizationController.podDisruptionBudget.minAvailablestring""
organizationController.resources.limits.cpustring"20m"
organizationController.resources.limits.memorystring"100Mi"
organizationController.resources.requests.cpustring"10m"
organizationController.resources.requests.memorystring"50Mi"
podDisruptionBudget.maxUnavailablestring""general maxUnavailable podDisruptionBudget, unless overridden per component
podDisruptionBudget.minAvailablestring""general minAvailable podDisruptionBudget, unless overridden per component
podSecurityContextobject{"runAsNonRoot":true}Kubernetes Pod Security Context settings.
postgresql-ha.metrics.enabledbooltrue
postgresql-ha.nameOverridestring"db"
postgresql-ha.pgpool.maxPoolint4
postgresql-ha.pgpool.numInitChildrenint70
postgresql-ha.pgpool.replicaCountint2
postgresql-ha.postgresql.existingSecretstring""If set, existing secret containing password and repmgrPassword can be used. See more details in the postgresql chart mentioned above.
postgresql-ha.postgresql.extendedConf.maxConnectionsint500
postgresql-ha.postgresql.passwordstring"secret"
postgresql-ha.postgresql.repmgrPasswordstring"repmgrpassword"
postgresql-ha.postgresql.usernamestring"postgres"
postgresql-ha.volumePermissions.enabledbooltrue
pulsarJob.namespacePerReleasebooltrueIf false, uncomment and set the ‘tenant’ and ‘namespace’ below. If true, the name of Pulsar’s tenant and namespace will be generated from the k8s namespace and release name. Note that if you set fixed names, you must avoid conflicts among multiple instances of this chart sharing the same Pulsar cluster.
redis-ha.exporter.enabledbooltrue
redis-ha.exporter.imagestring"oliver006/redis_exporter"set to repository in local registry for air-gapped installations
redis-ha.image.repositorystring"redis"set to repository in local registry for air-gapped installations
redis-ha.redis.config.maxmemorystring"100m"This value should be tuned according to the real load
redis-ha.redis.config.maxmemory-policystring"allkeys-lru"
replicaCountint2Default replica count (if not overridden for specific component).
resources.limits.cpustring"500m"
resources.limits.memorystring"500Mi"
resources.requests.cpustring"150m"
resources.requests.memorystring"250Mi"
resultCache.actuator.portint9041
resultCache.image.namestring"result-cache"
resultCache.podDisruptionBudget.maxUnavailablestring""
resultCache.podDisruptionBudget.minAvailablestring""
resultCache.pulsar.deadLetter.topicstring"result.xtab.DLQ"
resultCache.pulsar.topicstring"result.xtab"
resultCache.resources.limits.cpustring"500m"
resultCache.resources.limits.memorystring"700Mi"
resultCache.resources.requests.cpustring"150m"
resultCache.resources.requests.memorystring"400Mi"
resultCache.service.externalPortint6567
resultCache.service.internalPortint6567
resultCache.service.namestring"result-cache"
resultCache.service.typestring"ClusterIP"
scanModel.actuator.portint9061
scanModel.image.namestring"scan-model"
scanModel.podDisruptionBudget.maxUnavailablestring""
scanModel.podDisruptionBudget.minAvailablestring""
scanModel.resources.limits.cpustring"1500m"
scanModel.resources.limits.memorystring"600Mi"
scanModel.resources.requests.cpustring"150m"
scanModel.resources.requests.memorystring"350Mi"
scanModel.service.externalPortint9060
scanModel.service.internalPortint9060
scanModel.service.namestring"scan-model"
scanModel.service.typestring"ClusterIP"
securityContextobject{}Kubernetes Security Context settings.
service.postgres.databaseExecutionstring"execution"Database containing internal AFM execution related data, such as cache metadata.
service.postgres.databaseMdstring"md"Here are the names of databases the GoodData.CN application uses
service.postgres.existingSecretstring""You can define your own existing secret here containing postgresql-password key with the actual password. Not applicable when deployPostgresHA: true.
service.postgres.hoststring""Here you should define basic parameters for connecting to external, Postgresql-compatible DB engine (like RDS) where metadata and application configuration will be stored. Mandatory when you set deployPostgresHA: false above. When using built-in Postgresql HA chart, the configuration is retrieved automatically and these settings are not used.
service.postgres.passwordstring"topsecret"
service.postgres.portint5432
service.postgres.usernamestring"postgres"
service.pulsar.brokerPortint6650
service.pulsar.hoststring"pulsar-broker.pulsar"If you have Apache Pulsar deployed externally, set host to fully qualified name of the broker. For default setup, when Pulsar is deployed to Kubernetes cluster using Helm chart, using pattern -broker. should be OK and this value doesn’t need to be changed.
service.pulsar.wsPortint8080
service.redis.clusterModeboolfalseWhen true, it will use Redis cluster protocol for communication. Useful for HA deployment.
service.redis.hostslist[]Used when using external redis service (like Elasticache on AWS, Memorystore on GCP or so). Format is a list of hostnames where the redis is running.
service.redis.portint6379
serviceAccount.createbooltrueSpecifies whether a service account should be created.
serviceAccount.nameboolnilThe name of the service account to use. If not set and create is true, a name is generated using the fullname template.
sqlExecutor.actuator.portint9101
sqlExecutor.extraDriversInitContainerstring""Name of image containing extra JDBC drivers
sqlExecutor.image.namestring"sql-executor"
sqlExecutor.podDisruptionBudget.maxUnavailablestring""
sqlExecutor.podDisruptionBudget.minAvailablestring""
sqlExecutor.pulsar.deadLetter.topicstring"sql.select.DLQ"
sqlExecutor.pulsar.topicstring"sql.select"
sqlExecutor.resources.limits.cpustring"1500m"
sqlExecutor.resources.limits.ephemeral-storagestring"300Mi"
sqlExecutor.resources.limits.memorystring"700Mi"
sqlExecutor.resources.requests.cpustring"150m"
sqlExecutor.resources.requests.ephemeral-storagestring"300Mi"
sqlExecutor.resources.requests.memorystring"400Mi"
sqlExecutor.service.externalPortint6570
sqlExecutor.service.internalPortint6570
sqlExecutor.service.namestring"sql-executor"
sqlExecutor.service.typestring"ClusterIP"
telemetryEnabledbooltrueIf set to true, deployed services will report telemetry data to https://matomo.anywhere.gooddata.com/matomo.php
tools.image.namestring"tools"
tools.replicaCountint1
tools.resources.limits.cpustring"200m"
tools.resources.limits.memorystring"200Mi"
tools.resources.requests.cpustring"10m"
tools.resources.requests.memorystring"5Mi"