1.4.4.7. シークレット調整の設定
prehook と posthook AnsibleJobs がある main-sub おサブスクリプションの場合には、メイン/サブのサブスクリプションは prehook と posthook AnsibleJobs すべてまたはメインサブスクリプションが Git リポジトリーで更新されてから調整する必要があります。
Prehook AnsibleJobs と main サブスクリプションは継続的に調整し、新しい pre-AnsibleJob インスタンスを起動し直します。
- pre-AnsibleJob の実行後に、メインのサブスクリプションを再実行します。
- メインのサブスクリプションの使用が変更されると、サブスクリプションは再デプロイされます。再デプロイメントの手順に合わせて、メインのサブスクリプションステータスを更新する必要があります。
ハブのサブスクリプションステータスを
nil
にリセットします。サブスクリプションは、ターゲットクラスターにサブスクリプションをデプロイするときに合わせて更新されます。ターゲットクラスターでのデプロイメントが終了すると、ターゲットクラスターのサブスクリプションステータスが
"subscribed"
または"failed"
になり、ハブクラスターのサブスクリプションステータスに同期されます。- メインサブスクリプションが完了したら、新しい posthook AnsibleJob インスタンスが再起動されます。
ステータスが Done のサブスクリプションが更新されていることを確認します。以下の出力を参照してください。
-
subscription.status ==
"subscribed"
-
subscription.status ==
"propagated"
with all of the target clusters"subscribed"
-
subscription.status ==
AnsibleJob CR の作成時に、Kubernetes ジョブの CR が作成され、ターゲットの Ansible Tower に通信して Ansible Tower ジョブを起動します。ジョブが完了すると、ジョブの最終ステータスが AnsibleJob status.ansibleJobResult
に戻ります。
注記:
AnsibleJob status.conditions は、Kubernetes ジョブの結果作成の保存用に Ansible Job operator により予約されています。status.conditions には、実際の Ansible Tower ジョブのステータスは反映されません。
サブスクリプションコントローラーは、Ansible Tower ジョブのステータスを AnsibleJob.status.conditions
ではなく、AnsibleJob.status.ansibleJobResult
で確認します。
前述の prehook および posthook AnsibleJob ワークフローで説明されているように、Git リポジトリーでメインサブスクリプションを更新すると、新しい prehook および posthook AnsibleJob インスタンスが作成されます。これにより、1 つのメインサブスクリプションに複数の AnsibleJob インスタンスをリンクできます。
subscription.status.ansibleJobs で 4 つのフィールドが定義されます。
- lastPrehookJobs: 最新の prehook AnsibleJobs
- prehookJobsHistory: prehook AnsibleJobs の全履歴
- lastPosthookJobs: 最新の posthook AnsibleJobs
- PosthookJobsHistory: posthook AnsibleJobs 全履歴