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