Skip to content

All

services.pcsd.enable

Whether to enable pcsd.

Type: boolean

Default: false

Example: true

Declared by: - modules/default.nix#L30

services.pcsd.enableBinaryCache

Option to add the binary cache to your settings.

Type: boolean

Default: false

Declared by: - modules/default.nix#L32

services.pcsd.enableWebUI

Enable the webUI of pcsd.

Type: boolean

Default: false

Declared by: - modules/default.nix#L133

services.pcsd.package

The pcs package to use.
By default, this option will use the packages.default as exposed by this flake.

Type: package

Default: pcsd.packages.x86_64-linux.default

Declared by: - modules/default.nix#L105

services.pcsd.clusterName

Name of the cluster. This option will be passed to services.corosync.clusterName.

Type: string

Default: "nixcluster"

Declared by: - modules/default.nix#L49

services.pcsd.clusterUserPasswordFile

Required path to a file containing the password of the hacluster user in clear text.

Type: null or absolute path

Declared by: - modules/default.nix#L151

services.pcsd.corosyncKeyFile

Required path to a file containing the key for corosync.
See corosync-keygen(8).

Type: null or absolute path

Declared by: - modules/default.nix#L41

services.pcsd.extraCommands

A list of additional pcs commands to run after everything else is setup.
Cannot have the -f option.
See pcs(8)

Type: list of string matching the pattern ^(pcs .*)$

Default: [ ]

Example:

1
2
3
[
  "pcs property set stonith-enabled=false"
]

Declared by: - modules/default.nix#L290

services.pcsd.finalPackage

The package defined by services.pcsd.package with overrides applied.

Type: package (read only)

Default:

pcsd.packages.x86_64-linux.default.override {
  pcs-web-ui = pcsd.packages.x86_64-linux.pcs-web-ui;
  withWebUI = false;
}

Declared by: - modules/default.nix#L115

services.pcsd.mainNode

The name of the node in charge of updating the cluster settings.
Defaults to the first node declared in services.pcsd.nodes.

Type: string

Default: "Name of your first node"

Declared by: - modules/default.nix#L57

services.pcsd.nodes

List of nodes in the cluster. This option will be passed to services.corosync.nodelist.

Type: list of (submodule)

Default: [ ]

Example:

[
  {
    name = "this Machine's Hostname";
    nodeid = 1;
    ring_addrs = [
      # This is where your machine's local ips go
      "192.168.0.255"
    ];
  }

  # the other nodes of your cluster go here
]

Declared by: - modules/default.nix#L67

services.pcsd.nodes.*.name

Node name.

Type: string

Declared by: - modules/default.nix#L92

services.pcsd.nodes.*.nodeid

Node ID number.

Type: signed integer

Declared by: - modules/default.nix#L88

services.pcsd.nodes.*.ring_addrs

List of IP addresses, one for each ring.

Type: list of string

Declared by: - modules/default.nix#L96

services.pcsd.systemdResources

An ordered list of sets that represent all the systemd services that will be managed by pcsd.

Type: list of (submodule)

Default: { }

Example:

systemdResources = {
  "caddy" = {
    enable = true;
    group = "caddy-grp";
  };

  "headscale" = {
    enable = true;
    group = "caddy-grp";
    startAfter = ["caddy"];
  };
}

Declared by: - modules/default.nix#L158

services.pcsd.systemdResources.*.enable

Whether this service is managed by pcs or not. If not enabled, this service can only be started by a user manually.

Type: boolean

Default: true

Declared by: - modules/default.nix#L180

services.pcsd.systemdResources.*.extraArgs

Additional command line options added to pcs commands when making a systemd resource.

Type: list of string

Default: [ ]

Declared by: - modules/default.nix#L207

services.pcsd.systemdResources.*.group

The name of the group in which we want to place this resource.
This allows multiple resources to always be on the same node and can also make the order in which the resources start configurable.

Type: null or string

Default: null

Declared by: - modules/default.nix#L197

services.pcsd.systemdResources.*.systemdName

The name of the systemd unit file without ‘.service’.
By default, this option will use the name of this attribute.

Type: string

Declared by: - modules/default.nix#L189

services.pcsd.virtualIps

An ordered list of sets that represent all the virtual IPs that will be managed by pcsd.

Type: list of (submodule)

Default: { }

Example:

1
2
3
4
5
6
7
8
virtualIps = {
  "caddy-vip" = {
    ip = "10.0.0.130";
    interface = "eno1";
    group = "caddy-grp";
    startBefore = ["caddy"];
  };
}

Declared by: - modules/default.nix#L218

services.pcsd.virtualIps.*.enable

Whether this service is managed by pcs or not.

Type: boolean

Default: true

Declared by: - modules/default.nix#L236

services.pcsd.virtualIps.*.cidr

The CIDR range of the IP.

Type: signed integer

Default: 24

Declared by: - modules/default.nix#L263

services.pcsd.virtualIps.*.extraArgs

Additional command line options added to pcs commands when making a virtual IP.

Type: list of string

Default: [ ]

Declared by: - modules/default.nix#L279

services.pcsd.virtualIps.*.group

The name of the group in which we want to place this resource.
This allows multiple resources to always be on the same node and can also make the order in which the resources start configurable.

Type: null or string

Default: null

Declared by: - modules/default.nix#L269

services.pcsd.virtualIps.*.id

The name of the resource as pacemaker sees it.
By default, this option will use the name of this attribute.

Type: string

Declared by: - modules/default.nix#L244

services.pcsd.virtualIps.*.interface

The network interface this IP will be bound to.

Type: string

Default: "eno1"

Declared by: - modules/default.nix#L252

services.pcsd.virtualIps.*.ip

The actual IP address.

Type: string

Declared by: - modules/default.nix#L258

services.pcsd.webUIPackage

The pcs webUI package to use.
By default, this option will use the packages.pcs-web-ui as exposed by this flake.

Type: package

Default: pcsd.packages.x86_64-linux.pcs-web-ui

Declared by: - modules/default.nix#L141