Skip to content

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

License

Notifications You must be signed in to change notification settings

krestomatio/terraform-libvirt-fcos-harbor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform module for creating a Harbor 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
fcos krestomatio/fcos/libvirt 0.0.24

Resources

Name Type
template_file.butane_snippet_install_harbor 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
admin_password Harbor admin password string n/a yes
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
data_volume_pool Node default data volume pool string null no
data_volume_size Node default data volume size in bytes number null no
database_root_password Database root password string n/a yes
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 Harbor string n/a yes
fqdn Node FQDN string n/a yes
ignition_pool Default ignition files pool string null no
installer Harbor configuration
object(
{
parameters = optional(list(string), [])
url = optional(string, "https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-online-installer-v2.8.0.tgz")
sha256sum = optional(string, "78630ceee90fe183459b8fa0ee0e79a6c845e42d21ee1beec621c32c82b20051")
}
)
{
"parameters": [],
"sha256sum": "78630ceee90fe183459b8fa0ee0e79a6c845e42d21ee1beec621c32c82b20051",
"url": "https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-online-installer-v2.8.0.tgz"
}
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
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
storage_service Storage backend config
object(
{
ca_bundle = optional(string)
filesystem = optional(
object(
{
rootdirectory = string
}
)
)
s3 = optional(
object(
{
accesskey = optional(string)
secretkey = optional(string)
region = string
regionendpoint = optional(string)
forcepathstyle = optional(bool)
accelerate = optional(bool)
bucket = string
encrypt = optional(bool)
keyid = optional(string)
secure = optional(bool)
v4auth = optional(bool)
chunksize = optional(string)
multipartcopychunksize = optional(string)
multipartcopymaxconcurrency = optional(string)
multipartcopythresholdsize = optional(string)
rootdirectory = optional(string)
}
)
)
redirect = optional(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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Languages