💡
【備忘】Circle CI Server + terraform Orb + Google Cloud(GCP) ※OIDC無し
というかterraformのOrbでシェルを実行する方法
GOOGLE_APPLICATION_CREDENTIALSを使ってサービスアカウントとしての認証を行う
entrypointを上書きしてみたけど、いいのかこれは...
設定
.circleci/config.yml
version: 2.1
orbs:
terraform: circleci/terraform@3.5.0
executors:
default:
docker:
- image: hashicorp/terraform:1.10.4
entrypoint: /bin/sh
jobs:
plan:
parameters:
env:
type: string
default: stg
executor: default
environment:
GOOGLE_APPLICATION_CREDENTIALS: "/root/project/.credentials.json"
steps:
- checkout
- terraform/fmt:
path: terraform
recursive: true
- run:
name: "set credential"
command: |
echo ${CONTEXT_CREDENTIAL_JSON} > ${GOOGLE_APPLICATION_CREDENTIALS}
- terraform/plan:
path: terraform/google/envs/<< parameters.env >>
workflows:
version: 2
plan-stg:
jobs:
- plan:
env: dev
context: context-name
executor
terraformをインストールするのは嫌だったのでterraformの公式イメージを使用した上で、
ファイル書き込みのためにentrypointを /bin/sh
で上書き
executors:
default:
docker:
- image: hashicorp/terraform:1.10.4
entrypoint: /bin/sh
environment
GOOGLE_APPLICATION_CREDENTIALS
に JSONキーのファイルパス
CONTEXT_CREDENTIAL_JSON
にJSONキー(contextまたはプロジェクトの環境変数に設定しておく)
メモ
Circle CI ServerでのOIDCの使い方が分からなかったので(使えるんだろうか)
なかなかナレッジ見つけられなかったので備忘(もっと良い方法ありそう)
Discussion