Skip to content

ewilde/terraform-provider-openfaas

Repository files navigation

Terraform provider for OpenFaaS

Build Status

The terraform provider for OpenFaaS

Documentation

Full documentation, see: https://openfaas-tfe.edwardwilde.com/docs/providers/openfaas

Example Usage

resource "openfaas_function" "function_test" {
  name      = "test-function"
  image     = "functions/alpine:latest"
  f_process = "sha512sum"
  labels = {
    Group       = "London"
    Environment = "Test"
  }

  annotations = {
    CreatedDate = "Mon Sep  3 07:15:55 BST 2018"
  }
}

image

Building and Installing

Since this isn't maintained by Hashicorp, you have to install it manually. There are two main ways:

Download a release

Download and unzip the latest release.

Then, move the binary to your terraform plugins directory. The docs don't fully describe where this is.

  • On Mac, it's ~/.terraform.d/plugins/darwin_amd64
  • On Linux, it's ~/.terraform.d/plugins/linux_amd64
  • On Windows, it's $APPDATA\terraform.d\plugins\windows_amd64

Build using the Makefile

Install Go v1.9+ on your machine; clone the source, and let make install do the rest.

Mac

brew install go  # or upgrade
brew install dep # or upgrade
mkdir -p $GOPATH/src/github.com/ewilde; cd $GOPATH/src/github.com/ewilde
git clone https://github.com/ewilde/terraform-provider-openfaas 
cd terraform-provider-openfaas
make install
# it may take a while to download `hashicorp/terraform`. be patient.

Linux

Install go and dep from your favourite package manager or from source. Then:

mkdir -p $GOPATH/src/github.com/ewilde; cd $GOPATH/src/github.com/ewilde
git clone https://github.com/ewilde/terraform-provider-openfaas 
cd terraform-provider-openfaas
make install
# it may take a while to download `hashicorp/terraform`. be patient.

Windows

In PowerShell, running as Administrator:

choco install golang
choco install dep
choco install zip
choco install git # for git-bash
choco install make

In a shell that has Make, like Git-Bash:

mkdir -p $GOPATH/src/github.com/ewilde; cd $GOPATH/src/github.com/ewilde
git clone https://github.com/ewilde/terraform-provider-openfaas 
cd terraform-provider-openfaas
make install
# it may take a while to download `hashicorp/terraform`. be patient.

Developing the Provider

In order to test the provider, you can simply run make test.

$ make test

In order to run the full suite of Acceptance tests, run make testacc.

Note: At the moment the acceptance tests assume OpenFaaS gateway is running on http://localhost:8080 without basic authentication enabled.

$ make testacc

Building the documentation

Currently a bit manual ¯_(ツ)_/¯

  1. build the content
$ make website-build
  1. copy build output into gh-pages branch of this repo
$ git checkout gh-pages 
cp -r ../terraform-website/content/build/docs/providers/openfaas/ ./docs/providers/openfaas