Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 33 additions & 22 deletions inventory.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,28 +154,39 @@ migration_spoke:
# storage and networking>

## Example Migration Target (uncomment to use as a baseline)
# - name: vmware-2w7dj
# type: vmware
# host: vcsrs00-vc.demo.example.com
# username: changeme
# password: changeme
# vddk:
# image: registry.example.com/openshift-virtualization-migration-vddk:latest
# username: "{{ container_username }}"
# password: "{{ container_password }}"
# sdkEndpoint: /sdk
# insecureSkipTlsVerify: true
# mapping:
# create: true
- name: vmware-2w7dj
type: vmware
host: vcsrs00-vc.demo.example.com
username: changeme
password: changeme
vddk:
image: registry.example.com/openshift-virtualization-migration-vddk:latest
username: "{{ container_username }}"
password: "{{ container_password }}"
sdkEndpoint: /sdk
insecureSkipTlsVerify: true
mapping:
create: true
esxi_hosts:
- id: host-1
password: pass1
ip: 10.10.10.123
user: root
- id: host-2
password: pass2
ip: 10.10.10.124
user: root

## Example Migration Target (uncomment to use as a baseline)
# - name: rhev-target-1 # Required
# type: ovirt
# host: rhev.demo.example.com
# username: changeme
# sdkEndpoint: /ovirt-engine/api #if not provided automatically will be added
# password: changeme
# insecureSkipTlsVerify: true
# mapping:
# create: true
- name: rhev-target-1 # Required
type: ovirt
host: rhev.demo.example.com
username: changeme
sdkEndpoint: /ovirt-engine/api #if not provided automatically will be added
password: changeme
insecureSkipTlsVerify: true
mapping:
create: true


...
1 change: 1 addition & 0 deletions playbooks/mtv_provider_vmware.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@
secretRef: "{{ vmware_credentials_secret_ref | default(omit, true) }}"
vddk:
image: "{{ vmware_vddk_init_image | default(omit, true) }}"
esxi_hosts: "{{ vmware_esxi_hosts | default('[]', true) | from_json }}"
...
5 changes: 5 additions & 0 deletions roles/aap_seed/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,10 @@ aap_seed_controller_credential_types:
- id: provider_name
type: string
label: Provider source
- id: esxi_host_list
type: string
label: ESXi configurations for migration network
multiline: true
required:
- name
- host
Expand All @@ -446,6 +450,7 @@ aap_seed_controller_credential_types:
vmware_vddk_init_image_password: "{% raw %}{ { vddk_init_image_password }}{% endraw %}"
vmware_vddk_init_image_credentials_secret: "{% raw %}{ { vddk_init_image_credentials_secret }}{% endraw %}"
provider: "{% raw %}{ { provider_name }}{% endraw %}"
vmware_esxi_hosts: "{% raw %}{ { esxi_host_list }}{% endraw %}"
env:
VMWARE_HOST: "{% raw %}{ { host }}{% endraw %}"
VMWARE_USER: "{% raw %}{ { username }}{% endraw %}"
Expand Down
5 changes: 5 additions & 0 deletions roles/aap_seed/templates/vmware/target_credential.yml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ inputs:
vddk_init_image_credentials_secret: {{ migration_target['vddk']['credentialsSecret'] }}
{% endif %}
{% endif %}

{% if 'esxi_hosts' in migration_target and migration_target['esxi_hosts'] is not none %}
esxi_host_list: |
{{ migration_target.esxi_hosts | to_json }}
{% endif %}
42 changes: 42 additions & 0 deletions roles/mtv_management/tasks/_mtv_provider_vmware.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,46 @@
until:
- mtv_management_r_vmware_provider.result is defined
- mtv_management_r_vmware_provider.result | length > 0

- name: _mtv_provider_vmware | Create VMware Host credentials secret
redhat.openshift.k8s:
state: present
definition:
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: "{{ mtv_management_populated_vmware_target['name'] }}-{{ vmware_esxi.id }}-secret"
namespace: "{{ mtv_management_provider_namespace }}"
data:
insecureSkipVerify: "{{ (vmware_esxi.insecureSkipTlsVerify | default(mtv_management_vmware_provider_insecure_skip_tls_verify) | bool) | b64encode if 'certificate' not in vmware_esxi or vmware_esxi['certificate'] | default('') | trim | length == 0 else false | b64encode }}" # noqa: yaml[line-length]
password: "{{ vmware_esxi.password | b64encode }}"
user: "{{ vmware_esxi.user | b64encode }}"
ip: "{{ vmware_esxi.ip | b64encode }}"
provider: "{{ mtv_management_populated_vmware_target['name'] | b64encode }}"
apply: true
loop: "{{ mtv_management_populated_vmware_target.esxi_hosts | default([]) }}"
loop_control:
loop_var: vmware_esxi
when:
- mtv_management_populated_vmware_target.esxi_hosts is defined
- mtv_management_populated_vmware_target.esxi_hosts | length > 0

- name: _mtv_provider_vmware | Create VMware Host resource
redhat.openshift.k8s:
state: present
definition: "{{ (lookup('ansible.builtin.template', 'vmware_esxi_skeleton.yml.j2') | from_yaml) }}"
apply: true
register: mtv_management_r_vmware_esxi
retries: 100
delay: 10
until:
- mtv_management_r_vmware_esxi.result is defined
- mtv_management_r_vmware_esxi.result | length > 0
loop: "{{ mtv_management_populated_vmware_target.esxi_hosts | default([]) }}"
loop_control:
loop_var: vmware_esxi
when:
- mtv_management_populated_vmware_target.esxi_hosts is defined
- mtv_management_populated_vmware_target.esxi_hosts | length > 0
...
14 changes: 14 additions & 0 deletions roles/mtv_management/templates/vmware_esxi_skeleton.yml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: forklift.konveyor.io/v1beta1
kind: Host
metadata:
name: "{{ mtv_management_populated_vmware_target['name'] }}-{{ vmware_esxi.id }}-config"
namespace: "{{ mtv_management_provider_namespace }}"
spec:
id: "{{ vmware_esxi.id }}"
ipAddress: "{{ vmware_esxi.ip }}"
provider:
name: "{{ mtv_management_populated_vmware_target['name'] }}"
namespace: "{{ mtv_management_provider_namespace }}"
secret:
name: "{{ mtv_management_populated_vmware_target['name'] }}-{{ vmware_esxi.id }}-secret"
namespace: "{{ mtv_management_provider_namespace }}"