A generisied Helm chart for any use case following best-practises for security, scaling and zero-downtime updates.
Prerequisities:
ToDo:
DaemonSet resource typecd helm-chart-boilerplate # cd to the root
helm upgrade --install myrelease ./charts/common --namespace app --create-namespace
See values.yaml for examples
| Key | Type | Default | Description |
|---|---|---|---|
| affinity | object | {} |
|
| autoscaling.enabled | bool | false |
|
| autoscaling.maxReplicas | int | 1 |
|
| autoscaling.minReplicas | int | 1 |
|
| autoscaling.targetCPUUtilizationPercentage | int | 80 |
|
| configMap.enabled | bool | false |
|
| configMap.envFrom | bool | false |
|
| deploymentLabels | object | {} |
|
| env | list | [] |
|
| extraVolumeMounts | list | [] |
|
| extraVolumes | list | [] |
|
| fullnameOverride | string | "" |
|
| hook.enabled | bool | false |
|
| hook.image.pullPolicy | string | "Always" |
|
| hook.image.repository | string | "mcr.microsoft.com/mssql-tools" |
|
| hook.image.tag | string | "1.0.0" |
|
| image.pullPolicy | string | "Always" |
|
| image.repository | string | "" |
|
| image.tag | string | "latest" |
|
| imagePullSecrets[0].name | string | "regcred" |
|
| initContainers.args | list | [] |
|
| initContainers.command | list | [] |
|
| initContainers.enabled | bool | false |
|
| initContainers.extraVolumeMounts | list | [] |
|
| initContainers.extraVolumes | list | [] |
|
| initContainers.image.imagePullPolicy | string | nil |
|
| initContainers.image.repository | string | nil |
|
| initContainers.image.tag | string | nil |
|
| livenessProbe | object | {} |
|
| nameOverride | string | "" |
|
| nodeSelector.”beta.kubernetes.io/arch” | string | "amd64" |
|
| nodeSelector.”beta.kubernetes.io/os” | string | "linux" |
|
| orleans.enabled | bool | false |
|
| persistence.accessMode | string | "ReadWriteMany" |
|
| persistence.enabled | bool | false |
|
| persistence.size | string | "10Gi" |
|
| persistence.storageClassName | string | "default" |
|
| podAnnotations | object | {} |
|
| podSecurityContext | object | {} |
|
| rawYaml.content | string | "kind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n name: myrelease-app-pod-reader-binding1\n namespace: default\nsubjects:\n- kind: ServiceAccount\n name: myrelease-app\n apiGroup: ''\nroleRef:\n kind: Role\n name: myrelease-app-pod-reader\n apiGroup: ''\n" |
|
| rawYaml.enabled | bool | false |
|
| readinessProbe | object | {} |
|
| redisSidecar.enabled | bool | false |
|
| redisSidecar.image | string | "redis" |
|
| redisSidecar.livenessInterval | int | 30 |
|
| redisSidecar.pullPolicy | string | "Always" |
|
| redisSidecar.targetPort | int | 6379 |
|
| replicaCount | int | 1 |
|
| resources | object | {} |
|
| securityContext | object | {} |
|
| serviceAccount.annotations | object | {} |
|
| serviceAccount.enabled | bool | false |
|
| serviceAccount.name | string | "" |
|
| services[0].containerPort | int | 80 |
|
| services[0].name | string | "http" |
|
| services[0].targetPort | int | 80 |
|
| services[0].type | string | "ClusterIP" |
|
| startupProbe | object | {} |
|
| tolerations | list | [] |
See comments in values.yaml for full list of features and some examples See examples in README.md
helm delete -n app myrelease