terraform-providersの開発手順

Terraformでの作業中に、Terraform Providerに(バグとも言えないような)軽微な不具合を発見したので、 PRを送るために開発環境構築・改修の検証を行った。

普段はGo言語で開発を行わないので、また似たような状況になった時に困らないように、 備忘録として開発環境構築・改修の検証の手順を残しておく。

Go言語のインストール

 $ brew install goenv
 $ vim ~/.bashrc // 追記内容は下記参考
 $ source ~/.bashrc
 $ goenv install 1.11.4
 $ goenv global 1.11.4
 $ mkdir $HOME/go

~/.bashrc の追記内容

# For goenv
export PATH="$HOME/.goenv/bin:$PATH"
if which goenv > /dev/null; then
  eval "$(goenv init -)"
fi
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

Terraform Providerの開発環境構築

README通りに進めていく。

 $ mkdir -p $GOPATH/src/github.com/terraform-providers
 $ cd $GOPATH/src/github.com/terraform-providers
 $ git clone git@github.com:terraform-providers/terraform-provider-aws
 $ cd $GOPATH/src/github.com/terraform-providers/terraform-provider-aws
 $ make build

テスト

 $ make test
 $ make testacc TESTARGS='-run=テストfuncton名'

実際に動かして検証したい時

まずビルドしたバイナリをPluginとして使えるようにする。

 $ mkdir -p $HOME/.terraform.d/darwin_amd64
 $ cp $GOPATH/bin/terraform-provider-aws $HOME/.terraform.d/darwin_amd64/terraform-provider-aws_vX.Y.Z // X.Y.Zは現行の最新版より大きい値にする

次に、検証に使うTerraformファイル内で下のようにprovider情報を修正して $ terraform init する。

provider "aws" {
 version = "~> X.Y"
}

おわり

追記

PRがマージされました。

github.com