diff --git a/roles/migration_run/tasks/add_hooks.yml b/roles/migration_run/tasks/add_hooks.yml new file mode 100644 index 0000000..d049d3e --- /dev/null +++ b/roles/migration_run/tasks/add_hooks.yml @@ -0,0 +1,45 @@ +# Allowed target_custers +# target_cluster: destination +# target_cluster: source +# +# Allowed phases +# phase: PreBackup +# phase: PostBackup +# phase: PreRestore +# phase: PostRestore +# + +- name: Create hook resources + k8s: + state: present + definition: "{{ lookup('template', 'mig-hook.yml.j2') }}" + vars: + hook_name: "{{ item.hook_name }}" + custom: "{{ item.custom }}" + target_cluster: "{{ item.target_cluster }}" + playbook: "{{ item.playbook }}" + loop: "{{ migration_hooks }}" + +- name: Init hook list + set_fact: + hooks_list: >- + {{ hooks_list|default([]) + [{ 'executionNamespace': item.execution_namespace, + 'serviceAccount': item.service_account, + 'phase': item.phase, + 'reference': + { 'name': item.hook_name, + 'namespace': migration_namespace + } + }] }} + loop: "{{ migration_hooks }}" + +- name: Add hooks to migration plan + k8s: + api_version: migration.openshift.io/v1alpha1 + kind: MigPlan + state: present + name: "{{ migration_plan_name }}" + namespace: "{{ migration_namespace }}" + definition: + spec: + hooks: "{{ hooks_list }}" diff --git a/roles/migration_run/tasks/main.yml b/roles/migration_run/tasks/main.yml index 1c9efdc..b8f4acd 100644 --- a/roles/migration_run/tasks/main.yml +++ b/roles/migration_run/tasks/main.yml @@ -10,6 +10,11 @@ - debug: msg: "Created migration plan : {{ migration_plan_name }}" + +- name: Add hooks + import_tasks: add_hooks.yml + when: migration_hooks|default([])|length > 0 + - name: Process PVs import_tasks: process_pvs.yml when: pv|default(false)|bool == true diff --git a/roles/migration_run/templates/mig-hook.yml.j2 b/roles/migration_run/templates/mig-hook.yml.j2 new file mode 100644 index 0000000..33701f2 --- /dev/null +++ b/roles/migration_run/templates/mig-hook.yml.j2 @@ -0,0 +1,10 @@ +apiVersion: migration.openshift.io/v1alpha1 +kind: MigHook +metadata: + name: {{ hook_name }} + namespace: {{ migration_namespace }} +spec: + custom: {{ custom }} + image: quay.io/konveyor/hook-runner:latest + playbook: {{ playbook | string | b64encode }} + targetCluster: {{ target_cluster }}