Skip to content

Materia Options

Note

The quadlet options' suboptions are not shown here. For that, check out the quadlet options. Otherwise this page would be very long.

components

(no description)

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

components.<name>.backups

Type:

submodule

Default value:

unset

Declared in:

components.<name>.backups.noCompress

(no description)

Type:

boolean

components.<name>.backups.online

(no description)

Type:

boolean

components.<name>.backups.pause

(no description)

Type:

boolean

components.<name>.backups.skip

(no description)

Type:

list of string

components.<name>.builds

Reference

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

components.<name>.containers

Reference

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

components.<name>.defaults

Key-value pairs describing default variable/attribute values for a component.

Type:

attribute set

Default value:

unset

Example value:

{
  containerTag = "latest";
}

Declared in:

components.<name>.files

Extra files to copy to the quadlet's directory.

Type:

attribute set of (package or string)

Default value:

{ }

Example value:

{
  "config.json" = <derivation config.json>;
  "config.yaml" = "hello: world";
}

Declared in:

components.<name>.finalOutput

Directory containing the output files, like example.container.

Type:

package

Default value:

<derivation quadlet>

Declared in:

components.<name>.images

Reference

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

components.<name>.kubes

Reference

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

components.<name>.networks

Reference

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

components.<name>.pods

Reference

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

components.<name>.quadnix.project

Project to prepend to every resource.

Type:

string

Default value:

""

Declared in:

components.<name>.scripts

A list of resources that, despite not ending in .sh, should be treated as script resources.

Type:

list of string

Default value:

unset

Declared in:

components.<name>.secretFiles

Secret files which get collected and put into the secrets directory of the final Materia repository.

Type:

attribute set of absolute path

Default value:

{ }

Example value:

{ "example.enc.yaml" = ./example.enc.yaml; }

Declared in:

components.<name>.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.

Type:

list of string

Default value:

unset

Example value:

[
  "attribute1"
]

Declared in:

components.<name>.services

An array of service definitions, use to describe what systemd services should be started when a component is installed.

When the component is installed and when materia update is run, the hello.service systemd unit will be started or restarted.

When the hello.container resource is updated, the hello.service unit will be restarted.

When the conf/config.toml resource is updated, the hello.service unit will be reloaded. Note the resource is given by its relative path to the component root.

Type:

list of (submodule)

Default value:

unset

Example value:

[
  {
    reloadedBy = [
      "conf/config.toml"
    ];
    restartedBy = [
      "hello.container"
    ];
    service = "hello.service";
  }
]

Declared in:

components.<name>.services.*.reloadedBy

Type:

list of string

Default value:

unset

components.<name>.services.*.restartedBy

Type:

list of string

Default value:

unset

components.<name>.services.*.service

Type:

string

components.<name>.settings

Key-value pairs for component settings.

Type:

submodule

Default value:

unset

Declared in:

components.<name>.settings.noRestart

By default, materia will restart services belonging to .container and .pod resources when they are updated. Set to true to disable this behaviour.

Type:

boolean

components.<name>.snippets

Under construction. Used to indicate custom snippets. See materia-templates(5) for more details.

Type:

list of (submodule)

Default value:

unset

Declared in:

components.<name>.snippets.*.body

(no description)

Type:

string

components.<name>.snippets.*.name

(no description)

Type:

string

components.<name>.snippets.*.parameters

(no description)

Type:

list of string

components.<name>.volumes

Reference

Type:

attribute set of (submodule)

Default value:

{ }

Declared in:

finalOutput

The fully built materia repository.

Type:

package

Declared in:

hosts

Configure host roles and components. Defaults to assigning all defined components to localhost.

Type:

attribute set of (submodule)

Default value:

{
  localhost = {
    components = [ ];
  };
}

Declared in:

hosts.<name>.components

Components to assign to this host.

Type:

list of string

Default value:

unset

Declared in:

hosts.<name>.overrides

Overrides for this host.

Type:

attribute set

Default value:

unset

Declared in:

hosts.<name>.roles

Roles to assign to this host.

Type:

list of string

Default value:

unset

Declared in:

ociImage

Materia repository put into an OCI image for easy deployment.

Type:

package

Declared in:

quadnix.project

Project to prepend to every resource.

Type:

string

Default value:

""

Declared in:

remotes

Other remote materia repositories to include.

Type:

attribute set of (submodule)

Default value:

unset

Example value:

{
  COMPONENT_LOCAL_NAME = {
    url = "git://github.com/example/component_name";
    version = "v1";
  };
}

Declared in:

remotes.<name>.url

Remote URL.

Type:

string

remotes.<name>.version

Version of remote, optional.

Type:

string

Default value:

unset

roleCommand

(EXPERIMENTAL) An external command ran on a host to determine what role(s) it has.

Type:

string

Default value:

unset

Declared in:

roles

An attrset of containing roles entries.

Type:

attribute set of (submodule)

Default value:

unset

Example value:

{
  sample = {
    components = [
      "hello"
    ];
  };
}

Declared in:

roles.<name>.components

Components to assign to this role/hosts with this role.

Type:

list of string

Default value:

[ ]

secretsCombined

All secretFiles combined into a single directory. Gets copied to secrets in the materia repo.

Type:

package

Declared in:

snippets

Experimental.

Type:

list of (submodule)

Default value:

unset

Declared in:

snippets.*.body

(no description)

Type:

string

snippets.*.name

(no description)

Type:

string

snippets.*.parameters

(no description)

Type:

list of string