Project deployment

In general the helm chart of a projects consists of following but not exclusively these resources:

  • values.yaml: to adjust the deployment configuration

  • configmap: storing the configuration for the deployed project

  • deployment: deployment definition

  • hpa: horizontal pod autoscaler definition

  • pdb: pod disruption budget

  • routes: exposing the service to the outside world; only if istio is not used

  • service: service definition

  • solution: custom resource to define the project

  • istio related resources:

    • destination rules: the istio replacement of routes

    • virtual service: the istio replacement of service

values.yaml

The values.yaml defines the defaults and options to adjust the deployment of a project.

In general but not exclusively following sections exists:

  • routes: Configuration of hsts headers, rate limits, exposed paths

  • horizontal pod autoscaler: enables and configures the horizontal pod autoscaler; must be in sync with deployment replica count and pod disruption budget

  • pod disruption budget: enables and configures the pod disruption budget; must be in sync with horizontal pod autoscaler and deployment replica count

  • deployment replica count: desired number of deployed containers; must be in sync with horizontal pod autoscaler and pod disruption budget

  • deployment container: in deep configuration of the container like resource requests and limits, security context, extra containers and init containers, extra volumes and volume mounts, startup, readiness and liveness probes

  • features flags: enabling or disabling of, e.g., kafka, mongo, etc. support

  • configuration secret source names: the names of secret storing the configuration and credentials of kafka, mongo, and oidc services

  • deployment configuration: the project name, identifier etc.

  • images: the used docker images

  • rbac: the service account name

  • configmap: additional config map configuration like logging

The details how to configure the project are described in Create or Update K5-Project Configurations

Attention: The route configuration for limiting the number of concurrent TCP connections made through the same source IP address is set to 50 by default for any component, see OpenShift annotation haproxy.router.openshift.io/rate-limit-connections.concurrent-tcp in the OpenShift documentation Route configuration