## Default settings for the JetBrains Space On-Premises Helm chart.
## https://www.jetbrains.com/space/
##
## This is a YAML-formatted file.
##
## NOTE:
## This configuration file represents the primary way to configure the Space On-Premises application.
##


## @section Global Parameters
##
## @param global.imageRegistry URL of the registry with images of Space components
## @param global.imagePullSecrets Registry credentials. Specify not the credentials but the corresponding secrets
## @param global.logFormat Space application log format: plaintext or json
## @param global.logLevel Log verbosity: INFO, ERROR, DEBUG, TRACE
## @param global.environment Space deployment environment
## @param global.tests.enabled Enables/disables Helm test hooks
global:
  imageRegistry: ""
  ## Example:
  ## imagePullSecrets:
  ##  - dockerRegistryKeySecretName
  imagePullSecrets: []
  logFormat: ""
  logLevel: "INFO"
  environment: ""
  tests:
    enabled: false

## @section Common Parameters
##
## @param kubeVersion Kubernetes version
##
kubeVersion: ""
## @param nameOverride Prefix that partially overrides the lib.name in the templates
##
nameOverride: ""
## @param fullnameOverride Name that overrides the lib.name in the templates
##
fullnameOverride: ""
## @param commonLabels Key/value map of labels that is applied to all resources in the templates
##
commonLabels: {}
## @param commonAnnotations Key/value map of annotations that is applied to all resources in the templates
##
commonAnnotations: {}
## @param namespaceOverride Name that overrides the lib.namespace in the templates
##
namespaceOverride: ""

## @section Space
##
space:
  ## Space Image Parameters
  ## Ref: https://kubernetes.io/docs/concepts/containers/images
  ## @param space.image.registry URL of the container registry
  ## @param space.image.repository URL of the container repository
  ## @param space.image.tag Image version
  ## @param space.image.pullPolicy Pull policy of the container image
  ## @param space.image.pullSecrets Registry credentials. Specify not the credentials but the corresponding secrets
  ##
  image:
    registry: "public.registry.jetbrains.space"
    repository: "p/space-on-premises/docker/space"
    tag: "2022.1.0-BETA"
    ## imagePullPolicy policy
    ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
    ##
    pullPolicy: Always
    ## Array of imagePullSecrets secrets. You must manually create it in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    ## e.g:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## @param space.config Overrides the default application configuration
  ##
  ## Currently, it's not possible to validate the configuration at the pre-deployment time.
  ## If the configuration is invalid, the application will fail to start with the CrashLoopBackOff state.
  ##
  ## Example:
  ## config: |
  ##      ktor {
  ##        deployment {
  ##            environment = acceptance
  ##            port = 8084
  ##            internalPort = 9084
  ##            autoreload = false
  ##            callGroupSize = 8
  ##        }
  ##
  ##        application {
  ##            modules = [circlet.server.ServerKt.main]
  ##        }
  ##      }
  config: ""
  ## @param space.replicaCount Initial number of pods for the application
  ##
  replicaCount: 2
  ## @param space.podLabels Custom pod labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
  ##
  podLabels: {}
  ## @param space.podAnnotations Custom pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
  ##
  podAnnotations: {}
  ## @param space.extraEnvs Additional environment variables
  ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container
  ## Example:
  ## - name: APP_OPTS
  ##   value: "CustomEnvironmentVariable"
  extraEnvs: []
  ## @param space.extraJavaOpts Additional settings included in the JAVA_OPTS environment variable
  ##
  extraJavaOpts: ""
  ## Hardware Resources
  ## Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers
  ## @param space.resources.requests.cpu Max CPU available for a pod (resource request)
  ## @param space.resources.requests.memory  Max memory available for a pod (resource request)
  ## @param space.resources.limits.cpu Min CPU available for a pod (resource limit)
  ## @param space.resources.limits.memory Min memory available for a pod (resource limit)
  ##
  resources:
    requests:
      cpu: 2000m
      memory: 2048Mi
    limits:
      cpu: 2000m
      memory: 2048Mi
  ## Service Configuration
  ## Ref: https://kubernetes.io/docs/concepts/services-networking/service
  ## @param space.service.ports.restAPI Space API port number
  ## @param space.service.ports.webUI Space web UI port number
  ## @param space.service.annotations Additional annotations
  ##
  service:
    ports:
      restAPI: "9084"
      webUI: "8084"
    annotations: {}
  ## Pods Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param space.podSecurityContext.enabled Enables/disables security context
  ## @param space.podSecurityContext.fsGroup Group ID that has access to the filesystem at run-time
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 10001
  ## Container Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param space.containerSecurityContext.enabled Enables/disables security context
  ## @param space.containerSecurityContext.runAsUser ID of the user who runs the process
  ## @param space.containerSecurityContext.runAsNonRoot Specifies if the process can run under the root user
  ## @param space.containerSecurityContext.allowPrivilegeEscalation Specifies if the process can get more permissions at run-time
  ## @param space.containerSecurityContext.readOnlyRootFilesystem Specifies if the root filesystem of the process is read-only
  ## @param space.containerSecurityContext.capabilities.drop List of Kernel capabilities that the process is not allowed to use
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 10001
    runAsNonRoot: true
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    capabilities:
      drop:
        - NET_RAW
        - ALL
  ## Liveness and Readiness Probes
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param space.livenessProbe.enabled Enables/disables livenessProbe
  ## @param space.livenessProbe.initialDelaySeconds Initial delay in seconds before taking the first livenessProbe
  ## @param space.livenessProbe.periodSeconds Period of taking livenessProbe in seconds
  ## @param space.livenessProbe.timeoutSeconds Timeout of livenessProbe in seconds
  ## @param space.livenessProbe.failureThreshold Number of retries if livenessProbe fails
  ## @param space.livenessProbe.successThreshold Min consecutive successes for livenessProbe to be considered successful
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 30
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
  ## @param space.readinessProbe.enabled Enables/disables readinessProbe
  ## @param space.readinessProbe.initialDelaySeconds Initial delay in seconds before taking the first readinessProbe
  ## @param space.readinessProbe.periodSeconds Period of taking readinessProbe in seconds
  ## @param space.readinessProbe.timeoutSeconds Timeout of readinessProbe in seconds
  ## @param space.readinessProbe.failureThreshold Number of retries if readinessProbe fails
  ## @param space.readinessProbe.successThreshold Min consecutive successes for readinessProbe to be considered successful
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 10
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
  ## Service Account
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ## @param space.serviceAccount.create Specifies whether to create a service account
  ## @param space.serviceAccount.name Service account name
  ## @param space.serviceAccount.automountServiceAccountToken Specifies if the account can mount the access token from the Kubernetes API
  ## @param space.serviceAccount.annotations Key/value map of annotations
  ##
  serviceAccount:
    create: false
    name: ""
    automountServiceAccountToken: true
    annotations: {}
  ## Horizontal Pod Autoscaling
  ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
  ## @param space.autoscaling.enabled Enables/disables autoscaling
  ## @param space.autoscaling.minReplicas Minimum number of pods
  ## @param space.autoscaling.maxReplicas Maximum number of pods
  ## @param space.autoscaling.targetCPU CPU utilization threshold
  ## @param space.autoscaling.targetMemory Memory utilization threshold
  ##
  autoscaling:
    enabled: false
    minReplicas: 1
    maxReplicas: 11
    targetCPU: ""
    targetMemory: ""
  ## The main encryption key for general sensitive values in the database
  ## To generate the key, run: openssl rand -base64 32
  ## @param space.masterSecret Main encryption key
  ##
  masterSecret: ""
  ## The encryption key for webhook authentication
  ## To generate the key, run: openssl rand -base64 32
  ## @param space.webHookSecret Webhook encryption key
  ##
  webHookSecret: ""
  ## CAPTCHA-like service for user authentication
  ## Ref: https://developers.google.com/recaptcha
  ## @param space.recaptcha.enabled Enables/disables reCAPTCHA
  ## @param space.recaptcha.type reCAPTCHA version
  ## @param space.recaptcha.siteKey siteKey used for identifying the application
  ## @param space.recaptcha.secretKey secretKey used for authentication with reCAPTCHA
  ## @param space.recaptcha.externalSecretName Name of the external secret with reCAPTCHA settings
  ## If you use your own secrets and tooling, the external secret must contain all variables
  ## specified in ./templates/space/secrets/recaptcha.secret.yaml.
  ## If the external secret does not contain the required variables, the application will fail to start.
  recaptcha:
    enabled: false
    type: "v2"
    siteKey: ""
    secretKey: ""
    externalSecretName: ""
  ## Local Administrator
  ## This is the local administrator profile. It is ignored during the upgrade.
  ## @param space.localAdministrator.firstName First name
  ## @param space.localAdministrator.lastName Last name
  ## @param space.localAdministrator.username Username
  ## @param space.localAdministrator.password Password
  ## @param space.localAdministrator.email Email
  ##
  localAdministrator:
    firstName: ""
    lastName: ""
    username: ""
    password: ""
    email: ""
  ## Name of the external secret that contains main settings. It must contain all variables
  ## specified in ./templates/space/secrets/main.secret.yaml file.
  ## @param space.externalSecretName Name of the main secret
  externalSecretName: ""
  ## Mail Server
  ## @param space.mail.enabled Enables/disables outgoing mail from Space
  ## @param space.mail.username Username of the SMTP server account that will be used to send email
  ## @param space.mail.password Password of the SMTP server account that will be used to send email
  ## @param space.mail.hostname SMTP server hostname
  ## @param space.mail.port (Required) SMTP server port. Typically, 25 or 2525
  ## @param space.mail.settings.fromAddress (Required) Email address. Space will use it to send email
  ## @param space.mail.settings.aggregationDelaysInSec Waiting time aggregation in seconds
  ## @param space.mail.settings.rateLimitPerSecond Outgoing mail limit in emails per second
  ## @param space.mail.settings.messageQueuePrefix Waiting queue name
  ## @param space.mail.externalSecretName Name of the external secret with mail server credentials
  ## The external secret must contain all variables specified in ./templates/space/secrets/mail.secret.yaml.
  ##
  mail:
    enabled: false
    username: ""
    password: ""
    hostname: ""
    port: ""
    settings:
      fromAddress: ""
      aggregationDelaysInSec: ""
      rateLimitPerSecond: ""
      messageQueuePrefix: ""
    externalSecretName: ""
  ## Space OAuth 2.0 Authentication Server
  ## To generate the key, run:
  ## openssl genrsa 4096 2> /dev/null | openssl pkcs8 -topk8 -nocrypt > key
  ## To get the public key, run:
  ## cat key | openssl rsa -pubout 2> /dev/null | tail -n +2 | sed '$d' | tr -d "\n"
  ## To get the private key, run:
  ## cat key | tail -n +2 | sed '$d' | tr -d "\n"
  ## @param space.oauth.accessTokenRsaPublic X.509-encoded public key for issuing access tokens by the OAuth 2.0 authentication server
  ## @param space.oauth.accessTokenRsaPrivate PKCS#8-encoded 4096-bit private key for issuing access tokens by the OAuth 2.0 authentication server.
  ## @param space.oauth.messageEncodingKey 128-bit key. To generate, run $(openssl rand -base64 16)
  ## @param space.oauth.encodingKey2fa 128-bit key. To generate, run $(openssl rand -base64 16)
  ## @param space.oauth.encodingKey 128-bit key. To generate, run $(openssl rand -base64 16)
  ## @param space.oauth.messageSigningRsaPublic X.509-encoded public key for signing/verifying outgoing messages to external applications
  ## @param space.oauth.messageSigningRsaPrivate PKCS#8-encoded 4096-bit private key for signing/verifying outgoing messages to external applications
  ## @param space.oauth.externalSecretName Name of the external secret with authentication server settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/oauth.secret.yaml.
  ##
  oauth:
    accessTokenRsaPublic: ""
    accessTokenRsaPrivate: ""
    messageEncodingKey: ""
    encodingKey2fa: ""
    encodingKey: ""
    messageSigningRsaPublic: ""
    messageSigningRsaPrivate: ""
    externalSecretName: ""
  ## Billing Notifications
  ## @param space.billing.notifications.enabled Enables/disables billing notifications
  ## @param space.billing.notifications.delay Notification delay
  ## @param space.billing.notifications.softDebounce Soft bounce
  ## @param space.billing.notifications.hardDebounce Hard bounce
  billing:
    notifications:
      enabled: false
      delay: ""
      softDebounce: ""
      hardDebounce: ""
  ## Space License
  ## @param space.license License string
  ##
  license: ""
  ## Space Database (PostgreSQL)
  ## @param space.database.hostname Database hostname
  ## @param space.database.port Database port
  ## @param space.database.name Database name
  ## @param space.database.username Database username
  ## @param space.database.password Database password
  ## @param space.database.externalSecretName Name of the external secret with database settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/database.secret.yaml.
  ## @param space.database.settings.idlePoolSize Size of the idle pool
  ##
  database:
    hostname: ""
    port: ""
    name: ""
    username: ""
    password: ""
    externalSecretName: ""
    settings:
      idlePoolSize: ""
  ## Your Space Organization
  ## @param space.organization.name Name of your organization
  ## @param space.organization.slogan Marketing slogan of your organization
  organization:
    name: ""
    slogan: ""
  ## Event Bus (Redis)
  ## @param space.eventbus.hostname Redis hostname
  ## @param space.eventbus.port Redis port
  ## @param space.eventbus.username (Optional) Redis username
  ## @param space.eventbus.password (Optional) Redis password
  ## @param space.eventbus.externalSecretName Name of the external secret with Redis settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/eventbus.secret.yaml.
  ##
  eventbus:
    hostname: ""
    port: ""
    username: ""
    password: ""
    externalSecretName: ""
  ## Object Storage (MinIO or another S3-compatible storage)
  ## @param space.objectStorage.region Region where the bucket is located
  ## @param space.objectStorage.bucketName Bucket name
  ## @param space.objectStorage.bucketCreated "true" if the bucket exists or "false" otherwise
  ## @param space.objectStorage.url Storage URL
  ## @param space.objectStorage.accessKey Storage access key
  ## @param space.objectStorage.secretKey Storage secret key
  ## @param space.objectStorage.externalSecretName Name of the external secret with storage settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/s3.secret.yaml.
  ##
  objectStorage:
    region: ""
    bucketName: ""
    bucketCreated: "true"
    url: ""
    accessKey: ""
    secretKey: ""
    externalSecretName: ""
  ## Search Service (Elasticsearch)
  ## This section supports configuration of single or multiple Elasticsearch services.
  ## @param space.elastic.search.hostname Elasticsearch hostname
  ## @param space.elastic.search.port Elasticsearch port
  ## @param space.elastic.search.prefix Elasticsearch prefix
  ## Authentication parameters are optional. Supported options: ApiKey, Basic, Bearer
  ## @param space.elastic.search.auth.token Bearer authentication token
  ## @param space.elastic.search.auth.apiKey API key for ApiKey authentication
  ## @param space.elastic.search.auth.username Username for Basic authentication
  ## @param space.elastic.search.auth.password Password for Basic authentication
  ## @param space.elastic.search.externalSecretName Name of the external secret with Elasticsearch settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/es-search.secret.yaml file.
  ##
  ## @param space.elastic.audit.hostname Elasticsearch audit hostname
  ## @param space.elastic.audit.port Elasticsearch audit port
  ## Authentication parameters are optional. Supported options: ApiKey, Basic, Bearer
  ## @param space.elastic.audit.auth.token Bearer authentication token
  ## @param space.elastic.audit.auth.apiKey API key for ApiKey authentication
  ## @param space.elastic.audit.auth.username Username for Basic authentication
  ## @param space.elastic.audit.auth.password Password for Basic authentication
  ## @param space.elastic.audit.externalSecretName Name of the external secret with Elasticsearch audit settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/es-audit.secret.yaml.
  ##
  ## @param space.elastic.metrics.hostname Elasticsearch metrics hostname
  ## @param space.elastic.metrics.port Elasticsearch metrics port
  ## Authentication parameters are optional. Supported options: ApiKey, Basic, Bearer
  ## @param space.elastic.metrics.auth.token Bearer authentication token
  ## @param space.elastic.metrics.auth.apiKey API key for ApiKey authentication
  ## @param space.elastic.metrics.auth.username Username for Basic authentication
  ## @param space.elastic.metrics.auth.password Password for Basic authentication
  ## @param space.elastic.metrics.externalSecretName Name of the external secret with Elasticsearch metrics settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/es-metrics.secret.yaml.
  ##
  elastic:
    search:
      hostname: ""
      port: ""
      prefix: ""
      auth:
        token: ""
        apiKey: ""
        username: ""
        password: ""
      externalSecretName: ""
    audit:
      hostname: ""
      port: ""
      auth:
        token: ""
        apiKey: ""
        username: ""
        password: ""
      externalSecretName: ""
    metrics:
      hostname: ""
      port: ""
      auth:
        token: ""
        apiKey: ""
        username: ""
        password: ""
      externalSecretName: ""
  ## VCS server (Git)
  ## @param space.vcs.url Git hosting URL
  ## @param space.vcs.token Git authentication token. Space and VCS must refer to the same value: vcs.secrets.spaceAccessKey.
  ## To generate the key, run: $(openssl rand -base64 32)
  ## @param space.vcs.externalSecretName Name of the external secret with VCS settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/vcs.secret.yaml.
  ##
  vcs:
    url: ""
    token: ""
    externalSecretName: ""
  ## Space URLs
  ## @param space.externalUrl Space URL
  ## @param space.altUrls List of additional Space URLs
  ##
  externalUrl: ""
  altUrls: ""
  ## Packages
  ## @param space.packages.oauth.clientId Client Id used for interaction between Space and Packages API
  ## @param space.packages.oauth.clientSecret Client secret used for interaction between Space and Packages API
  ## @param space.packages.oauth.externalSecretName Name of the external secret with Packages settings
  ## @param space.packages.externalUrl Packages URL
  ## The external secret must contain all variables specified in ./templates/space/secrets/packages.secret.yaml.
  ##
  packages:
    oauth:
      clientId: ""
      clientSecret: ""
      externalSecretName: ""
    externalUrl: ""
  ## Automation
  ##
  automation:
    logs:
      ## @param space.automation.logs.storage.region Region where the log storage bucket is located
      ## @param space.automation.logs.storage.bucketName Log storage bucket name
      ## @param space.automation.logs.storage.bucketCreated "true" if the bucket exists or "false" otherwise
      ## @param space.automation.logs.storage.url Log storage URL
      ## @param space.automation.logs.storage.accessKey Log storage access key
      ## @param space.automation.logs.storage.secretKey Log storage secret key
      ## @param space.automation.logs.storage.externalSecretName Name of the external secret with log storage settings
      ## The external secret must contain all variables specified in ./templates/space/secrets/automation-logs.secret.yaml.
      ##
      storage:
        region: ""
        bucketName: ""
        bucketCreated: "true"
        url: ""
        accessKey: ""
        secretKey: ""
        externalSecretName: ""
    worker:
      ## @param space.automation.worker.image.registry Container image registry
      ## @param space.automation.worker.image.repository Repository with the Automation worker image
      ## @param space.automation.worker.image.tag Version of the Automation worker image
      ##
      image:
        registry: "public.registry.jetbrains.space/p/space/containers"
        repository: "space-automation-worker"
        tag: "2022.1.0-BETA.1596"
      ## @param space.automation.worker.storage.region Region where the worker storage bucket is located
      ## @param space.automation.worker.storage.bucketName Worker storage bucket name
      ## @param space.automation.worker.storage.bucketCreated "true" if the bucket exists or "false" otherwise
      ## @param space.automation.worker.storage.url Worker storage URL
      ## @param space.automation.worker.storage.accessKey Worker storage access key
      ## @param space.automation.worker.storage.secretKey Worker storage secret key
      ## @param space.automation.worker.storage.externalSecretName Тame of the external secret with worker storage settings
      ## The external secret must contain all variables specified in ./templates/space/secrets/automation-worker.secret.yaml.
      ##
      storage:
        region: ""
        bucketName: ""
        bucketCreated: "true"
        url: ""
        accessKey: ""
        secretKey: ""
        externalSecretName: ""
    ## @param space.automation.builder.image.registry Container image registry
    ## @param space.automation.builder.image.repository Repository with the Automation builder image
    ## @param space.automation.builder.image.tag Version of the Automation builder image
    ##
    builder:
      image:
        registry: "public.registry.jetbrains.space/p/space/containers"
        repository: "space-automation-docker-builder"
        tag: "2022.1.0-BETA.1596"
    dslCompiler:
      ## @param space.automation.dslCompiler.image.registry Container image registry
      ## @param space.automation.dslCompiler.image.repository Repository with the Automation DSL compiler image
      ## @param space.automation.dslCompiler.image.tag Version of the Automation DSL compiler image
      ##s
      image:
        registry: "public.registry.jetbrains.space/p/space/containers"
        repository: "space-automation-dsl-compile"
        tag: "2022.1.0-BETA.1596"
      ## @param space.automation.dslCompiler.storage.region Region where the DSL compiler storage bucket is located
      ## @param space.automation.dslCompiler.storage.bucketName DSL compiler storage bucket name
      ## @param space.automation.dslCompiler.storage.bucketCreated "true" if the bucket exists or "false" otherwise
      ## @param space.automation.dslCompiler.storage.url DSL compiler storage URL
      ## @param space.automation.dslCompiler.storage.accessKey DSL compiler storage access key
      ## @param space.automation.dslCompiler.storage.secretKey DSL compiler storage secret key
      ## @param space.automation.dslCompiler.storage.externalSecretName Name of the external secret with the DSL compiler storage settings
      ## The external secret must contain all variables specified in ./templates/space/secrets/automation-dsl.secret.yaml file.
      ##
      storage:
        region: ""
        bucketName: ""
        bucketCreated: "true"
        url: ""
        accessKey: ""
        secretKey: ""
        externalSecretName: ""
    ## @param space.automation.compose.image.registry Container image registry
    ## @param space.automation.compose.image.repository Repository with the Automation compose image
    ## @param space.automation.compose.image.tag Automation compose image version
    ##
    compose:
      image:
        registry: "public.registry.jetbrains.space/p/space/containers"
        repository: "space-automation-compose-host"
        tag: "2022.1.0-BETA.1596"

  ## Ingress
  ## Ref: https://kubernetes.io/docs/user-guide/ingress
  ## @param space.ingress.enabled Enables/disables Ingress for routing inbound traffic
  ## @param space.ingress.pathType Ingress path type
  ## @param space.ingress.hostname Ingress hostname
  ## @param space.ingress.annotations Key/value map with annotations
  ## @param space.ingress.tls Enables/disables TLS for the hostname
  ## @param space.ingress.selfSigned Specifies whether to create a self-signed certificate for $parent.hostname
  ## @param space.ingress.path Ingress path array
  ## @param space.ingress.extraPaths Ingress extra paths
  ## @param space.ingress.extraTLS Additional TLS configuration
  ## @param space.ingress.secret Name of the external secret for $parent.hostname
  ## @param space.ingress.ingressClassName IngressClass name
  ## @param space.ingress.extraRules Additional Ingress rules
  ##
  ingress:
    enabled: true
    selfSigned: false
    pathType: ImplementationSpecific
    hostname: space.jetbrains.local
    ## You might need to set the '/*' value in order to use it
    ## with ALB Ingress controllers.
    ##
    path: /
    ## For a full list of possible Ingress annotations, see
    ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
    ## Use this parameter to set the required annotations for cert-manager. For details, see
    ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
    ##
    ## e.g:
    ## annotations:
    ##   kubernetes.io/ingress.class: nginx
    ##   cert-manager.io/cluster-issuer: cluster-issuer-name
    ##
    annotations: {}
    ## TLS certificates will be retrieved from a TLS secret with the following name: {{- printf "%s-tls" .Values.ingress.hostname }}
    ## You can use the ingress.secrets parameter to create this TLS secret or rely on cert-manager to create it.
    ##
    tls: false
    ## Any additional arbitrary paths that may need to be added to Ingress under the main host.
    ## For example: The ALB Ingress controller requires a special rule for handling SSL redirection.
    extraPaths: []
    ## - path: /*
    ##   backend:
    ##     service:
    ##        name: ssl-redirect
    ##        port:
    ##          number: use-annotation
    ##
    ## The TLS configuration for additional hostnames is covered with this Ingress record.
    ## Use this configuration block also in case the certificates are managed outside this Helm chart.
    ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
    extraTLS: []
    ## - hosts:
    ##     - jetbrains.net
    ##   secretName: tls-jetbrains.net
    ##
    ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster.
    ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
    ##
    ingressClassName: ""
    ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
    ## e.g:
    ## extraRules:
    ## - host: example.local
    ##     http:
    ##       path: /
    ##       backend:
    ##         service:
    ##           name: example-svc
    ##           port:
    ##             name: http
    ##
    extraRules: []
    ## Name of the external secret related to the main hostname in the Ingress definition
    ## Example:
    ## secret: "tls-jetbrains.space"
    ##
    secret: ""
  ## Configure the init containers
  ##
  defaultInitContainers:
    images:
      ## @param space.defaultInitContainers.images.redis.registry Container image registry
      ## @param space.defaultInitContainers.images.redis.repository Repository with the Redis image
      ## @param space.defaultInitContainers.images.redis.tag Version of the Redis image
      ## @param space.defaultInitContainers.images.redis.pullPolicy Redis image pull policy
      ##
      redis:
        registry: "docker.io"
        repository: "bitnami/redis"
        tag: "6.2.7"
        pullPolicy: Always
      ## @param space.defaultInitContainers.images.postgresql.registry Container image registry
      ## @param space.defaultInitContainers.images.postgresql.repository Repository with the PostgreSQL image
      ## @param space.defaultInitContainers.images.postgresql.tag Version of the PostgreSQL image
      ## @param space.defaultInitContainers.images.postgresql.pullPolicy PostgreSQL image pull policy
      ##
      postgresql:
        registry: "docker.io"
        repository: "bitnami/postgresql"
        tag: "11.12.0"
        pullPolicy: Always
      ## @param space.defaultInitContainers.images.busybox.registry Container image registry
      ## @param space.defaultInitContainers.images.busybox.repository Repository with the BusyBox image
      ## @param space.defaultInitContainers.images.busybox.tag Version of the BusyBox image
      ## @param space.defaultInitContainers.images.busybox.pullPolicy BusyBox image pull policy
      ##
      busybox:
        registry: "docker.io"
        repository: "busybox"
        tag: "1.28.0"
        pullPolicy: Always
    ## @param space.defaultInitContainers.resources.requests.cpu Max CPU available for a pod (resource request)
    ## @param space.defaultInitContainers.resources.requests.memory Max memory available for a pod (resource request)
    ## @param space.defaultInitContainers.resources.limits.cpu Min CPU available for a pod (resource limit)
    ## @param space.defaultInitContainers.resources.limits.memory Min memory available for a pod (resource limit)
    ##
    resources:
      requests:
        cpu: 500m
        memory: 512Mi
      limits:
        cpu: 500m
        memory: 512Mi
    ## Container Security Context
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
    ## @param space.defaultInitContainers.containerSecurityContext.enabled Enables/disables Security Context
    ## @param space.defaultInitContainers.containerSecurityContext.runAsUser ID of the user who runs the process
    ## @param space.defaultInitContainers.containerSecurityContext.runAsNonRoot Specifies if the process can run under the root user
    ## @param space.defaultInitContainers.containerSecurityContext.allowPrivilegeEscalation Specifies if the process can get more permissions at run-time
    ## @param space.defaultInitContainers.containerSecurityContext.readOnlyRootFilesystem Specifies if the root filesystem of the process is read-only
    ## @param space.defaultInitContainers.containerSecurityContext.capabilities.drop  List of Kernel capabilities that the process is not allowed to use
    ##
    containerSecurityContext:
      enabled: true
      runAsUser: 10001
      runAsNonRoot: true
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      capabilities:
        drop:
          - NET_RAW
          - ALL

## @section Git Hosting
##
vcs:
  ## Image details
  ## Ref: https://kubernetes.io/docs/concepts/containers/images
  ## @param vcs.image.registry Container image registry
  ## @param vcs.image.repository Repository with the VCS image
  ## @param vcs.image.tag Version of the VCS image
  ## @param vcs.image.pullPolicy VCS image pull policy
  ## @param vcs.image.pullSecrets Name of the external secret with registry credentials
  ##
  image:
    registry: "public.registry.jetbrains.space"
    repository: "p/space-on-premises/docker/vcs-hosting"
    tag: "2022.1.0-BETA"
    ## Image pull policy
    ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
    ##
    pullPolicy: Always
    ## You must manually create an array of imagePullSecrets in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    ## e.g:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## @param vcs.config Overrides the default VCS application configuration
  ##
  ## Currently, it's not possible to validate the configuration at the pre-deployment time.
  ## If the configuration is invalid, the application will fail to start with the CrashLoopBackOff state.
  ##
  ## Example:
  ## config: |
  ##  circlet.enabled=true
  ##  data-dir=/data/
  ##  disable-access-log=true
  ##  id=VCS-hosting
  ##  listen=0.0.0.0
  ##  logs-dir=logs
  ##  presentation-service-name=VCS-hosting
  ##  temp-dir=temp
  ##  vcs.dfs.cache.path=/data/_cache/
  ##  vcs.dfs.s3_offload=false
  ##  vcs.dfs.sql_schema=vcsdfs
  ##  vcs.dfs.storage=s3
  ##  vcs.dfs=true
  ##  vcs.git.hosted=true
  ##  vcs.ssh.git.hosted=true
  ##
  config: ""
  ## @param vcs.replicaCount Initial number of pods for the application
  ##
  replicaCount: 2
  ## @param vcs.podLabels Custom pod labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels: {}
  ## @param vcs.podAnnotations Custom pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
  ##
  podAnnotations: {}
  ## @param vcs.extraEnvs Additional environment variables
  ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container
  ## Example:
  ## - name: APP_OPTS
  ##   value: "CustomEnvironmentVariable"
  extraEnvs: []
  ## @param vcs.extraJavaOpts Additional settings included in the JAVA_OPTS environment variable
  ##
  extraJavaOpts: ""
  ## Hardware Resources
  ## Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers
  ## @param vcs.resources.requests.cpu Max CPU available for a pod (resource request)
  ## @param vcs.resources.requests.memory  Max memory available for a pod (resource request)
  ## @param vcs.resources.limits.cpu Min CPU available for a pod (resource limit)
  ## @param vcs.resources.limits.memory Min memory available for a pod (resource limit)
  ##
  resources:
    requests:
      cpu: 1000m
      memory: 1024Mi
    limits:
      cpu: 1000m
      memory: 1024Mi
  ## Service Configuration
  ## Ref: https://kubernetes.io/docs/concepts/services-networking/service
  ## @param vcs.service.ports.restAPI VCS API port number
  ## @param vcs.service.ports.ssh SSH port number
  ## @param vcs.service.annotations Additional annotations
  ##
  service:
    ports:
      restAPI: "19084"
      ssh: "12222"
    annotations: {}
  ## External Service
  ## Use this object to configure, for example, the external port of the application.
  ## If not configured, the object exposes the application via the LoadBalancer service.
  ## @param vcs.externalService.type External service type
  ## @param vcs.externalService.port External service port
  ## @param vcs.externalService.annotations Additional annotations
  externalService:
    type: ""
    port: ""
    annotations: {}
  ## Pods Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param vcs.podSecurityContext.enabled Enables/disables security context
  ## @param vcs.podSecurityContext.fsGroup Group ID that has access to the filesystem at run-time
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 10001
  ## Container Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param vcs.containerSecurityContext.enabled Enables/disables security context
  ## @param vcs.containerSecurityContext.runAsUser ID of the user who runs the process
  ## @param vcs.containerSecurityContext.runAsNonRoot Specifies if the process can run under the root user
  ## @param vcs.containerSecurityContext.allowPrivilegeEscalation Specifies if the process can get more permissions at run-time
  ## @param vcs.containerSecurityContext.readOnlyRootFilesystem Specifies if the root filesystem of the process is read-only
  ## @param vcs.containerSecurityContext.capabilities.drop List of Kernel capabilities that the process is not allowed to use
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 10001
    runAsNonRoot: true
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    capabilities:
      drop:
        - NET_RAW
        - ALL
  ## Liveness and Readiness Probes
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param vcs.livenessProbe.enabled Enables/disables livenessProbe
  ## @param vcs.livenessProbe.initialDelaySeconds Initial delay in seconds before taking the first livenessProbe
  ## @param vcs.livenessProbe.periodSeconds Period of taking livenessProbe in seconds
  ## @param vcs.livenessProbe.timeoutSeconds Timeout of livenessProbe in seconds
  ## @param vcs.livenessProbe.failureThreshold Number of retries if livenessProbe fails
  ## @param vcs.livenessProbe.successThreshold Min consecutive successes for livenessProbe to be considered successful
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 30
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
  ## @param vcs.readinessProbe.enabled Enables/disables readinessProbe
  ## @param vcs.readinessProbe.initialDelaySeconds Initial delay in seconds before taking the first readinessProbe
  ## @param vcs.readinessProbe.periodSeconds Period of taking readinessProbe in seconds
  ## @param vcs.readinessProbe.timeoutSeconds Timeout of readinessProbe in seconds
  ## @param vcs.readinessProbe.failureThreshold Number of retries if readinessProbe fails
  ## @param vcs.readinessProbe.successThreshold Min consecutive successes for readinessProbe to be considered successful
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 10
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
  ## Service Account
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ## @param vcs.serviceAccount.create Specifies whether to create a service account
  ## @param vcs.serviceAccount.name Service account name
  ## @param vcs.serviceAccount.automountServiceAccountToken Specifies if the account can mount the access token from the Kubernetes API
  ## @param vcs.serviceAccount.annotations Key/value map of annotations
  ##
  serviceAccount:
    create: false
    name: ""
    automountServiceAccountToken: true
    annotations: {}
  ## Horizontal Pod Autoscaling
  ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
  ## @param vcs.autoscaling.enabled Enables/disables autoscaling
  ## @param vcs.autoscaling.minReplicas Minimum number of pods
  ## @param vcs.autoscaling.maxReplicas Maximum number of pods
  ## @param vcs.autoscaling.targetCPU CPU utilization threshold
  ## @param vcs.autoscaling.targetMemory Memory utilization threshold
  ##
  autoscaling:
    enabled: false
    minReplicas: 1
    maxReplicas: 11
    targetCPU: ""
    targetMemory: ""
  ## VCS storage
  ##
  storage:
    ## @param vcs.storage.eventbus.architecture Event bus architecture
    ## @param vcs.storage.eventbus.hostname Event bus hostname
    ## @param vcs.storage.eventbus.port Event bus port
    ## @param vcs.storage.eventbus.username (Optional) Username for accessing the event bus service
    ## @param vcs.storage.eventbus.password (Optional) Password for accessing the event bus service
    ## @param vcs.storage.eventbus.externalSecretName Name of the external secret with event bus settings
    ## The external secret must contain all variables specified in ./templates/vcs/secrets/eventbus.secret.yaml.
    ##
    eventbus:
      architecture: ""
      hostname: ""
      port: ""
      username: ""
      password: ""
      externalSecretName: ""
    ## @param vcs.storage.objectStorage.region Region where the VCS storage bucket is located
    ## @param vcs.storage.objectStorage.bucketName VCS storage bucket name
    ## @param vcs.storage.objectStorage.url VCS storage URL
    ## @param vcs.storage.objectStorage.accessKey VCS storage access key
    ## @param vcs.storage.objectStorage.secretKey VCS storage secret key
    ## @param vcs.storage.objectStorage.externalSecretName Name of the external secret with the VCS storage settings
    ## The external secret must contain all variables specified in ./templates/vcs/secrets/s3.secret.yaml.
    ##
    objectStorage:
      region: ""
      bucketName: ""
      url: ""
      accessKey: ""
      secretKey: ""
      externalSecretName: ""
    ## @param vcs.storage.database.name Database name
    ## @param vcs.storage.database.hostname Database hostname
    ## @param vcs.storage.database.port Database port
    ## @param vcs.storage.database.username Database username
    ## @param vcs.storage.database.password Database password
    ## @param vcs.storage.database.externalSecretName Name of the external secret with the database settings
    ## The external secret must contain all variables specified in ./templates/vcs/secrets/database.secret.yaml.
    ##
    database:
      name: ""
      hostname: ""
      port: ""
      username: ""
      password: ""
      externalSecretName: ""
  ## Main Secrets
  ## @param vcs.secrets.sshServerKey 2048-bit RSA private key the VCS server will use to respond on the SSH port
  ## To generate the key, run: (openssl genrsa 4096 2> /dev/null | base64 | tr -d "\n")
  ## @param vcs.secrets.spaceAccessKey Here you must specify the same value as in space.vcs.token
  ## @param vcs.secrets.externalSecretName Name of the external secret with the secrets settings
  ## TThe external secret must contain all variables specified in ./templates/vcs/secrets/main.secret.yaml.
  ##
  secrets:
    sshServerKey: ""
    spaceAccessKey: ""
    externalSecretName: ""
  ## VCS URLs
  ## @param vcs.externalUrl Public URL of the VCS server
  ## @param vcs.spaceExternalUrl External URL for the Space application
  externalUrl: ""
  spaceExternalUrl: ""

  ## Ingress
  ## Ref: https://kubernetes.io/docs/user-guide/ingress
  ## @param vcs.ingress.enabled Enables/disables Ingress for routing VCS traffic
  ## @param vcs.ingress.pathType Ingress path type
  ## @param vcs.ingress.hostname Ingress hostname
  ## @param vcs.ingress.annotations Key/value map with annotations
  ## @param vcs.ingress.tls Enables/disables TLS for the hostname
  ## @param vcs.ingress.selfSigned Specifies whether to create a self-signed certificate for $parent.hostname
  ## @param vcs.ingress.path Ingress path array
  ## @param vcs.ingress.extraPaths Ingress extra paths
  ## @param vcs.ingress.extraTLS Additional TLS configuration
  ## @param vcs.ingress.secret Name of the external secret for $parent.hostname
  ## @param vcs.ingress.ingressClassName IngressClass name
  ## @param vcs.ingress.extraRules Additional Ingress rules
  ##
  ingress:
    enabled: true
    selfSigned: false
    pathType: ImplementationSpecific
    hostname: git.jetbrains.local
    ## You might need to set the '/*' value in order to use it
    ## with ALB ingress controllers.
    ##
    path: /
    ## For a full list of possible Ingress annotations, see
    ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
    ## Use this parameter to set the required annotations for cert-manager. For detials, see
    ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
    ##
    ## e.g:
    ## annotations:
    ##   kubernetes.io/ingress.class: nginx
    ##   cert-manager.io/cluster-issuer: cluster-issuer-name
    ##
    annotations: {}
    ## TLS certificates will be retrieved from a TLS secret with the following name: {{- printf "%s-tls" .Values.ingress.hostname }}
    ## You can use the ingress.secrets parameter to create this TLS secret or rely on cert-manager to create it.
    ##
    tls: false
    ## Any additional arbitrary paths that may need to be added to Ingress under the main host.
    ## For example: The ALB Ingress controller requires a special rule for handling SSL redirection.
    extraPaths: []
    ## - path: /*
    ##   backend:
    ##     service:
    ##        name: ssl-redirect
    ##        port:
    ##          number: use-annotation
    ##
    ## The TLS configuration for additional hostnames is covered with this Ingress record.
    ## Use this configuration block also in case the certificates are managed outside this Helm chart.
    ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
    extraTLS: []
    ## - hosts:
    ##     - jetbrains.net
    ##   secretName: tls-jetbrains.net
    ##
    ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster.
    ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
    ##
    ingressClassName: ""
    ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
    ## e.g:
    ## extraRules:
    ## - host: example.local
    ##     http:
    ##       path: /
    ##       backend:
    ##         service:
    ##           name: example-svc
    ##           port:
    ##             name: http
    ##
    extraRules: []
    ## Name of the external secret related to the main hostname in the Ingress definition.
    ## To specify the main hostname, use the .Values.vcs.ingress.hostname key in values.yaml.
    ## Example:
    ## secret: "tls-jetbrains.space"
    ##
    secret: ""
  ## Configure the init containers
  ##
  defaultInitContainers:
    images:
      ## @param vcs.defaultInitContainers.images.redis.registry Container image registry
      ## @param vcs.defaultInitContainers.images.redis.repository Repository with the Redis image
      ## @param vcs.defaultInitContainers.images.redis.tag Version of the Redis image
      ## @param vcs.defaultInitContainers.images.redis.pullPolicy Redis image pull policy
      ##
      redis:
        registry: "docker.io"
        repository: "bitnami/redis"
        tag: "6.2.7"
        pullPolicy: Always
      ## @param vcs.defaultInitContainers.images.postgresql.registry Container image registry
      ## @param vcs.defaultInitContainers.images.postgresql.repository Repository with the PostgreSQL image
      ## @param vcs.defaultInitContainers.images.postgresql.tag Version of the PostgreSQL image
      ## @param vcs.defaultInitContainers.images.postgresql.pullPolicy PostgreSQL image pull policy
      ##
      postgresql:
        registry: "docker.io"
        repository: "bitnami/postgresql"
        tag: "11.12.0"
        pullPolicy: Always
      ## @param vcs.defaultInitContainers.images.busybox.registry Container image registry
      ## @param vcs.defaultInitContainers.images.busybox.repository Repository with the BusyBox image
      ## @param vcs.defaultInitContainers.images.busybox.tag Version of the BusyBox image
      ## @param vcs.defaultInitContainers.images.busybox.pullPolicy BusyBox image pull policy
      ##
      busybox:
        registry: "docker.io"
        repository: "busybox"
        tag: "1.28.0"
        pullPolicy: Always
    ## @param vcs.defaultInitContainers.resources.requests.cpu Max CPU available for a pod (resource request)
    ## @param vcs.defaultInitContainers.resources.requests.memory Max memory available for a pod (resource request)
    ## @param vcs.defaultInitContainers.resources.limits.cpu Min CPU available for a pod (resource limit)
    ## @param vcs.defaultInitContainers.resources.limits.memory Min memory available for a pod (resource limit)
    ##
    resources:
      requests:
        cpu: 500m
        memory: 512Mi
      limits:
        cpu: 500m
        memory: 512Mi
    ## Container Security Context
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
    ## @param vcs.defaultInitContainers.containerSecurityContext.enabled Enables/disables Security Context
    ## @param vcs.defaultInitContainers.containerSecurityContext.runAsUser ID of the user who runs the process
    ## @param vcs.defaultInitContainers.containerSecurityContext.runAsNonRoot Specifies if the process can run under the root user
    ## @param vcs.defaultInitContainers.containerSecurityContext.allowPrivilegeEscalation Specifies if the process can get more permissions at run-time
    ## @param vcs.defaultInitContainers.containerSecurityContext.readOnlyRootFilesystem Specifies if the root filesystem of the process is read-only
    ## @param vcs.defaultInitContainers.containerSecurityContext.capabilities.drop List of Kernel capabilities that the process is not allowed to use
    ##
    containerSecurityContext:
      enabled: true
      runAsUser: 10001
      runAsNonRoot: true
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      capabilities:
        drop:
          - NET_RAW
          - ALL

## @section Packages
##
packages:
  ## Image details
  ## Ref: https://kubernetes.io/docs/concepts/containers/images
  ## @param packages.image.registry Container image registry
  ## @param packages.image.repository Repository with the Packages image
  ## @param packages.image.tag Version of the Packages image
  ## @param packages.image.pullPolicy Packages image pull policy
  ## @param packages.image.pullSecrets Name of the external secret with registry credentials
  ##
  image:
    registry: "public.registry.jetbrains.space"
    repository: "p/space-on-premises/docker/packages"
    tag: "2022.1.0-BETA"
    ## Image pull policy
    ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
    ##
    pullPolicy: Always
    ## You must manually create an array of imagePullSecrets in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
    ## e.g:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## @param packages.config Overrides the default Packages application configuration
  ##
  ## Currently, it's not possible to validate the configuration at the pre-deployment time.
  ## If the configuration is invalid, the application will fail to start with the CrashLoopBackOff state.
  ##
  ## Example:
  ## config: |
  ##      ktor {
  ##        deployment {
  ##            environment = acceptance
  ##            port = 8084
  ##            internalPort = 9084
  ##            autoreload = false
  ##            callGroupSize = 8
  ##        }
  ##
  ##        application {
  ##            modules = [packages.server.ServerKt.main]
  ##        }
  ##      }
  config: ""
  ## @param packages.replicaCount Initial number of pods for the application
  ##
  replicaCount: 2
  ## @param packages.podLabels Custom pod labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels: {}
  ## @param packages.podAnnotations Custom pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
  ##
  podAnnotations: {}
  ## @param packages.extraEnvs Additional environment variables
  ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container
  ## Example:
  ## - name: APP_OPTS
  ##   value: "CustomEnvironmentVariable"
  extraEnvs: []
  ## @param packages.extraJavaOpts Additional settings included in the JAVA_OPTS environment variable
  ##
  extraJavaOpts: ""
  ## Hardware Resources
  ## Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers
  ## @param packages.resources.requests.cpu Max CPU available for a pod (resource request)
  ## @param packages.resources.requests.memory Max memory available for a pod (resource request)
  ## @param packages.resources.limits.cpu Min CPU available for a pod (resource limit)
  ## @param packages.resources.limits.memory Min memory available for a pod (resource limit)
  ##
  resources:
    requests:
      cpu: 1000m
      memory: 1024Mi
    limits:
      cpu: 1000m
      memory: 1024Mi
  ## Service Configuration
  ## Ref: https://kubernetes.io/docs/concepts/services-networking/service
  ## @param packages.service.ports.restAPIexternal Port number of the Packages external API
  ## @param packages.service.ports.restAPIinternal Port number of the Packages internal API
  ## @param packages.service.annotations Additional annotations
  ##
  service:
    ports:
      restAPIexternal: "8390"
      restAPIinternal: "9390"
    annotations: {}
  ## Pods Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param packages.podSecurityContext.enabled Enables/disables security context
  ## @param packages.podSecurityContext.fsGroup Group ID that has access to the filesystem at run-time
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 10001
  ## Container Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param packages.containerSecurityContext.enabled Enables/disables security context
  ## @param packages.containerSecurityContext.runAsUser ID of the user who runs the process
  ## @param packages.containerSecurityContext.runAsNonRoot Specifies if the process can run under the root user
  ## @param packages.containerSecurityContext.allowPrivilegeEscalation Specifies if the process can get more permissions at run-time
  ## @param packages.containerSecurityContext.readOnlyRootFilesystem Specifies if the root filesystem of the process is read-only
  ## @param packages.containerSecurityContext.capabilities.drop List of Kernel capabilities that the process is not allowed to use
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 10001
    runAsNonRoot: true
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    capabilities:
      drop:
        - NET_RAW
        - ALL
  ## Liveness and Readiness Probes
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param packages.livenessProbe.enabled Enables/disables livenessProbe
  ## @param packages.livenessProbe.initialDelaySeconds Initial delay in seconds before taking the first livenessProbe
  ## @param packages.livenessProbe.periodSeconds Period of taking livenessProbe in seconds
  ## @param packages.livenessProbe.timeoutSeconds Timeout of livenessProbe in seconds
  ## @param packages.livenessProbe.failureThreshold Number of retries if livenessProbe fails
  ## @param packages.livenessProbe.successThreshold Min consecutive successes for livenessProbe to be considered successful
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 30
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
  ## @param packages.readinessProbe.enabled Enables/disables readinessProbe
  ## @param packages.readinessProbe.initialDelaySeconds Initial delay in seconds before taking the first readinessProbe
  ## @param packages.readinessProbe.periodSeconds Period of taking readinessProbe in seconds
  ## @param packages.readinessProbe.timeoutSeconds Timeout of readinessProbe in seconds
  ## @param packages.readinessProbe.failureThreshold Number of retries if readinessProbe fails
  ## @param packages.readinessProbe.successThreshold Min consecutive successes for readinessProbe to be considered successful
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 10
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
  ## Service Account
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ## @param packages.serviceAccount.create Specifies whether to create a service account
  ## @param packages.serviceAccount.name Service account name
  ## @param packages.serviceAccount.automountServiceAccountToken Specifies if the account can mount the access token from the Kubernetes API
  ## @param packages.serviceAccount.annotations Key/value map of annotations
  ##
  serviceAccount:
    create: false
    name: ""
    automountServiceAccountToken: true
    annotations: {}
  ## Horizontal Pod Autoscaling
  ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
  ## @param packages.autoscaling.enabled Enables/disables autoscaling
  ## @param packages.autoscaling.minReplicas Minimum number of pods
  ## @param packages.autoscaling.maxReplicas Maximum number of pods
  ## @param packages.autoscaling.targetCPU CPU utilization threshold
  ## @param packages.autoscaling.targetMemory Memory utilization threshold
  ##
  autoscaling:
    enabled: false
    minReplicas: 1
    maxReplicas: 11
    targetCPU: ""
    targetMemory: ""
  ## Database (PostgreSQL)
  ## @param packages.database.hostname Database hostname
  ## @param packages.database.port Database port
  ## @param packages.database.name Database name
  ## @param packages.database.username Database username
  ## @param packages.database.password Database password
  ## @param packages.database.externalSecretName Name of the external secret with the database settings
  ## The external secret must contain all variables specified in ./templates/packages/secrets/database.secret.yaml.
  ## @param packages.database.settings.idlePoolSize Size of the idle pool
  ##
  database:
    hostname: ""
    port: ""
    name: ""
    username: ""
    password: ""
    externalSecretName: ""
    settings:
      idlePoolSize: ""
  ## Your Space Organization
  ## @param packages.organization.name Name of your organization
  ## @param packages.organization.slogan Marketing slogan of your organization
  organization:
    name: ""
    slogan: ""
  ## Event Bus (Redis)
  ## @param packages.eventbus.hostname Redis hostname
  ## @param packages.eventbus.port Redis port
  ## @param packages.eventbus.username (Optional) Redis username
  ## @param packages.eventbus.password (Optional) Redis password
  ## @param packages.eventbus.externalSecretName Name of the external secret with Redis settings
  ## The external secret must contain all variables specified in ./templates/packages/secrets/eventbus.secret.yaml.
  ##
  eventbus:
    hostname: ""
    port: ""
    username: ""
    password: ""
    externalSecretName: ""
  ## Object Storage (MinIO or another S3-compatible storage)
  ## @param packages.objectStorage.region Region where the bucket is located
  ## @param packages.objectStorage.bucketName Bucket name
  ## @param packages.objectStorage.bucketCreated "true" if the bucket exists or "false" otherwise
  ## @param packages.objectStorage.url Storage URL
  ## @param packages.objectStorage.accessKey Storage access key
  ## @param packages.objectStorage.secretKey Storage secret key
  ## @param packages.objectStorage.externalSecretName Name of the external secret with storage settings
  ## he external secret must contain all variables specified in ./templates/packages/secrets/s3.secret.yaml.
  ##
  objectStorage:
    region: ""
    bucketName: ""
    bucketCreated: "true"
    url: ""
    accessKey: ""
    secretKey: ""
    externalSecretName: ""
  ## Search Service (Elasticsearch)
  ## @param packages.elastic.search.hostname Elasticsearch hostname
  ## @param packages.elastic.search.port Elasticsearch port
  ## @param packages.elastic.search.prefix Elasticsearch prefix
  ## Authentication parameters are optional. Supported options: ApiKey, Basic, Bearer
  ## @param packages.elastic.search.auth.token Bearer authentication token
  ## @param packages.elastic.search.auth.apiKey API key for ApiKey authentication
  ## @param packages.elastic.search.auth.username Username for Basic authentication
  ## @param packages.elastic.search.auth.password Password for Basic authentication
  ## @param packages.elastic.search.externalSecretName Name of the external secret with Elasticsearch settings
  ## The external secret must contain all variables specified in ./templates/space/secrets/es-search.secret.yaml.
  ##
  elastic:
    search:
      hostname: ""
      port: ""
      prefix: ""
      auth:
        token: ""
        apiKey: ""
        username: ""
        password: ""
      externalSecretName: ""
  ## Packages URLs
  ## @param packages.externalUrl Public URL
  ## @param packages.internalUrl Internal URL
  externalUrl: ""
  internalUrl: ""
  ## Packages service details
  ## @param packages.oauth.clientId Client Id used for interaction between Space and Packages API
  ## @param packages.oauth.clientSecret Client secret used for interaction between Space and Packages API
  ## @param packages.oauth.externalSecretName Name of the external secret with Packages settings
  ## The external secret must contain all variables specified in ./templates/packages/secrets/oauth.secret.yaml file.
  ##
  oauth:
    clientId: ""
    clientSecret: ""
    externalSecretName: ""
  ## Space service details
  ## @param packages.space.externalUrl Public URL
  ## @param packages.space.internalUrl Internal URL
  space:
    internalUrl: ""
    externalUrl: ""
  ## Ingress
  ## Ref: https://kubernetes.io/docs/user-guide/ingress
  ## @param packages.ingress.enabled Enables/disables Ingress for routing inbound traffic
  ## @param packages.ingress.pathType Ingress path type
  ## @param packages.ingress.hostname Ingress hostname
  ## @param packages.ingress.annotations Key/value map with annotations
  ## @param packages.ingress.tls Enables/disables TLS for the hostname
  ## @param packages.ingress.selfSigned Specifies whether to create a self-signed certificate for $parent.hostname
  ## @param packages.ingress.path Ingress path array
  ## @param packages.ingress.extraPaths Ingress extra paths
  ## @param packages.ingress.extraTLS Additional TLS configuration
  ## @param packages.ingress.secret Name of the external secret for $parent.hostname
  ## @param packages.ingress.ingressClassName IngressClass name
  ## @param packages.ingress.extraRules Additional Ingress rules
  ##
  ingress:
    enabled: true
    selfSigned: false
    pathType: ImplementationSpecific
    hostname: packages.jetbrains.local
    ## You might need to set the '/*' value in order to use it
    ## with ALB Ingress controllers.
    ##
    path: /
    ## For a full list of possible Ingress annotations, see
    ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
    ## Use this parameter to set the required annotations for cert-manager. For details, see
    ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
    ##
    ## e.g:
    ## annotations:
    ##   kubernetes.io/ingress.class: nginx
    ##   cert-manager.io/cluster-issuer: cluster-issuer-name
    ##
    annotations: {}
    ## TLS certificates will be retrieved from a TLS secret with the following name: {{- printf "%s-tls" .Values.ingress.hostname }}
    ## You can use the ingress.secrets parameter to create this TLS secret or rely on cert-manager to create it.
    ##
    tls: false
    ## Any additional arbitrary paths that may need to be added to the ingress under the main host.
    ## For example: The ALB Ingress controller requires a special rule for handling SSL redirection.
    extraPaths: []
    ## - path: /*
    ##   backend:
    ##     service:
    ##        name: ssl-redirect
    ##        port:
    ##          number: use-annotation
    ##
    ## The TLS configuration for additional hostnames is covered with this Ingress record.
    ## Use this configuration block also in case the certificates are managed outside this Helm chart.
    ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
    extraTLS: []
    ## - hosts:
    ##     - jetbrains.net
    ##   secretName: tls-jetbrains.net
    ##
    ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster.
    ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
    ##
    ingressClassName: ""
    ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
    ## e.g:
    ## extraRules:
    ## - host: example.local
    ##     http:
    ##       path: /
    ##       backend:
    ##         service:
    ##           name: example-svc
    ##           port:
    ##             name: http
    ##
    extraRules: []
    ## Name of the external secret related to the main hostname in the Ingress definition.
    ## To specify the main hostname, use the .Values.packages.ingress.hostname key in values.yaml.
    ## Example:
    ## secret: "tls-jetbrains.space"
    ##
    secret: ""
  ## Init containers configuration
  ##
  defaultInitContainers:
    images:
      ## @param packages.defaultInitContainers.images.redis.registry Container image registry
      ## @param packages.defaultInitContainers.images.redis.repository Repository with the Redis image
      ## @param packages.defaultInitContainers.images.redis.tag Version of the Redis image
      ## @param packages.defaultInitContainers.images.redis.pullPolicy Redis image pull policy
      ##
      redis:
        registry: "docker.io"
        repository: "bitnami/redis"
        tag: "6.2.7"
        pullPolicy: Always
      ## @param packages.defaultInitContainers.images.postgresql.registry Container image registry
      ## @param packages.defaultInitContainers.images.postgresql.repository Repository with the PostgreSQL image
      ## @param packages.defaultInitContainers.images.postgresql.tag Version of the PostgreSQL image
      ## @param packages.defaultInitContainers.images.postgresql.pullPolicy PostgreSQL image pull policy
      ##
      postgresql:
        registry: "docker.io"
        repository: "bitnami/postgresql"
        tag: "11.12.0"
        pullPolicy: Always
      ## @param packages.defaultInitContainers.images.busybox.registry Container image registry
      ## @param packages.defaultInitContainers.images.busybox.repository Repository with the BusyBox image
      ## @param packages.defaultInitContainers.images.busybox.tag Version of the BusyBox image
      ## @param packages.defaultInitContainers.images.busybox.pullPolicy BusyBox image pull policy
      ##
      busybox:
        registry: "docker.io"
        repository: "busybox"
        tag: "1.28.0"
        pullPolicy: Always
    ## @param packages.defaultInitContainers.resources.requests.cpu Max CPU available for a pod (resource request)
    ## @param packages.defaultInitContainers.resources.requests.memory Max memory available for a pod (resource request)
    ## @param packages.defaultInitContainers.resources.limits.cpu Min CPU available for a pod (resource limit)
    ## @param packages.defaultInitContainers.resources.limits.memory Min memory available for a pod (resource limit)
    ##
    resources:
      requests:
        cpu: 500m
        memory: 512Mi
      limits:
        cpu: 500m
        memory: 512Mi
    ## Container Security Context
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
    ## @param packages.defaultInitContainers.containerSecurityContext.enabled Enables/disables Security Context
    ## @param packages.defaultInitContainers.containerSecurityContext.runAsUser ID of the user who runs the process
    ## @param packages.defaultInitContainers.containerSecurityContext.runAsNonRoot Specifies if the process can run under the root user
    ## @param packages.defaultInitContainers.containerSecurityContext.allowPrivilegeEscalation Specifies if the process can get more permissions at run-time
    ## @param packages.defaultInitContainers.containerSecurityContext.readOnlyRootFilesystem Specifies if the root filesystem of the process is read-only
    ## @param packages.defaultInitContainers.containerSecurityContext.capabilities.drop List of Kernel capabilities that the process is not allowed to use
    ##
    containerSecurityContext:
      enabled: true
      runAsUser: 10001
      runAsNonRoot: true
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      capabilities:
        drop:
          - NET_RAW
          - ALL

## @section Langservice
##
langservice:
  ## Image details
  ## Ref: https://kubernetes.io/docs/concepts/containers/images
  ## @param langservice.image.registry Container image registry
  ## @param langservice.image.repository Repository with the Langservice image
  ## @param langservice.image.tag Version of the Langservice image
  ## @param langservice.image.pullPolicy Langservice image pull policy
  ## @param langservice.image.pullSecrets Name of the external secret with registry credentials
  ##
  image:
    registry: "public.registry.jetbrains.space"
    repository: "p/space-on-premises/docker/langservice"
    tag: "2022.1.0-BETA"
    ## Image pull policy
    ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
    ##
    pullPolicy: Always
    ## You must manually create an array of imagePullSecrets in the namespace.
    ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry
    ## e.g:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## @param langservice.config Overrides the default Langservice application configuration
  ##
  ## Currently, it's not possible to validate the configuration at the pre-deployment time.
  ## If the configuration is invalid, the application will fail to start with the CrashLoopBackOff state.
  ##
  ## Example:
  ## config: |
  ##    ktor {
  ##      deployment {
  ##        environment = {{ include "lib.deployment.environment" }}
  ##        port = {{ .Values.langservice.service.ports.restAPI }}
  ##      }
  ##
  ##      application {
  ##        modules = [circlet.langservice.server.LangServerKt.main]
  ##      }
  ##    }
  ##
  ##   circlet{
  ##      server {
  ##        pidFileName = ".main_app.pid"
  ##      }
  ##      perf {
  ##        client {
  ##          enabled = false
  ##        }
  ##
  ##        elastic {
  ##          enabled = false
  ##        }
  ##      }
  ##
  ##     frontend {
  ##      enableWebdriverTestIds = false
  ##     }
  ##   }
  ##
  config: ""
  ## @param langservice.replicaCount Initial number of pods for the application
  ##
  replicaCount: 2
  ## @param langservice.podLabels Custom pod labels
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
  ##
  podLabels: {}
  ## @param langservice.podAnnotations Custom pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
  ##
  podAnnotations: {}
  ## @param langservice.extraEnvs Additional environment variables
  ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container
  ## Example:
  ## - name: APP_OPTS
  ##   value: "CustomEnvironmentVariable"
  extraEnvs: []
  ## @param langservice.extraJavaOpts Additional settings included in the JAVA_OPTS environment variable
  ##
  extraJavaOpts: ""
  ## Hardware Resources
  ## Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers
  ## @param langservice.resources.requests.cpu Max CPU available for a pod (resource request)
  ## @param langservice.resources.requests.memory Max memory available for a pod (resource request)
  ## @param langservice.resources.limits.cpu Min CPU available for a pod (resource limit)
  ## @param langservice.resources.limits.memory Min memory available for a pod (resource limit)
  ##
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
    limits:
      cpu: 500m
      memory: 512Mi
  ## Service Configuration
  ## Ref: https://kubernetes.io/docs/concepts/services-networking/service
  ## @param langservice.service.ports.restAPI Langservice port number
  ## @param langservice.service.annotations Additional annotations
  ##
  service:
    ports:
      restAPI: "8095"
    annotations: {}
  ## Pods Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param langservice.podSecurityContext.enabled Enables/disables security context
  ## @param langservice.podSecurityContext.fsGroup Group ID that has access to the filesystem at run-time
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 10001
  ## Container Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param langservice.containerSecurityContext.enabled Enables/disables security context
  ## @param langservice.containerSecurityContext.runAsUser ID of the user who runs the process
  ## @param langservice.containerSecurityContext.runAsNonRoot Specifies if the process can run under the root user
  ## @param langservice.containerSecurityContext.allowPrivilegeEscalation Specifies if the process can get more permissions at run-time
  ## @param langservice.containerSecurityContext.readOnlyRootFilesystem Specifies if the root filesystem of the process is read-only
  ## @param langservice.containerSecurityContext.capabilities.drop List of Kernel capabilities that the process is not allowed to use
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 10001
    runAsNonRoot: true
    allowPrivilegeEscalation: false
    readOnlyRootFilesystem: true
    capabilities:
      drop:
        - NET_RAW
        - ALL
  ## Service Account
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  ## @param langservice.serviceAccount.create Specifies whether to create a service account
  ## @param langservice.serviceAccount.name Service account name
  ## @param langservice.serviceAccount.automountServiceAccountToken Specifies if the account can mount the access token from the Kubernetes API
  ## @param langservice.serviceAccount.annotations Key/value map of annotations
  ##
  serviceAccount:
    create: false
    name: ""
    automountServiceAccountToken: true
    annotations: {}
  ## Horizontal Pod Autoscaling
  ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
  ## @param langservice.autoscaling.enabled Enables/disables autoscaling
  ## @param langservice.autoscaling.minReplicas Minimum number of pods
  ## @param langservice.autoscaling.maxReplicas Maximum number of pods
  ## @param langservice.autoscaling.targetCPU CPU utilization threshold
  ## @param langservice.autoscaling.targetMemory Memory utilization threshold
  ##
  autoscaling:
    enabled: false
    minReplicas: 1
    maxReplicas: 11
    targetCPU: ""
    targetMemory: ""
  ## Liveness and Readiness Probes
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param langservice.livenessProbe.enabled Enables/disables livenessProbe
  ## @param langservice.livenessProbe.initialDelaySeconds Initial delay in seconds before taking the first livenessProbe
  ## @param langservice.livenessProbe.periodSeconds Period of taking livenessProbe in seconds
  ## @param langservice.livenessProbe.timeoutSeconds Timeout of livenessProbe in seconds
  ## @param langservice.livenessProbe.failureThreshold Number of retries if livenessProbe fails
  ## @param langservice.livenessProbe.successThreshold Min consecutive successes for livenessProbe to be considered successful
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 30
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
  ## @param langservice.readinessProbe.enabled Enables/disables readinessProbe
  ## @param langservice.readinessProbe.initialDelaySeconds Initial delay in seconds before taking the first readinessProbe
  ## @param langservice.readinessProbe.periodSeconds Period of taking readinessProbe in seconds
  ## @param langservice.readinessProbe.timeoutSeconds Timeout of readinessProbe in seconds
  ## @param langservice.readinessProbe.failureThreshold Number of retries if readinessProbe fails
  ## @param langservice.readinessProbe.successThreshold Min consecutive successes for readinessProbe to be considered successful
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 10
    timeoutSeconds: 30
    successThreshold: 1
    failureThreshold: 5
