Skip to content

Latest commit

 

History

History
83 lines (69 loc) · 8.2 KB

File metadata and controls

83 lines (69 loc) · 8.2 KB

Terraform module for creating a Stalwart mail server using Fedora CoreOS, and Libvirt.

Dependencies

The following are the dependencies to create the VM with this module:

Requirements

Name Version
terraform >= 1.2.0
ct 0.11.0
libvirt ~> 0.7

Providers

Name Version
template n/a

Modules

Name Source Version
butane_snippet_install_certbot krestomatio/butane-snippets/ct//modules/certbot 0.0.12
stalwart_mail krestomatio/fcos/libvirt 0.0.28

Resources

Name Type
template_file.butane_snippet_install_stalwart_mail data source

Inputs

Name Description Type Default Required
additional_rpms Additional rpms to install during boot using rpm-ostree, along with any pre or post command
object(
{
cmd_pre = optional(list(string), [])
list = optional(list(string), [])
cmd_post = optional(list(string), [])
}
)
{
"cmd_post": [],
"cmd_pre": [],
"list": []
}
no
autostart Autostart with libvirt host bool null no
backup_volume_pool Node default backup volume pool string null no
backup_volume_size Node default backup volume size in bytes number null no
butane_snippets_additional Additional butane snippets list(string) [] no
certbot Certbot config
object(
{
agree_tos = bool
staging = optional(bool)
email = string
http_01_port = optional(number)
}
)
null no
cidr_ip_address CIDR IP Address. Ex: 192.168.1.101/24 string null no
cpu_mode Libvirt default cpu mode for VMs string null no
cpus_limit Number of CPUs to limit the container number 0 no
data_volume_pool Node default data volume pool string null no
data_volume_size Node default data volume size in bytes number null no
etc_hosts /etc/host list
list(
object(
{
ip = string
hostname = string
fqdn = string
}
)
)
null no
etc_hosts_extra /etc/host extra block string null no
external_fqdn FQDN to access Stalwart mail string n/a yes
fqdn Node FQDN string n/a yes
ignition_pool Default ignition files pool string null no
image Stalwart mail container image
object(
{
name = optional(string, "docker.io/stalwartlabs/mail-server")
version = optional(string, "latest")
}
)
{
"name": "docker.io/stalwartlabs/mail-server",
"version": "latest"
}
no
keymap Keymap string null no
log_volume_pool Node default log volume pool string null no
log_volume_size Node default log volume size in bytes number null no
mac Mac address string null no
memory Node default memory in MiB number 512 no
memory_limit Amount of memory to limit the container string "" no
nameservers List of nameservers for VMs list(string) null no
network_bridge Libvirt default network bridge name for VMs string null no
network_id Libvirt default network id for VMs string null no
network_name Libvirt default network name for VMs string null no
periodic_updates Only reboot for updates during certain timeframes
{
time_zone = "localtime"
windows = [
{
days = ["Sat"],
start_time = "23:30",
length_minutes = "60"
},
{
days = ["Sun"],
start_time = "00:30",
length_minutes = "60"
}
]
}
object(
{
time_zone = optional(string, "")
windows = list(
object(
{
days = list(string)
start_time = string
length_minutes = string
}
)
)
}
)
null no
rollout_wariness Wariness to update, 1.0 (very cautious) to 0.0 (very eager) string null no
root_base_volume_name Node default base root volume name string n/a yes
root_base_volume_pool Node default base root volume pool string null no
root_volume_pool Node default root volume pool string null no
root_volume_size Node default root volume size in bytes number null no
ssh_authorized_key Authorized ssh key for core user string n/a yes
timezone Timezone for VMs as listed by timedatectl list-timezones string null no
vcpu Node default vcpu count number null no
wait_for_lease Wait for network lease bool null no

Outputs

No outputs.

Krestomatio is a managed service for Moodle™ e-learning platforms. It allows you to have open-source instances managed by a service optimized for Moodle™, complete with an additional plugin pack and customization options.