CI/CD
全体図
簡単そうなのでGoogleCloudBuild を使う.以下は全体図.
graph LR
GIT[github] --> GCB
subgraph GCP
GCB --> |deploy| GKE
GCB --> |trigger| PS[pub/sub]
PS --> |push| CF[cloud function]
end
CF --> |Webhook| SL[slack]
service
基本的にサービスのデプロイはbranch名とサービス名(ディレクトリ名)が1対1に対応している branchにpushしたりmergeするとビルドが走る
google cloud functions
function の名前のブランチにpushすると更新される
Helm3-alpha
helm 以下のディレクトリにチャートが揃っており,
互いに共通の変数がディレクトリ直下のvalues.yaml
にしまわれている.
チャートごとの変数はそれぞれのチャートのディレクトリ以下にしまわれている.
チャート名やリリース名はkubeのリソース名に含まれるので,lowercase
で
-
か.
を使うようにする.
values.yamlを暗号化して復号化する際の権限の付与が terraform
でよくわからんかったので手動で付与
helm upgrade
でvalueが変わらなかったので,helm template
で生成してから k apply -f -
でやる方向で行く.
dev
prd
Tips
helm upgrade --install
release
が存在しなければ install
をしてくれるので kubectl apply
と同じと見た
upgrade --set hoge=hogehoge
ではなにもやらない場合がある
バグだった
今の所一回消す必要あり
面倒なので helm tempalte | kubectl apply -f -
使う.
同じバージョンで
image tag
を変えてもpod image tag
は変わらなかった.deployments.apps
のimage tag
も変わっていなかった.deployments.apps
は更新されない模様.helm history [release name]
には新しく追加されている.
詳しく書いてくれている 同じバージョンで--recreate-pod
を指定してもimage tag
は変わらなかった
← プラグインコンパイラAPI Client →