Skip to content

Upgrading from v1.x to v2.x

Given the following real-life example values.yaml for app-template v1:

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:
media:
enabled: true
ingressClassName: "ingress-nginx"
hosts:
- host: sabnzbd.bjw-s.dev
paths:
- path: /
persistence:
media:
enabled: true
existingClaim: nas-media
globalMounts:
- path: /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:
media:
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

This is not meant as an exhaustive list of changes, but rather a “most common” example.

  • podSecurityContext has been moved to defaultPodOptions.securityContext. It is also possible to configure this on a controller-specific basis by moving it to controllers.main.pod.securityContext instead.
  • image has been moved to controllers.main.containers.main.image so that multiple containers can be configured.
  • ingress.media.ingressClassName has been renamed to ingress.main.className.
  • ingress.media.enabled can be removed, since items are considered enabled by default (they can still be disabled by adding enabled: false).
  • ingress.media.hosts.*.paths.*.service is now required since there is no more concept of a default “primary” service.
  • persistence.media.mountPath has been moved to persistence.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 adding enabled: false).
  • probes has been moved to controllers.main.containers.main.probes so that multiple containers can be configured.