Role Refactor¶
The role-refactor branch merge includes the following updates:
-
Enforces explicit Inventory override levels
Variables that previously applied to all instances of a role (e.g.
sonarr_docker_image) now only apply to the instance with the exact name (e.g.sonarr).Role-scoped overrides must now include the
_role_infix (e.g.sonarr_role_docker_image) to persist as such. -
Deprecates
_docker_network_mode_defaultInventory convention_docker_network_modeis now natively supported across all roles. -
Retires Sandbox
settings.ymlSettings no longer apply and must be migrated to their Inventory form to persist.
-
Removes a number of roles
jaeger
readarr
sub_zero
webtools
alternatrr
aria2_ng
comicstreamer
docspell
rdtclient
solr
teamspeak
watchtower
-
Python to Golang rewrites of tools: DNS manager, Docker controller
Full changes:
Inventory Migration Guide¶
Single-instance overrides¶
When a role only has a single instance, either variable form will achieve the same outcome. However, to align with the new convention, it is recommended to transition to the _role_ infix.
Example
plex_dns_proxy: false
Becomes:
plex_role_dns_proxy: false
Multi-instance overrides¶
Multi-instance role variables must be converted to the appropriate override level for existing configuration to persist.
Example
Specificity takes precedence
When determining which variable to use, remember the precedence order: Instance > Role > Global
bazarr_instances: ["bazarr", "bazarr4k"]
bazarr_docker_volumes_custom: ["/opt/subcleaner:/subcleaner"]
bazarr_themepark_theme: "nord"
bazarr4k_themepark_theme: "maroon"
Becomes:
bazarr_instances: ["bazarr", "bazarr4k"]
bazarr_role_docker_volumes_custom: ["/opt/subcleaner:/subcleaner"] # (1)!
bazarr_role_themepark_theme: "nord" # or bazarr_themepark_theme: "nord" (2)
bazarr4k_themepark_theme: "maroon"
-
Typically, you want external processing tools to be available to all instances, so keep role-scoped.
-
This can go both ways depending on your goal. Previously, this override was role-scoped, but with only two instances defined and the
4kinstance individually overridden, the same outcome would be achieved.bazarr_role_themepark_theme: "nord": additional instances added later would inherit thenordtheme unless individually overriddenbazarr_themepark_theme: "nord": additional instances would inherit theglobal_themepark_themevalue if enabled, or would not have theming applied.