concourse-k8s-resource

| 1 min read

concourse-k8s-resource は Concourse CI で、Kubernetes クラスターにコンテナイメージをデプロイするための Concource カスタムリソースです。

Concourse CI では、Resource という概念で、パイプラインから成果物を取得したり生成するターゲットを定義します。公式・サードパーティ含め多くのリソースが公開されています。

https://resource-types.concourse-ci.org

Git / Docker など、必ず使うリソースが提供されていれば、シェルスクリプトなどで実装することなく宣言的に利用でき、パイプライン内での再利用性も高くなります。

concourse-k8s-resource では宣言的スタイルを採用し、パイプラインにスクリプト記述することなくビルドしたコンテナイメージをk8s環境にリリースすることができます。

Concourseのk8sリソースはコミュニティ版のものが既にいくつか存在しています。
しかし、それらはResourceのバージョニング機能(/opt/resource/check)が実装されておらず、宣言的でジョブの依存関係(k8sデプロイ後に他のジョブ実行)を定義することができませんでした。
そもそもk8sのDeploymentにはバージョニング機能が備わっているので、これらをパイプラインで活用できないかと考えたことが開発のモチベーションになりました。
このk8sリソースはk8sのクライアントAPI(Go言語)を活用して、k8sのデプロイ・ロールバックやデプロイしたリソースのステータス/バージョンをチェックするものとなっています。

詳しくは README を参照してください。

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. 基本から理解するJWTとJWT認証の仕組み (2022-12-08)
  2. AWS認定資格を12個すべて取得したので勉強したことなどをまとめます (2022-12-12)
  3. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  4. Viteベースの高速テスティングフレームワークVitestを使ってみる (2022-12-28)
  5. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  6. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  7. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)
  8. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  9. GitHub Actions - 構成変数(環境変数)が外部設定できるようになったので用途を整理する (2023-01-16)
  10. Nuxt3入門(第7回) - Nuxt3のプラグイン・ミドルウェアを使う (2022-10-23)