This repo contains a Terraform Module for how to deploy a faasd instance on the Google Cloud Platform 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:
provider "google" {
}
module "faasd" {
source = "github.com/jsiebens/terraform-google-faasd"
name = "faasd"
project = var.project
region = var.region
zone = var.zone
}
Name | Version |
---|---|
terraform | >= 1.0.0 |
>= 3.3 | |
random | >= 3.1.0 |
Name | Version |
---|---|
>= 3.3 | |
random | >= 3.1.0 |
Name | Type |
---|---|
google_compute_address.faasd | resource |
google_compute_firewall.faasd_gateway | resource |
google_compute_firewall.faasd_ssh | resource |
google_compute_instance.faasd | resource |
google_project_iam_member.faasd | resource |
google_service_account.faasd | resource |
random_password.faasd | 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 |
"admin" |
no |
domain | A public domain for the faasd instance. This will the use of Caddy and a Let's Encrypt certificate | string |
"" |
no |
Email used to order a certificate from Let's Encrypt | string |
"" |
no | |
machine_type | The machine type of the Compute Instance to use for the faasd instance (e.g. e2-micro). | string |
"e2-medium" |
no |
name | The name of the faasd instance. | string |
n/a | yes |
network | The name of the VPC Network where all resources should be created. | string |
"default" |
no |
project | The id of the GCP Project where all resources will be launched. | string |
null |
no |
region | The region in which all GCP resources will be launched. | string |
null |
no |
subnetwork | The name of the VPC Subnetwork where all resources should be created. Defaults to the default subnetwork for the network and region. | string |
null |
no |
tags | A list of the tags to be applied to the Compute Instance. | list(string) |
[ |
no |
zone | The zone in which all GCP resources will be launched. | string |
null |
no |
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 |