Skip to content

apetrovYa/kubernetes-stateless-chart

Repository files navigation

Kubernetes Stateless Chart

kubernetes-stateless-chart is a generic Helm chart to use for the packaging of any Kubernetes application.

How to use this chart

This chart is formatted as an OCI package. Include it as a dependency from Quay.io.

Add it to your Chart.yaml file of your Helm package.

dependencies:
  - name: kubernetes-stateless-chart
    repository: oci://quay.io/andov.go/helm-library
    version: 1.x.x
    alias: app

Repository

Checkout the release.json for details about where the chart is hosted.

Prerequisites

  • Kubernetes 1.24+;

  • Helm 3+.

Parameters

Global parameters

Name Description Value
global.imageRegistry Specify the registry that stores the images ""
global.imagePullSecrets Specify the credentials as secret names for pulling the images []

Common parameters

Name Description Value
nameOverride Provide a prefix to partially override the lib.name in the templates ""
fullnameOverride Provide a name to override completely the lib.name in the templates ""
commonLabels Provide a map of key/value pairs of labels to be applied to all resources in the templates {}
commonAnnotations Provide a map of key/value pairs of annotations to be applied to all resources in the templates {}
namespaceOverride Provide a name to fully override lib.namespace in the templates ""

Application parameters

Name Description Value
include Includes/Excludes the configurations for this application true
name Application name ""
image.registry URL of the container registry docker.io
image.repository URL of the container repository portainer/portainer-ce
image.tag Image version 2.18.4-alpine
image.pullPolicy Pull policy of the container image Always
image.pullSecrets Registry credentials. Specify not the credentials but the corresponding secrets []
entrypoint Provide arguments to the entrypoint of the application. []
customEntrypoint Overwrite in full the parameter application.entrypoint. []
args Provide arguments to the entrypoint of the application. ["--admin-password='$$2y$$05$$aO9DEethtRMRpmyc4p0Dn.4MUvoJ274844ej9IdUS16kpiu43d6R6'"]
customArgs Overwrite in full the parameter application.args. []
serviceAccount.create Specify whether to create a service account false
serviceAccount.name Service account name ""
serviceAccount.automountServiceAccountToken Specify if the account can mount the access token from the Kubernetes API true
serviceAccount.labels Key/value map of labels {}
serviceAccount.additionalLabels Additional key/value map of labels {}
serviceAccount.annotations Key/value map of annotations {}
serviceAccount.additionalAnnotations Additional key/value map of annotations {}
serviceAccount.namespacePermissions List of permissions to attach to the ServiceAccount within the in use namespace []
serviceAccount.additionalNamespacePermissions Additional list of permissions to attach to the ServiceAccount within the in use namespace []
serviceAccount.clusterPermissions List of permissions to attach to the ServiceAccount within the in use Kubernetes cluster []
serviceAccount.additionalClusterPermissions Additional list of permissions to attach to the ServiceAccount within the in use Kubernetes cluster []
autoscaling.enabled Enables/disables autoscaling false
autoscaling.minReplicas Minimum number of pods 1
autoscaling.maxReplicas Maximum number of pods 5
autoscaling.metrics.targetCPU CPU utilization threshold ""
autoscaling.metrics.targetMemory Memory utilization threshold ""
replicaCount Initial number of pods for the application 1
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 0
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 600
revisionHistoryLimit Specify the number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified 10
deploymentStrategyType Specify the strategy of how to replace existing pods with new ones. Supports: Recreate or RollingUpdate RollingUpdate
rollingUpdateStrategyConfig.maxSurge Specify the maximum number of pods that can be scheduled above the desired number of pods 25%
rollingUpdateStrategyConfig.maxUnavailable Specify the maximum number of pods that can be unavailable during the update 25%
podLabels Specify labels to apply at PodSpec level {}
additionalPodLabels Additional labels to apply at PodSpec level {}
podAnnotations Specify annotations to apply at PodSpec level {}
additionalPodAnnotations Additional annotations to apply at PodSpec level {}
resources.requests.cpu Max CPU available for a pod (resource request) 2000m
resources.requests.memory Max memory available for a pod (resource request) 2048Mi
resources.limits.cpu Min CPU available for a pod (resource limit) 2000m
resources.limits.memory Min memory available for a pod (resource limit) 2048Mi
service.name Service name ""
service.ports Service ports undefined
service.additionalPorts Additional service ports []
service.type Service type. Valid values are: ClusterIP, NodePort, LoadBalancer ""
service.annotations Service annotations {}
service.additionalAnnotations Additional service annotations {}
service.labels Service labels {}
service.additionalLabels Additional service labels {}
podSecurityContext.fsGroup Group ID that has access to the filesystem at run-time 10001
containerSecurityContext.runAsUser ID of the user who runs the process 10001
containerSecurityContext.runAsNonRoot Specify if the process can run under the root user true
containerSecurityContext.allowPrivilegeEscalation Specify if the process can get more permissions at run-time false
containerSecurityContext.readOnlyRootFilesystem Specify if the root filesystem of the process is read-only true
customContainerSecurityContext Overwrite partially the application.containerSecurityContext property {}
application.livenessProbe Specify the default liveness probe
livenessProbe.httpGet.path Application side HTTP URI that outlines how it performs /
livenessProbe.httpGet.port Application port that is open for probing type of requests http
livenessProbe.initialDelaySeconds Specify the waiting time for kubelet before it launches the first probe 30
livenessProbe.periodSeconds Specify the time interval kubelet can launch the probe 15
livenessProbe.timeoutSeconds Specify the timeout kubelet can wait before signaling if a probe fails 10
livenessProbe.successThreshold Specify how many requests kubelet needs to probe to mark the livenessProbe as success 1
livenessProbe.failureThreshold Specify how many requests kubelet needs to probe to mark the livenessProbe as failure 3
customLivenessProbe Overwrite partially the application.livenessProbe property {}
application.readinessProbe Specify the default readiness probe
readinessProbe.httpGet.path Application side HTTP URI that outlines if it is ready /
readinessProbe.httpGet.port Application port that is open for probing type of requests http
readinessProbe.initialDelaySeconds Specify the waiting time for kubelet before it launches the first probe 30
readinessProbe.periodSeconds Specify the time interval kubelet can launch the probe 15
readinessProbe.timeoutSeconds Specify the timeout kubelet can wait before signaling if a probe fails 10
readinessProbe.successThreshold Specify how many requests kubelet needs to probe to mark the readinessProbe as success 1
readinessProbe.failureThreshold Specify how many requests kubelet needs to probe to mark the readinessProbe as failure 3
customReadinessProbe Overwrite partially the application.readinessProbe property {}
application.startupProbe Specify the default startup probe
startupProbe.httpGet.path Application side HTTP URI that outlines if it is started /
startupProbe.httpGet.port Application port that is open for probing type of requests http
startupProbe.initialDelaySeconds Specify the waiting time for kubelet before it launches the first probe 30
startupProbe.periodSeconds Specify the time interval kubelet can launch the probe 15
startupProbe.timeoutSeconds Specify the timeout kubelet can wait before signaling if a probe fails 10
startupProbe.successThreshold Specify how many requests kubelet needs to probe to mark the startupProbe as success 1
startupProbe.failureThreshold Specify how many requests kubelet needs to probe to mark the startupProbe as failure 3
customStartupProbe Overwrite partially the application.startupProbe property {}
customAffinity Overwrite in full the default affinity rules {}
nodeName Specify the NodeName where to schedule a pod. Leave empty for auto scheduling decision ""
nodeSelector Specify the selector which must be true for the pod to fit on a node {}
ingress.enabled Enables/disables Ingress for routing inbound traffic true
ingress.name Ingress name ""
ingress.pathType Ingress path type ImplementationSpecific
ingress.hostname Ingress hostname containers.app
ingress.tls Enables/disables TLS for the hostname false
ingress.alternateDnsNames Specify whether to add a list of alternative DNS names to the self-signed certificate []
ingress.certValidityDuration Specify how many days the self-signed certificate should remain valid ""
ingress.path Ingress path array /
ingress.additionalPaths Ingress extra paths []
ingress.additionalTLS Additional TLS configuration []
ingress.secret Name of the external secret for $parent.hostname ""
ingress.ingressClassName IngressClass name ""
ingress.additionalRules Additional Ingress rules []
ingress.backendService.portName Specify the application port name of the backend service http
ingress.annotations Key/value map with annotations {}
ingress.additionalAnnotations Additional key/value map with annotations {}
ingress.labels Key/value map with labels {}
ingress.additionalLabels Additional key/value map with labels {}
ports Specify a list of application ports undefined
volumes Specify named volumes to be attached to the pod undefined
additionalVolumes Specify additional mutual exclusive with application.volumes value named volumes to be attached to the main container and pod []
sidecars Specify containers to run alongside the main container []
additionalSidecars Specify additional containers to run alongside the main container []
initContainers Specify a list of initialization containers belonging to the pod []
additionalInitContainers Specify a list of additional initialization containers belonging to the pod []

Application configuration file

Name Description Value
config Overwrites the configuration in application.defaultConfig.config ""
defaultConfig.name Specify the default application configuration file name ""
defaultConfig.mountPath Specify the default application configuration file system path where the file is located ""
defaultConfig.config Specify the default application configuration ""
defaultConfig.customValues Specify a map of custom values to be referenced by the application.defaultConfig.config parameter {}

Application environment variables

Name Description Value
envs Environment variables {}
additionalEnvs Additional environment variables {}
internalEnvSecret Specify the internal secret name that contains system environment variables ""
externalEnvSecret Specify the external secret name that contains system environment variables ""

Application Kubernetes resources

Name Description Value
kubernetesYamlResources Kubernetes objects to add to the application package []
additionalKubernetesYamlResources Add additional Kubernetes objects to add to the application package []

Releases

No releases published

Packages

No packages published