1.3.4. 移行フックについて
移行フックを使用して、MTC (Migration Toolkit for Containers) を使用した移行中の特定の時点でカスタムコードを実行できます。単一の移行計画に最大 4 つの移行フックを追加し、各フックを移行の異なるフェーズで実行できます。
移行フックは、アプリケーションの休止状態のカスタマイズ、サポート外のデータタイプの手動の移行、および移行後のアプリケーションの更新などのタスクを実行します。
移行フックは、以下の移行手順のいずれかでソースまたはターゲットクラスターで実行されます。
-
PreBackup: リソースがソースクラスターでバックアップされる前 -
PostBackup: リソースがソースクラスターでバックアップされた後 -
PreRestore: リソースがターゲットクラスターで復元される前 -
PostRestore: リソースがターゲットクラスターで復元された後
Ansible Playbook またはカスタムフックコンテナーを使用してフックを作成できます。
Ansible Playbook
Ansible Playbook はフックコンテナーに設定マップとしてマウントされます。フックコンテナーは、MigPlan カスタムリソース (CR) に指定されるクラスター、サービスアカウント、および namespace を使用してジョブとして実行されます。ジョブは、デフォルトの再試行数 6 に達するか、正常に完了するまで実行を継続します。これは、最初の Pod がエビクトされるか、または強制終了される場合でも継続されます。
デフォルトの Ansible ランタイムイメージは registry.redhat.io/rhmtc/openshift-migration-hook-runner-rhel7:1.4 です。このイメージは Ansible Runner イメージをベースとしており、Ansible Kubernetes リソースの python-openshift および更新された oc バイナリーが含まれます。
オプション: デフォルトイメージの代わりに、追加の Ansible モジュールまたはツールを含むカスタム Ansible ランタイムイメージを使用できます。
カスタムフックコンテナー
Ansible Playbook またはカスタムコードを含むカスタムフックコンテナーを作成できます。