MATERIA-MANIFEST
Name
materia-manifest - metadata file for materia repos and components
Synopsis
<materia_repo>/MANIFEST.toml,<component_directory>/MANIFEST.toml
Description
A TOML config file that sits at the root of materia-repository(5) or materia component that contains metadata describing the entity.
Manifest files are required for a repository or component to be considered valid. Blank manifest files are allowed.
Repository manifests
Options
hosts
A TOML table containing hosts entries of the following format:
[Hosts.localhost]
Components = ["caddy","openldap"]
Roles = ["base"]
Can also contain an Overrides table that contains keys mapped to component manifests. This can be used to override the MANIFSET.toml included with a component on a per-host basis.
Example:
[Hosts.localhost]
Components = ["caddy","openldap"]
[Hosts.localhost.Overrides.caddy.Defaults]
port = "80"
[Hosts.localhost.Overrides.caddy.Services]
Service = "caddy.service"
roles
A TOML table of containing roles entries of the following format:
[Roles.base]
Components = ["nagios-agent"]
RoleCommand
(EXPERIMENTAL) An external command ran on a host to determine what role(s) it has.
Remote
A TOML table containing Remote Component entries of the following format:
[Remote.COMPONENT_LOCAL_NAME]
URL = "git://github.com/example/component_name"
Version = "v1" # optional
Snippets
Experimental
Example
[roles.base]
components = ["nagios-agent"]
[hosts.warden]
components = ["dota_patch_bot"]
roles = ["base"]
[hosts.ivy]
components = ["authelia"]
Component manifests
Options
Settings
Key-value pairs for component settings. Contains the following options:
NoRestart
By default, materia will restart services belonging to .container and .pod resources when they are updated. Set to true to disable this behaviour.
Defaults
Key-value pairs describing default variable/attribute values for a component.
Example: defaults.containerTag = "latest"
services
An array of service definitions, use to describe what systemd services should be started when a component is installed.
[[services]]
Service = "SERVICE_NAME.service" # The name of the systemd service
RestartedBy = ["resource"] # List of resources that, if updated by a materia run, should trigger the service to be restarted
ReloadedBy = ["resource"] # List of resources that, if updated by a materia run, should trigger the service to be reloaded
Disabled = false # if true, don't enable or start this service
Static = false # Indicates whether the systemd service is generated by a Quadlet. Usually used for .timer files
Scripts
A list of resources that, despite not ending in .sh, should be treated as script resources.
Snippets
Under construction. Used to indicate custom snippets. See materia-templates(5) for more details.
Secrets
A list of materia attributes that will used in the form of podman secrets. Attributes listed here will be added to the podman secrets vault and are accessible in templates with the related macros.
Secrets = ["attribute1"]
Example
arcade-agent/MANIFEST.toml
[Defaults]
port = "5656"
containerTag = "latest"
[[services]]
Service = "arcade-agent.service"