概要
Concourseを四半期運用し、ある程度運用できるようになりました。
ここではパイプラインの設定と運用していてことについて説明します。
もしGKEで起動する場合にはこちらの「GKEでConcourseを使うには」も是非どうぞ。
環境
- Kubernetes(GKE): v1.9.2
- Concourse: v3.9.0
- COS: v4.4.86+
ハマリポイント
resource-typeのtagを変更しても更新されない
==============================================================
v3.10で解決したみたいです
https://concourse-ci.org/download.html#v3100
Previously, tags on a resource type didn’t get no respect. They are now respected.
==============================================================
以下のresource-type
のタグをv1
からv2
に変更してもDockerイメージは更新されません。
これはタグが更新されてもdocker pull
が実行されないためのようです。
resource_types:
- name: dummy
type: docker-image
source:
repository: watawuwu/test-dummy-resource
tag: v1
resources:
- name: dummy
type: dummy
Workaround
resource-type.name
の名前を変更しちゃいます。
resource.type
の修正も必要ですが、resource.name
の修正は不要なので変更箇所は少なくて済みます。
resource_types:
- name: dummy-v2
type: docker-image
source:
repository: watawuwu/test-dummy-resource
tag: v2
resources:
- name: dummy
type: dumm-v2
web hook使うresourceの定期checkを無効化できない
Resourceのcheck間隔(resource.check_every
)はデフォルト値が1mです。
webhook_token
を利用する場合は定期的なcheckは不要ですが、定期チェックを無効化する方法が見つかりません。
Workaround
-
resource.check_every
を長時間にする設定する
関連Issue
-
Allow disabling
check_every
entirely for resources · Issue #575 · concourse/concourse · GitHub- このIssueでは解決できてない気がする
Jobのパラメーターを動的変更できない
task.config.params
で定義した値を実行時ごとに変更できません。
ドキュメントにも以下のように記載されています。
they do not support interpolation
fly execute
で実行するone-off
形式のタスクでであれば、以下のように環境変数経由で変更することができます。
FOO=test fly execute
workerを再起動すると自動的に復帰できない
v3.6.0時に遭遇した事象だったのでv3.9.0で改めて動作確認をしました。
様々なエラーが出力され一時的にJobも失敗しますが、時間経過するとJobを実行できるようになりました。
Resourceで使われているdockerイメージの再取得などを実行しているようですが、VolumeのPermissionエラーなども発生するのでそっ閉じしました。