1.4.6.3.4. Git リポジトリーのサブスクリプションの例
1.4.6.3.4.1. Git リポジトリーの特定ブランチおよびディレクトリーのサブスクライブ リンクのコピーリンクがクリップボードにコピーされました!
このサブスクリプションの例では、apps.open-cluster-management.io/git-path のアノテーションは、チャネルに指定されている Git リポジトリーの sample_app_1/dir1 ディレクトリーにある Helm チャートと Kubernetes リソースすべてを、サブスクリプションがサブスクライブするように指定します。サブスクリプションは、デフォルトで master ブランチにサブスクライブします。このサブスクリプションの例では、apps.open-cluster-management.io/git-branch: branch1 のアノテーションを指定して、リポジトリーの branch1 ブランチをサブスクライブしています。
1.4.6.3.4.2. .kubernetesignore ファイルの追加 リンクのコピーリンクがクリップボードにコピーされました!
Git リポジトリーの root ディレクトリーまたは、サブスクリプションのアノテーションで指定した apps.open-cluster-management.io/git-path ディレクトリーに .kubernetesignore ファイルを追加できます。
この .kubernetesignore ファイルを使用して、サブスクリプションがリポジトリーから Kubernetes リソースか、Helm チャートをデプロイするときに無視するファイルまたはサブディレクトリー、あるいは両方を指定することができます。
また、.kubernetesignore ファイいるを使用して、詳細に絞り込み、選択した Kubernetes リソースだけを適用することも可能です。.kubernetesignore ファイルのパターン形式は、.gitignore ファイルと同じです。
apps.open-cluster-management.io/git-path アノテーション外定義されていない場合には、サブスクリプションは、リポジトリーの root ディレクトリーで .kubernetesignore ファイルを検索します。apps.open-cluster-management.io/git-path フィールドが定義されている場合には、サブスクリプションは apps.open-cluster-management.io/github-path ディレクトリーで .kubernetesignore ファイルを検索します。サブスクリプションは、他のディレクトリーでは .kubernetesignore ファイルの検索は行いません。
1.4.6.3.4.3. Kustomize の適用 リンクのコピーリンクがクリップボードにコピーされました!
サブスクライブする Git のフォルダーに kustomization.yaml または kustomization.yml ファイルがある場合には、kustomize が適用されます。
spec.packageOverrides を使用して、サブスクリプションのデプロイメント時に kustomization を上書きできます。
kustomization.yaml ファイルを上書きするには、packageOverrides に packageName: kustomization が必要です。上書きは、新規エントリーを追加するか、既存のエントリーを更新します。既存のエントリーは削除されません。
1.4.6.3.4.4. GitHub Webhook の有効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Git チャネルのサブスクリプションは、チャネルで指定されている GitHub リポジトリーを 1 分毎にクローンし、コミット ID が変更されたら、変更が適用されます。または、リポジトリーのプッシュまたはプルの Webhook イベント通知を Git リポジトリーが送信する場合にのみ、変更を適用するようにサブスクリプションを設定できます。
Git リポジトリーで Webhook を設定するには、ターゲット Webhook ペイロード URL と、シークレット (任意) が必要です。
1.4.6.3.4.4.1. ペイロード URL リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターでルート (ingress) を作成し、サブスクリプション Operator の Webhook イベントリスナーサービスを公開します。
oc create route passthrough --service=multicluster-operators-subscription -n open-cluster-management
oc create route passthrough --service=multicluster-operators-subscription -n open-cluster-management
次に、oc get route multicluster-operators-subscription -n open-cluster-management コマンドを使用して、外部からアクセスできるホスト名を見つけます。webhook のペイロード URL は https://<externally-reachable hostname>/webhook です。
1.4.6.3.4.4.2. Webhook シークレット リンクのコピーリンクがクリップボードにコピーされました!
Webhook シークレットは任意です。チャネル namespace に Kubernetes Secret を作成します。シークレットには data.secret を含める必要があります。以下の例を参照してください。
data.secret の値は、使用する base-64 でエンコードされた WebHook シークレットに置き換えます。
ベストプラクティス: Git リポジトリーごとに一意のシークレットを使用してください。
1.4.6.3.4.4.3. Git リポジトリーでの Webhook の設定 リンクのコピーリンクがクリップボードにコピーされました!
ペイロード URL および Webhook シークレットを使用して Git リポジトリーで Webhook を設定します。
1.4.6.3.4.4.4. チャネルでの Webhook イベント通知の有効化 リンクのコピーリンクがクリップボードにコピーされました!
サブスクリプションチャネルにアノテーションを追加します。以下の例を参照してください。
oc annotate channel.apps.open-cluster-management.io <channel name> apps.open-cluster-management.io/webhook-enabled="true"
oc annotate channel.apps.open-cluster-management.io <channel name> apps.open-cluster-management.io/webhook-enabled="true"
WebHook の設定にシークレットを使用した場合には、これについても、チャネルにアノテーションを付けます。<the_secret_name> は Webhook シークレットを含む Kubernetes Secret 名に置き換えます。
oc annotate channel.apps.open-cluster-management.io <channel name> apps.open-cluster-management.io/webhook-secret="<the_secret_name>"
oc annotate channel.apps.open-cluster-management.io <channel name> apps.open-cluster-management.io/webhook-secret="<the_secret_name>"
1.4.6.3.4.4.5. Webhook 対応のチャネルのサブスクリプション リンクのコピーリンクがクリップボードにコピーされました!
サブスクリプションには Webhook 固有の設定は必要ありません。