This repo contains a Terraform Module for how to deploy a faasd instance on the Hetzner using Terraform.
faasd, a lightweight & portable faas engine, is OpenFaaS reimagined, but without the cost and complexity of Kubernetes. It runs on a single host with very modest requirements, making it fast and easy to manage. Under the hood it uses containerd and Container Networking Interface (CNI) along with the same core OpenFaaS components from the main project.
A Terraform Module refers to a self-contained packages of Terraform configurations that are managed as a group. This repo is a Terraform Module and contains many "submodules" which can be composed together to create useful infrastructure patterns.
This repository defines a Terraform module, which you can use in your
code by adding a module configuration and setting its source parameter to URL of this repository:
module "hetzner" {
source = "https://github.com/itTrident/terraform-hetzner-faasd"
name = "hetzner"
}| Name | Version |
|---|---|
| terraform | >= 1.2.6 |
| hetzner | >= 1.35.1 |
| random | >= 3.3.2 |
| Name | Version |
|---|---|
| hetzner | >= 1.35.1 |
| random | >= 3.3.2 |
| Name | Type |
|---|---|
| hcloud_ssh_key | resource |
| hcloud_firewall | resource |
| hcloud_server | resource |
| hcloud_volume | resource |
| hcloud_floating_ip | resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| basic_auth_password | The basic auth password, if left empty, a random password is generated. | string |
null |
no |
| basic_auth_user | The basic auth user name. | string |
"" |
no |
| domain | A public domain for the faasd instance. This will be consumed by Caddy and install a Let's Encrypt certificate. | string |
"" |
no |
| Email used to order a certificate from Let's Encrypt | string |
"" |
no | |
| hcloud_api_key | API key for hetzner. | string |
"" |
yes |
| location | The name of the location to deploy the faasd into. | string |
"" |
yes |
| os_type | The name is to set the os_type. | string |
"" |
yes |
| server_type | The server type to use for the server. | string |
"" |
yes |
| name | The name of the faasd instance. | string |
"" |
yes |
| labels | A map of key/value labels. | map |
"" |
yes |
| port | Assign the port number and protocall to allow in Firewall Rules | number |
"" |
yes |
| ssh_key_name | Key name of the Key Pair to use for the instance. | string |
"" |
yes |
| ssh_pub_key | Public Key Pair to use for the instance. | string |
"" |
yes |
| volume_name | The name of the volume. | string |
"" |
yes |
| volume_size | The size of the volume. | number |
"" |
yes |
| volume_format | The format of the volume. | string |
"" |
yes |
| ip_type | The ip type of the volume. | string |
"" |
yes |
| Name | Description |
|---|---|
| basic_auth_password | The basic auth password. |
| basic_auth_user | The basic auth user name. |
| gateway_url | The url of the faasd gateway |
| ipv4_address | The public IP address of the faasd instance |
- faasd on Amazon Web Services with Terraform
- faasd on Google Cloud Platform with Terraform
- faasd on Microsoft Azure with Terraform
- faasd on DigitalOcean with Terraform
- faasd on Equinix Metal with Terraform
- faasd on Scaleway with Terraform
- faasd on Vultr with Terraform
- faasd on Linode with Terraform
- faasd on Exoscale with Terraform