Open11
Terraform で Terraform の CI/CD をする CodePipeline を構築する
やりたいこと
- AWS CodePipeline で Terraform の CI/CD パイプラインを構築したい。
- そのパイプラインを Terraform で構築したい。
機能
- Terraform の CI
- Terraform の Apply
- コンテナ の CI
- コンテナイメージの配布
- 開発者がローカルPCで作成したカスタムイメージを Amazon ECR の Repository に登録できる
- CodeBuild Project が Amazon ECR の Repository から カスタムイメージを取得できる
TODO
-
CodeBuile で実行する Script を作成する
terraform validate
tflint
tfsec
terraform plan
tfcmt
- Module化する
Inspired
- aws-samples/aws-codepipeline-terraform-cicd-samples
- Multi-Region Terraform Deployments with AWS CodePipeline using Terraform Built CI/CD | AWS DevOps Blog
- https://www.terraform-best-practices.com/
- Terraform を使用するためのベスト プラクティス | Google Cloud
- TerraformのCI/CDパイプラインを実装してみた | DevelopersIO
- Secure and analyse your Terraform code using AWS CodeCommit, AWS CodePipeline, AWS CodeBuild and tfsec | AWS DevOps Blog
- 俺のTerraform Pipeline #devio2022 | DevelopersIO
- TerraformのコードをスキャンするSnyk IaC(+OSSのツール)をGitHub Actionsで試す - Qiita
pull access denied for public.ecr.aws
同じ問題に悩まされた。
大変勉強になった。
ECR public repositories からイメージをpullできなくなったときの対応方法 ( pull access denied for public.ecr.aws ) - Qiita
AWS CodePipeline の手動実行
いまさら input param を設定できないことに気づいた。
cf. amazon web services - AWS CodeBuild/CodePipeline user input parameters - Stack Overflow
cf. amazon web services - In AWS CodePipeline do we have an option to provide a parameter at run time - Stack Overflow