mirror of
https://github.com/bjw-s-labs/helm-charts.git
synced 2025-07-03 16:37:04 +02:00
4.4 KiB
4.4 KiB
app-template
A common powered chart template. This can be useful for small projects that don't have their own chart.
Requirements
Kubernetes: >=1.22.0-0
Dependencies
Repository | Name | Version |
---|---|---|
https://bjw-s.github.io/helm-charts | common | 2.0.1 |
Installing the Chart
# Add the repository
helm repo add bjw-s https://bjw-s.github.io/helm-charts/
# Install the chart
helm install bjw-s app-template -f values.yaml
Configuration
Read through the values.yaml file of the common library chart. It has several commented out suggested values. The CI tests contain a number of scenarios that may prove useful as well.
Upgrade instructions
From 1.x.x to 2.0.x
⚠️ IMPORTANT Because a new label has been introduced in the controller labelSelector (which is an immutable field), Deployments cannot be upgraded in place! More details
Given the following real-life example values.yaml for app-template v1:
Expand
image:
repository: ghcr.io/onedr0p/sabnzbd
tag: latest
pullPolicy: IfNotPresent
podSecurityContext:
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: "OnRootMismatch"
supplementalGroups:
- 65539
service:
main:
ports:
http:
port: 8080
ingress:
main:
enabled: true
ingressClassName: "ingress-nginx"
hosts:
- host: sabnzbd.bjw-s.dev
paths:
- path: /
persistence:
media:
enabled: true
existingClaim: nas-media
mountPath: /data/nas-media
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
The values for app-template v2.x would become this:
defaultPodOptions:
securityContext:
runAsUser: 568
runAsGroup: 568
fsGroup: 568
fsGroupChangePolicy: "OnRootMismatch"
supplementalGroups:
- 65539
controllers:
main:
containers:
main:
image:
repository: ghcr.io/onedr0p/sabnzbd
tag: latest
pullPolicy: IfNotPresent
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
service:
main:
ports:
http:
port: 8080
ingress:
main:
enabled: true
className: "ingress-nginx"
hosts:
- host: sabnzbd.bjw-s.dev
paths:
- path: /
service:
name: main
port: http
persistence:
media:
existingClaim: nas-media
globalMounts:
- path: /data/nas-media
Changes in this example
This is not meant as an exhaustive list of changes, but rather a "most common" example.
podSecurityContext
has been moved todefaultPodOptions.securityContext
. It is also possible to configure this on a controller-specific basis by moving it tocontrollers.main.pod.securityContext
instead.image
has been moved tocontrollers.main.containers.main.image
so that multiple containers can be configured.ingress.main.ingressClassName
has been renamed toingress.main.className
.ingress.main.enabled
can be removed, since items are considered enabled by default (they can still be disabled by addingenabled: false
).ingress.main.hosts.*.paths.*.service
is now required since there is no more concept of a default "primary" service.persistence.media.mountPath
has been moved topersistence.media.globalMounts.*.path
to allow multiple mountPaths for the same persistence item.persistence.media.enabled
can be removed, since items are considered enabled by default (they can still be disabled by addingenabled: false
).probes
has been moved tocontrollers.main.containers.main.probes
so that multiple containers can be configured.
Support
Autogenerated from chart metadata using helm-docs v1.11.0