Terraform CodePipeline 認証エラー対応
ToC
概要
Terraform で管理する CodePipeline で GitHub 認証エラーが発生した為、その回避方法をまとめます。
terraform-provider-aws v3.0.0 で以下対応がされましたが、別の問題が発生している様です。
resource/aws_codepipeline: Removes GITHUB_TOKEN environment variable (#14175)
エラーが発生する経緯
terraform のコードは以下の様になっています。
1 | resource "aws_codepipeline" "deploy" { |
こちらで configuration = {...}
の設定で GitHub 認証をしています。
初回 terraform apply 実行時に OAuthToken に設定した値は tfstate ファイルに hash 化されて保存されます。
その後、何かしらリソースを更新すると、その tfstate にある hash 化された token が UpdatePipeline に渡され GitHub 認証エラーが発生する、
というものです。
なので、初回は CodePipeline で問題なく GitHub 認証されますが、その後、 terraform apply
実行しリソース更新後に CodePipeline で GitHub 認証エラーが発生します。
上記については以下 issue にて言及されていました。
回避策
1 | resource "aws_codepipeline" "deploy" { |
GitHub 認証を変更無視する様にし、 CodePipeline の認証を更新させない様にすることで
GitHub 認証エラーを回避できました。
1 | lifecycle { |
以前の provider バージョンで terraform plan
で OAuthToken が毎回差分に出てしまう問題で対応していたコードが舞い戻ってきました。
他の対応方法があればご教示いただければ幸いです。
以上
参考になれば幸いです。
Terraform CodePipeline 認証エラー対応
https://kenzo0107.github.io/2020/11/19/2020-11-20-terraform-codepipeline-github-oauth-error/