1.3.4. 移行フックについて
移行フックを使用して、移行中の特定の時点で Ansible Playbook を実行できます。フックは移行計画の作成時に追加されます。
Ansible Playbook を使用する必要がない場合は、カスタムコンテナーイメージを作成し、これを移行計画に追加することができます。
移行フックは、アプリケーションの休止状態のカスタマイズ、サポート外のデータタイプの手動の移行、および移行後のアプリケーションの更新などのタスクを実行します。
単一の移行フックは、以下の移行手順のいずれかでソースまたはターゲットクラスターで実行されます。
- PreBackup: バックアップタスクがソースクラスターで開始される前
- PostBackup: バックアップタスクがソースクラスターで完了した後
- PreRestore: 復元タスクがターゲットクラスターで開始される前
PostRestore: 復元タスクがターゲットクラスターで完了した後
1 つのフックをそれぞれの移行ステップに割り当て、単一の移行計画について最大 4 つのフックを割り当てることができます。
デフォルトの hook-runner
イメージは registry.redhat.io/rhcam-1-2/openshift-migration-hook-runner-rhel7
です。このイメージは Ansible Runner をベースとしており、Ansible Kubernetes リソース用の python-openshift
および更新された oc
バイナリーが含まれます。追加の Ansible モジュールまたはツールで独自のフックイメージを作成することもできます。
Ansible Playbook はフックコンテナーに ConfigMap としてマウントされます。フックコンテナーは、指定されたサービスアカウントおよび namespace を使用してクラスターでジョブとして実行されます。ジョブは、初期の Pod がエビクトされるか、または強制終了される場合でも、デフォルトの backoffLimit
(6
) または正常に完了した状態に達するまで実行されます。