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 →