| gio | c916187 | 2024-04-21 10:46:35 +0400 | [diff] [blame] | 1 | # Default values for openproject. |
| 2 | # This is a YAML-formatted file. |
| 3 | # Declare variables to be passed into your templates. |
| 4 | |
| 5 | ## Enable development mode. |
| 6 | ## |
| 7 | ## Set this to true if you want are working on the charts locally using |
| 8 | ## local clusters such as minikube or kind. |
| 9 | ## |
| 10 | ## This will set `OPENPROJECT_HTTPS` to `false` and avoid using volumes for |
| 11 | ## tmp folders as (permissions for) these don't work correctly in local clusters. |
| 12 | develop: false |
| 13 | |
| 14 | global: |
| 15 | ## Credentials to fetch images from private registry. |
| 16 | ## |
| 17 | ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ |
| 18 | ## |
| 19 | ## imagePullSecrets: |
| 20 | ## - myRegistryKeySecretName |
| 21 | # |
| 22 | imagePullSecrets: [] |
| 23 | |
| 24 | ## Affinity for pod assignment. |
| 25 | ## |
| 26 | ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity |
| 27 | # |
| 28 | affinity: {} |
| 29 | |
| 30 | ## Define additional environment variables. |
| 31 | ## |
| 32 | ## You can get a list of all environment variables when executing: |
| 33 | ## "RAILS_ENV=production bundle exec rake setting:available_envs" |
| 34 | ## |
| 35 | ## environment: |
| 36 | ## OPENPROJECT_ATTACHMENT__MAX__SIZE: 5120 |
| 37 | # |
| 38 | environment: {} |
| 39 | |
| 40 | ## Provide a name to substitute for the full names of resources. |
| 41 | # |
| 42 | fullnameOverride: "" |
| 43 | |
| 44 | ## |
| 45 | # Override the cluster domain name used in templating |
| 46 | clusterDomain: "cluster.local" |
| 47 | |
| 48 | ## Define settings for wait-for-db init-container |
| 49 | # |
| 50 | initdb: |
| 51 | image: |
| 52 | ## Define docker registry address. |
| 53 | # |
| 54 | registry: "docker.io" |
| 55 | |
| 56 | ## Define repository string. |
| 57 | # |
| 58 | repository: "postgres" |
| 59 | |
| 60 | # Postgres version to use |
| 61 | tag: 13 |
| 62 | |
| 63 | ## Define a imagePullPolicy. |
| 64 | ## |
| 65 | ## Ref.: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy |
| 66 | ## |
| 67 | ## "IfNotPresent" => The image is pulled only if it is not already present locally. |
| 68 | ## "Always" => Every time the kubelet launches a container, the kubelet queries the container image registry to |
| 69 | ## resolve the name to an image digest. If the kubelet has a container image with that exact digest cached |
| 70 | ## locally, the kubelet uses its cached image; otherwise, the kubelet pulls the image with the resolved |
| 71 | ## digest, and uses that image to launch the container. |
| 72 | ## "Never" => The kubelet does not try fetching the image. If the image is somehow already present locally, the |
| 73 | ## kubelet attempts to start the container; otherwise, startup fails |
| 74 | # |
| 75 | imagePullPolicy: "Always" |
| 76 | |
| 77 | resources: |
| 78 | limits: |
| 79 | memory: "200Mi" |
| 80 | requests: |
| 81 | memory: "200Mi" |
| 82 | |
| 83 | ## Define and create Kubernetes Service. |
| 84 | ## |
| 85 | ## Ref.: https://kubernetes.io/docs/concepts/services-networking/ingress/ |
| 86 | # |
| 87 | ingress: |
| 88 | ## Whether to enable session affinity or not. It is required by ingress. |
| 89 | # |
| 90 | enabled: true |
| 91 | |
| 92 | ## Define the name of the ingress class. |
| 93 | ## |
| 94 | ## If left empty, the cluster default is used. |
| 95 | ## Set this if you need a specific class, for instance `nginx`. |
| 96 | # |
| 97 | ingressClassName: |
| 98 | |
| 99 | ## Define custom ingress annotations: |
| 100 | ## |
| 101 | ## Example: |
| 102 | ## annotations: |
| 103 | ## nginx.ingress.kubernetes.io/rewrite-target: / |
| 104 | annotations: {} |
| 105 | |
| 106 | ## Define the Fully Qualified Domain Name (FQDN) where OpenProject should be reachable. |
| 107 | # |
| 108 | host: "openproject.example.com" |
| 109 | |
| 110 | ## Define the path for OpenProject on your host. |
| 111 | # |
| 112 | path: / |
| 113 | |
| 114 | ## Each path in an Ingress is required to have a corresponding path type. Paths that do not include an explicit |
| 115 | ## pathType will fail validation. There are three supported path types: |
| 116 | ## |
| 117 | ## "ImplementationSpecific" => With this path type, matching is up to the IngressClass. Implementations can treat this |
| 118 | ## as a separate pathType or treat it identically to Prefix or Exact path types. |
| 119 | ## "Exact" => Matches the URL path exactly and with case sensitivity. |
| 120 | ## "Prefix" => Matches based on a URL path prefix split by /. |
| 121 | ## |
| 122 | ## Ref.: https://kubernetes.io/docs/concepts/services-networking/ingress/#path-types |
| 123 | # |
| 124 | pathType: "Prefix" |
| 125 | |
| 126 | ## You can secure an Ingress by specifying a Secret that contains a TLS private key and certificate. |
| 127 | ## |
| 128 | ## Ref.: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls |
| 129 | # |
| 130 | tls: |
| 131 | ## Whether to enable tls or not. |
| 132 | # |
| 133 | enabled: true |
| 134 | |
| 135 | ## The name of the kubernetes secret which contains a TLS private key and certificate. |
| 136 | ## Hint: This secret is not created by this chart and must be provided. |
| 137 | ## |
| 138 | # |
| 139 | secretName: "" |
| 140 | |
| 141 | egress: |
| 142 | tls: |
| 143 | rootCA: |
| 144 | configMap: "" |
| 145 | fileName: "" |
| 146 | |
| 147 | ## Define image setting |
| 148 | # |
| 149 | image: |
| 150 | ## Define docker registry address. |
| 151 | # |
| 152 | registry: "docker.io" |
| 153 | |
| 154 | ## Define repository string. |
| 155 | # |
| 156 | repository: "openproject/community" |
| 157 | |
| 158 | ## Define a imagePullPolicy. |
| 159 | ## |
| 160 | ## Ref.: https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy |
| 161 | ## |
| 162 | ## "IfNotPresent" => The image is pulled only if it is not already present locally. |
| 163 | ## "Always" => Every time the kubelet launches a container, the kubelet queries the container image registry to |
| 164 | ## resolve the name to an image digest. If the kubelet has a container image with that exact digest cached |
| 165 | ## locally, the kubelet uses its cached image; otherwise, the kubelet pulls the image with the resolved |
| 166 | ## digest, and uses that image to launch the container. |
| 167 | ## "Never" => The kubelet does not try fetching the image. If the image is somehow already present locally, the |
| 168 | ## kubelet attempts to start the container; otherwise, startup fails |
| 169 | # |
| 170 | imagePullPolicy: "Always" |
| 171 | |
| 172 | ## Define image tag. |
| 173 | ## For the helm chart, use the `-slim` variants as the all-in-one container is not compatible |
| 174 | ## with some of the options (non-root execution, password splitting, etc.) and is inefficient for using in helm |
| 175 | ## due to embedded a number of services. |
| 176 | tag: "13-slim" |
| 177 | |
| 178 | ## Define image sha256 - mutual exclusive with image tag. |
| 179 | ## The sha256 has a higher precedence than |
| 180 | # sha256: |
| 181 | |
| 182 | ## Credentials to fetch images from private registry. |
| 183 | ## |
| 184 | ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ |
| 185 | ## |
| 186 | ## imagePullSecrets: |
| 187 | ## - myRegistryKeySecretName |
| 188 | # |
| 189 | imagePullSecrets: [] |
| 190 | |
| 191 | ## Configure memcached settings. |
| 192 | # |
| 193 | memcached: |
| 194 | ## When set to true, a memcached will be deployed into current namespace, when false you have to provide your own |
| 195 | ## memcached instance. |
| 196 | # |
| 197 | bundled: true |
| 198 | |
| 199 | global: |
| 200 | containerSecurityContext: |
| 201 | enabled: true |
| 202 | allowPrivilegeEscalation: false |
| 203 | capabilities: |
| 204 | drop: |
| 205 | - "ALL" |
| 206 | seccompProfile: |
| 207 | type: "RuntimeDefault" |
| 208 | readOnlyRootFilesystem: true |
| 209 | runAsNonRoot: true |
| 210 | |
| 211 | ## When "bundled" is set to false, you need to define the memcached connection details. |
| 212 | # |
| 213 | connection: |
| 214 | host: |
| 215 | port: |
| 216 | |
| 217 | ## String to partially override release name. |
| 218 | # |
| 219 | nameOverride: "" |
| 220 | |
| 221 | ## Node labels for pod assignment. |
| 222 | ## |
| 223 | ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ |
| 224 | # |
| 225 | nodeSelector: {} |
| 226 | |
| 227 | ## Deployment strategy |
| 228 | ## |
| 229 | ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy |
| 230 | # |
| 231 | strategy: |
| 232 | ## Re-create pod during deployments by default since a writable volume is mounted. |
| 233 | ## Should your cluster support WriteMany volumes, you can change this |
| 234 | ## to `RollingUpdate`. |
| 235 | type: "Recreate" |
| 236 | |
| 237 | # Define the workers to run, their queues, replicas, strategy, and resources |
| 238 | workers: |
| 239 | default: |
| 240 | queues: "" |
| 241 | replicas: 1 |
| 242 | strategy: |
| 243 | type: "Recreate" |
| 244 | resources: |
| 245 | requests: |
| 246 | memory: "512Mi" |
| 247 | cpu: "250m" |
| 248 | limits: |
| 249 | memory: "4Gi" |
| 250 | cpu: "4" |
| 251 | |
| 252 | ## OpenProject related settings. |
| 253 | ## |
| 254 | ## Ref.: https://www.openproject.org/docs/installation-and-operations/configuration/environment/#supported-environment-variables |
| 255 | # |
| 256 | openproject: |
| 257 | ## Enable https in backend response. |
| 258 | # |
| 259 | https: true |
| 260 | |
| 261 | ## Define the host, defaults to value of "ingress.host". |
| 262 | # |
| 263 | host: |
| 264 | |
| 265 | ## Enable HSTS. |
| 266 | # |
| 267 | hsts: true |
| 268 | |
| 269 | ## Define Cache settings. |
| 270 | # |
| 271 | cache: |
| 272 | store: "memcache" |
| 273 | |
| 274 | extraEnvVarsSecret: "" |
| 275 | |
| 276 | ## Define the language to seed the instance in |
| 277 | # |
| 278 | seed_locale: "en" |
| 279 | |
| 280 | ## |
| 281 | # Let OpenProject run in a subdirectory, |
| 282 | # e.g., https://exameple.com/openproject |
| 283 | # specify with leading slash, but without trailing slash |
| 284 | # e.g., /openproject |
| 285 | railsRelativeUrlRoot: |
| 286 | |
| 287 | ## Define admin user details |
| 288 | # only applicable on first installation |
| 289 | # Note: Only applicable for versions >= 13.0 |
| 290 | admin_user: |
| 291 | password: "admin" |
| 292 | password_reset: "true" |
| 293 | name: "OpenProject Admin" |
| 294 | mail: "admin@example.net" |
| 295 | |
| 296 | ## Define OpenID Connect providers |
| 297 | oidc: |
| 298 | enabled: false |
| 299 | provider: "Keycloak" |
| 300 | displayName: "Keycloak" |
| 301 | host: "" |
| 302 | identifier: "" |
| 303 | secret: "" |
| 304 | authorizationEndpoint: "" |
| 305 | tokenEndpoint: "" |
| 306 | userinfoEndpoint: "" |
| 307 | endSessionEndpoint: "" |
| 308 | scope: "[openid]" |
| 309 | |
| 310 | # Optional attribute mappings from the id token |
| 311 | attribute_map: {} |
| 312 | |
| 313 | ## To avoid having sensitive credentials in your values.yaml, the preferred way is to |
| 314 | ## use an existing secret containing the OIDC compatible access credentials. |
| 315 | ## Specify the name of this existing secret here. |
| 316 | existingSecret: |
| 317 | |
| 318 | ## In case your secret does not use the default keys in the secret, you can adjust them here. |
| 319 | secretKeys: |
| 320 | identifier: "clientId" |
| 321 | secret: "clientSecret" |
| 322 | |
| 323 | # Allows usage of sealed-secret for `identifier` and `secret` values. |
| 324 | # Special use case for use in setups where heml template `lookup` function is not available. |
| 325 | # Ref: https://github.com/argoproj/argo-cd/issues/5202 |
| 326 | # |
| 327 | extraOidcSealedSecret: |
| 328 | |
| 329 | ## Modify PostgreSQL statement timout. |
| 330 | ## Increase in case you get errors such as "ERROR: canceling statement due to statement timeout". |
| 331 | ## |
| 332 | ## Ref.: https://www.openproject.org/docs/installation-and-operations/configuration/environment/#postgresql-statement_timeout |
| 333 | # |
| 334 | postgresStatementTimeout: 120s |
| 335 | |
| 336 | ## Whether or not to use ephemeral volumes for /app/tmp and /tmp. |
| 337 | ## Falls back to a sensible default if undefined. |
| 338 | # |
| 339 | useTmpVolumes: |
| 340 | |
| 341 | ## customize the tmp storage mount sizes |
| 342 | tmpVolumesStorage: "5Gi" |
| 343 | |
| 344 | ## Whether to allocate persistent volume disk for the data directory. |
| 345 | ## In case of node failure, the node data directory will still persist. |
| 346 | ## |
| 347 | ## Ref.: https://kubernetes.io/docs/concepts/storage/persistent-volumes/ |
| 348 | # |
| 349 | persistence: |
| 350 | enabled: true |
| 351 | |
| 352 | ## Define the volume access modes: |
| 353 | ## |
| 354 | ## "ReadWriteOnce" => The volume can be mounted as read-write by a single node. ReadWriteOnce access mode still can |
| 355 | ## allow multiple pods to access the volume when the pods are running on the same node. |
| 356 | ## "ReadOnlyMany" => The volume can be mounted as read-only by many nodes. |
| 357 | ## "ReadWriteMany" => The volume can be mounted as read-write by many nodes. |
| 358 | ## "ReadWriteOncePod" => The volume can be mounted as read-write by a single Pod. Use ReadWriteOncePod access mode if |
| 359 | ## you want to ensure that only one pod across whole cluster can read that PVC or write to it. |
| 360 | # |
| 361 | accessModes: |
| 362 | - "ReadWriteMany" |
| 363 | |
| 364 | ## Define custom storage (PVC) annotations: |
| 365 | ## |
| 366 | annotations: {} |
| 367 | |
| 368 | ## Define the volume size. |
| 369 | # |
| 370 | size: "1Gi" |
| 371 | |
| 372 | ## Define the class of PV. |
| 373 | storageClassName: |
| 374 | |
| 375 | ## Whether to use an S3-compatible object storage to store OpenProject attachments. |
| 376 | ## If this is enabled, files will NOT be stored in the mounted volume configured in `persistence` above. |
| 377 | ## The volume will not be used at all, so it `persistence.enabled` should be set to `false` in this case. |
| 378 | ## |
| 379 | ## Ref.: https://www.openproject.org/docs/installation-and-operations/configuration/#attachments-storage |
| 380 | # |
| 381 | s3: |
| 382 | enabled: false |
| 383 | |
| 384 | auth: |
| 385 | # Provide the accessKeyId and secret in plain values |
| 386 | # We recommend to use the existing |
| 387 | Secret option instead |
| 388 | accessKeyId: |
| 389 | secretAccessKey: |
| 390 | |
| 391 | ## To avoid having sensitive credentials in your values.yaml, the preferred way is to |
| 392 | ## use an existing secret containing the S3 compatible access credentials. |
| 393 | ## Specify the name of this existing secret here. |
| 394 | existingSecret: |
| 395 | |
| 396 | ## In case your secret does not use the default keys in the secret, you can adjust them here. |
| 397 | secretKeys: |
| 398 | accessKeyId: "accessKeyId" |
| 399 | secretAccessKey: "secretAccessKey" |
| 400 | |
| 401 | region: |
| 402 | bucketName: |
| 403 | |
| 404 | ## Remove or leave empty to use default AWS S3 endpoint |
| 405 | # |
| 406 | endpoint: |
| 407 | host: |
| 408 | port: |
| 409 | pathStyle: false |
| 410 | signatureVersion: 4 |
| 411 | useIamProfile: false |
| 412 | # Some providers do not properly support signature v4 streaming (e.g. Scaleway) |
| 413 | enableSignatureV4Streaming: true |
| 414 | |
| 415 | ## If enabled, upload files directly to S3 from the browser instead of going through OpenProject. |
| 416 | ## May not be supported by providers other than AWS S3 itself. |
| 417 | ## |
| 418 | ## Ref.: https://www.openproject.org/docs/installation-and-operations/configuration/#direct-uploads |
| 419 | # |
| 420 | directUploads: true |
| 421 | |
| 422 | ## You can always override these options via the environment, for instance: |
| 423 | ## |
| 424 | ## environment: |
| 425 | ## OPENPROJECT_FOG_CREDENTIALS_REGION: 'us-east-1' |
| 426 | ## |
| 427 | ## Ref.: https://www.openproject.org/docs/installation-and-operations/configuration/#attachments-storage |
| 428 | |
| 429 | ## Define custom pod annotations. |
| 430 | # |
| 431 | podAnnotations: {} |
| 432 | |
| 433 | ## Pod Security Context. |
| 434 | ## |
| 435 | ## We use the default value of `1000` for `fsGroup` since that |
| 436 | ## is the app user's group ID and if the user wants to be able to |
| 437 | ## write to `/var/openproject/assets` the mounted folder needs to |
| 438 | ## have a matching gid. |
| 439 | ## |
| 440 | ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ |
| 441 | # |
| 442 | podSecurityContext: |
| 443 | enabled: true |
| 444 | fsGroup: 1000 |
| 445 | |
| 446 | ## Container security context using as a default best practice values |
| 447 | ## granting minimum privileges. |
| 448 | ## |
| 449 | ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ |
| 450 | # |
| 451 | containerSecurityContext: |
| 452 | enabled: true |
| 453 | runAsUser: 1000 |
| 454 | runAsGroup: 1000 |
| 455 | allowPrivilegeEscalation: false |
| 456 | capabilities: |
| 457 | drop: |
| 458 | - "ALL" |
| 459 | seccompProfile: |
| 460 | type: "RuntimeDefault" |
| 461 | readOnlyRootFilesystem: true |
| 462 | runAsNonRoot: true |
| 463 | |
| 464 | ## Configure PostgreSQL settings. |
| 465 | # |
| 466 | postgresql: |
| 467 | ## When set to true, a postgres server will be deployed into current namespace, when false you have to provide your |
| 468 | ## own database instance. |
| 469 | # |
| 470 | bundled: true |
| 471 | |
| 472 | global: |
| 473 | containerSecurityContext: |
| 474 | enabled: true |
| 475 | allowPrivilegeEscalation: false |
| 476 | capabilities: |
| 477 | drop: |
| 478 | - "ALL" |
| 479 | seccompProfile: |
| 480 | type: "RuntimeDefault" |
| 481 | readOnlyRootFilesystem: true |
| 482 | runAsNonRoot: true |
| 483 | |
| 484 | ## When "bundled" is set to false, you need to define the database connection details. |
| 485 | # |
| 486 | connection: |
| 487 | host: |
| 488 | port: |
| 489 | |
| 490 | ## Database auth details. |
| 491 | # |
| 492 | auth: |
| 493 | ## To avoid having sensitive credentials in your values.yaml, the preferred way to provide a password |
| 494 | ## is to use an existing secret containing the PostgreSQL credentials. |
| 495 | ## Specify the name of this existing secret here. |
| 496 | ## |
| 497 | ## If neither an existing secret nor passwords are defined, a secret is generated automatically. |
| 498 | ## |
| 499 | ## The postgresql chart will create this secret (the name of which ends with `-postgresql` by default) |
| 500 | ## with generated user and admin passwords. |
| 501 | ## If you want to see the base64 encoded passwords you can output the secret like this: |
| 502 | ## |
| 503 | ## ``` |
| 504 | ## kubectl get secret -n <namespace> openproject-postgresql -o yaml | grep password |
| 505 | ## ``` |
| 506 | # |
| 507 | existingSecret: "" |
| 508 | |
| 509 | ## In case your secret does not use the default keys in the secret, you can adjust them here. |
| 510 | ## |
| 511 | ## secretKeys: |
| 512 | ## adminPasswordKey: "postgres-password" |
| 513 | ## userPasswordKey: "password" |
| 514 | |
| 515 | ## Database username. |
| 516 | # |
| 517 | username: "openproject" |
| 518 | |
| 519 | ## Database name. |
| 520 | # |
| 521 | database: "openproject" |
| 522 | |
| 523 | ## If you are not using a Kubernetes secret to store your postgresql credentials, |
| 524 | ## you can specify them here if you really must. Please handle with care! |
| 525 | |
| 526 | ## Database password. |
| 527 | # |
| 528 | password: "" |
| 529 | |
| 530 | ## Database root password. |
| 531 | # |
| 532 | postgresPassword: "" |
| 533 | |
| 534 | ## When using the "bundled" postgresql chart, you can configure the storageClass and other settings similar to this |
| 535 | ## Ref: https://github.com/bitnami/charts/blob/main/bitnami/postgresql/values.yaml |
| 536 | # |
| 537 | # global: |
| 538 | # storageClass: my-storage-class-name |
| 539 | |
| 540 | ## Configure liveness and readiness probes. |
| 541 | ## |
| 542 | ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ |
| 543 | # |
| 544 | probes: |
| 545 | ## Configure liveness probe. |
| 546 | ## |
| 547 | ## If the liveness probe fails, the container will be restarted. |
| 548 | # |
| 549 | liveness: |
| 550 | ## Whether to enable liveness probes. |
| 551 | # |
| 552 | enabled: true |
| 553 | |
| 554 | ## Number of seconds after the container has started before startup, liveness or readiness probes are initiated. |
| 555 | ## Defaults to 0 seconds. Minimum value is 0. |
| 556 | # |
| 557 | initialDelaySeconds: 120 |
| 558 | |
| 559 | ## Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. |
| 560 | # |
| 561 | timeoutSeconds: 3 |
| 562 | |
| 563 | ## How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. |
| 564 | # |
| 565 | periodSeconds: 30 |
| 566 | |
| 567 | ## When a probe fails, Kubernetes will try failureThreshold times before giving up. Giving up in case of liveness |
| 568 | ## probe means restarting the container. In case of readiness probe the Pod will be marked Unready. Defaults to 3. |
| 569 | ## Minimum value is 1. |
| 570 | # |
| 571 | failureThreshold: 3 |
| 572 | |
| 573 | ## Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. |
| 574 | ## Must be 1 for liveness and startup Probes. Minimum value is 1. |
| 575 | # |
| 576 | successThreshold: 1 |
| 577 | |
| 578 | ## Configure readiness probe. |
| 579 | ## |
| 580 | ## If the readiness probe failes, no traffic will be routed to the container. |
| 581 | # |
| 582 | readiness: |
| 583 | ## Whether to enable liveness probes. |
| 584 | # |
| 585 | enabled: true |
| 586 | |
| 587 | ## Number of seconds after the container has started before startup, liveness or readiness probes are initiated. |
| 588 | ## Defaults to 0 seconds. Minimum value is 0. |
| 589 | # |
| 590 | initialDelaySeconds: 30 |
| 591 | |
| 592 | ## Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. |
| 593 | # |
| 594 | timeoutSeconds: 3 |
| 595 | |
| 596 | ## How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. |
| 597 | # |
| 598 | periodSeconds: 15 |
| 599 | |
| 600 | ## When a probe fails, Kubernetes will try failureThreshold times before giving up. Giving up in case of liveness |
| 601 | ## probe means restarting the container. In case of readiness probe the Pod will be marked Unready. Defaults to 3. |
| 602 | ## Minimum value is 1. |
| 603 | # |
| 604 | failureThreshold: 30 |
| 605 | |
| 606 | ## Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. |
| 607 | ## Must be 1 for liveness and startup Probes. Minimum value is 1. |
| 608 | # |
| 609 | successThreshold: 1 |
| 610 | |
| 611 | ## Number of OpenProject web process replicas. |
| 612 | # |
| 613 | replicaCount: 1 |
| 614 | |
| 615 | ## Number of OpenProject background worker process replicas. |
| 616 | # |
| 617 | backgroundReplicaCount: 1 |
| 618 | |
| 619 | ## Configure resource requests and limits. |
| 620 | ## |
| 621 | ## http://kubernetes.io/docs/user-guide/compute-resources/ |
| 622 | # |
| 623 | resources: |
| 624 | requests: |
| 625 | memory: "512Mi" |
| 626 | cpu: "250m" |
| 627 | limits: |
| 628 | memory: "4Gi" |
| 629 | cpu: "4" |
| 630 | |
| 631 | ## Define and create Kubernetes Service. |
| 632 | ## |
| 633 | ## Ref.: https://kubernetes.io/docs/concepts/services-networking/service |
| 634 | # |
| 635 | service: |
| 636 | ## Whether to enable session affinity or not. It is required by ingress. |
| 637 | # |
| 638 | enabled: true |
| 639 | |
| 640 | ## Choose the kind of Service: |
| 641 | ## |
| 642 | ## "ClusterIP" => Exposes the Service on a cluster-internal IP. Choosing this value makes the Service only reachable |
| 643 | ## from within the cluster. This is the default that is used if you don't explicitly specify a type for |
| 644 | ## a Service. |
| 645 | ## "NodePort" => Exposes the Service on each Node's IP at a static port (the NodePort). To make the node port |
| 646 | ## available, Kubernetes sets up a cluster IP address, the same as if you had requested a Service of |
| 647 | ## type: ClusterIP. |
| 648 | ## "LoadBalancer" => Exposes the Service externally using a cloud provider's load balancer. |
| 649 | ## |
| 650 | ## Ref.: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types |
| 651 | # |
| 652 | type: "ClusterIP" |
| 653 | |
| 654 | ## Define the ports of Service. |
| 655 | ## You can set the port value to an arbitrary value, it will map the container port by name. |
| 656 | ## |
| 657 | ## Custom NodePort example: |
| 658 | ## ports: |
| 659 | ## http: |
| 660 | ## port: 8080 |
| 661 | ## protocol: "TCP" |
| 662 | ## nodePort: "38080" |
| 663 | # |
| 664 | ports: |
| 665 | http: |
| 666 | containerPort: 8080 |
| 667 | port: 8080 |
| 668 | protocol: "TCP" |
| 669 | |
| 670 | ## Configure session affinity for to hit the same backend for the period specified in `timeoutSeconds`. |
| 671 | ## |
| 672 | ## Ref.: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity |
| 673 | # |
| 674 | sessionAffinity: |
| 675 | ## Whether to enable session affinity or not. |
| 676 | # |
| 677 | enabled: false |
| 678 | ## The session duration in seconds. |
| 679 | # |
| 680 | timeoutSeconds: 10800 |
| 681 | |
| 682 | ## Define Service Accounts for Pods. |
| 683 | ## |
| 684 | ## Ref.: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ |
| 685 | # |
| 686 | serviceAccount: |
| 687 | ## Whether to create service account. |
| 688 | # |
| 689 | create: true |
| 690 | |
| 691 | ## Define custom service account annotations. |
| 692 | # |
| 693 | annotations: {} |
| 694 | |
| 695 | # Options for the seeder job |
| 696 | seederJob: |
| 697 | ## Define custom seeder job annotations. |
| 698 | # |
| 699 | annotations: {} |
| 700 | |
| 701 | ## Tolerations for pod assignment. |
| 702 | ## |
| 703 | ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
| 704 | # |
| 705 | tolerations: [] |