ewilde / terraform-provider-openfaas

Terraform OpenFaaS provider
Mozilla Public License 2.0
47 stars 8 forks source link

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.

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
  2. 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