Skip to content

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

Notifications You must be signed in to change notification settings

krestomatio/terraform-libvirt-fcos-lldap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform module for creating a Lldap 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
lldap krestomatio/fcos/libvirt 0.0.28

Resources

Name Type
template_file.butane_snippet_install_lldap 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_script_additiona_block Additional block to add to backup script string "" no
backup_task_on_calendar Backup task on calendar value. See systemd.time(7) string "daily" 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
cidr_sources Cidr of sources allowed in firewall to lldap port list(string) [] 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
envvars Additional environment variables for lldap map(string) {} 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 Lldap string n/a yes
fqdn Node FQDN string n/a yes
ignition_pool Default ignition files pool string null no
image Lldap container image
object(
{
name = optional(string, "docker.io/nitnelave/lldap")
version = optional(string, "latest")
}
)
{
"name": "docker.io/nitnelave/lldap",
"version": "stable"
}
no
interface_name Network interface name string null no
jwt_secret Lldap JWT secret string n/a yes
keymap Keymap string null no
ldap_base_dn Lldap base distinguished name (DN) string n/a yes
ldap_user_pass Lldap user password string n/a yes
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
machine The machine type, you normally won't need to set this unless you are running on a platform that defaults to the wrong machine type for your template 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
port Ldap port number 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
sync_time_with_host Sync guest time with the kvm host bool null no
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.