terraform-providersの開発手順
Terraformにバグを見つけたので、PRを送るためにまずGoの勉強から始めるよ ☺️(Go書いたことないマン)
— つかもと (@tsukakei1012) 2019年2月28日
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がマージされました。