jsiebens / terraform-google-faasd

Terraform Module for how to deploy a faasd instance on the Google Cloud Platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

faasd for Google Cloud Platform

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.

What's a Terraform Module?

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.

How do you use this module?

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
}

Requirements

Name Version
terraform >= 1.0.0
google >= 3.3
random >= 3.1.0

Providers

Name Version
google >= 3.3
random >= 3.1.0

Resources

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

Inputs

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 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)
[
"faasd"
]
no
zone The zone in which all GCP resources will be launched. string null no

Outputs

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

See Also

About

Terraform Module for how to deploy a faasd instance on the Google Cloud Platform

License:MIT License


Languages

Language:HCL 91.6%Language:Shell 8.4%