J release changes
[ric-plt/ric-dep.git] / helm / infrastructure / subcharts / kong / values.yaml
1 # Default values for Kong's Helm Chart.
2 # Declare variables to be passed into your templates.
3 #
4 # Sections:
5 # - Deployment parameters
6 # - Kong parameters
7 # - Ingress Controller parameters
8 # - Postgres sub-chart parameters
9 # - Miscellaneous parameters
10 # - Kong Enterprise parameters
11
12 # -----------------------------------------------------------------------------
13 # Deployment parameters
14 # -----------------------------------------------------------------------------
15
16 deployment:
17   kong:
18     # Enable or disable Kong itself
19     # Setting this to false with ingressController.enabled=true will create a
20     # controller-only release.
21     enabled: true
22   ## Minimum number of seconds for which a newly created pod should be ready without any of its container crashing,
23   ## for it to be considered available.
24   # minReadySeconds: 60
25   ## Specify the service account to create and to be assigned to the deployment / daemonset and for the migrations
26   serviceAccount:
27     create: true
28     # Automount the service account token. By default, this is disabled, and the token is only mounted on the controller
29     # container. Some sidecars require enabling this. Note that enabling this exposes Kubernetes credentials to Kong
30     # Lua code, increasing potential attack surface.
31     automountServiceAccountToken: false
32   ## Optionally specify the name of the service account to create and the annotations to add.
33   #  name:
34   #  annotations: {}
35
36   ## Optionally specify any extra sidecar containers to be included in the deployment
37   ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core
38   # sidecarContainers:
39   #   - name: sidecar
40   #     image: sidecar:latest
41   # initContainers:
42   # - name: initcon
43   #   image: initcon:latest
44   # hostAliases:
45   # - ip: "127.0.0.1"
46   #   hostnames:
47   #   - "foo.local"
48   #   - "bar.local"
49
50   ## Define any volumes and mounts you want present in the Kong proxy container
51   # userDefinedVolumes:
52   # - name: "volumeName"
53   #   emptyDir: {}
54   # userDefinedVolumeMounts:
55   # - name: "volumeName"
56   #   mountPath: "/opt/user/dir/mount"
57   test:
58     # Enable creation of test resources for use with "helm test"
59     enabled: false
60   # Use a DaemonSet controller instead of a Deployment controller
61   daemonset: false
62   hostNetwork: false
63   # Set the Deployment's spec.template.hostname field.
64   # This propagates to Kong API endpoints that report
65   # the hostname, such as the admin API root and hybrid mode
66   # /clustering/data-planes endpoint
67   hostname: ""
68   # kong_prefix empty dir size
69   prefixDir:
70     sizeLimit: 256Mi
71   # tmp empty dir size
72   tmpDir:
73     sizeLimit: 1Gi
74 # Override namepsace for Kong chart resources. By default, the chart creates resources in the release namespace.
75 # This may not be desirable when using this chart as a dependency.
76 # namespace: "example"
77
78 # -----------------------------------------------------------------------------
79 # Kong parameters
80 # -----------------------------------------------------------------------------
81
82 # Specify Kong configuration
83 # This chart takes all entries defined under `.env` and transforms them into into `KONG_*`
84 # environment variables for Kong containers.
85 # Their names here should match the names used in https://github.com/Kong/kong/blob/master/kong.conf.default
86 # See https://docs.konghq.com/latest/configuration also for additional details
87 # Values here take precedence over values from other sections of values.yaml,
88 # e.g. setting pg_user here will override the value normally set when postgresql.enabled
89 # is set below. In general, you should not set values here if they are set elsewhere.
90 env:
91   database: "off"
92   # the chart uses the traditional router (for Kong 3.x+) because the ingress
93   # controller generates traditional routes. if you do not use the controller,
94   # you may set this to "traditional_compatible" or "expressions" to use the new
95   # DSL-based router
96   router_flavor: "traditional"
97   nginx_worker_processes: "2"
98   proxy_access_log: /dev/stdout
99   admin_access_log: /dev/stdout
100   admin_gui_access_log: /dev/stdout
101   portal_api_access_log: /dev/stdout
102   proxy_error_log: /dev/stderr
103   admin_error_log: /dev/stderr
104   admin_gui_error_log: /dev/stderr
105   portal_api_error_log: /dev/stderr
106   prefix: /kong_prefix/
107
108 # This section is any customer specific environments variables that doesn't require KONG_ prefix.
109 # These custom environment variables are typicall used in custom plugins or serverless plugins to
110 # access environment specific credentials or tokens.
111 # Example as below, uncomment if required and add additional attributes as required.
112 # Note that these environment variables will only apply to the proxy and init container. The ingress-controller
113 # container has its own customEnv section.
114
115 # customEnv:
116 #   api_token:
117 #     valueFrom:
118 #       secretKeyRef:
119 #         key: token
120 #         name: api_key
121 #   client_name: testClient
122
123 # Load all ConfigMap or Secret keys as environment variables:
124 # https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables
125 envFrom: []
126
127 # This section can be used to configure some extra labels that will be added to each Kubernetes object generated.
128 extraLabels: {}
129
130 # Specify Kong's Docker image and repository details here
131 image:
132   repository: kong
133   tag: "3.6"
134   # Kong Enterprise
135   # repository: kong/kong-gateway
136   # tag: "3.5"
137
138   # Specify a semver version if your image tag is not one (e.g. "nightly")
139   effectiveSemver:
140   pullPolicy: IfNotPresent
141   ## Optionally specify an array of imagePullSecrets.
142   ## Secrets must be manually created in the namespace.
143   ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
144   ##
145   # pullSecrets:
146   #   - myRegistrKeySecretName
147
148 # Specify Kong admin API service and listener configuration
149 admin:
150   # Enable creating a Kubernetes service for the admin API
151   # Disabling this is recommended for most ingress controller configurations
152   # Enterprise users that wish to use Kong Manager with the controller should enable this
153   enabled: false
154   type: NodePort
155   loadBalancerClass:
156   # To specify annotations or labels for the admin service, add them to the respective
157   # "annotations" or "labels" dictionaries below.
158   annotations: {}
159   #  service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
160   labels: {}
161
162   http:
163     # Enable plaintext HTTP listen for the admin API
164     # Disabling this and using a TLS listen only is recommended for most configuration
165     enabled: false
166     servicePort: 8001
167     containerPort: 8001
168     # Set a nodePort which is available if service type is NodePort
169     # nodePort: 32080
170     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
171     parameters: []
172
173   tls:
174     # Enable HTTPS listen for the admin API
175     enabled: true
176     servicePort: 8444
177     containerPort: 8444
178     # Set a target port for the TLS port in the admin API service, useful when using TLS
179     # termination on an ELB.
180     # overrideServiceTargetPort: 8000
181     # Set a nodePort which is available if service type is NodePort
182     # nodePort: 32443
183     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
184     parameters:
185     - http2
186
187     # Specify the CA certificate to use for TLS verification of the Admin API client by:
188     # - secretName - the secret must contain a key named "tls.crt" with the PEM-encoded certificate.
189     # - caBundle (PEM-encoded certificate string).
190     # If both are set, caBundle takes precedence.
191     client:
192       caBundle: ""
193       secretName: ""
194
195   # Kong admin ingress settings. Useful if you want to expose the Admin
196   # API of Kong outside the k8s cluster.
197   ingress:
198     # Enable/disable exposure using ingress.
199     enabled: false
200     ingressClassName:
201     # TLS secret name.
202     # tls: kong-admin.example.com-tls
203     # Ingress hostname
204     hostname:
205     # Map of ingress annotations.
206     annotations: {}
207     # Ingress path.
208     path: /
209     # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
210     pathType: ImplementationSpecific
211
212 # Specify Kong status listener configuration
213 # This listen is internal-only. It cannot be exposed through a service or ingress.
214 status:
215   enabled: true
216   http:
217     # Enable plaintext HTTP listen for the status listen
218     enabled: true
219     containerPort: 8100
220     parameters: []
221
222   tls:
223     # Enable HTTPS listen for the status listen
224     # Kong versions prior to 2.1 do not support TLS status listens.
225     # This setting must remain false on those versions
226     enabled: false
227     containerPort: 8543
228     parameters: []
229
230 # Name the kong hybrid cluster CA certificate secret
231 clusterCaSecretName: ""
232
233 # Specify Kong cluster service and listener configuration
234 #
235 # The cluster service *must* use TLS. It does not support the "http" block
236 # available on other services.
237 #
238 # The cluster service cannot be exposed through an Ingress, as it must perform
239 # TLS client validation directly and is not compatible with TLS-terminating
240 # proxies. If you need to expose it externally, you must use "type:
241 # LoadBalancer" and use a TCP-only load balancer (check your Kubernetes
242 # provider's documentation, as the configuration required for this varies).
243 cluster:
244   enabled: false
245   # To specify annotations or labels for the cluster service, add them to the respective
246   # "annotations" or "labels" dictionaries below.
247   annotations: {}
248   #  service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
249   labels: {}
250
251   tls:
252     enabled: false
253     servicePort: 8005
254     containerPort: 8005
255     parameters: []
256
257   type: ClusterIP
258   loadBalancerClass:
259
260   # Kong cluster ingress settings. Useful if you want to split CP and DP
261   # in different clusters.
262   ingress:
263     # Enable/disable exposure using ingress.
264     enabled: false
265     ingressClassName:
266     # TLS secret name.
267     # tls: kong-cluster.example.com-tls
268     # Ingress hostname
269     hostname:
270     # Map of ingress annotations.
271     annotations: {}
272     # Ingress path.
273     path: /
274     # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
275     pathType: ImplementationSpecific
276
277 # Specify Kong proxy service configuration
278 proxy:
279   # Enable creating a Kubernetes service for the proxy
280   enabled: true
281   type: LoadBalancer
282   loadBalancerClass:
283   # Override proxy Service name
284   nameOverride: ""
285   # To specify annotations or labels for the proxy service, add them to the respective
286   # "annotations" or "labels" dictionaries below.
287   annotations: {}
288   # If terminating TLS at the ELB, the following annotations can be used
289   # "service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "*",
290   # "service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled": "true",
291   # "service.beta.kubernetes.io/aws-load-balancer-ssl-cert": "arn:aws:acm:REGION:ACCOUNT:certificate/XXXXXX-XXXXXXX-XXXXXXX-XXXXXXXX",
292   # "service.beta.kubernetes.io/aws-load-balancer-ssl-ports": "kong-proxy-tls",
293   # "service.beta.kubernetes.io/aws-load-balancer-type": "elb"
294   labels:
295     enable-metrics: "true"
296
297   http:
298     # Enable plaintext HTTP listen for the proxy
299     enabled: true
300     servicePort: 80
301     containerPort: 8000
302     # Set a nodePort which is available if service type is NodePort
303     # nodePort: 32080
304     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
305     parameters: []
306
307   tls:
308     # Enable HTTPS listen for the proxy
309     enabled: true
310     servicePort: 443
311     containerPort: 8443
312     # Set a target port for the TLS port in proxy service
313     # overrideServiceTargetPort: 8000
314     # Set a nodePort which is available if service type is NodePort
315     # nodePort: 32443
316     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
317     parameters:
318     - http2
319
320     # Specify the Service's TLS port's appProtocol. This can be useful when integrating with
321     # external load balancers that require the `appProtocol` field to be set (e.g. GCP).
322     appProtocol: ""
323
324   # Define stream (TCP) listen
325   # To enable, remove "[]", uncomment the section below, and select your desired
326   # ports and parameters. Listens are dynamically named after their containerPort,
327   # e.g. "stream-9000" for the below.
328   # Note: although you can select the protocol here, you cannot set UDP if you
329   # use a LoadBalancer Service due to limitations in current Kubernetes versions.
330   # To proxy both TCP and UDP with LoadBalancers, you must enable the udpProxy Service
331   # in the next section and place all UDP stream listen configuration under it.
332   stream: []
333     #   # Set the container (internal) and service (external) ports for this listen.
334     #   # These values should normally be the same. If your environment requires they
335     #   # differ, note that Kong will match routes based on the containerPort only.
336     # - containerPort: 9000
337     #   servicePort: 9000
338     #   protocol: TCP
339     #   # Optionally set a static nodePort if the service type is NodePort
340     #   # nodePort: 32080
341     #   # Additional listen parameters, e.g. "ssl", "reuseport", "backlog=16384"
342     #   # "ssl" is required for SNI-based routes. It is not supported on versions <2.0
343     #   parameters: []
344
345   # Kong proxy ingress settings.
346   # Note: You need this only if you are using another Ingress Controller
347   # to expose Kong outside the k8s cluster.
348   ingress:
349     # Enable/disable exposure using ingress.
350     enabled: false
351     ingressClassName:
352     # To specify annotations or labels for the ingress, add them to the respective
353     # "annotations" or "labels" dictionaries below.
354     annotations: {}
355     labels: {}
356     # Ingress hostname
357     hostname:
358     # Ingress path (when used with hostname above).
359     path: /
360     # Each path in an Ingress is required to have a corresponding path type (when used with hostname above). (ImplementationSpecific/Exact/Prefix)
361     pathType: ImplementationSpecific
362     # Ingress hosts. Use this instead of or in combination with hostname to specify multiple ingress host configurations
363     hosts: []
364     # - host: kong-proxy.example.com
365     #   paths:
366     #   # Ingress path.
367     #   - path: /*
368     #   # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
369     #     pathType: ImplementationSpecific
370     # - host: kong-proxy-other.example.com
371     #   paths:
372     #   # Ingress path.
373     #   - path: /other
374     #   # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
375     #     pathType: ImplementationSpecific
376     #     backend:
377     #       service:
378     #         name: kong-other-proxy
379     #         port:
380     #           number: 80
381     #
382     # TLS secret(s)
383     # tls: kong-proxy.example.com-tls
384     # Or if multiple hosts/secrets needs to be configured:
385     # tls:
386     # - secretName: kong-proxy.example.com-tls
387     #   hosts:
388     #   - kong-proxy.example.com
389     # - secretName: kong-proxy-other.example.com-tls
390     #   hosts:
391     #   - kong-proxy-other.example.com
392
393   # Optionally specify a static load balancer IP.
394   # loadBalancerIP:
395
396 # Specify Kong UDP proxy service configuration
397 # Currently, LoadBalancer type Services are generally limited to a single transport protocol
398 # Multi-protocol Services are an alpha feature as of Kubernetes 1.20:
399 # https://kubernetes.io/docs/concepts/services-networking/service/#load-balancers-with-mixed-protocol-types
400 # You should enable this Service if you proxy UDP traffic, and configure UDP stream listens under it
401 udpProxy:
402   # Enable creating a Kubernetes service for UDP proxying
403   enabled: false
404   type: LoadBalancer
405   loadBalancerClass:
406   # To specify annotations or labels for the proxy service, add them to the respective
407   # "annotations" or "labels" dictionaries below.
408   annotations: {}
409   #  service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
410   labels: {}
411   # Optionally specify a static load balancer IP.
412   # loadBalancerIP:
413
414   # Define stream (UDP) listen
415   # To enable, remove "[]", uncomment the section below, and select your desired
416   # ports and parameters. Listens are dynamically named after their servicePort,
417   # e.g. "stream-9000" for the below.
418   stream: []
419     #   # Set the container (internal) and service (external) ports for this listen.
420     #   # These values should normally be the same. If your environment requires they
421     #   # differ, note that Kong will match routes based on the containerPort only.
422     # - containerPort: 9000
423     #   servicePort: 9000
424     #   protocol: UDP
425     #   # Optionally set a static nodePort if the service type is NodePort
426     #   # nodePort: 32080
427     #   # Additional listen parameters, e.g. "ssl", "reuseport", "backlog=16384"
428     #   # "ssl" is required for SNI-based routes. It is not supported on versions <2.0
429     #   parameters: []
430
431 # Custom Kong plugins can be loaded into Kong by mounting the plugin code
432 # into the file-system of Kong container.
433 # The plugin code should be present in ConfigMap or Secret inside the same
434 # namespace as Kong is being installed.
435 # The `name` property refers to the name of the ConfigMap or Secret
436 # itself, while the pluginName refers to the name of the plugin as it appears
437 # in Kong.
438 # Subdirectories (which are optional) require separate ConfigMaps/Secrets.
439 # "path" indicates their directory under the main plugin directory: the example
440 # below will mount the contents of kong-plugin-rewriter-migrations at "/opt/kong/rewriter/migrations".
441 plugins: {}
442   # configMaps:
443   # - pluginName: rewriter
444   #   name: kong-plugin-rewriter
445   #   subdirectories:
446   #   - name: kong-plugin-rewriter-migrations
447   #     path: migrations
448   # secrets:
449   # - pluginName: rewriter
450   #   name: kong-plugin-rewriter
451 # Inject specified secrets as a volume in Kong Container at path /etc/secrets/{secret-name}/
452 # This can be used to override default SSL certificates.
453 # Be aware that the secret name will be used verbatim, and that certain types
454 # of punctuation (e.g. `.`) can cause issues.
455 # Example configuration
456 # secretVolumes:
457 # - kong-proxy-tls
458 # - kong-admin-tls
459 secretVolumes: []
460
461 # Enable/disable migration jobs, and set annotations for them
462 migrations:
463   # Enable pre-upgrade migrations (run "kong migrations up")
464   preUpgrade: true
465   # Enable post-upgrade migrations (run "kong migrations finish")
466   postUpgrade: true
467   # Annotations to apply to migrations job pods
468   # By default, these disable service mesh sidecar injection for Istio and Kuma,
469   # as the sidecar containers do not terminate and prevent the jobs from completing
470   annotations:
471     sidecar.istio.io/inject: false
472   # Additional annotations to apply to migration jobs
473   # This is helpful in certain non-Helm installation situations such as GitOps
474   # where additional control is required around this job creation.
475   jobAnnotations: {}
476   # Optionally set a backoffLimit. If none is set, Jobs will use the cluster default
477   backoffLimit:
478   resources: {}
479   # Example reasonable setting for "resources":
480   # resources:
481   #   limits:
482   #     cpu: 100m
483   #     memory: 256Mi
484   #   requests:
485   #     cpu: 50m
486   #     memory: 128Mi
487   ## Optionally specify any extra sidecar containers to be included in the deployment
488   ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core
489   ## Keep in mind these containers should be terminated along with the main
490   ## migration containers
491   # sidecarContainers:
492   #   - name: sidecar
493   #     image: sidecar:latest
494
495 # Kong's configuration for DB-less mode
496 # Note: Use this section only if you are deploying Kong in DB-less mode
497 # and not as an Ingress Controller.
498 dblessConfig:
499   # Either Kong's configuration is managed from an existing ConfigMap (with Key: kong.yml)
500   configMap: ""
501   # Or Kong's configuration is managed from an existing Secret (with Key: kong.yml)
502   secret: ""
503   # Or the configuration is passed in full-text below
504   config: |
505   # # _format_version: "1.1"
506   # # services:
507   # #   # Example configuration
508   # #   # - name: example.com
509   # #   #   url: http://example.com
510   # #   #   routes:
511   # #   #   - name: example
512   # #   #     paths:
513   # #   #     - "/example"
514   ## Optionally specify any extra sidecar containers to be included in the
515   ## migration jobs
516   ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core
517   # sidecarContainers:
518   #   - name: sidecar
519   #     image: sidecar:latest
520
521 # -----------------------------------------------------------------------------
522 # Ingress Controller parameters
523 # -----------------------------------------------------------------------------
524
525 # Kong Ingress Controller's primary purpose is to satisfy Ingress resources
526 # created in k8s. It uses CRDs for more fine grained control over routing and
527 # for Kong specific configuration.
528 ingressController:
529   enabled: true
530   image:
531     repository: kong/kubernetes-ingress-controller
532     tag: "3.1"
533     # Optionally set a semantic version for version-gated features. This can normally
534     # be left unset. You only need to set this if your tag is not a semver string,
535     # such as when you are using a "next" tag. Set this to the effective semantic
536     # version of your tag: for example if using a "next" image for an unreleased 3.1.0
537     # version, set this to "3.1.0".
538     effectiveSemver:
539   args: []
540
541   gatewayDiscovery:
542     enabled: false
543     generateAdminApiService: false
544     adminApiService:
545       namespace: ""
546       name: ""
547
548   # Specify individual namespaces to watch for ingress configuration. By default,
549   # when no namespaces are set, the controller watches all namespaces and uses a
550   # ClusterRole to grant access to Kubernetes resources. When you list specific
551   # namespaces, the controller will watch those namespaces only and will create
552   # namespaced-scoped Roles for each of them. The controller will still use a
553   # ClusterRole for cluster-scoped resources.
554   # Requires controller 2.0.0 or newer.
555   watchNamespaces: []
556
557   # Specify Kong Ingress Controller configuration via environment variables
558   env:
559     # The controller disables TLS verification by default because Kong
560     # generates self-signed certificates by default. Set this to false once you
561     # have installed CA-signed certificates.
562     kong_admin_tls_skip_verify: true
563     # If using Kong Enterprise with RBAC enabled, uncomment the section below
564     # and specify the secret/key containing your admin token.
565     # kong_admin_token:
566     #   valueFrom:
567     #     secretKeyRef:
568     #        name: CHANGEME-admin-token-secret
569     #        key: CHANGEME-admin-token-key
570
571   # This section is any customer specific environments variables that doesn't require CONTROLLER_ prefix.
572   # Example as below, uncomment if required and add additional attributes as required.
573   # customEnv:
574   #   TZ: "Europe/Berlin"
575
576   # Load all ConfigMap or Secret keys as environment variables:
577   # https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables
578   envFrom: []
579
580   admissionWebhook:
581     enabled: true
582     failurePolicy: Ignore
583     port: 8080
584     certificate:
585       provided: false
586     namespaceSelector: {}
587     # Specifiy the secretName when the certificate is provided via a TLS secret
588     # secretName: ""
589     # Specifiy the CA bundle of the provided certificate.
590     # This is a PEM encoded CA bundle which will be used to validate the webhook certificate. If unspecified, system trust roots on the apiserver are used.
591     # caBundle:
592     #   | Add the CA bundle content here.
593     service:
594       # Specify custom labels for the validation webhook service.
595       labels: {}
596     # Tune the default Kubernetes timeoutSeconds of 10 seconds
597     # timeoutSeconds: 10
598
599   ingressClass: kong
600   # annotations for IngressClass resource (Kubernetes 1.18+)
601   ingressClassAnnotations: {}
602
603   ## Define any volumes and mounts you want present in the ingress controller container
604   ## Volumes are defined above in deployment.userDefinedVolumes
605   # userDefinedVolumeMounts:
606   # - name: "volumeName"
607   #   mountPath: "/opt/user/dir/mount"
608
609   rbac:
610     # Specifies whether RBAC resources should be created
611     create: true
612
613   # general properties
614   livenessProbe:
615     httpGet:
616       path: "/healthz"
617       port: 10254
618       scheme: HTTP
619     initialDelaySeconds: 5
620     timeoutSeconds: 5
621     periodSeconds: 10
622     successThreshold: 1
623     failureThreshold: 3
624   readinessProbe:
625     httpGet:
626       path: "/readyz"
627       port: 10254
628       scheme: HTTP
629     initialDelaySeconds: 5
630     timeoutSeconds: 5
631     periodSeconds: 10
632     successThreshold: 1
633     failureThreshold: 3
634   resources: {}
635   # Example reasonable setting for "resources":
636   # resources:
637   #   limits:
638   #     cpu: 100m
639   #     memory: 256Mi
640   #   requests:
641   #     cpu: 50m
642   #     memory: 128Mi
643
644   konnect:
645     enabled: false
646
647     # Specifies a Konnect Runtime Group's ID that the controller will push its data-plane config to.
648     runtimeGroupID: ""
649
650     # Specifies a Konnect API hostname that the controller will use to push its data-plane config to.
651     # By default, this is set to US region's production API hostname.
652     # If you are using a different region, you can set this to the appropriate hostname (e.g. "eu.kic.api.konghq.com").
653     apiHostname: "us.kic.api.konghq.com"
654
655     # Specifies a secret that contains a client TLS certificate that the controller
656     # will use to authenticate against Konnect APIs.
657     tlsClientCertSecretName: "konnect-client-tls"
658
659     license:
660       # Specifies whether the controller should fetch a license from Konnect and apply it to managed Gateways.
661       enabled: false
662
663   adminApi:
664     tls:
665       client:
666         # Enable TLS client authentication for the Admin API.
667         enabled: false
668
669         # If set to false, Helm will generate certificates for you.
670         # If set to true, you are expected to provide your own secret (see secretName, caSecretName).
671         certProvided: false
672
673         # Client TLS certificate/key pair secret name that Ingress Controller will use to authenticate with Kong Admin API.
674         # If certProvided is set to false, it is optional (can be specified though if you want to force Helm to use
675         # a specific secret name).
676         secretName: ""
677
678         # CA TLS certificate/key pair secret name that the client TLS certificate is signed by.
679         # If certProvided is set to false, it is optional (can be specified though if you want to force Helm to use
680         # a specific secret name).
681         caSecretName: ""
682
683
684 # -----------------------------------------------------------------------------
685 # Postgres sub-chart parameters
686 # -----------------------------------------------------------------------------
687
688 # Kong can run without a database or use either Postgres or Cassandra
689 # as a backend datatstore for it's configuration.
690 # By default, this chart installs Kong without a database.
691
692 # If you would like to use a database, there are two options:
693 # - (recommended) Deploy and maintain a database and pass the connection
694 #   details to Kong via the `env` section.
695 # - You can use the below `postgresql` sub-chart to deploy a database
696 #   along-with Kong as part of a single Helm release. Running a database
697 #   independently is recommended for production, but the built-in Postgres is
698 #   useful for quickly creating test instances.
699
700 # PostgreSQL chart documentation:
701 # https://github.com/bitnami/charts/blob/master/bitnami/postgresql/README.md
702 #
703 # WARNING: by default, the Postgres chart generates a random password each
704 # time it upgrades, which breaks access to existing volumes. You should set a
705 # password explicitly:
706 # https://github.com/Kong/charts/blob/main/charts/kong/FAQs.md#kong-fails-to-start-after-helm-upgrade-when-postgres-is-used-what-do-i-do
707
708 postgresql:
709   enabled: false
710   auth:
711     username: kong
712     database: kong
713   image:
714     # use postgres < 14 until is https://github.com/Kong/kong/issues/8533 resolved and released
715     # enterprise (kong-gateway) supports postgres 14
716     tag: 13.11.0-debian-11-r20
717   service:
718     ports:
719       postgresql: "5432"
720
721 # -----------------------------------------------------------------------------
722 # Configure cert-manager integration
723 # -----------------------------------------------------------------------------
724
725 certificates:
726   enabled: false
727
728   # Set either `issuer` or `clusterIssuer` to the name of the desired cert manager issuer
729   # If left blank a built in self-signed issuer will be created and utilized
730   issuer: ""
731   clusterIssuer: ""
732
733   # Set proxy.enabled to true to issue default kong-proxy certificate with cert-manager
734   proxy:
735     enabled: true
736     # Set `issuer` or `clusterIssuer` to name of alternate cert-manager clusterIssuer to override default
737     # self-signed issuer.
738     issuer: ""
739     clusterIssuer: ""
740     # Use commonName and dnsNames to set the common name and dns alt names which this
741     # certificate is valid for. Wildcard records are supported by the included self-signed issuer.
742     commonName: "app.example"
743     # Remove the "[]" and uncomment/change the examples to add SANs
744     dnsNames: []
745     # - "app.example"
746     # - "*.apps.example"
747     # - "*.kong.example"
748
749   # Set admin.enabled true to issue kong admin api and manager certificate with cert-manager
750   admin:
751     enabled: true
752     # Set `issuer` or `clusterIssuer` to name of alternate cert-manager clusterIssuer to override default
753     # self-signed issuer.
754     issuer: ""
755     clusterIssuer: ""
756     # Use commonName and dnsNames to set the common name and dns alt names which this
757     # certificate is valid for. Wildcard records are supported by the included self-signed issuer.
758     commonName: "kong.example"
759     # Remove the "[]" and uncomment/change the examples to add SANs
760     dnsNames: []
761     # - "manager.kong.example"
762
763   # Set portal.enabled to true to issue a developer portal certificate with cert-manager
764   portal:
765     enabled: true
766     # Set `issuer` or `clusterIssuer` to name of alternate cert-manager clusterIssuer to override default
767     # self-signed issuer.
768     issuer: ""
769     clusterIssuer: ""
770     # Use commonName and dnsNames to set the common name and dns alt names which this
771     # certificate is valid for. Wildcard records are supported by the included self-signed issuer.
772     commonName: "developer.example"
773     # Remove the "{}" and uncomment/change the examples to add SANs
774     dnsNames: []
775     # - "manager.kong.example"
776
777   # Set cluster.enabled true to issue kong hybrid mtls certificate with cert-manager
778   cluster:
779     enabled: true
780     # Issuers used by the control and data plane releases must match for this certificate.
781     issuer: ""
782     clusterIssuer: ""
783     commonName: "kong_clustering"
784     dnsNames: []
785
786 # -----------------------------------------------------------------------------
787 # Miscellaneous parameters
788 # -----------------------------------------------------------------------------
789
790 waitImage:
791   # Wait for the database to come online before starting Kong or running migrations
792   # If Kong is to access the database through a service mesh that injects a sidecar to
793   # Kong's container, this must be disabled. Otherwise there'll be a deadlock:
794   # InitContainer waiting for DB access that requires the sidecar, and the sidecar
795   # waiting for InitContainers to finish.
796   enabled: true
797   # Optionally specify an image that provides bash for pre-migration database
798   # checks. If none is specified, the chart uses the Kong image. The official
799   # Kong images provide bash
800   # repository: bash
801   # tag: 5
802   pullPolicy: IfNotPresent
803
804 # update strategy
805 updateStrategy: {}
806   # type: RollingUpdate
807   # rollingUpdate:
808   #   maxSurge: "100%"
809   #   maxUnavailable: "0%"
810
811 # If you want to specify resources, uncomment the following
812 # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
813 resources: {}
814   # limits:
815   #  cpu: 1
816   #  memory: 2G
817   # requests:
818   #  cpu: 1
819   #  memory: 2G
820
821 # readinessProbe for Kong pods
822 readinessProbe:
823   httpGet:
824     path: "/status/ready"
825     port: status
826     scheme: HTTP
827   initialDelaySeconds: 5
828   timeoutSeconds: 5
829   periodSeconds: 10
830   successThreshold: 1
831   failureThreshold: 3
832
833 # livenessProbe for Kong pods
834 livenessProbe:
835   httpGet:
836     path: "/status"
837     port: status
838     scheme: HTTP
839   initialDelaySeconds: 5
840   timeoutSeconds: 5
841   periodSeconds: 10
842   successThreshold: 1
843   failureThreshold: 3
844
845 # startupProbe for Kong pods
846 # startupProbe:
847 #   httpGet:
848 #     path: "/status"
849 #     port: status
850 #     scheme: HTTP
851 #   initialDelaySeconds: 5
852 #   timeoutSeconds: 5
853 #   periodSeconds: 2
854 #   successThreshold: 1
855 #   failureThreshold: 40
856
857 # Proxy container lifecycle hooks
858 # Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
859 lifecycle:
860   preStop:
861     exec:
862       # kong quit has a default timeout of 10 seconds, and a default wait of 0 seconds.
863       # Note: together they should be less than the terminationGracePeriodSeconds setting below.
864       command:
865         - kong
866         - quit
867         - '--wait=15'
868
869 # Sets the termination grace period for pods spawned by the Kubernetes Deployment.
870 # Ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#hook-handler-execution
871 terminationGracePeriodSeconds: 30
872
873 # Affinity for pod assignment
874 # Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
875 # affinity: {}
876
877 # Topology spread constraints for pod assignment (requires Kubernetes >= 1.19)
878 # Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
879 # topologySpreadConstraints: []
880
881 # Tolerations for pod assignment
882 # Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
883 tolerations: []
884
885 # Node labels for pod assignment
886 # Ref: https://kubernetes.io/docs/user-guide/node-selection/
887 nodeSelector: {}
888
889 # Annotation to be added to Kong pods
890 podAnnotations:
891   kuma.io/gateway: enabled
892   traffic.sidecar.istio.io/includeInboundPorts: ""
893
894 # Labels to be added to Kong pods
895 podLabels: {}
896
897 # Kong pod count.
898 # It has no effect when autoscaling.enabled is set to true
899 replicaCount: 1
900
901 # Annotations to be added to Kong deployment
902 deploymentAnnotations: {}
903
904 # Enable autoscaling using HorizontalPodAutoscaler
905 # When configuring an HPA, you must set resource requests on all containers via
906 # "resources" and, if using the controller, "ingressController.resources" in values.yaml
907 autoscaling:
908   enabled: false
909   minReplicas: 2
910   maxReplicas: 5
911   behavior: {}
912   ## targetCPUUtilizationPercentage only used if the cluster doesn't support autoscaling/v2 or autoscaling/v2beta
913   targetCPUUtilizationPercentage:
914   ## Otherwise for clusters that do support autoscaling/v2 or autoscaling/v2beta, use metrics
915   metrics:
916     - type: Resource
917       resource:
918         name: cpu
919         target:
920           type: Utilization
921           averageUtilization: 80
922
923 # Kong Pod Disruption Budget
924 podDisruptionBudget:
925   enabled: false
926   # Uncomment only one of the following when enabled is set to true
927   # maxUnavailable: "50%"
928   # minAvailable: "50%"
929
930 podSecurityPolicy:
931   enabled: false
932   labels: {}
933   annotations: {}
934   spec:
935     privileged: false
936     fsGroup:
937       rule: RunAsAny
938     runAsUser:
939       rule: RunAsAny
940     runAsGroup:
941       rule: RunAsAny
942     seLinux:
943       rule: RunAsAny
944     supplementalGroups:
945       rule: RunAsAny
946     volumes:
947       - 'configMap'
948       - 'secret'
949       - 'emptyDir'
950       - 'projected'
951     allowPrivilegeEscalation: false
952     hostNetwork: false
953     hostIPC: false
954     hostPID: false
955     # Make the root filesystem read-only. This is not compatible with Kong Enterprise <1.5.
956     # If you use Kong Enterprise <1.5, this must be set to false.
957     readOnlyRootFilesystem: true
958
959
960 priorityClassName: ""
961
962 # securityContext for Kong pods.
963 securityContext: {}
964
965 # securityContext for containers.
966 containerSecurityContext:
967   readOnlyRootFilesystem: true
968   allowPrivilegeEscalation: false
969   runAsUser: 1000
970   runAsNonRoot: true
971   seccompProfile:
972     type: RuntimeDefault
973   capabilities:
974     drop:
975     - ALL
976
977 ## Optional DNS configuration for Kong pods
978 # dnsPolicy: ClusterFirst
979 # dnsConfig:
980 #   nameservers:
981 #   - "10.100.0.10"
982 #   options:
983 #   - name: ndots
984 #     value: "5"
985 #   searches:
986 #   - default.svc.cluster.local
987 #   - svc.cluster.local
988 #   - cluster.local
989 #   - us-east-1.compute.internal
990
991 serviceMonitor:
992   # Specifies whether ServiceMonitor for Prometheus operator should be created
993   # If you wish to gather metrics from a Kong instance with the proxy disabled (such as a hybrid control plane), see:
994   # https://github.com/Kong/charts/blob/main/charts/kong/README.md#prometheus-operator-integration
995   enabled: false
996   # interval: 30s
997   # Specifies namespace, where ServiceMonitor should be installed
998   # namespace: monitoring
999   # labels:
1000   #   foo: bar
1001   # targetLabels:
1002   #   - foo
1003
1004   # honorLabels: false
1005   # metricRelabelings: []
1006
1007 # -----------------------------------------------------------------------------
1008 # Kong Enterprise parameters
1009 # -----------------------------------------------------------------------------
1010
1011 # Toggle Kong Enterprise features on or off
1012 # RBAC and SMTP configuration have additional options that must all be set together
1013 # Other settings should be added to the "env" settings below
1014 enterprise:
1015   enabled: false
1016   # Kong Enterprise license secret name
1017   # This secret must contain a single 'license' key, containing your base64-encoded license data
1018   # The license secret is required to unlock all Enterprise features. If you omit it,
1019   # Kong will run in free mode, with some Enterprise features disabled.
1020   # license_secret: kong-enterprise-license
1021   vitals:
1022     enabled: true
1023   portal:
1024     enabled: false
1025   rbac:
1026     enabled: false
1027     admin_gui_auth: basic-auth
1028     # If RBAC is enabled, this Secret must contain an admin_gui_session_conf key
1029     # The key value must be a secret configuration, following the example at
1030     # https://docs.konghq.com/enterprise/latest/kong-manager/authentication/sessions
1031     session_conf_secret: kong-session-config
1032     # If admin_gui_auth is not set to basic-auth, provide a secret name which
1033     # has an admin_gui_auth_conf key containing the plugin config JSON
1034     admin_gui_auth_conf_secret: CHANGEME-admin-gui-auth-conf-secret
1035   # For configuring emails and SMTP, please read through:
1036   # https://docs.konghq.com/enterprise/latest/developer-portal/configuration/smtp
1037   # https://docs.konghq.com/enterprise/latest/kong-manager/networking/email
1038   smtp:
1039     enabled: false
1040     portal_emails_from: none@example.com
1041     portal_emails_reply_to: none@example.com
1042     admin_emails_from: none@example.com
1043     admin_emails_reply_to: none@example.com
1044     smtp_admin_emails: none@example.com
1045     smtp_host: smtp.example.com
1046     smtp_port: 587
1047     smtp_auth_type: ''
1048     smtp_ssl: nil
1049     smtp_starttls: true
1050     auth:
1051       # If your SMTP server does not require authentication, this section can
1052       # be left as-is. If smtp_username is set to anything other than an empty
1053       # string, you must create a Secret with an smtp_password key containing
1054       # your SMTP password and specify its name here.
1055       smtp_username: ''  # e.g. postmaster@example.com
1056       smtp_password_secret: CHANGEME-smtp-password
1057
1058 manager:
1059   # Enable creating a Kubernetes service for Kong Manager
1060   enabled: true
1061   type: NodePort
1062   loadBalancerClass:
1063   # To specify annotations or labels for the Manager service, add them to the respective
1064   # "annotations" or "labels" dictionaries below.
1065   annotations: {}
1066   #  service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
1067   labels: {}
1068
1069   http:
1070     # Enable plaintext HTTP listen for Kong Manager
1071     enabled: true
1072     servicePort: 8002
1073     containerPort: 8002
1074     # Set a nodePort which is available if service type is NodePort
1075     # nodePort: 32080
1076     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
1077     parameters: []
1078
1079   tls:
1080     # Enable HTTPS listen for Kong Manager
1081     enabled: true
1082     servicePort: 8445
1083     containerPort: 8445
1084     # Set a nodePort which is available if service type is NodePort
1085     # nodePort: 32443
1086     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
1087     parameters:
1088     - http2
1089
1090   ingress:
1091     # Enable/disable exposure using ingress.
1092     enabled: false
1093     ingressClassName:
1094     # TLS secret name.
1095     # tls: kong-manager.example.com-tls
1096     # Ingress hostname
1097     hostname:
1098     # Map of ingress annotations.
1099     annotations: {}
1100     # Ingress path.
1101     path: /
1102     # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
1103     pathType: ImplementationSpecific
1104
1105 portal:
1106   # Enable creating a Kubernetes service for the Developer Portal
1107   enabled: true
1108   type: NodePort
1109   loadBalancerClass:
1110   # To specify annotations or labels for the Portal service, add them to the respective
1111   # "annotations" or "labels" dictionaries below.
1112   annotations: {}
1113   #  service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
1114   labels: {}
1115
1116   http:
1117     # Enable plaintext HTTP listen for the Developer Portal
1118     enabled: true
1119     servicePort: 8003
1120     containerPort: 8003
1121     # Set a nodePort which is available if service type is NodePort
1122     # nodePort: 32080
1123     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
1124     parameters: []
1125
1126   tls:
1127     # Enable HTTPS listen for the Developer Portal
1128     enabled: true
1129     servicePort: 8446
1130     containerPort: 8446
1131     # Set a nodePort which is available if service type is NodePort
1132     # nodePort: 32443
1133     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
1134     parameters:
1135     - http2
1136
1137   ingress:
1138     # Enable/disable exposure using ingress.
1139     enabled: false
1140     ingressClassName:
1141     # TLS secret name.
1142     # tls: kong-portal.example.com-tls
1143     # Ingress hostname
1144     hostname:
1145     # Map of ingress annotations.
1146     annotations: {}
1147     # Ingress path.
1148     path: /
1149     # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
1150     pathType: ImplementationSpecific
1151
1152 portalapi:
1153   # Enable creating a Kubernetes service for the Developer Portal API
1154   enabled: true
1155   type: NodePort
1156   loadBalancerClass:
1157   # To specify annotations or labels for the Portal API service, add them to the respective
1158   # "annotations" or "labels" dictionaries below.
1159   annotations: {}
1160   #  service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
1161   labels: {}
1162
1163   http:
1164     # Enable plaintext HTTP listen for the Developer Portal API
1165     enabled: true
1166     servicePort: 8004
1167     containerPort: 8004
1168     # Set a nodePort which is available if service type is NodePort
1169     # nodePort: 32080
1170     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
1171     parameters: []
1172
1173   tls:
1174     # Enable HTTPS listen for the Developer Portal API
1175     enabled: true
1176     servicePort: 8447
1177     containerPort: 8447
1178     # Set a nodePort which is available if service type is NodePort
1179     # nodePort: 32443
1180     # Additional listen parameters, e.g. "reuseport", "backlog=16384"
1181     parameters:
1182     - http2
1183
1184   ingress:
1185     # Enable/disable exposure using ingress.
1186     enabled: false
1187     ingressClassName:
1188     # TLS secret name.
1189     # tls: kong-portalapi.example.com-tls
1190     # Ingress hostname
1191     hostname:
1192     # Map of ingress annotations.
1193     annotations: {}
1194     # Ingress path.
1195     path: /
1196     # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
1197     pathType: ImplementationSpecific
1198
1199 clustertelemetry:
1200   enabled: false
1201   # To specify annotations or labels for the cluster telemetry service, add them to the respective
1202   # "annotations" or "labels" dictionaries below.
1203   annotations: {}
1204   #  service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
1205   labels: {}
1206
1207   tls:
1208     enabled: false
1209     servicePort: 8006
1210     containerPort: 8006
1211     parameters: []
1212
1213   type: ClusterIP
1214   loadBalancerClass:
1215
1216   # Kong clustertelemetry ingress settings. Useful if you want to split
1217   # CP and DP in different clusters.
1218   ingress:
1219     # Enable/disable exposure using ingress.
1220     enabled: false
1221     ingressClassName:
1222     # TLS secret name.
1223     # tls: kong-clustertelemetry.example.com-tls
1224     # Ingress hostname
1225     hostname:
1226     # Map of ingress annotations.
1227     annotations: {}
1228     # Ingress path.
1229     path: /
1230     # Each path in an Ingress is required to have a corresponding path type. (ImplementationSpecific/Exact/Prefix)
1231     pathType: ImplementationSpecific
1232
1233 extraConfigMaps: []
1234 # extraConfigMaps:
1235 # - name: my-config-map
1236 #   mountPath: /mount/to/my/location
1237 #   subPath: my-subpath # Optional, if you wish to mount a single key and not the entire ConfigMap
1238
1239 extraSecrets: []
1240 # extraSecrets:
1241 # - name: my-secret
1242 #   mountPath: /mount/to/my/location
1243 #   subPath: my-subpath # Optional, if you wish to mount a single key and not the entire ConfigMap
1244
1245 extraObjects: []
1246 # extraObjects:
1247 # - apiVersion: configuration.konghq.com/v1
1248 #   kind: KongClusterPlugin
1249 #   metadata:
1250 #     name: prometheus
1251 #   config:
1252 #     per_consumer: false
1253 #   plugin: prometheus