第1章 ランタイム時の認証について
イメージを構築するとき、次のシナリオで認証を定義する必要が生じる場合があります。
- コンテナーレジストリーに対する認証
- Git からのソースコードの取得
認証は、必要な機密データが保存されるシークレットの定義を通じて行われます。
1.1. ビルドシークレットアノテーション
アノテーション build.shipwright.io/referenced.secret: "true"
をビルドシークレットに追加できます。このアノテーションに基づいて、ビルドコントローラーは、ビルドシークレットの作成、更新、削除などのイベントがトリガーされたときに調整アクションを実行します。以下の例は、シークレットでのアノテーションの使用方法を示しています。
apiVersion: v1 data: .dockerconfigjson: <pull_secret> 1 kind: Secret metadata: annotations: build.shipwright.io/referenced.secret: "true" 2 name: secret-docker type: kubernetes.io/dockerconfigjson
このアノテーションは、ビルドインスタンスで参照されないシークレットにフィルターを設定します。たとえば、シークレットにこのアノテーションがない場合は、そのシークレットに対してイベントがトリガーされても、ビルドコントローラーによる調整はありません。イベントのトリガーを調整して、ビルドコントローラーがビルド設定の検証を再トリガーできるようになり、依存関係が欠落しているかどうかが理解しやすくなります。