Admins will be upgrading ORNL GitLab Servers on Saturday, 16 May 2026, from 7 AM until 11 AM EST. Repositories will experience intermittent outages during this time.
-[`system.stateVersion`](#opt-system.stateVersion) is now validated and must be in the `"YY.MM"` format, ideally corresponding to a prior NixOS release.
-`services.mysql` now supports easy cluster setup via [`services.mysql.galeraCluster`](#opt-services.mysql.galeraCluster.enable) option.
description="The logical name of the Galera cluster. All nodes in the same cluster must use the same name.";
default="galera";
};
sstMethod=lib.mkOption{
type=lib.types.enum[
"rsync"
"mariabackup"
];
description="Method for the initial state transfer (wsrep_sst_method) when a node joins the cluster. Be aware that rsync needs SSH keys to be generated and authorized on all nodes!";
default="rsync";
example="mariabackup";
};
localName=lib.mkOption{
type=lib.types.str;
description="The unique name that identifies this particular node within the cluster. Each node must have a different name.";
example="node1";
};
localAddress=lib.mkOption{
type=lib.types.str;
description="IP address or hostname of this node that will be used for cluster communication. Must be reachable by all other nodes.";
description="IP addresses or hostnames of all nodes in the cluster, including this node. This is used to construct the default clusterAddress connection string.";
description="Optional password for securing cluster communications. If provided, it will be used in the clusterAddress for authentication between nodes.";
example="SomePassword";
default="";
};
clusterAddress=lib.mkOption{
type=lib.types.str;
description="Full Galera cluster connection string. If nodeAddresses is set, this will be auto-generated, but you can override it with a custom value. Format is typically 'gcomm://node1,node2,node3' with optional parameters.";
message="mariadb galera clusterPassword is set but overwritten by clusterAddress";
}
{
assertion=
!(
cfg.galeraCluster.enable
&&cfg.galeraCluster.nodeAddresses!=[]
&&cfg.galeraCluster.clusterAddress!=""
);
message="When services.mysql.galeraCluster.clusterAddress is set, setting services.mysql.galeraCluster.nodeAddresses is redundant and will be overwritten by clusterAddress. Choose one approach.";