charts/kubernetes-stateless-chart/values.yaml (130 lines of code) (raw):

## ## This is a YAML-formatted file. ## ## @section Global parameters ## ## @param global.imageRegistry Specify the registry that stores the images ## @param global.imagePullSecrets Specify the credentials as secret names for pulling the images global: imageRegistry: "" ## Example: ## imagePullSecrets: ## - dockerRegistryKeySecretName imagePullSecrets: [] ## @section Common parameters ## ## @param nameOverride Provide a prefix to partially override the lib.name in the templates ## nameOverride: "" ## @param fullnameOverride Provide a name to override completely the lib.name in the templates ## fullnameOverride: "" ## @param commonLabels Provide a map of key/value pairs of labels to be applied to all resources in the templates ## commonLabels: {} ## @param commonAnnotations Provide a map of key/value pairs of annotations to be applied to all resources in the templates ## commonAnnotations: {} ## @param namespaceOverride Provide a name to fully override lib.namespace in the templates ## namespaceOverride: "" ## @section Application parameters ## ## @param include Includes/Excludes the configurations for this application ## include: true ## @param name Application name ## name: "" ## Image parameters ## Ref: https://kubernetes.io/docs/concepts/containers/images ## @param image.registry URL of the container registry ## @param image.repository URL of the container repository ## @param image.tag Image version ## @param image.pullPolicy Pull policy of the container image ## @param image.pullSecrets Registry credentials. Specify not the credentials but the corresponding secrets ## image: registry: "quay.io" repository: "jetbrains/run-forever" tag: "v0.1.0" ## 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 of application. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ ## e.g: ## pullSecrets: ## - myRegistryKeySecretName ## pullSecrets: [] ## @param entrypoint Provide arguments to the entrypoint of the application. ## ## Not executed within a shell. The container image's ENTRYPOINT is used if this is ## not provided. Variable references $(VAR_NAME) are expanded using the container's ## environment. If a variable cannot be resolved, the reference in the input string ## will be unchanged. Double $$ are reduced to a single $, which allows for escaping ## the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal ## \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether ## the variable exists or not. Cannot be updated. ## ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell ## entrypoint: [] ## @param customEntrypoint Overwrite in full the parameter application.entrypoint. ## customEntrypoint: [] ## @param args Provide arguments to the entrypoint of the application. ## ## The container image's CMD is used if this is not provided. Variable references ## $(VAR_NAME) are expanded using the container's environment. If a variable cannot ## be resolved, the reference in the input string will be unchanged. Double $$ are ## reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: ## i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". ## Escaped references will never be expanded, regardless of whether the variable ## exists or not. Cannot be updated. ## ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell ## args: [] ## @param customArgs Overwrite in full the parameter application.args. ## customArgs: [] ## Service Account ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ## @param serviceAccount.create Specify whether to create a service account ## @param serviceAccount.name Service account name ## @param serviceAccount.automountServiceAccountToken Specify if the account can mount the access token from the Kubernetes API ## @param serviceAccount.labels Key/value map of labels ## @param serviceAccount.additionalLabels Additional key/value map of labels ## @param serviceAccount.annotations Key/value map of annotations ## @param serviceAccount.additionalAnnotations Additional key/value map of annotations ## @param serviceAccount.namespacePermissions List of permissions to attach to the ServiceAccount within the in use namespace ## @param serviceAccount.additionalNamespacePermissions Additional list of permissions to attach to the ServiceAccount within the in use namespace ## @param serviceAccount.clusterPermissions List of permissions to attach to the ServiceAccount within the in use Kubernetes cluster ## @param serviceAccount.additionalClusterPermissions Additional list of permissions to attach to the ServiceAccount within the in use Kubernetes cluster ## serviceAccount: create: false name: "" automountServiceAccountToken: true labels: {} additionalLabels: {} annotations: {} additionalAnnotations: {} ## The below 4 lines allow specifying what permissions to enable for this ServiceAccount ## at namespace or cluster level. The settings below accept valid Kubernetes rules list objects. ## ## Example: ## namespacePermissions: ## - apiGroups: [""] # "" indicates the core API group ## resources: ["pods"] ## verbs: ["get", "watch", "list"] namespacePermissions: [] additionalNamespacePermissions: [] ## Example: ## namespacePermissions: ## # at the HTTP level, the name of the resource for accessing Secret objects is "secrets" ## - apiGroups: [""] ## resources: ["secrets"] ## verbs: ["get", "watch", "list"] clusterPermissions: [] additionalClusterPermissions: [] ## Horizontal Pod Autoscaling ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ ## @param autoscaling.enabled Enables/disables autoscaling ## @param autoscaling.minReplicas Minimum number of pods ## @param autoscaling.maxReplicas Maximum number of pods ## @param autoscaling.metrics.targetCPU CPU utilization threshold ## @param autoscaling.metrics.targetMemory Memory utilization threshold ## autoscaling: enabled: false minReplicas: 1 maxReplicas: 5 metrics: targetCPU: "" targetMemory: "" ## @param replicaCount Initial number of pods for the application ## replicaCount: 1 ## @param minReadySeconds Specify the minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available ## minReadySeconds: 0 ## @param progressDeadlineSeconds Specify the maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused ## progressDeadlineSeconds: 600 ## @param revisionHistoryLimit Specify the number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified ## revisionHistoryLimit: 10 ## @param deploymentStrategyType Specify the strategy of how to replace existing pods with new ones. Supports: Recreate or RollingUpdate ## deploymentStrategyType: RollingUpdate ## @param rollingUpdateStrategyConfig.maxSurge Specify the maximum number of pods that can be scheduled above the desired number of pods ## @param rollingUpdateStrategyConfig.maxUnavailable Specify the maximum number of pods that can be unavailable during the update ## rollingUpdateStrategyConfig: maxSurge: 25% maxUnavailable: 25% ## @param podLabels Specify labels to apply at PodSpec level ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels ## podLabels: {} ## @param additionalPodLabels Additional labels to apply at PodSpec level ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels ## additionalPodLabels: {} ## @param podAnnotations Specify annotations to apply at PodSpec level ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations ## podAnnotations: {} ## @param additionalPodAnnotations Additional annotations to apply at PodSpec level ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations ## additionalPodAnnotations: {} ## Hardware Resources ## Ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers ## @param resources.requests.cpu Max CPU available for a pod (resource request) ## @param resources.requests.memory Max memory available for a pod (resource request) ## @param resources.limits.cpu Min CPU available for a pod (resource limit) ## @param resources.limits.memory Min memory available for a pod (resource limit) ## resources: requests: cpu: 100m memory: 128Mi limits: cpu: 100m memory: 128Mi ## Service Configuration ## Ref: https://kubernetes.io/docs/concepts/services-networking/service ## @param service.name Service name ## @skip service.ports ## @param service.ports Service ports ## @param service.additionalPorts Additional service ports ## @param service.type Service type. Valid values are: ClusterIP, NodePort, LoadBalancer ## @param service.annotations Service annotations ## @param service.additionalAnnotations Additional service annotations ## @param service.labels Service labels ## @param service.additionalLabels Additional service labels ## ## Example: ## service: ## name: "my_new_service" ## ports: ## - port: 8080 ## targetPort: 9090 ## name: api ## - port: 7979 ## targetPort: 8181 ## name: metrics service: name: "" type: "" ports: - name: http port: 8080 targetPort: http additionalPorts: [] annotations: {} additionalAnnotations: {} labels: {} additionalLabels: {} ## Pods Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod ## @param podSecurityContext.fsGroup Group ID that has access to the filesystem at run-time ## podSecurityContext: fsGroup: 10001 ## Container Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod ## @param containerSecurityContext.runAsUser ID of the user who runs the process ## @param containerSecurityContext.runAsNonRoot Specify if the process can run under the root user ## @param containerSecurityContext.allowPrivilegeEscalation Specify if the process can get more permissions at run-time ## @param containerSecurityContext.readOnlyRootFilesystem Specify if the root filesystem of the process is read-only ## containerSecurityContext: runAsUser: 10001 runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true ## @param customContainerSecurityContext Overwrite partially the application.containerSecurityContext property ## customContainerSecurityContext: {} ## Pod Lifecycle ## ref: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/ ## @param lifecycle Actions that the management system should take in response to container lifecycle events. ## lifecycle: {} ## @param terminationGracePeriodSeconds Grace period to allow the write to shutdown before it is killed. ## terminationGracePeriodSeconds: 30 ## Liveness and Readiness Probes ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes ## @extra livenessProbe Specify the default liveness probe ## @skip livenessProbe ## ## Example: ## livenessProbe: ## httpGet: ## path: "/healthcheck" ## port: "http-ext" ## initialDelaySeconds: 60 ## periodSeconds: 30 ## timeoutSeconds: 30 ## successThreshold: 1 ## failureThreshold: 5 livenessProbe: {} ## @param customLivenessProbe Overwrite partially the application.livenessProbe property ## customLivenessProbe: {} ## @extra readinessProbe Specify the default readiness probe ## @skip readinessProbe ## ## Example: ## readinessProbe: ## httpGet: ## path: "/healthcheck" ## port: "http-ext" ## initialDelaySeconds: 60 ## periodSeconds: 10 ## timeoutSeconds: 30 ## successThreshold: 1 ## failureThreshold: 5 readinessProbe: {} ## @param customReadinessProbe Overwrite partially the application.readinessProbe property ## customReadinessProbe: {} ## Startup Probe ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes ## @skip startupProbe ## @extra startupProbe Specify the default startup probe ## ## Example: ## startupProbe: ## httpGet: ## path: "/healthcheck" ## port: "http-ext" ## initialDelaySeconds: 60 ## periodSeconds: 30 ## timeoutSeconds: 30 ## successThreshold: 1 ## failureThreshold: 5 startupProbe: {} ## @param customStartupProbe Overwrite partially the application.startupProbe property ## customStartupProbe: {} ## @param customAffinity Overwrite in full the default affinity rules ## customAffinity: {} ## @param nodeName Specify the NodeName where to schedule a pod. Leave empty for auto scheduling decision ## nodeName: "" ## @param nodeSelector Specify the selector which must be true for the pod to fit on a node ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ ## ## Example: ## nodeSelector: ## diskType: ssd ## nodeSelector: {} ## Ingress ## Ref: https://kubernetes.io/docs/user-guide/ingress ## @param ingress.enabled Enables/disables Ingress for routing inbound traffic ## @param ingress.name Ingress name ## @param ingress.pathType Ingress path type ## @param ingress.hostname Ingress hostname ## @param ingress.tls Enables/disables TLS for the hostname ## @param ingress.alternateDnsNames Specify whether to add a list of alternative DNS names to the self-signed certificate ## @param ingress.certValidityDuration Specify how many days the self-signed certificate should remain valid ## @param ingress.path Ingress path array ## @param ingress.additionalPaths Ingress extra paths ## @param ingress.additionalTLS Additional TLS configuration ## @param ingress.secret Name of the external secret for $parent.hostname ## @param ingress.ingressClassName IngressClass name ## @param ingress.additionalRules Additional Ingress rules ## ingress: enabled: false name: "" alternateDnsNames: [] certValidityDuration: "" pathType: ImplementationSpecific hostname: "" ## You might need to set the '/*' value in order to use it ## with ALB Ingress controllers. ## path: / ## @param ingress.backendService.portName Specify the application port name of the backend service ## backendService: portName: "http" ## 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 ## ## @param ingress.annotations Key/value map with annotations ## @param ingress.additionalAnnotations Additional key/value map with annotations annotations: {} additionalAnnotations: {} ## @param ingress.labels Key/value map with labels ## @param ingress.additionalLabels Additional key/value map with labels labels: {} additionalLabels: {} ## 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. additionalPaths: [] ## - 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 additionalTLS: [] ## - 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: ## additionalRules: ## - host: example.local ## http: ## path: / ## backend: ## service: ## name: example-svc ## port: ## name: http ## additionalRules: [] ## Name of the external secret related to the main hostname in the Ingress definition ## Example: ## secret: "tls-jetbrains.application" ## secret: "" ## @skip ports ## @param ports Specify a list of application ports ## Example: ## ports: ## - name: "http-ext" ## containerPort: 8084 ## - name: "http-int" ## containerPort: 9084 ports: [] ## @skip volumes ## @param volumes Specify named volumes to be attached to the pod ## ## Example: ## volumes: ## - name: metrics-conf ## type: configMap ## properties: ## name: external-metrics-conf ## volumeMountProperties: ## mountPath: "/app/conf/metrics.conf" ## subPath: "metrics.conf" ## volumes: [] ## @param additionalVolumes Specify additional mutual exclusive with application.volumes value named volumes to be attached to the main container and pod ## ## application.additionalVolumes has the same structure as application.volumes. For an example, reference application.volumes. ## additionalVolumes: [] ## @param sidecars Specify containers to run alongside the main container ## ## A sidecar allows enhancing an application with additional functionality. ## In this context, an additional functional can be a sidecar to export the metrics in a custom format. ## Consider performance stability when considering the use of sidecars. The hardware resource limits and requests ## for a sidecar cannot exceed the resource and limits of the main application container. ## ## Example: ## - name: sidecar-container ## image: busybox ## command: ["sh","-c","while true; do cat /var/log/nginx/access.log; sleep 30; done"] ## volumeMounts: ## - name: shared-logs ## mountPath: /var/log/nginx ## sidecars: [] ## @param additionalSidecars Specify additional containers to run alongside the main container ## ## Note: additionalSidecars list supports only the schema outlined in the sidecars object. additionalSidecars: [] ## @param initContainers Specify a list of initialization containers belonging to the pod ## ## Example: ## - command: ## - sh ## - -c ## - until redis-cli -h "${REDIS_HOSTNAME}" -p "${REDIS_PORT}" ping; do echo waiting ## for redis; sleep 2; done; ## envFrom: ## - secretRef: ## name: 'app-secrets' ## image: docker.io/bitnami/redis:6.2.7 ## imagePullPolicy: Always ## name: check-redis ## resources: ## limits: ## cpu: 500m ## memory: 512Mi ## requests: ## cpu: 500m ## memory: 512Mi ## securityContext: ## allowPrivilegeEscalation: false ## capabilities: ## drop: ## - NET_RAW ## - ALL ## readOnlyRootFilesystem: true ## runAsNonRoot: true ## runAsUser: 10001 ## initContainers: [] ## @param additionalInitContainers Specify a list of additional initialization containers belonging to the pod ## additionalInitContainers: [] ## @section Application configuration file ## ## @param config Overwrites the configuration in application.defaultConfig.config ## @param defaultConfig.name Specify the default application configuration file name ## @param defaultConfig.mountPath Specify the default application configuration file system path where the file is located ## @param defaultConfig.config Specify the default application configuration ## @param defaultConfig.customValues Specify a map of custom values to be referenced by the application.defaultConfig.config parameter config: "" defaultConfig: name: "" mountPath: "" config: "" customValues: {} ## @param additionalConfigs Specify additional configuration files to be added to the application ## ## Example: ## additionalConfigs: ## log.xml: ## mountPath: "/app/conf" ## content: | ## <log> ## <level>INFO</level> ## </log> ## script.sh: ## mountPath: "" ## content: | ## #!/bin/sh ## echo "Hello, World!" additionalConfigs: {} ## @section Application environment variables ## ## @param envs Environment variables ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container ## Example: ## APP_OPTS: "CustomEnvironmentVariable" ## ENV_CONF_1: "ValueOne" ## envs: {} ## @param additionalEnvs Additional environment variables ## Ref: https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container ## Example: ## APP_OPTS_2: "CustomEnvironmentVariable2" ## additionalEnvs: {} ## @param internalEnvSecret Specify the internal secret name that contains system environment variables ## ## This secret contains a valid set of environment variables that are compatible with the main application. ## This internal secret is useful in case of an umbrella chart because it allows to group together application ## specific settings that for example require input validation. ## Note: envs, additionalEnvs will be ignored when internalEnvSecret is set. Last but not least ## the internalEnvSecret will be ignored in case the externalEnvSecret is set. internalEnvSecret: "" ## @param externalEnvSecret Specify the external secret name that contains system environment variables ## ## Reference to an external secret manifest with required by the application environment variables. ## This object allows externalizing the main application configuration and avoiding any information ## leaked in the deployment version of the values.yaml file. ## Note: envs, additionalEnvs will be ignored when externalEnvSecret is set externalEnvSecret: "" ## @param additionalExternalEnvSecrets Specify additional external secrets' names as strings that contain system environment variables ## This secret contains a valid set of environment variables that are compatible with the main application. ## Note: this secret will be added as an additional secret reference to the main application. additionalExternalEnvSecrets: [] ## @section Application Kubernetes resources ## ## @param kubernetesYamlResources Kubernetes objects to add to the application package ## ## Example: ## - apiVersion: v1 ## kind: ServiceAccount ## metadata: ## namespace: '{{ .Release.namespace }}' ## name: '{{ include "lib.appName" . }}'-newsa ## labels: ## app.kubernetes.io/component: '{{ include "lib.componentName" . }}' ## '{{- include "lib.labels" . | nindent 4 }}' ## kubernetesYamlResources: [] ## @param additionalKubernetesYamlResources Add additional Kubernetes objects to add to the application package ## ## Example: ## - apiVersion: v1 ## kind: ResourceQuota ## metadata: ## name: '{{ include "lib.appName" $ }}' ## namespace: '{{ include "lib.namespace" $ }}' ## labels: ## app.kubernetes.io/component: '{{ include "lib.componentName" $ }}' ## spec: ## hard: ## requests.cpu: "4" ## requests.memory: 4Gi ## limits.cpu: "4" ## limits.memory: 4Gi ## additionalKubernetesYamlResources: []