From 7d72716f1b6405abc2ec50925c2d5c0ed98b3943 Mon Sep 17 00:00:00 2001 From: Lucas Burigo <281664+burigolucas@users.noreply.github.com> Date: Thu, 11 Jun 2026 10:07:39 +0200 Subject: [PATCH 1/3] chore: update documentation, add pre-commit workflow --- .github/workflows/pre-commit.yml | 121 +++ .markdownlint-cli2.yaml | 3 +- .pre-commit-config.yaml | 27 +- README.md | 84 +- requirements-ci.txt | 1 + roles/aap_deploy/README.md | 56 +- roles/aap_machine_credentials/README.md | 74 +- roles/aap_seed/README.md | 1054 +++++++++++------------ roles/bootstrap/README.md | 116 +-- roles/mtv_management/README.md | 333 +++---- roles/mtv_migrate/README.md | 406 ++++----- roles/network_mgmt/README.md | 156 ++-- roles/operator_management/README.md | 614 ++++++------- roles/validate_migration/README.md | 96 +-- roles/vm_backup_restore/README.md | 72 +- roles/vm_hot_plug/README.md | 40 +- roles/vm_lifecycle/README.md | 64 +- roles/vm_mac_address/README.md | 48 +- roles/vm_ssh/README.md | 90 +- scripts/check-documentation.sh | 27 + scripts/docsible-collection-template.md | 20 +- scripts/docsible-role-template.md | 18 +- scripts/generate-role-list.py | 52 ++ scripts/update-documentation.sh | 44 +- 24 files changed, 1942 insertions(+), 1674 deletions(-) create mode 100644 .github/workflows/pre-commit.yml create mode 100755 scripts/check-documentation.sh create mode 100755 scripts/generate-role-list.py diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 0000000..e924a2d --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,121 @@ +name: Pre-commit Checks + +# ============================================================================ +# WORKFLOW: PRE-COMMIT VALIDATION +# ============================================================================ +# +# This workflow runs all pre-commit hooks configured in .pre-commit-config.yaml +# to validate PRs. This ensures that external contributors who may not have +# pre-commit hooks installed locally still get the same validation feedback. +# +# CHECKS PERFORMED: +# ----------------- +# All hooks from .pre-commit-config.yaml including: +# - Documentation generation and validation (README.md + role READMEs) +# - Markdown linting (markdownlint-cli2) +# - Ansible linting (ansible-lint) +# - Secret scanning (gitleaks) +# - Merge conflict detection +# - Trailing whitespace +# - No direct commits to main branch +# - Other standard pre-commit hooks +# +# DESIGN RATIONALE: +# ----------------- +# Uses pull_request event for BOTH internal and external PRs because: +# 1. Pre-commit hooks are READ-ONLY operations (no secrets needed) +# 2. No write permissions required (workflow just fails the check) +# 3. Provides immediate feedback to external contributors (no approval gate) +# 4. Simpler than duplicating logic in custom CI steps +# +# SECURITY: +# --------- +# Safe for external PRs because: +# - No repository secrets accessed +# - Only read permissions (contents: read) +# - Runs same validations as local pre-commit hooks +# - Workflow failure is the feedback mechanism +# +# ============================================================================ + +on: + pull_request: + types: [opened, synchronize, reopened] + branches: ["main"] + +permissions: + contents: read # Only read access needed for checkout and validation + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'pip' + + - name: Install system dependencies + run: | + # Install dependencies needed for pre-commit hooks + pip install pre-commit + pip install -r requirements-ci.txt + + - name: Cache pre-commit environments + uses: actions/cache@v4 + with: + path: ~/.cache/pre-commit + key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }} + restore-keys: | + pre-commit-${{ runner.os }}- + + - name: Run pre-commit hooks + run: | + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "🔍 Running all pre-commit hooks" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" + + # Run all pre-commit hooks on all files + # This includes: + # - Documentation generation and validation + # - Markdown linting + # - Ansible linting + # - Secret scanning + # - And all other configured hooks + + if pre-commit run --all-files --show-diff-on-failure --color=always; then + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "✅ All pre-commit checks passed!" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + exit 0 + else + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "❌ Pre-commit checks failed!" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" + echo "📝 How to fix:" + echo "" + echo "1. Install pre-commit hooks locally:" + echo " pre-commit install" + echo "" + echo "2. Run pre-commit on all files:" + echo " pre-commit run --all-files" + echo "" + echo "3. Fix any issues reported above" + echo "" + echo "4. Commit and push your changes" + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "💡 Tip: Installing pre-commit hooks locally will catch these" + echo " issues before you push, providing faster feedback!" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" + exit 1 + fi diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml index 0e658a3..7c58a18 100644 --- a/.markdownlint-cli2.yaml +++ b/.markdownlint-cli2.yaml @@ -32,8 +32,7 @@ config: ol-prefix: false # MD029 reference-links-images: false # MD052 table-column-style: false # MD060 - ul-style: # MD004 - style: "asterisk" + ul-style: false # MD004 # Keep this item last due to length proper-names: false diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index be28b72..d8b5fbc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -35,16 +35,37 @@ repos: hooks: - id: ansible-lint additional_dependencies: - - ansible-core==2.20.0 - - distlib + - ansible-core==2.20.0 + - distlib stages: [pre-commit] pass_filenames: false always_run: true entry: "ansible-lint" - args: ["-c", ".ansible-lint"] + args: ["-c", ".ansible-lint", "--strict"] - repo: https://github.com/gitleaks/gitleaks rev: v8.30.0 hooks: - id: gitleaks + + # Documentation validation + # Ensures generated documentation (README.md and role READMEs) are up-to-date + - repo: local + hooks: + - id: update-documentation + name: Generate documentation + entry: bash scripts/update-documentation.sh + language: system + pass_filenames: false + always_run: true + verbose: true + description: Regenerates README.md and role READMEs using docsible + + - id: check-documentation + name: Verify documentation is committed + entry: bash scripts/check-documentation.sh + language: system + pass_filenames: false + always_run: true + description: Checks that generated documentation has no uncommitted changes ... diff --git a/README.md b/README.md index cc0b2e3..4c468e7 100644 --- a/README.md +++ b/README.md @@ -5,44 +5,62 @@ [![Semantic Versioning](https://img.shields.io/badge/semver-2.0.0-blue?style=flat-square)](https://semver.org/) [![License](https://img.shields.io/github/license/redhat-cop/openshift_virtualization_migration?style=flat-square)](LICENSE) -## Table of Contents - -* [Description](#description) -* [Requirements](#requirements) -* [Installation](#installation) -* [Documentation](#documentation) - * [Contributing](CONTRIBUTING.md) - * [Disconnected Environment](docs/disconnected_environment_guide.md) - * [Secure Credential Management](docs/secure_credential_management.md) - * [Secure Credential Practices](docs/secure_credential_practices.md) -* [Roles](#roles) - * [aap_deploy](roles/aap_deploy/README.md) - * [aap_machine_credentials](roles/aap_machine_credentials/README.md) - * [aap_seed](roles/aap_seed/README.md) - * [bootstrap](roles/bootstrap/README.md) - * [create_mf_aap_token](roles/create_mf_aap_token/README.md) - * [mtv_management](roles/mtv_management/README.md) - * [mtv_migrate](roles/mtv_migrate/README.md) - * [network_mgmt](roles/network_mgmt/README.md) - * [operator_management](roles/operator_management/README.md) - * [validate_migration](roles/validate_migration/README.md) - * [vm_backup_restore](roles/vm_backup_restore/README.md) - * [vm_collect](roles/vm_collect/README.md) - * [vm_hot_plug](roles/vm_hot_plug/README.md) - * [vm_lifecycle](roles/vm_lifecycle/README.md) - * [vm_mac_address](roles/vm_mac_address/README.md) - * [vm_networking](roles/vm_networking/README.md) - * [vm_patching](roles/vm_patching/README.md) - * [vm_ssh](roles/vm_ssh/README.md) -* [Use Cases](#use-cases) -* [Testing](#testing) -* [Release Notes](CHANGELOG.md) -* [License](#license) + + +- [Ansible for OpenShift Virtualization Migration](#ansible-for-openshift-virtualization-migration) + - [Description](#description) + - [Documentation](#documentation) + - [Release Notes](#release-notes) + - [Roles](#roles) + - [Requirements](#requirements) + - [Installation](#installation) + - [Use Cases](#use-cases) + - [Testing](#testing) + - [Support](#support) + - [License](#license) + + ## Description This collection enables the migration journey of Virtual Machine (VM) workloads from existing hypervisors to Red Hat OpenShift Virtualization using Ansible Automation Platform. Additionally it provides content for the management and maintenance of VM workloads within Red Hat OpenShift Virtualization. +## Documentation + +* [Contributing Guide](CONTRIBUTING.md) +* [Disconnected Environment Setup](docs/disconnected_environment_guide.md) +* [Secure Credential Management](docs/secure_credential_management.md) +* [Secure Credential Practices](docs/secure_credential_practices.md) + +## Release Notes + +See [CHANGELOG.md](CHANGELOG.md) for release history and changes. + +## Roles + +This collection includes the following roles for managing OpenShift Virtualization migrations: + + +* [aap_deploy](roles/aap_deploy/README.md) - Deploys an instance of Ansible Automation Platform. +* [aap_machine_credentials](roles/aap_machine_credentials/README.md) - Management of Machine Credentials. +* [aap_seed](roles/aap_seed/README.md) - Populates an Ansible Automation Platform instance. +* [bootstrap](roles/bootstrap/README.md) - Initialization of the Ansible for OpenShift Virtualization Migration environment. +* [create_mf_aap_token](roles/create_mf_aap_token/README.md) - create_mf_aap_token +* [mtv_management](roles/mtv_management/README.md) - Management of the Migration Toolkit for Virtualization (MTV). +* [mtv_migrate](roles/mtv_migrate/README.md) - Migration of Virtual Machines from Source to Destination. +* [network_mgmt](roles/network_mgmt/README.md) - Management of network related components. +* [operator_management](roles/operator_management/README.md) - Management of OpenShift Operators. +* [validate_migration](roles/validate_migration/README.md) - Verification of an Ansible for OpenShift Virtualization Migration environment. +* [vm_backup_restore](roles/vm_backup_restore/README.md) - Virtual Machine backup and restore capabilities. +* [vm_collect](roles/vm_collect/README.md) - Collection of Migration Toolkit for Virtualization inventory information. +* [vm_hot_plug](roles/vm_hot_plug/README.md) - Hot Plug Virtual Machine resources. +* [vm_lifecycle](roles/vm_lifecycle/README.md) - Management of the lifecycle activities of Virtual Machines. +* [vm_mac_address](roles/vm_mac_address/README.md) - Management of Virtual Machine MAC Addresses. +* [vm_networking](roles/vm_networking/README.md) - Management of Virtual Machine networking. +* [vm_patching](roles/vm_patching/README.md) - Patching related activities for Virtual Machines. +* [vm_ssh](roles/vm_ssh/README.md) - Management of SSH keys for Virtual Machines in OpenShift. + + ## Requirements The following Ansible Collections are required: diff --git a/requirements-ci.txt b/requirements-ci.txt index 1854135..7a13399 100644 --- a/requirements-ci.txt +++ b/requirements-ci.txt @@ -3,3 +3,4 @@ distlib==0.4.0 antsibull-changelog==0.35.0 docsible==0.8.0 python-semantic-release==10.5.3 +md-toc>=9.0.0 diff --git a/roles/aap_deploy/README.md b/roles/aap_deploy/README.md index fa1795d..8d11635 100644 --- a/roles/aap_deploy/README.md +++ b/roles/aap_deploy/README.md @@ -26,28 +26,32 @@ Description: Deploys an instance of Ansible Automation Platform. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| +| [`aap_deploy_aap_channel`](defaults/main.yml#L53) | str | `{{ aap_channel ¦ default('stable-2.6') }}` | None | None | None | | [`aap_deploy_aap_install`](defaults/main.yml#L7) | bool | `True` | None | True | Boolean to allow AAP installation and subscription attachment | +| [`aap_deploy_cac_collection`](defaults/main.yml#L49) | str | `` | None | True | Ansible Automation Platform configuration collection | | [`aap_deploy_controller_username`](defaults/main.yml#L18) | str | `{{ controller_username ¦ default('admin', true) }}` | None | True | Username for AAP Controller authentication | -| [`aap_deploy_openshift_host`](defaults/main.yml#L23) | str | `{{ openshift_host }}` | None | True | OpenShift cluster hostname | | [`aap_deploy_openshift_api_key`](defaults/main.yml#L28) | str | `{{ openshift_api_key }}` | None | False | OpenShift API authentication key | +| [`aap_deploy_openshift_host`](defaults/main.yml#L23) | str | `{{ openshift_host }}` | None | True | OpenShift cluster hostname | | [`aap_deploy_openshift_verify_ssl`](defaults/main.yml#L33) | str | `{{ openshift_verify_ssl }}` | None | False | Verify SSL certificates for OpenShift connection | | [`aap_deploy_validate_components`](defaults/main.yml#L38) | list | `[]` | None | True | Ansible Automation Platform component validation | | [`aap_deploy_validate_components.0`](defaults/main.yml#L38) | str | `{{ aap_instance_name + '-controller-web' if aap_version is not defined or aap_version is version('2.5', '>=') else aap_instance_name + '-web' }}` | None | True | Ansible Automation Platform component validation | | [`aap_deploy_validate_components.1`](defaults/main.yml#L38) | str | `{{ aap_instance_name + '-controller-task' if aap_version is not defined or aap_version is version('2.5', '>=') else aap_instance_name + '-task' }}` | None | True | Ansible Automation Platform component validation | | [`aap_deploy_validate_components.2`](defaults/main.yml#L38) | str | `{{ aap_instance_name + '-gateway' if aap_version is not defined or aap_version is version('2.5', '>=') else '' }}` | None | True | Ansible Automation Platform component validation | -| [`aap_deploy_cac_collection`](defaults/main.yml#L49) | str | `` | None | True | Ansible Automation Platform configuration collection | -| [`aap_deploy_aap_channel`](defaults/main.yml#L53) | str | `{{ aap_channel ¦ default('stable-2.6') }}` | None | None | None | 🖇️ Full descriptions for vars in defaults/main.yml
+`aap_deploy_aap_channel`: None +
`aap_deploy_aap_install`: Setting this variable to true will install AAP and attach a valid subscription based on your account.
-`aap_deploy_controller_username`: Username used to authenticate against the AAP Controller. +`aap_deploy_cac_collection`: Determines which collection to use for configuring AAP based on the version.
-`aap_deploy_openshift_host`: The hostname or API endpoint of the OpenShift cluster to validate bearer token. +`aap_deploy_controller_username`: Username used to authenticate against the AAP Controller.
`aap_deploy_openshift_api_key`: API key used to authenticate against the OpenShift cluster.
+`aap_deploy_openshift_host`: The hostname or API endpoint of the OpenShift cluster to validate bearer token. +
`aap_deploy_openshift_verify_ssl`: Whether to verify SSL certificates when connecting to OpenShift.
`aap_deploy_validate_components`: The names of the components to verify is running after installation. @@ -58,10 +62,6 @@ Description: Deploys an instance of Ansible Automation Platform.
`aap_deploy_validate_components.2`: The names of the components to verify is running after installation.
-`aap_deploy_cac_collection`: Determines which collection to use for configuring AAP based on the version. -
-`aap_deploy_aap_channel`: None -

### Tasks @@ -104,25 +104,6 @@ Description: Deploys an instance of Ansible Automation Platform. ## Task Flow Graphs -### Graph for subscribe.yml - -```mermaid -flowchart TD -Start -classDef block stroke:#3498db,stroke-width:2px; -classDef task stroke:#4b76bb,stroke-width:2px; -classDef includeTasks stroke:#16a085,stroke-width:2px; -classDef importTasks stroke:#34495e,stroke-width:2px; -classDef includeRole stroke:#2980b9,stroke-width:2px; -classDef importRole stroke:#699ba7,stroke-width:2px; -classDef includeVars stroke:#8e44ad,stroke-width:2px; -classDef rescue stroke:#665352,stroke-width:2px; - - Start-->|Import role| subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_0([subscribe call bootstrap role to subscribe
When: **bootstrap aap default false bool**
import_role: infra openshift virtualization migration bootstrap]):::importRole - subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_0-->|Import role| subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_1([subscribe call bootstrap role to subscribe
When: **not bootstrap aap default false bool**
import_role: infra openshift virtualization migration bootstrap]):::importRole - subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_1-->End -``` - ### Graph for install.yml ```mermaid @@ -178,6 +159,25 @@ classDef rescue stroke:#665352,stroke-width:2px; Attach_AAP_Subscriptions_subscribe_yml_1-->End ``` +### Graph for subscribe.yml + +```mermaid +flowchart TD +Start +classDef block stroke:#3498db,stroke-width:2px; +classDef task stroke:#4b76bb,stroke-width:2px; +classDef includeTasks stroke:#16a085,stroke-width:2px; +classDef importTasks stroke:#34495e,stroke-width:2px; +classDef includeRole stroke:#2980b9,stroke-width:2px; +classDef importRole stroke:#699ba7,stroke-width:2px; +classDef includeVars stroke:#8e44ad,stroke-width:2px; +classDef rescue stroke:#665352,stroke-width:2px; + + Start-->|Import role| subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_0([subscribe call bootstrap role to subscribe
When: **bootstrap aap default false bool**
import_role: infra openshift virtualization migration bootstrap]):::importRole + subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_0-->|Import role| subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_1([subscribe call bootstrap role to subscribe
When: **not bootstrap aap default false bool**
import_role: infra openshift virtualization migration bootstrap]):::importRole + subscribe___Call_bootstrap_role_to_subscribe_infra_openshift_virtualization_migration_bootstrap_1-->End +``` + ## Playbook ```yml diff --git a/roles/aap_machine_credentials/README.md b/roles/aap_machine_credentials/README.md index c973267..291be97 100644 --- a/roles/aap_machine_credentials/README.md +++ b/roles/aap_machine_credentials/README.md @@ -28,17 +28,17 @@ Description: Management of Machine Credentials. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`aap_machine_credentials_request`](defaults/main.yml#L7) | list | `[]` | None | True | List of AAP Credentials | -| [`aap_machine_credentials_organization`](defaults/main.yml#L15) | str | `{{ aap_project ¦ default('OpenShift Virtualization Migration', true) }}` | None | True | Organization name in AAP host | | [`aap_machine_credentials_cac_credentials_role`](defaults/main.yml#L20) | str | `` | None | True | Ansible Automation Platform configuration collection credentials role | +| [`aap_machine_credentials_organization`](defaults/main.yml#L15) | str | `{{ aap_project ¦ default('OpenShift Virtualization Migration', true) }}` | None | True | Organization name in AAP host | +| [`aap_machine_credentials_request`](defaults/main.yml#L7) | list | `[]` | None | True | List of AAP Credentials | 🖇️ Full descriptions for vars in defaults/main.yml
-`aap_machine_credentials_request`: List of credentials to access AAP provided by _process_machine_credential.yml +`aap_machine_credentials_cac_credentials_role`: Determines which collection to use for configuring AAP based on the version.
`aap_machine_credentials_organization`: Name of the organization in AAP
-`aap_machine_credentials_cac_credentials_role`: Determines which collection to use for configuring AAP based on the version. +`aap_machine_credentials_request`: List of credentials to access AAP provided by _process_machine_credential.yml

@@ -50,6 +50,17 @@ Description: Management of Machine Credentials. | Var | Type | Value | |--------------|--------------|-------------| +| [aap_machine_credentials_base_keys](vars/main.yml#L14) | list | `[]` | +| [aap_machine_credentials_base_keys.0](vars/main.yml#L15) | dict | `{}` | +| [aap_machine_credentials_base_keys.0.name](vars/main.yml#L15) | str | `name` | +| [aap_machine_credentials_base_keys.1](vars/main.yml#L16) | dict | `{}` | +| [aap_machine_credentials_base_keys.1.name](vars/main.yml#L16) | str | `description` | +| [aap_machine_credentials_base_keys.2](vars/main.yml#L17) | dict | `{}` | +| [aap_machine_credentials_base_keys.2.default](vars/main.yml#L18) | str | `{{ aap_machine_credentials_organization }}` | +| [aap_machine_credentials_base_keys.2.name](vars/main.yml#L17) | str | `organization` | +| [aap_machine_credentials_base_keys.3](vars/main.yml#L19) | dict | `{}` | +| [aap_machine_credentials_base_keys.3.default](vars/main.yml#L20) | str | `Machine` | +| [aap_machine_credentials_base_keys.3.name](vars/main.yml#L19) | str | `credential_type` | | [aap_machine_credentials_input_keys](vars/main.yml#L3) | list | `[]` | | [aap_machine_credentials_input_keys.0](vars/main.yml#L4) | str | `username` | | [aap_machine_credentials_input_keys.1](vars/main.yml#L5) | str | `password` | @@ -60,24 +71,13 @@ Description: Management of Machine Credentials. | [aap_machine_credentials_input_keys.6](vars/main.yml#L10) | str | `become_username` | | [aap_machine_credentials_input_keys.7](vars/main.yml#L11) | str | `become_password` | | [aap_machine_credentials_input_keys.8](vars/main.yml#L12) | str | `state` | -| [aap_machine_credentials_base_keys](vars/main.yml#L14) | list | `[]` | -| [aap_machine_credentials_base_keys.0](vars/main.yml#L15) | dict | `{}` | -| [aap_machine_credentials_base_keys.0.name](vars/main.yml#L15) | str | `name` | -| [aap_machine_credentials_base_keys.1](vars/main.yml#L16) | dict | `{}` | -| [aap_machine_credentials_base_keys.1.name](vars/main.yml#L16) | str | `description` | -| [aap_machine_credentials_base_keys.2](vars/main.yml#L17) | dict | `{}` | -| [aap_machine_credentials_base_keys.2.name](vars/main.yml#L17) | str | `organization` | -| [aap_machine_credentials_base_keys.2.default](vars/main.yml#L18) | str | `{{ aap_machine_credentials_organization }}` | -| [aap_machine_credentials_base_keys.3](vars/main.yml#L19) | dict | `{}` | -| [aap_machine_credentials_base_keys.3.name](vars/main.yml#L19) | str | `credential_type` | -| [aap_machine_credentials_base_keys.3.default](vars/main.yml#L20) | str | `Machine` | | [aap_machine_credentials_input_maps](vars/main.yml#L22) | list | `[]` | | [aap_machine_credentials_input_maps.0](vars/main.yml#L23) | dict | `{}` | -| [aap_machine_credentials_input_maps.0.src](vars/main.yml#L23) | str | `ssh_key_data_path` | | [aap_machine_credentials_input_maps.0.dest](vars/main.yml#L24) | str | `ssh_key_data` | +| [aap_machine_credentials_input_maps.0.src](vars/main.yml#L23) | str | `ssh_key_data_path` | | [aap_machine_credentials_input_maps.1](vars/main.yml#L25) | dict | `{}` | -| [aap_machine_credentials_input_maps.1.src](vars/main.yml#L25) | str | `ssh_public_key_data_path` | | [aap_machine_credentials_input_maps.1.dest](vars/main.yml#L26) | str | `ssh_public_key_data` | +| [aap_machine_credentials_input_maps.1.src](vars/main.yml#L25) | str | `ssh_public_key_data_path` | ### Tasks @@ -111,7 +111,7 @@ Description: Management of Machine Credentials. ## Task Flow Graphs -### Graph for main.yml +### Graph for _map_key_content.yml ```mermaid flowchart TD @@ -125,17 +125,14 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| Initialize_Variables0[initialize variables]:::task - Initialize_Variables0-->|Include task| Process_Machine_Credentials__process_machine_credential_yml_1[process machine credentials
include_task: process machine credential yml]:::includeTasks - Process_Machine_Credentials__process_machine_credential_yml_1-->|Block Start| Manage_Credentials2_block_start_0[[manage credentials]]:::block - Manage_Credentials2_block_start_0-->|Task| Verify_Config_as_Code_parameters_required__for_AAP_2_4_and_below_0[verify config as code parameters required for aap
2 4 and below
When: **aap version is defined and aap version is version
2 5**]:::task - Verify_Config_as_Code_parameters_required__for_AAP_2_4_and_below_0-->|Task| Verify_Config_as_Code_parameters_required__for_AAP_2_5_and_above_1[verify config as code parameters required for aap
2 5 and above
When: **aap version is not defined or aap version is
version 2 5**]:::task - Verify_Config_as_Code_parameters_required__for_AAP_2_5_and_above_1-.->|End of Block| Manage_Credentials2_block_start_0 - Verify_Config_as_Code_parameters_required__for_AAP_2_5_and_above_1-->|Include role| Call_credential_config_as_code_role____aap_machine_credentials_cac_credentials_role____3(call credential config as code role
When: **aap machine credentials controller credentials
length 0**
include_role: aap machine credentials cac credentials role ):::includeRole - Call_credential_config_as_code_role____aap_machine_credentials_cac_credentials_role____3-->End + Start-->|Task| _map_key_content___Verify_required_variables_provided0[ map key content verify required variables
provided]:::task + _map_key_content___Verify_required_variables_provided0-->|Task| _map_key_content___Check_source_path_content1[ map key content check source path content]:::task + _map_key_content___Check_source_path_content1-->|Task| _map_key_content___Verify_source_path_exists2[ map key content verify source path exists]:::task + _map_key_content___Verify_source_path_exists2-->|Task| _map_key_content___Map_Variables3[ map key content map variables]:::task + _map_key_content___Map_Variables3-->End ``` -### Graph for _map_key_content.yml +### Graph for _process_machine_credential.yml ```mermaid flowchart TD @@ -149,14 +146,13 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _map_key_content___Verify_required_variables_provided0[ map key content verify required variables
provided]:::task - _map_key_content___Verify_required_variables_provided0-->|Task| _map_key_content___Check_source_path_content1[ map key content check source path content]:::task - _map_key_content___Check_source_path_content1-->|Task| _map_key_content___Verify_source_path_exists2[ map key content verify source path exists]:::task - _map_key_content___Verify_source_path_exists2-->|Task| _map_key_content___Map_Variables3[ map key content map variables]:::task - _map_key_content___Map_Variables3-->End + Start-->|Task| _process_machine_credential___Initialize_Dynamic_Map_Variable0[ process machine credential initialize dynamic
map variable]:::task + _process_machine_credential___Initialize_Dynamic_Map_Variable0-->|Include task| _process_machine_credential___Map_Credential_File_Contents__map_key_content_yml_1[ process machine credential map credential file
contents
When: **aap machine credentials input map src in aap
machine credential**
include_task: map key content yml]:::includeTasks + _process_machine_credential___Map_Credential_File_Contents__map_key_content_yml_1-->|Task| _process_machine_credential___Render_Machine_Credential2[ process machine credential render machine
credential]:::task + _process_machine_credential___Render_Machine_Credential2-->End ``` -### Graph for _process_machine_credential.yml +### Graph for main.yml ```mermaid flowchart TD @@ -170,10 +166,14 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _process_machine_credential___Initialize_Dynamic_Map_Variable0[ process machine credential initialize dynamic
map variable]:::task - _process_machine_credential___Initialize_Dynamic_Map_Variable0-->|Include task| _process_machine_credential___Map_Credential_File_Contents__map_key_content_yml_1[ process machine credential map credential file
contents
When: **aap machine credentials input map src in aap
machine credential**
include_task: map key content yml]:::includeTasks - _process_machine_credential___Map_Credential_File_Contents__map_key_content_yml_1-->|Task| _process_machine_credential___Render_Machine_Credential2[ process machine credential render machine
credential]:::task - _process_machine_credential___Render_Machine_Credential2-->End + Start-->|Task| Initialize_Variables0[initialize variables]:::task + Initialize_Variables0-->|Include task| Process_Machine_Credentials__process_machine_credential_yml_1[process machine credentials
include_task: process machine credential yml]:::includeTasks + Process_Machine_Credentials__process_machine_credential_yml_1-->|Block Start| Manage_Credentials2_block_start_0[[manage credentials]]:::block + Manage_Credentials2_block_start_0-->|Task| Verify_Config_as_Code_parameters_required__for_AAP_2_4_and_below_0[verify config as code parameters required for aap
2 4 and below
When: **aap version is defined and aap version is version
2 5**]:::task + Verify_Config_as_Code_parameters_required__for_AAP_2_4_and_below_0-->|Task| Verify_Config_as_Code_parameters_required__for_AAP_2_5_and_above_1[verify config as code parameters required for aap
2 5 and above
When: **aap version is not defined or aap version is
version 2 5**]:::task + Verify_Config_as_Code_parameters_required__for_AAP_2_5_and_above_1-.->|End of Block| Manage_Credentials2_block_start_0 + Verify_Config_as_Code_parameters_required__for_AAP_2_5_and_above_1-->|Include role| Call_credential_config_as_code_role____aap_machine_credentials_cac_credentials_role____3(call credential config as code role
When: **aap machine credentials controller credentials
length 0**
include_role: aap machine credentials cac credentials role ):::includeRole + Call_credential_config_as_code_role____aap_machine_credentials_cac_credentials_role____3-->End ``` ## Playbook diff --git a/roles/aap_seed/README.md b/roles/aap_seed/README.md index f95312b..eb23811 100644 --- a/roles/aap_seed/README.md +++ b/roles/aap_seed/README.md @@ -28,136 +28,112 @@ Description: Populates an Ansible Automation Platform instance. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`aap_seed_secure_logging`](defaults/main.yml#L5) | str | `{{ secure_logging ¦ default(true) }}` | None | True | AAP Secure Logging | -| [`aap_seed_migration_hub`](defaults/main.yml#L10) | list | `[]` | None | True | AAP Migration Hub | -| [`aap_seed_aap_namespace`](defaults/main.yml#L15) | str | `{{ aap_namespace }}` | None | True | AAP Namespace in OpenShift | | [`aap_seed_aap_channel`](defaults/main.yml#L20) | str | `{{ aap_channel }}` | None | True | AAP Subscription Channel | -| [`aap_seed_aap_instance_name`](defaults/main.yml#L25) | str | `{{ aap_instance_name }}` | None | True | AAP Instance Name | -| [`aap_seed_aap_org_name`](defaults/main.yml#L30) | str | `{{ aap_org_name }}` | None | True | AAP Organization Name | -| [`aap_seed_controller_username`](defaults/main.yml#L35) | str | `` | None | True | AAP Controller Username | -| [`aap_seed_controller_password`](defaults/main.yml#L42) | str | `` | None | True | AAP Controller Password | -| [`aap_seed_controller_token`](defaults/main.yml#L48) | str | `` | None | False | AAP token | -| [`aap_seed_controller_hostname`](defaults/main.yml#L51) | str | `` | None | None | None | -| [`aap_seed_controller_validate_certs`](defaults/main.yml#L58) | str | `` | None | True | Validate AAP Controller Certificate | -| [`aap_seed_cac_collection`](defaults/main.yml#L65) | str | `` | None | True | AAP CaC Collection Name | -| [`aap_seed_controller_organizations_var`](defaults/main.yml#L72) | str | `` | None | True | AAP Organizations Variable | -| [`aap_seed_controller_configuration_async_retries`](defaults/main.yml#L81) | int | `60` | None | True | Configuration Async Retries | -| [`aap_seed_controller_dependency_check`](defaults/main.yml#L86) | bool | `False` | None | True | Dependency Check | -| [`aap_seed_aap_inventory`](defaults/main.yml#L93) | str | `openshift_virtualization_migration` | None | True | AAP Inventory | -| [`aap_seed_aap_version`](defaults/main.yml#L98) | str | `{{ aap_version ¦ default(2.5) }}` | None | True | AAP Version | +| [`aap_seed_aap_credentials_create`](defaults/main.yml#L624) | bool | `True` | None | True | Create AAP Credentials | | [`aap_seed_aap_execution_environment`](defaults/main.yml#L103) | str | `{{ aap_execution_environment }}` | None | True | AAP Execution Environment | | [`aap_seed_aap_execution_environment_image`](defaults/main.yml#L108) | str | `{{ aap_execution_environment_image }}` | None | True | AAP Execution Environment Image | +| [`aap_seed_aap_instance_name`](defaults/main.yml#L25) | str | `{{ aap_instance_name }}` | None | True | AAP Instance Name | +| [`aap_seed_aap_inventory`](defaults/main.yml#L93) | str | `openshift_virtualization_migration` | None | True | AAP Inventory | +| [`aap_seed_aap_job_template_extra_vars`](defaults/main.yml#L257) | str | `{{ aap_job_template_extra_vars ¦ default({}) }}` | None | True | AAP Job Template Variables | +| [`aap_seed_aap_namespace`](defaults/main.yml#L15) | str | `{{ aap_namespace }}` | None | True | AAP Namespace in OpenShift | +| [`aap_seed_aap_org_name`](defaults/main.yml#L30) | str | `{{ aap_org_name }}` | None | True | AAP Organization Name | | [`aap_seed_aap_project`](defaults/main.yml#L113) | str | `{{ aap_project }}` | None | True | AAP Project | | [`aap_seed_aap_project_branch`](defaults/main.yml#L118) | str | `{{ aap_project_branch }}` | None | True | AAP Project Branch | | [`aap_seed_aap_project_repo`](defaults/main.yml#L123) | str | `{{ aap_project_repo }}` | None | True | AAP Project Repository | -| [`aap_seed_automation_hub_certified_credential_name`](defaults/main.yml#L128) | str | `` | None | True | Automation Hub Certified Name | -| [`aap_seed_automation_hub_validated_credential_name`](defaults/main.yml#L134) | str | `` | None | True | Automation Hub Validated Name | -| [`aap_seed_automation_hub_certified_url`](defaults/main.yml#L140) | str | `{{ automation_hub_certified_url }}` | None | True | Automation Hub Certified URL | -| [`aap_seed_automation_hub_certified_auth_url`](defaults/main.yml#L145) | str | `{{ automation_hub_certified_auth_url }}` | None | True | Automation Hub Certified URL | -| [`aap_seed_automation_hub_certified_token`](defaults/main.yml#L150) | str | `{{ automation_hub_certified_token }}` | None | True | Automation Hub Token | -| [`aap_seed_automation_hub_validated_url`](defaults/main.yml#L155) | str | `{{ automation_hub_validated_url }}` | None | True | Automation Hub Validated URL | -| [`aap_seed_automation_hub_validated_auth_url`](defaults/main.yml#L160) | str | `{{ automation_hub_validated_auth_url }}` | None | True | Automation Hub Validated Authorization URL | -| [`aap_seed_automation_hub_validated_token`](defaults/main.yml#L165) | str | `{{ automation_hub_validated_token }}` | None | True | Automation Hub Validated Token | -| [`aap_seed_git_credential_name`](defaults/main.yml#L170) | str | `` | None | True | Git Credential Name | -| [`aap_seed_git_username`](defaults/main.yml#L176) | str | `{{ (git_username is defined) ¦ ansible.builtin.ternary(git_username, '') }}` | None | True | Git Username | -| [`aap_seed_git_password`](defaults/main.yml#L181) | str | `{{ (git_password is defined) ¦ ansible.builtin.ternary(git_password, '') }}` | None | True | Git Password | -| [`aap_seed_git_ssh_private_key`](defaults/main.yml#L186) | str | `` | None | True | Git SSH Private Key | -| [`aap_seed_git_ssh_key_passphrase`](defaults/main.yml#L193) | str | `` | None | True | Git SSH Private Key Passphrase | -| [`aap_seed_vmware_host`](defaults/main.yml#L202) | str | `{{ vmware_host }}` | None | True | VMware Host | -| [`aap_seed_vmware_user`](defaults/main.yml#L207) | str | `{{ vmware_user }}` | None | True | VMware Username | -| [`aap_seed_vmware_password`](defaults/main.yml#L212) | str | `{{ vmware_password }}` | None | True | VMware Password | -| [`aap_seed_vmware_validate_certs`](defaults/main.yml#L217) | str | `{{ vmware_validate_certs }}` | None | True | Validate VMware Certificate | -| [`aap_seed_vmware_cacert`](defaults/main.yml#L222) | str | `{{ vmware_cacert }}` | None | True | VMware CA Certificate | -| [`aap_seed_vmware_context_path`](defaults/main.yml#L227) | str | `{{ vmware_context_path }}` | None | True | VMware Context Path | -| [`aap_seed_container_credential_name`](defaults/main.yml#L232) | str | `{{ container_credential_name ¦ default('Container Registry') }}` | None | True | AAP Container Credential Name | -| [`aap_seed_container_host`](defaults/main.yml#L237) | str | `{{ container_host }}` | None | True | AAP Container Host | -| [`aap_seed_container_password`](defaults/main.yml#L242) | str | `{{ container_password }}` | None | True | AAP Container Password | -| [`aap_seed_container_username`](defaults/main.yml#L247) | str | `{{ container_username }}` | None | True | AAP Container Username | -| [`aap_seed_container_verify_ssl`](defaults/main.yml#L252) | str | `{{ container_verify_ssl ¦ default(false) }}` | None | True | Container Verify SSL | -| [`aap_seed_aap_job_template_extra_vars`](defaults/main.yml#L257) | str | `{{ aap_job_template_extra_vars ¦ default({}) }}` | None | True | AAP Job Template Variables | -| [`aap_seed_migration_targets`](defaults/main.yml#L262) | str | `{{ migration_targets ¦ default([]) }}` | None | True | Migration Targets | -| [`aap_seed_operator_management_hub`](defaults/main.yml#L268) | list | `[]` | None | True | Default Management Hub Operators | -| [`aap_seed_operator_management_hub.0`](defaults/main.yml#L269) | str | `acm` | None | None | None | -| [`aap_seed_operator_management_hub.1`](defaults/main.yml#L270) | str | `oadp` | None | None | None | -| [`aap_seed_operator_management_hub.2`](defaults/main.yml#L271) | str | `far` | None | None | None | -| [`aap_seed_operator_management_hub.3`](defaults/main.yml#L272) | str | `nho` | None | None | None | -| [`aap_seed_operator_management_spoke`](defaults/main.yml#L278) | list | `[]` | None | True | Default Spoke Operators | -| [`aap_seed_operator_management_spoke.0`](defaults/main.yml#L279) | str | `mtv` | None | None | None | -| [`aap_seed_operator_management_spoke.1`](defaults/main.yml#L280) | str | `cnv` | None | None | None | -| [`aap_seed_operator_management_spoke.2`](defaults/main.yml#L281) | str | `oadp` | None | None | None | -| [`aap_seed_operator_management_spoke.3`](defaults/main.yml#L282) | str | `far` | None | None | None | -| [`aap_seed_operator_management_spoke.4`](defaults/main.yml#L283) | str | `nmstate` | None | None | None | -| [`aap_seed_operator_management_spoke.5`](defaults/main.yml#L284) | str | `nho` | None | None | None | +| [`aap_seed_aap_version`](defaults/main.yml#L98) | str | `{{ aap_version ¦ default(2.5) }}` | None | True | AAP Version | | [`aap_seed_ansible_galaxy_credential_enabled`](defaults/main.yml#L289) | bool | `True` | None | True | Enable Ansible Galaxy Credential | | [`aap_seed_ansible_galaxy_credential_name`](defaults/main.yml#L294) | str | `Ansible Galaxy` | None | True | Name of the Ansible Galaxy Credential | -| [`aap_seed_automation_hub_credentials_create`](defaults/main.yml#L299) | bool | `True` | None | True | Create Automation Hub Credentials | +| [`aap_seed_automation_hub_certified_auth_url`](defaults/main.yml#L145) | str | `{{ automation_hub_certified_auth_url }}` | None | True | Automation Hub Certified URL | +| [`aap_seed_automation_hub_certified_credential_name`](defaults/main.yml#L128) | str | `` | None | True | Automation Hub Certified Name | +| [`aap_seed_automation_hub_certified_token`](defaults/main.yml#L150) | str | `{{ automation_hub_certified_token }}` | None | True | Automation Hub Token | +| [`aap_seed_automation_hub_certified_url`](defaults/main.yml#L140) | str | `{{ automation_hub_certified_url }}` | None | True | Automation Hub Certified URL | | [`aap_seed_automation_hub_credentials`](defaults/main.yml#L304) | list | `[]` | None | True | Automation Hub Credentials | | [`aap_seed_automation_hub_credentials.0`](defaults/main.yml#L305) | dict | `{}` | None | None | None | -| [`aap_seed_automation_hub_credentials.0.name`](defaults/main.yml#L305) | str | `{{ aap_seed_automation_hub_certified_credential_name }}` | None | None | None | -| [`aap_seed_automation_hub_credentials.0.description`](defaults/main.yml#L306) | str | `Red Hat Automation Hub Certified Credential` | None | None | None | -| [`aap_seed_automation_hub_credentials.0.organization`](defaults/main.yml#L307) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_automation_hub_credentials.0.credential_type`](defaults/main.yml#L308) | str | `Ansible Galaxy/Automation Hub API Token` | None | None | None | +| [`aap_seed_automation_hub_credentials.0.description`](defaults/main.yml#L306) | str | `Red Hat Automation Hub Certified Credential` | None | None | None | | [`aap_seed_automation_hub_credentials.0.inputs`](defaults/main.yml#L309) | dict | `{}` | None | None | None | -| [`aap_seed_automation_hub_credentials.0.inputs.url`](defaults/main.yml#L310) | str | `{{ aap_seed_automation_hub_certified_url }}` | None | None | None | | [`aap_seed_automation_hub_credentials.0.inputs.auth_url`](defaults/main.yml#L311) | str | `{{ aap_seed_automation_hub_certified_auth_url }}` | None | None | None | | [`aap_seed_automation_hub_credentials.0.inputs.token`](defaults/main.yml#L312) | str | `{{ aap_seed_automation_hub_certified_token }}` | None | None | None | +| [`aap_seed_automation_hub_credentials.0.inputs.url`](defaults/main.yml#L310) | str | `{{ aap_seed_automation_hub_certified_url }}` | None | None | None | +| [`aap_seed_automation_hub_credentials.0.name`](defaults/main.yml#L305) | str | `{{ aap_seed_automation_hub_certified_credential_name }}` | None | None | None | +| [`aap_seed_automation_hub_credentials.0.organization`](defaults/main.yml#L307) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_automation_hub_credentials.1`](defaults/main.yml#L313) | dict | `{}` | None | None | None | -| [`aap_seed_automation_hub_credentials.1.name`](defaults/main.yml#L313) | str | `{{ aap_seed_automation_hub_validated_credential_name }}` | None | None | None | -| [`aap_seed_automation_hub_credentials.1.description`](defaults/main.yml#L314) | str | `Red Hat Automation Hub Validated Credential` | None | None | None | -| [`aap_seed_automation_hub_credentials.1.organization`](defaults/main.yml#L315) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_automation_hub_credentials.1.credential_type`](defaults/main.yml#L316) | str | `Ansible Galaxy/Automation Hub API Token` | None | None | None | +| [`aap_seed_automation_hub_credentials.1.description`](defaults/main.yml#L314) | str | `Red Hat Automation Hub Validated Credential` | None | None | None | | [`aap_seed_automation_hub_credentials.1.inputs`](defaults/main.yml#L317) | dict | `{}` | None | None | None | -| [`aap_seed_automation_hub_credentials.1.inputs.url`](defaults/main.yml#L318) | str | `{{ aap_seed_automation_hub_validated_url }}` | None | None | None | | [`aap_seed_automation_hub_credentials.1.inputs.auth_url`](defaults/main.yml#L319) | str | `{{ aap_seed_automation_hub_validated_auth_url }}` | None | None | None | | [`aap_seed_automation_hub_credentials.1.inputs.token`](defaults/main.yml#L320) | str | `{{ aap_seed_automation_hub_validated_token }}` | None | None | None | -| [`aap_seed_controller_credentials`](defaults/main.yml#L325) | list | `[]` | None | True | Credentials to Seed | +| [`aap_seed_automation_hub_credentials.1.inputs.url`](defaults/main.yml#L318) | str | `{{ aap_seed_automation_hub_validated_url }}` | None | None | None | +| [`aap_seed_automation_hub_credentials.1.name`](defaults/main.yml#L313) | str | `{{ aap_seed_automation_hub_validated_credential_name }}` | None | None | None | +| [`aap_seed_automation_hub_credentials.1.organization`](defaults/main.yml#L315) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | +| [`aap_seed_automation_hub_credentials_create`](defaults/main.yml#L299) | bool | `True` | None | True | Create Automation Hub Credentials | +| [`aap_seed_automation_hub_validated_auth_url`](defaults/main.yml#L160) | str | `{{ automation_hub_validated_auth_url }}` | None | True | Automation Hub Validated Authorization URL | +| [`aap_seed_automation_hub_validated_credential_name`](defaults/main.yml#L134) | str | `` | None | True | Automation Hub Validated Name | +| [`aap_seed_automation_hub_validated_token`](defaults/main.yml#L165) | str | `{{ automation_hub_validated_token }}` | None | True | Automation Hub Validated Token | +| [`aap_seed_automation_hub_validated_url`](defaults/main.yml#L155) | str | `{{ automation_hub_validated_url }}` | None | True | Automation Hub Validated URL | +| [`aap_seed_cac_collection`](defaults/main.yml#L65) | str | `` | None | True | AAP CaC Collection Name | +| [`aap_seed_container_credential_name`](defaults/main.yml#L232) | str | `{{ container_credential_name ¦ default('Container Registry') }}` | None | True | AAP Container Credential Name | +| [`aap_seed_container_host`](defaults/main.yml#L237) | str | `{{ container_host }}` | None | True | AAP Container Host | +| [`aap_seed_container_password`](defaults/main.yml#L242) | str | `{{ container_password }}` | None | True | AAP Container Password | +| [`aap_seed_container_registry_credentials_create`](defaults/main.yml#L639) | bool | `True` | None | True | Create Container Registry Credentials | +| [`aap_seed_container_username`](defaults/main.yml#L247) | str | `{{ container_username }}` | None | True | AAP Container Username | +| [`aap_seed_container_verify_ssl`](defaults/main.yml#L252) | str | `{{ container_verify_ssl ¦ default(false) }}` | None | True | Container Verify SSL | +| [`aap_seed_controller_configuration_async_retries`](defaults/main.yml#L81) | int | `60` | None | True | Configuration Async Retries | | [`aap_seed_controller_credential_types`](defaults/main.yml#L330) | list | `[]` | None | True | Credential Types | | [`aap_seed_controller_credential_types.0`](defaults/main.yml#L331) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.name`](defaults/main.yml#L331) | str | `openshift_virtualization_migration_cac` | None | None | None | | [`aap_seed_controller_credential_types.0.description`](defaults/main.yml#L332) | str | `OpenShift Virtualization Migration Config-as-Code Data structure` | None | None | None | -| [`aap_seed_controller_credential_types.0.organization`](defaults/main.yml#L333) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | -| [`aap_seed_controller_credential_types.0.kind`](defaults/main.yml#L334) | str | `cloud` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors`](defaults/main.yml#L374) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars`](defaults/main.yml#L375) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_execution_environment`](defaults/main.yml#L378) | str | `{% raw %}{ { aap_execution_environment }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_instance_name`](defaults/main.yml#L377) | str | `{% raw %}{ { aap_instance_name }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_inventory`](defaults/main.yml#L381) | str | `{% raw %}{ { aap_inventory }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_job_template_extra_vars`](defaults/main.yml#L383) | str | `{% raw %}{ { aap_job_template_extra_vars }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_namespace`](defaults/main.yml#L382) | str | `{% raw %}{ { aap_namespace }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_org_name`](defaults/main.yml#L379) | str | `{% raw %}{ { aap_org_name }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_project`](defaults/main.yml#L380) | str | `{% raw %}{ { aap_project }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_version`](defaults/main.yml#L376) | str | `{% raw %}{ { aap_version }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.provided_migration_targets`](defaults/main.yml#L384) | str | `{% raw %}{ { migration_targets }}{% endraw %}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs`](defaults/main.yml#L335) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields`](defaults/main.yml#L336) | list | `[]` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.0`](defaults/main.yml#L337) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.0.id`](defaults/main.yml#L337) | str | `aap_version` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.0.type`](defaults/main.yml#L338) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.0.label`](defaults/main.yml#L339) | str | `AAP Version` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.0.type`](defaults/main.yml#L338) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.1`](defaults/main.yml#L340) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.1.id`](defaults/main.yml#L340) | str | `aap_instance_name` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.1.type`](defaults/main.yml#L341) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.1.label`](defaults/main.yml#L342) | str | `AAP Instance Name` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.1.type`](defaults/main.yml#L341) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.2`](defaults/main.yml#L343) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.2.id`](defaults/main.yml#L343) | str | `aap_execution_environment` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.2.type`](defaults/main.yml#L344) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.2.label`](defaults/main.yml#L345) | str | `AAP Execution Environment` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.2.type`](defaults/main.yml#L344) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.3`](defaults/main.yml#L346) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.3.id`](defaults/main.yml#L346) | str | `aap_org_name` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.3.type`](defaults/main.yml#L347) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.3.label`](defaults/main.yml#L348) | str | `AAP Org Name` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.3.type`](defaults/main.yml#L347) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.4`](defaults/main.yml#L349) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.4.id`](defaults/main.yml#L349) | str | `aap_namespace` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.4.type`](defaults/main.yml#L350) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.4.label`](defaults/main.yml#L351) | str | `AAP Namespace` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.4.type`](defaults/main.yml#L350) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.5`](defaults/main.yml#L352) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.5.id`](defaults/main.yml#L352) | str | `aap_project` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.5.type`](defaults/main.yml#L353) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.5.label`](defaults/main.yml#L354) | str | `AAP Project Name` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.5.type`](defaults/main.yml#L353) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.6`](defaults/main.yml#L355) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.6.id`](defaults/main.yml#L355) | str | `aap_inventory` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.6.type`](defaults/main.yml#L356) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.6.label`](defaults/main.yml#L357) | str | `AAP Inventory` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.6.type`](defaults/main.yml#L356) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.7`](defaults/main.yml#L358) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.7.id`](defaults/main.yml#L358) | str | `aap_job_template_extra_vars` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.7.type`](defaults/main.yml#L359) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.7.label`](defaults/main.yml#L360) | str | `Job Template Extra Variables` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.7.secret`](defaults/main.yml#L361) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.7.type`](defaults/main.yml#L359) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.8`](defaults/main.yml#L362) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.8.id`](defaults/main.yml#L362) | str | `migration_targets` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.8.type`](defaults/main.yml#L363) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.8.label`](defaults/main.yml#L364) | str | `Migration Targets` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.8.multiline`](defaults/main.yml#L365) | bool | `True` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.fields.8.secret`](defaults/main.yml#L366) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.8.type`](defaults/main.yml#L363) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.required`](defaults/main.yml#L367) | list | `[]` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.required.0`](defaults/main.yml#L368) | str | `aap_version` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.required.1`](defaults/main.yml#L369) | str | `aap_instance_name` | None | None | None | @@ -165,166 +141,182 @@ Description: Populates an Ansible Automation Platform instance. | [`aap_seed_controller_credential_types.0.inputs.required.3`](defaults/main.yml#L371) | str | `aap_org_name` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.required.4`](defaults/main.yml#L372) | str | `aap_project` | None | None | None | | [`aap_seed_controller_credential_types.0.inputs.required.5`](defaults/main.yml#L373) | str | `aap_inventory` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors`](defaults/main.yml#L374) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars`](defaults/main.yml#L375) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_version`](defaults/main.yml#L376) | str | `{% raw %}{ { aap_version }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_instance_name`](defaults/main.yml#L377) | str | `{% raw %}{ { aap_instance_name }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_execution_environment`](defaults/main.yml#L378) | str | `{% raw %}{ { aap_execution_environment }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_org_name`](defaults/main.yml#L379) | str | `{% raw %}{ { aap_org_name }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_project`](defaults/main.yml#L380) | str | `{% raw %}{ { aap_project }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_inventory`](defaults/main.yml#L381) | str | `{% raw %}{ { aap_inventory }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_namespace`](defaults/main.yml#L382) | str | `{% raw %}{ { aap_namespace }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_job_template_extra_vars`](defaults/main.yml#L383) | str | `{% raw %}{ { aap_job_template_extra_vars }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.provided_migration_targets`](defaults/main.yml#L384) | str | `{% raw %}{ { migration_targets }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.kind`](defaults/main.yml#L334) | str | `cloud` | None | None | None | +| [`aap_seed_controller_credential_types.0.name`](defaults/main.yml#L331) | str | `openshift_virtualization_migration_cac` | None | None | None | +| [`aap_seed_controller_credential_types.0.organization`](defaults/main.yml#L333) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_controller_credential_types.1`](defaults/main.yml#L385) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.1.name`](defaults/main.yml#L385) | str | `VMware Migration Target` | None | None | None | | [`aap_seed_controller_credential_types.1.description`](defaults/main.yml#L386) | str | `Migration Target for VMware` | None | None | None | -| [`aap_seed_controller_credential_types.1.organization`](defaults/main.yml#L387) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | -| [`aap_seed_controller_credential_types.1.kind`](defaults/main.yml#L388) | str | `cloud` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors`](defaults/main.yml#L437) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.env`](defaults/main.yml#L449) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.env.VMWARE_HOST`](defaults/main.yml#L450) | str | `{% raw %}{ { host }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.env.VMWARE_PASSWORD`](defaults/main.yml#L452) | str | `{% raw %}{ { password }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.env.VMWARE_USER`](defaults/main.yml#L451) | str | `{% raw %}{ { username }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars`](defaults/main.yml#L438) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.provider`](defaults/main.yml#L448) | str | `{% raw %}{ { provider_name }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_cacert`](defaults/main.yml#L441) | str | `{% raw %}{ { cacert }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_context_path`](defaults/main.yml#L442) | str | `{% raw %}{ { context_path }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_credentials_secret_ref`](defaults/main.yml#L443) | str | `{% raw %}{ { credentials_secret_ref }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_insecure_ssl`](defaults/main.yml#L440) | str | `{% raw %}{ { insecure_ssl }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_target_name`](defaults/main.yml#L439) | str | `{% raw %}{ { name }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image`](defaults/main.yml#L444) | str | `{% raw %}{ { vddk_init_image }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_credentials_secret`](defaults/main.yml#L447) | str | `{% raw %}{ { vddk_init_image_credentials_secret }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_password`](defaults/main.yml#L446) | str | `{% raw %}{ { vddk_init_image_password }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_username`](defaults/main.yml#L445) | str | `{% raw %}{ { vddk_init_image_username }}{% endraw %}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs`](defaults/main.yml#L389) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields`](defaults/main.yml#L390) | list | `[]` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.0`](defaults/main.yml#L391) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.0.id`](defaults/main.yml#L391) | str | `name` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.0.type`](defaults/main.yml#L392) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.0.label`](defaults/main.yml#L393) | str | `Target Name` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.0.type`](defaults/main.yml#L392) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.1`](defaults/main.yml#L394) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.1.id`](defaults/main.yml#L394) | str | `host` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.1.type`](defaults/main.yml#L395) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.1.label`](defaults/main.yml#L396) | str | `VCenter Host` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.1.type`](defaults/main.yml#L395) | str | `string` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.10`](defaults/main.yml#L423) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.10.id`](defaults/main.yml#L423) | str | `vddk_init_image_password` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.10.label`](defaults/main.yml#L425) | str | `VDDK Init Image Password` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.10.secret`](defaults/main.yml#L426) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.10.type`](defaults/main.yml#L424) | str | `string` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.11`](defaults/main.yml#L427) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.11.id`](defaults/main.yml#L427) | str | `vddk_init_image_credentials_secret` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.11.label`](defaults/main.yml#L429) | str | `VDDK Init Image Credentials Secret` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.11.type`](defaults/main.yml#L428) | str | `string` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.12`](defaults/main.yml#L430) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.12.id`](defaults/main.yml#L430) | str | `provider_name` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.12.label`](defaults/main.yml#L432) | str | `Provider source` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.12.type`](defaults/main.yml#L431) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.2`](defaults/main.yml#L397) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.2.id`](defaults/main.yml#L397) | str | `username` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.2.type`](defaults/main.yml#L398) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.2.label`](defaults/main.yml#L399) | str | `Username` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.2.type`](defaults/main.yml#L398) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.3`](defaults/main.yml#L400) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.3.id`](defaults/main.yml#L400) | str | `password` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.3.type`](defaults/main.yml#L401) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.3.label`](defaults/main.yml#L402) | str | `Password` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.3.secret`](defaults/main.yml#L403) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.3.type`](defaults/main.yml#L401) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.4`](defaults/main.yml#L404) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.4.id`](defaults/main.yml#L404) | str | `insecure_ssl` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.4.type`](defaults/main.yml#L405) | str | `boolean` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.4.label`](defaults/main.yml#L406) | str | `Skip Validate VMware Certificate Verification` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.4.type`](defaults/main.yml#L405) | str | `boolean` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.5`](defaults/main.yml#L407) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.5.id`](defaults/main.yml#L407) | str | `cacert` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.5.type`](defaults/main.yml#L408) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.5.label`](defaults/main.yml#L409) | str | `VMware CA Certificate` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.5.multiline`](defaults/main.yml#L410) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.5.type`](defaults/main.yml#L408) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.6`](defaults/main.yml#L411) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.6.id`](defaults/main.yml#L411) | str | `context_path` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.6.type`](defaults/main.yml#L412) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.6.label`](defaults/main.yml#L413) | str | `VMware Context Path` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.6.type`](defaults/main.yml#L412) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.7`](defaults/main.yml#L414) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.7.id`](defaults/main.yml#L414) | str | `credentials_secret_ref` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.7.type`](defaults/main.yml#L415) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.7.label`](defaults/main.yml#L416) | str | `Credentials Secret Reference` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.7.type`](defaults/main.yml#L415) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.8`](defaults/main.yml#L417) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.8.id`](defaults/main.yml#L417) | str | `vddk_init_image` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.8.type`](defaults/main.yml#L418) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.8.label`](defaults/main.yml#L419) | str | `VDDK Init Image` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.8.type`](defaults/main.yml#L418) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.9`](defaults/main.yml#L420) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.9.id`](defaults/main.yml#L420) | str | `vddk_init_image_username` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.9.type`](defaults/main.yml#L421) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.fields.9.label`](defaults/main.yml#L422) | str | `VDDK Init Image Username` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.10`](defaults/main.yml#L423) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.10.id`](defaults/main.yml#L423) | str | `vddk_init_image_password` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.10.type`](defaults/main.yml#L424) | str | `string` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.10.label`](defaults/main.yml#L425) | str | `VDDK Init Image Password` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.10.secret`](defaults/main.yml#L426) | bool | `True` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.11`](defaults/main.yml#L427) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.11.id`](defaults/main.yml#L427) | str | `vddk_init_image_credentials_secret` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.11.type`](defaults/main.yml#L428) | str | `string` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.11.label`](defaults/main.yml#L429) | str | `VDDK Init Image Credentials Secret` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.12`](defaults/main.yml#L430) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.12.id`](defaults/main.yml#L430) | str | `provider_name` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.12.type`](defaults/main.yml#L431) | str | `string` | None | None | None | -| [`aap_seed_controller_credential_types.1.inputs.fields.12.label`](defaults/main.yml#L432) | str | `Provider source` | None | None | None | +| [`aap_seed_controller_credential_types.1.inputs.fields.9.type`](defaults/main.yml#L421) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.required`](defaults/main.yml#L433) | list | `[]` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.required.0`](defaults/main.yml#L434) | str | `name` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.required.1`](defaults/main.yml#L435) | str | `host` | None | None | None | | [`aap_seed_controller_credential_types.1.inputs.required.2`](defaults/main.yml#L436) | str | `provider_name` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors`](defaults/main.yml#L437) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars`](defaults/main.yml#L438) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_target_name`](defaults/main.yml#L439) | str | `{% raw %}{ { name }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_insecure_ssl`](defaults/main.yml#L440) | str | `{% raw %}{ { insecure_ssl }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_cacert`](defaults/main.yml#L441) | str | `{% raw %}{ { cacert }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_context_path`](defaults/main.yml#L442) | str | `{% raw %}{ { context_path }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_credentials_secret_ref`](defaults/main.yml#L443) | str | `{% raw %}{ { credentials_secret_ref }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image`](defaults/main.yml#L444) | str | `{% raw %}{ { vddk_init_image }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_username`](defaults/main.yml#L445) | str | `{% raw %}{ { vddk_init_image_username }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_password`](defaults/main.yml#L446) | str | `{% raw %}{ { vddk_init_image_password }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_credentials_secret`](defaults/main.yml#L447) | str | `{% raw %}{ { vddk_init_image_credentials_secret }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.extra_vars.provider`](defaults/main.yml#L448) | str | `{% raw %}{ { provider_name }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.env`](defaults/main.yml#L449) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.env.VMWARE_HOST`](defaults/main.yml#L450) | str | `{% raw %}{ { host }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.env.VMWARE_USER`](defaults/main.yml#L451) | str | `{% raw %}{ { username }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.1.injectors.env.VMWARE_PASSWORD`](defaults/main.yml#L452) | str | `{% raw %}{ { password }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.1.kind`](defaults/main.yml#L388) | str | `cloud` | None | None | None | +| [`aap_seed_controller_credential_types.1.name`](defaults/main.yml#L385) | str | `VMware Migration Target` | None | None | None | +| [`aap_seed_controller_credential_types.1.organization`](defaults/main.yml#L387) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_controller_credential_types.2`](defaults/main.yml#L453) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.2.name`](defaults/main.yml#L453) | str | `Ovirt Migration Target` | None | None | None | | [`aap_seed_controller_credential_types.2.description`](defaults/main.yml#L454) | str | `Migration Target for Ovirt` | None | None | None | -| [`aap_seed_controller_credential_types.2.organization`](defaults/main.yml#L455) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | -| [`aap_seed_controller_credential_types.2.kind`](defaults/main.yml#L456) | str | `cloud` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors`](defaults/main.yml#L492) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.env`](defaults/main.yml#L500) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.env.OVIRT_HOST`](defaults/main.yml#L501) | str | `{% raw %}{ { host }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.env.OVIRT_PASSWORD`](defaults/main.yml#L503) | str | `{% raw %}{ { password }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.env.OVIRT_USER`](defaults/main.yml#L502) | str | `{% raw %}{ { username }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.extra_vars`](defaults/main.yml#L493) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_cacert`](defaults/main.yml#L496) | str | `{% raw %}{ { cacert }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_context_path`](defaults/main.yml#L497) | str | `{% raw %}{ { context_path }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_credentials_secret_ref`](defaults/main.yml#L498) | str | `{% raw %}{ { credentials_secret_ref }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_insecure_ssl`](defaults/main.yml#L495) | str | `{% raw %}{ { insecure_ssl }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_target_name`](defaults/main.yml#L494) | str | `{% raw %}{ { name }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.injectors.extra_vars.provider`](defaults/main.yml#L499) | str | `{% raw %}{ { provider_name }}{% endraw %}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs`](defaults/main.yml#L457) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields`](defaults/main.yml#L458) | list | `[]` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.0`](defaults/main.yml#L459) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.0.id`](defaults/main.yml#L459) | str | `name` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.0.type`](defaults/main.yml#L460) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.0.label`](defaults/main.yml#L461) | str | `Target Name` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.0.type`](defaults/main.yml#L460) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.1`](defaults/main.yml#L462) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.1.id`](defaults/main.yml#L462) | str | `host` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.1.type`](defaults/main.yml#L463) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.1.label`](defaults/main.yml#L464) | str | `Ovirt Host` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.1.type`](defaults/main.yml#L463) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.2`](defaults/main.yml#L465) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.2.id`](defaults/main.yml#L465) | str | `username` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.2.type`](defaults/main.yml#L466) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.2.label`](defaults/main.yml#L467) | str | `Username` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.2.type`](defaults/main.yml#L466) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.3`](defaults/main.yml#L468) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.3.id`](defaults/main.yml#L468) | str | `password` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.3.type`](defaults/main.yml#L469) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.3.label`](defaults/main.yml#L470) | str | `Password` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.3.secret`](defaults/main.yml#L471) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.3.type`](defaults/main.yml#L469) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.4`](defaults/main.yml#L472) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.4.id`](defaults/main.yml#L472) | str | `insecure_ssl` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.4.type`](defaults/main.yml#L473) | str | `boolean` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.4.label`](defaults/main.yml#L474) | str | `Skip Validate Ovirt Certificate Verification` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.4.type`](defaults/main.yml#L473) | str | `boolean` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.5`](defaults/main.yml#L475) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.5.id`](defaults/main.yml#L475) | str | `cacert` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.5.type`](defaults/main.yml#L476) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.5.label`](defaults/main.yml#L477) | str | `Ovirt CA Certificate` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.5.multiline`](defaults/main.yml#L478) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.5.type`](defaults/main.yml#L476) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.6`](defaults/main.yml#L479) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.6.id`](defaults/main.yml#L479) | str | `context_path` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.6.type`](defaults/main.yml#L480) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.6.label`](defaults/main.yml#L481) | str | `Ovirt Context Path` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.6.type`](defaults/main.yml#L480) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.7`](defaults/main.yml#L482) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.7.id`](defaults/main.yml#L482) | str | `credentials_secret_ref` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.7.type`](defaults/main.yml#L483) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.7.label`](defaults/main.yml#L484) | str | `Credentials Secret Reference` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.7.type`](defaults/main.yml#L483) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.8`](defaults/main.yml#L485) | dict | `{}` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.8.id`](defaults/main.yml#L485) | str | `provider_name` | None | None | None | -| [`aap_seed_controller_credential_types.2.inputs.fields.8.type`](defaults/main.yml#L486) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.fields.8.label`](defaults/main.yml#L487) | str | `Provider source` | None | None | None | +| [`aap_seed_controller_credential_types.2.inputs.fields.8.type`](defaults/main.yml#L486) | str | `string` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.required`](defaults/main.yml#L488) | list | `[]` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.required.0`](defaults/main.yml#L489) | str | `name` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.required.1`](defaults/main.yml#L490) | str | `host` | None | None | None | | [`aap_seed_controller_credential_types.2.inputs.required.2`](defaults/main.yml#L491) | str | `provider_name` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors`](defaults/main.yml#L492) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.extra_vars`](defaults/main.yml#L493) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_target_name`](defaults/main.yml#L494) | str | `{% raw %}{ { name }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_insecure_ssl`](defaults/main.yml#L495) | str | `{% raw %}{ { insecure_ssl }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_cacert`](defaults/main.yml#L496) | str | `{% raw %}{ { cacert }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_context_path`](defaults/main.yml#L497) | str | `{% raw %}{ { context_path }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_credentials_secret_ref`](defaults/main.yml#L498) | str | `{% raw %}{ { credentials_secret_ref }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.extra_vars.provider`](defaults/main.yml#L499) | str | `{% raw %}{ { provider_name }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.env`](defaults/main.yml#L500) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.env.OVIRT_HOST`](defaults/main.yml#L501) | str | `{% raw %}{ { host }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.env.OVIRT_USER`](defaults/main.yml#L502) | str | `{% raw %}{ { username }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.2.injectors.env.OVIRT_PASSWORD`](defaults/main.yml#L503) | str | `{% raw %}{ { password }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.2.kind`](defaults/main.yml#L456) | str | `cloud` | None | None | None | +| [`aap_seed_controller_credential_types.2.name`](defaults/main.yml#L453) | str | `Ovirt Migration Target` | None | None | None | +| [`aap_seed_controller_credential_types.2.organization`](defaults/main.yml#L455) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | +| [`aap_seed_controller_credentials`](defaults/main.yml#L325) | list | `[]` | None | True | Credentials to Seed | +| [`aap_seed_controller_dependency_check`](defaults/main.yml#L86) | bool | `False` | None | True | Dependency Check | +| [`aap_seed_controller_execution_environments`](defaults/main.yml#L531) | list | `[]` | None | True | Execution Environment | +| [`aap_seed_controller_execution_environments.0`](defaults/main.yml#L532) | dict | `{}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.credential`](defaults/main.yml#L535) | str | `` | None | None | None | +| [`aap_seed_controller_execution_environments.0.image`](defaults/main.yml#L533) | str | `{{ aap_seed_aap_execution_environment_image }}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.name`](defaults/main.yml#L532) | str | `{{ aap_seed_aap_execution_environment }}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.pull`](defaults/main.yml#L534) | str | `always` | None | None | None | +| [`aap_seed_controller_hostname`](defaults/main.yml#L51) | str | `` | None | None | None | +| [`aap_seed_controller_hosts`](defaults/main.yml#L549) | list | `[]` | None | True | Host | +| [`aap_seed_controller_hosts.0`](defaults/main.yml#L550) | dict | `{}` | None | None | None | +| [`aap_seed_controller_hosts.0.inventory`](defaults/main.yml#L551) | str | `{{ aap_seed_aap_inventory }}` | None | None | None | +| [`aap_seed_controller_hosts.0.name`](defaults/main.yml#L550) | str | `localhost` | None | None | None | +| [`aap_seed_controller_hosts.0.variables`](defaults/main.yml#L552) | dict | `{}` | None | None | None | +| [`aap_seed_controller_hosts.0.variables.ansible_connection`](defaults/main.yml#L553) | str | `local` | None | None | None | +| [`aap_seed_controller_hosts.0.variables.ansible_python_interpreter`](defaults/main.yml#L554) | str | `{ { ansible_playbook_python }}` | None | None | None | +| [`aap_seed_controller_inventories`](defaults/main.yml#L542) | list | `[]` | None | True | Inventory | +| [`aap_seed_controller_inventories.0`](defaults/main.yml#L543) | dict | `{}` | None | None | None | +| [`aap_seed_controller_inventories.0.name`](defaults/main.yml#L543) | str | `{{ aap_seed_aap_inventory }}` | None | None | None | +| [`aap_seed_controller_inventories.0.organization`](defaults/main.yml#L544) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_controller_organizations`](defaults/main.yml#L507) | list | `[]` | None | True | Organization | | [`aap_seed_controller_organizations.0`](defaults/main.yml#L508) | dict | `{}` | None | None | None | -| [`aap_seed_controller_organizations.0.name`](defaults/main.yml#L508) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_controller_organizations.0.galaxy_credentials`](defaults/main.yml#L509) | str | `` | None | None | None | +| [`aap_seed_controller_organizations.0.name`](defaults/main.yml#L508) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | +| [`aap_seed_controller_organizations_var`](defaults/main.yml#L72) | str | `` | None | True | AAP Organizations Variable | +| [`aap_seed_controller_password`](defaults/main.yml#L42) | str | `` | None | True | AAP Controller Password | | [`aap_seed_controller_projects`](defaults/main.yml#L516) | list | `[]` | None | The project in AAP where the collection will reside | Project | | [`aap_seed_controller_projects.0`](defaults/main.yml#L517) | dict | `{}` | None | None | None | +| [`aap_seed_controller_projects.0.credential`](defaults/main.yml#L525) | str | `{{ aap_seed_git_credential_name }}` | None | None | None | +| [`aap_seed_controller_projects.0.local_path`](defaults/main.yml#L526) | str | `infra/openshift_virtualization_migration` | None | None | None | | [`aap_seed_controller_projects.0.name`](defaults/main.yml#L517) | str | `{{ aap_seed_aap_project }}` | None | None | None | | [`aap_seed_controller_projects.0.organization`](defaults/main.yml#L518) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | | [`aap_seed_controller_projects.0.scm_branch`](defaults/main.yml#L519) | str | `{{ aap_seed_aap_project_branch }}` | None | None | None | @@ -333,90 +325,78 @@ Description: Populates an Ansible Automation Platform instance. | [`aap_seed_controller_projects.0.scm_type`](defaults/main.yml#L522) | str | `git` | None | None | None | | [`aap_seed_controller_projects.0.scm_update_on_launch`](defaults/main.yml#L523) | str | `yes` | None | None | None | | [`aap_seed_controller_projects.0.scm_url`](defaults/main.yml#L524) | str | `{{ aap_seed_aap_project_repo }}` | None | None | None | -| [`aap_seed_controller_projects.0.credential`](defaults/main.yml#L525) | str | `{{ aap_seed_git_credential_name }}` | None | None | None | -| [`aap_seed_controller_projects.0.local_path`](defaults/main.yml#L526) | str | `infra/openshift_virtualization_migration` | None | None | None | -| [`aap_seed_controller_execution_environments`](defaults/main.yml#L531) | list | `[]` | None | True | Execution Environment | -| [`aap_seed_controller_execution_environments.0`](defaults/main.yml#L532) | dict | `{}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.name`](defaults/main.yml#L532) | str | `{{ aap_seed_aap_execution_environment }}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.image`](defaults/main.yml#L533) | str | `{{ aap_seed_aap_execution_environment_image }}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.pull`](defaults/main.yml#L534) | str | `always` | None | None | None | -| [`aap_seed_controller_execution_environments.0.credential`](defaults/main.yml#L535) | str | `` | None | None | None | -| [`aap_seed_controller_inventories`](defaults/main.yml#L542) | list | `[]` | None | True | Inventory | -| [`aap_seed_controller_inventories.0`](defaults/main.yml#L543) | dict | `{}` | None | None | None | -| [`aap_seed_controller_inventories.0.name`](defaults/main.yml#L543) | str | `{{ aap_seed_aap_inventory }}` | None | None | None | -| [`aap_seed_controller_inventories.0.organization`](defaults/main.yml#L544) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | -| [`aap_seed_controller_hosts`](defaults/main.yml#L549) | list | `[]` | None | True | Host | -| [`aap_seed_controller_hosts.0`](defaults/main.yml#L550) | dict | `{}` | None | None | None | -| [`aap_seed_controller_hosts.0.name`](defaults/main.yml#L550) | str | `localhost` | None | None | None | -| [`aap_seed_controller_hosts.0.inventory`](defaults/main.yml#L551) | str | `{{ aap_seed_aap_inventory }}` | None | None | None | -| [`aap_seed_controller_hosts.0.variables`](defaults/main.yml#L552) | dict | `{}` | None | None | None | -| [`aap_seed_controller_hosts.0.variables.ansible_connection`](defaults/main.yml#L553) | str | `local` | None | None | None | -| [`aap_seed_controller_hosts.0.variables.ansible_python_interpreter`](defaults/main.yml#L554) | str | `{ { ansible_playbook_python }}` | None | None | None | | [`aap_seed_controller_templates`](defaults/main.yml#L559) | list | `[]` | None | True | AAP Controller Templates | | [`aap_seed_controller_templates.0`](defaults/main.yml#L560) | dict | `{}` | None | None | None | -| [`aap_seed_controller_templates.0.name`](defaults/main.yml#L560) | str | `OpenShift Virtualization Migration - Migrate` | None | None | None | -| [`aap_seed_controller_templates.0.organization`](defaults/main.yml#L561) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | -| [`aap_seed_controller_templates.0.project`](defaults/main.yml#L562) | str | `{{ aap_seed_aap_project }}` | None | None | None | -| [`aap_seed_controller_templates.0.job_type`](defaults/main.yml#L563) | str | `run` | None | None | None | +| [`aap_seed_controller_templates.0.ask_credential_on_launch`](defaults/main.yml#L569) | bool | `True` | None | None | None | | [`aap_seed_controller_templates.0.ask_variables_on_launch`](defaults/main.yml#L564) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.0.execution_environment`](defaults/main.yml#L568) | str | `{{ aap_seed_aap_execution_environment }}` | None | None | None | | [`aap_seed_controller_templates.0.extra_vars`](defaults/main.yml#L565) | str | `{{ aap_seed_aap_job_template_extra_vars }}` | None | None | None | -| [`aap_seed_controller_templates.0.playbook`](defaults/main.yml#L566) | str | `playbooks/mtv_migrate.yml` | None | None | None | | [`aap_seed_controller_templates.0.inventory`](defaults/main.yml#L567) | str | `{{ aap_seed_aap_inventory }}` | None | None | None | -| [`aap_seed_controller_templates.0.execution_environment`](defaults/main.yml#L568) | str | `{{ aap_seed_aap_execution_environment }}` | None | None | None | -| [`aap_seed_controller_templates.0.ask_credential_on_launch`](defaults/main.yml#L569) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.0.job_type`](defaults/main.yml#L563) | str | `run` | None | None | None | +| [`aap_seed_controller_templates.0.name`](defaults/main.yml#L560) | str | `OpenShift Virtualization Migration - Migrate` | None | None | None | +| [`aap_seed_controller_templates.0.organization`](defaults/main.yml#L561) | str | `{{ aap_seed_aap_org_name }}` | None | None | None | +| [`aap_seed_controller_templates.0.playbook`](defaults/main.yml#L566) | str | `playbooks/mtv_migrate.yml` | None | None | None | +| [`aap_seed_controller_templates.0.project`](defaults/main.yml#L562) | str | `{{ aap_seed_aap_project }}` | None | None | None | +| [`aap_seed_controller_token`](defaults/main.yml#L48) | str | `` | None | False | AAP token | +| [`aap_seed_controller_username`](defaults/main.yml#L35) | str | `` | None | True | AAP Controller Username | +| [`aap_seed_controller_validate_certs`](defaults/main.yml#L58) | str | `` | None | True | Validate AAP Controller Certificate | | [`aap_seed_controller_workflow_launch_jobs`](defaults/main.yml#L577) | NoneType | `None` | None | True | Workflow Launch Jobs | -| [`aap_seed_organization_create`](defaults/main.yml#L584) | bool | `True` | None | True | Create Organization | -| [`aap_seed_projects_create`](defaults/main.yml#L589) | bool | `True` | None | True | Create Projects | -| [`aap_seed_execution_environments_create`](defaults/main.yml#L594) | bool | `True` | None | True | Create Execution Environments | | [`aap_seed_credential_types_create`](defaults/main.yml#L599) | bool | `True` | None | True | Create Credential Types | -| [`aap_seed_inventories_create`](defaults/main.yml#L604) | bool | `True` | None | True | Create Inventories | +| [`aap_seed_execution_environments_create`](defaults/main.yml#L594) | bool | `True` | None | True | Create Execution Environments | +| [`aap_seed_git_credential_name`](defaults/main.yml#L170) | str | `` | None | True | Git Credential Name | +| [`aap_seed_git_password`](defaults/main.yml#L181) | str | `{{ (git_password is defined) ¦ ansible.builtin.ternary(git_password, '') }}` | None | True | Git Password | +| [`aap_seed_git_ssh_key_passphrase`](defaults/main.yml#L193) | str | `` | None | True | Git SSH Private Key Passphrase | +| [`aap_seed_git_ssh_private_key`](defaults/main.yml#L186) | str | `` | None | True | Git SSH Private Key | +| [`aap_seed_git_username`](defaults/main.yml#L176) | str | `{{ (git_username is defined) ¦ ansible.builtin.ternary(git_username, '') }}` | None | True | Git Username | | [`aap_seed_hosts_create`](defaults/main.yml#L609) | bool | `True` | None | True | Create Hosts | +| [`aap_seed_inventories_create`](defaults/main.yml#L604) | bool | `True` | None | True | Create Inventories | | [`aap_seed_job_templates_create`](defaults/main.yml#L614) | bool | `True` | None | True | Create Job Templates | -| [`aap_seed_workflow_job_templates_create`](defaults/main.yml#L619) | bool | `True` | None | True | Create Workflow Job Templates | -| [`aap_seed_aap_credentials_create`](defaults/main.yml#L624) | bool | `True` | None | True | Create AAP Credentials | -| [`aap_seed_project_credentials_create`](defaults/main.yml#L629) | bool | `True` | None | True | Create Project Credentials | +| [`aap_seed_migration_hub`](defaults/main.yml#L10) | list | `[]` | None | True | AAP Migration Hub | +| [`aap_seed_migration_targets`](defaults/main.yml#L262) | str | `{{ migration_targets ¦ default([]) }}` | None | True | Migration Targets | | [`aap_seed_migration_targets_credentials_create`](defaults/main.yml#L634) | bool | `True` | None | True | Create Migration Target Credentials | -| [`aap_seed_container_registry_credentials_create`](defaults/main.yml#L639) | bool | `True` | None | True | Create Container Registry Credentials | +| [`aap_seed_operator_management_hub`](defaults/main.yml#L268) | list | `[]` | None | True | Default Management Hub Operators | +| [`aap_seed_operator_management_hub.0`](defaults/main.yml#L269) | str | `acm` | None | None | None | +| [`aap_seed_operator_management_hub.1`](defaults/main.yml#L270) | str | `oadp` | None | None | None | +| [`aap_seed_operator_management_hub.2`](defaults/main.yml#L271) | str | `far` | None | None | None | +| [`aap_seed_operator_management_hub.3`](defaults/main.yml#L272) | str | `nho` | None | None | None | +| [`aap_seed_operator_management_spoke`](defaults/main.yml#L278) | list | `[]` | None | True | Default Spoke Operators | +| [`aap_seed_operator_management_spoke.0`](defaults/main.yml#L279) | str | `mtv` | None | None | None | +| [`aap_seed_operator_management_spoke.1`](defaults/main.yml#L280) | str | `cnv` | None | None | None | +| [`aap_seed_operator_management_spoke.2`](defaults/main.yml#L281) | str | `oadp` | None | None | None | +| [`aap_seed_operator_management_spoke.3`](defaults/main.yml#L282) | str | `far` | None | None | None | +| [`aap_seed_operator_management_spoke.4`](defaults/main.yml#L283) | str | `nmstate` | None | None | None | +| [`aap_seed_operator_management_spoke.5`](defaults/main.yml#L284) | str | `nho` | None | None | None | +| [`aap_seed_organization_create`](defaults/main.yml#L584) | bool | `True` | None | True | Create Organization | +| [`aap_seed_project_credentials_create`](defaults/main.yml#L629) | bool | `True` | None | True | Create Project Credentials | +| [`aap_seed_projects_create`](defaults/main.yml#L589) | bool | `True` | None | True | Create Projects | +| [`aap_seed_secure_logging`](defaults/main.yml#L5) | str | `{{ secure_logging ¦ default(true) }}` | None | True | AAP Secure Logging | +| [`aap_seed_vmware_cacert`](defaults/main.yml#L222) | str | `{{ vmware_cacert }}` | None | True | VMware CA Certificate | +| [`aap_seed_vmware_context_path`](defaults/main.yml#L227) | str | `{{ vmware_context_path }}` | None | True | VMware Context Path | +| [`aap_seed_vmware_host`](defaults/main.yml#L202) | str | `{{ vmware_host }}` | None | True | VMware Host | +| [`aap_seed_vmware_password`](defaults/main.yml#L212) | str | `{{ vmware_password }}` | None | True | VMware Password | +| [`aap_seed_vmware_user`](defaults/main.yml#L207) | str | `{{ vmware_user }}` | None | True | VMware Username | +| [`aap_seed_vmware_validate_certs`](defaults/main.yml#L217) | str | `{{ vmware_validate_certs }}` | None | True | Validate VMware Certificate | +| [`aap_seed_workflow_job_templates_create`](defaults/main.yml#L619) | bool | `True` | None | True | Create Workflow Job Templates | 🖇️ Full descriptions for vars in defaults/main.yml
-`aap_seed_secure_logging`: Enable Secure Logging -
-`aap_seed_migration_hub`: AAP Migration Hub -
-`aap_seed_aap_namespace`: AAP Namespace in OpenShift -
`aap_seed_aap_channel`: AAP Subscription Channel
-`aap_seed_aap_instance_name`: AAP Instance Name -
-`aap_seed_aap_org_name`: Name of the organization in AAP -
-`aap_seed_controller_username`: AAP Controller Username -
-`aap_seed_controller_password`: AAP Controller Password -
-`aap_seed_controller_token`: AAP token to use for the AAP controller, not required if aap_username and aap_password are set -
-`aap_seed_controller_hostname`: None -
-`aap_seed_controller_validate_certs`: Validate AAP Controller Certificate -
-`aap_seed_cac_collection`: If AAP is 2.5< use infra.controller_configuration otherwise use infra.aap_configuration +`aap_seed_aap_credentials_create`: Create AAP Credentials
-`aap_seed_controller_organizations_var`: If AAP is 2.5< use controller_organizations, otherwise use aap_organizations +`aap_seed_aap_execution_environment`: AAP Execution Environment
-`aap_seed_controller_configuration_async_retries`: Maximum number of of asynchronous retries +`aap_seed_aap_execution_environment_image`: AAP Execution Environment Image
-`aap_seed_controller_dependency_check`: Verify availability and configuration of the required dependencies for the EE +`aap_seed_aap_instance_name`: AAP Instance Name
`aap_seed_aap_inventory`: AAP Inventory used for the collection
-`aap_seed_aap_version`: AAP Version +`aap_seed_aap_job_template_extra_vars`: AAP Job Template Extra Variables
-`aap_seed_aap_execution_environment`: AAP Execution Environment +`aap_seed_aap_namespace`: AAP Namespace in OpenShift
-`aap_seed_aap_execution_environment_image`: AAP Execution Environment Image +`aap_seed_aap_org_name`: Name of the organization in AAP
`aap_seed_aap_project`: AAP Project
@@ -424,139 +404,111 @@ Description: Populates an Ansible Automation Platform instance.
`aap_seed_aap_project_repo`: AAP Project Repository that contains the Ansible Collection for OpenShift Virtualization Migration
-`aap_seed_automation_hub_certified_credential_name`: Automation Hub Certified Name +`aap_seed_aap_version`: AAP Version
-`aap_seed_automation_hub_validated_credential_name`: Automation Hub Validated Name +`aap_seed_ansible_galaxy_credential_enabled`: Enable Ansible Galaxy Credential in AAP Organization Credentials
-`aap_seed_automation_hub_certified_url`: Automation Hub Certified URL +`aap_seed_ansible_galaxy_credential_name`: Name of the Ansible Galaxy Credential
`aap_seed_automation_hub_certified_auth_url`: Automation Hub Authorization URL
-`aap_seed_automation_hub_certified_token`: Automation Hub Token -
-`aap_seed_automation_hub_validated_url`: Automation Hub Validated URL -
-`aap_seed_automation_hub_validated_auth_url`: Automation Hub Validated Authorization URL -
-`aap_seed_automation_hub_validated_token`: Automation Hub Validated Token -
-`aap_seed_git_credential_name`: Git Credential Name -
-`aap_seed_git_username`: Git Username -
-`aap_seed_git_password`: Git Password -
-`aap_seed_git_ssh_private_key`: Git SSH Private Key -
-`aap_seed_git_ssh_key_passphrase`: Git SSH Private Key Passphrase -
-`aap_seed_vmware_host`: VMware Host -
-`aap_seed_vmware_user`: VMware Username -
-`aap_seed_vmware_password`: VMware Password -
-`aap_seed_vmware_validate_certs`: Validate VMware Certificate -
-`aap_seed_vmware_cacert`: VMware CA Certificate -
-`aap_seed_vmware_context_path`: VMware Context Path +`aap_seed_automation_hub_certified_credential_name`: Automation Hub Certified Name
-`aap_seed_container_credential_name`: AAP Container Credential Name +`aap_seed_automation_hub_certified_token`: Automation Hub Token
-`aap_seed_container_host`: AAP Container Host that runs the execution environment +`aap_seed_automation_hub_certified_url`: Automation Hub Certified URL
-`aap_seed_container_password`: AAP Container Password +`aap_seed_automation_hub_credentials`: Defines the Automation Hub credentials to be used by AAP
-`aap_seed_container_username`: AAP Container Username +`aap_seed_automation_hub_credentials.0`: None
-`aap_seed_container_verify_ssl`: Determines whether SSL certificates are verified when pulling EE images +`aap_seed_automation_hub_credentials.0.credential_type`: None
-`aap_seed_aap_job_template_extra_vars`: AAP Job Template Extra Variables +`aap_seed_automation_hub_credentials.0.description`: None
-`aap_seed_migration_targets`: Migration Targets +`aap_seed_automation_hub_credentials.0.inputs`: None
-`aap_seed_operator_management_hub`: Default Management Hub Operators +`aap_seed_automation_hub_credentials.0.inputs.auth_url`: None
-`aap_seed_operator_management_hub.0`: None +`aap_seed_automation_hub_credentials.0.inputs.token`: None
-`aap_seed_operator_management_hub.1`: None +`aap_seed_automation_hub_credentials.0.inputs.url`: None
-`aap_seed_operator_management_hub.2`: None +`aap_seed_automation_hub_credentials.0.name`: None
-`aap_seed_operator_management_hub.3`: None +`aap_seed_automation_hub_credentials.0.organization`: None
-`aap_seed_operator_management_spoke`: Default Spoke Operators +`aap_seed_automation_hub_credentials.1`: None
-`aap_seed_operator_management_spoke.0`: None +`aap_seed_automation_hub_credentials.1.credential_type`: None
-`aap_seed_operator_management_spoke.1`: None +`aap_seed_automation_hub_credentials.1.description`: None
-`aap_seed_operator_management_spoke.2`: None +`aap_seed_automation_hub_credentials.1.inputs`: None
-`aap_seed_operator_management_spoke.3`: None +`aap_seed_automation_hub_credentials.1.inputs.auth_url`: None
-`aap_seed_operator_management_spoke.4`: None +`aap_seed_automation_hub_credentials.1.inputs.token`: None
-`aap_seed_operator_management_spoke.5`: None +`aap_seed_automation_hub_credentials.1.inputs.url`: None
-`aap_seed_ansible_galaxy_credential_enabled`: Enable Ansible Galaxy Credential in AAP Organization Credentials +`aap_seed_automation_hub_credentials.1.name`: None
-`aap_seed_ansible_galaxy_credential_name`: Name of the Ansible Galaxy Credential +`aap_seed_automation_hub_credentials.1.organization`: None
`aap_seed_automation_hub_credentials_create`: Create Automation Hub Credentials in AAP Organization Credentials
-`aap_seed_automation_hub_credentials`: Defines the Automation Hub credentials to be used by AAP +`aap_seed_automation_hub_validated_auth_url`: Automation Hub Validated Authorization URL
-`aap_seed_automation_hub_credentials.0`: None +`aap_seed_automation_hub_validated_credential_name`: Automation Hub Validated Name
-`aap_seed_automation_hub_credentials.0.name`: None +`aap_seed_automation_hub_validated_token`: Automation Hub Validated Token
-`aap_seed_automation_hub_credentials.0.description`: None +`aap_seed_automation_hub_validated_url`: Automation Hub Validated URL
-`aap_seed_automation_hub_credentials.0.organization`: None +`aap_seed_cac_collection`: If AAP is 2.5< use infra.controller_configuration otherwise use infra.aap_configuration
-`aap_seed_automation_hub_credentials.0.credential_type`: None +`aap_seed_container_credential_name`: AAP Container Credential Name
-`aap_seed_automation_hub_credentials.0.inputs`: None +`aap_seed_container_host`: AAP Container Host that runs the execution environment
-`aap_seed_automation_hub_credentials.0.inputs.url`: None +`aap_seed_container_password`: AAP Container Password
-`aap_seed_automation_hub_credentials.0.inputs.auth_url`: None +`aap_seed_container_registry_credentials_create`: Create Container Registry Credentials
-`aap_seed_automation_hub_credentials.0.inputs.token`: None +`aap_seed_container_username`: AAP Container Username
-`aap_seed_automation_hub_credentials.1`: None +`aap_seed_container_verify_ssl`: Determines whether SSL certificates are verified when pulling EE images
-`aap_seed_automation_hub_credentials.1.name`: None +`aap_seed_controller_configuration_async_retries`: Maximum number of of asynchronous retries
-`aap_seed_automation_hub_credentials.1.description`: None +`aap_seed_controller_credential_types`: Defines the Config as Code Credential Types
-`aap_seed_automation_hub_credentials.1.organization`: None +`aap_seed_controller_credential_types.0`: None
-`aap_seed_automation_hub_credentials.1.credential_type`: None +`aap_seed_controller_credential_types.0.description`: None
-`aap_seed_automation_hub_credentials.1.inputs`: None +`aap_seed_controller_credential_types.0.injectors`: None
-`aap_seed_automation_hub_credentials.1.inputs.url`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars`: None
-`aap_seed_automation_hub_credentials.1.inputs.auth_url`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_execution_environment`: None
-`aap_seed_automation_hub_credentials.1.inputs.token`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_instance_name`: None
-`aap_seed_controller_credentials`: Credentials to Seed +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_inventory`: None
-`aap_seed_controller_credential_types`: Defines the Config as Code Credential Types +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_job_template_extra_vars`: None
-`aap_seed_controller_credential_types.0`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_namespace`: None
-`aap_seed_controller_credential_types.0.name`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_org_name`: None
-`aap_seed_controller_credential_types.0.description`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_project`: None
-`aap_seed_controller_credential_types.0.organization`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_version`: None
-`aap_seed_controller_credential_types.0.kind`: None +`aap_seed_controller_credential_types.0.injectors.extra_vars.provided_migration_targets`: None
`aap_seed_controller_credential_types.0.inputs`: None
@@ -566,80 +518,80 @@ Description: Populates an Ansible Automation Platform instance.
`aap_seed_controller_credential_types.0.inputs.fields.0.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.0.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.0.label`: None
+`aap_seed_controller_credential_types.0.inputs.fields.0.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.1`: None
`aap_seed_controller_credential_types.0.inputs.fields.1.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.1.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.1.label`: None
+`aap_seed_controller_credential_types.0.inputs.fields.1.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.2`: None
`aap_seed_controller_credential_types.0.inputs.fields.2.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.2.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.2.label`: None
+`aap_seed_controller_credential_types.0.inputs.fields.2.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.3`: None
`aap_seed_controller_credential_types.0.inputs.fields.3.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.3.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.3.label`: None
+`aap_seed_controller_credential_types.0.inputs.fields.3.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.4`: None
`aap_seed_controller_credential_types.0.inputs.fields.4.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.4.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.4.label`: None
+`aap_seed_controller_credential_types.0.inputs.fields.4.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.5`: None
`aap_seed_controller_credential_types.0.inputs.fields.5.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.5.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.5.label`: None
+`aap_seed_controller_credential_types.0.inputs.fields.5.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.6`: None
`aap_seed_controller_credential_types.0.inputs.fields.6.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.6.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.6.label`: None
+`aap_seed_controller_credential_types.0.inputs.fields.6.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.7`: None
`aap_seed_controller_credential_types.0.inputs.fields.7.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.7.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.7.label`: None
`aap_seed_controller_credential_types.0.inputs.fields.7.secret`: None
+`aap_seed_controller_credential_types.0.inputs.fields.7.type`: None +
`aap_seed_controller_credential_types.0.inputs.fields.8`: None
`aap_seed_controller_credential_types.0.inputs.fields.8.id`: None
-`aap_seed_controller_credential_types.0.inputs.fields.8.type`: None -
`aap_seed_controller_credential_types.0.inputs.fields.8.label`: None
`aap_seed_controller_credential_types.0.inputs.fields.8.multiline`: None
`aap_seed_controller_credential_types.0.inputs.fields.8.secret`: None
+`aap_seed_controller_credential_types.0.inputs.fields.8.type`: None +
`aap_seed_controller_credential_types.0.inputs.required`: None
`aap_seed_controller_credential_types.0.inputs.required.0`: None @@ -654,37 +606,47 @@ Description: Populates an Ansible Automation Platform instance.
`aap_seed_controller_credential_types.0.inputs.required.5`: None
-`aap_seed_controller_credential_types.0.injectors`: None +`aap_seed_controller_credential_types.0.kind`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars`: None +`aap_seed_controller_credential_types.0.name`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_version`: None +`aap_seed_controller_credential_types.0.organization`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_instance_name`: None +`aap_seed_controller_credential_types.1`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_execution_environment`: None +`aap_seed_controller_credential_types.1.description`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_org_name`: None +`aap_seed_controller_credential_types.1.injectors`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_project`: None +`aap_seed_controller_credential_types.1.injectors.env`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_inventory`: None +`aap_seed_controller_credential_types.1.injectors.env.VMWARE_HOST`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_namespace`: None +`aap_seed_controller_credential_types.1.injectors.env.VMWARE_PASSWORD`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.aap_job_template_extra_vars`: None +`aap_seed_controller_credential_types.1.injectors.env.VMWARE_USER`: None
-`aap_seed_controller_credential_types.0.injectors.extra_vars.provided_migration_targets`: None +`aap_seed_controller_credential_types.1.injectors.extra_vars`: None
-`aap_seed_controller_credential_types.1`: None +`aap_seed_controller_credential_types.1.injectors.extra_vars.provider`: None
-`aap_seed_controller_credential_types.1.name`: None +`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_cacert`: None
-`aap_seed_controller_credential_types.1.description`: None +`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_context_path`: None
-`aap_seed_controller_credential_types.1.organization`: None +`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_credentials_secret_ref`: None
-`aap_seed_controller_credential_types.1.kind`: None +`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_insecure_ssl`: None +
+`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_target_name`: None +
+`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image`: None +
+`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_credentials_secret`: None +
+`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_password`: None +
+`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_username`: None
`aap_seed_controller_credential_types.1.inputs`: None
@@ -694,111 +656,111 @@ Description: Populates an Ansible Automation Platform instance.
`aap_seed_controller_credential_types.1.inputs.fields.0.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.0.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.0.label`: None
+`aap_seed_controller_credential_types.1.inputs.fields.0.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.1`: None
`aap_seed_controller_credential_types.1.inputs.fields.1.id`: None
+`aap_seed_controller_credential_types.1.inputs.fields.1.label`: None +
`aap_seed_controller_credential_types.1.inputs.fields.1.type`: None
-`aap_seed_controller_credential_types.1.inputs.fields.1.label`: None +`aap_seed_controller_credential_types.1.inputs.fields.10`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.10.id`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.10.label`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.10.secret`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.10.type`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.11`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.11.id`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.11.label`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.11.type`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.12`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.12.id`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.12.label`: None +
+`aap_seed_controller_credential_types.1.inputs.fields.12.type`: None
`aap_seed_controller_credential_types.1.inputs.fields.2`: None
`aap_seed_controller_credential_types.1.inputs.fields.2.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.2.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.2.label`: None
+`aap_seed_controller_credential_types.1.inputs.fields.2.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.3`: None
`aap_seed_controller_credential_types.1.inputs.fields.3.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.3.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.3.label`: None
`aap_seed_controller_credential_types.1.inputs.fields.3.secret`: None
+`aap_seed_controller_credential_types.1.inputs.fields.3.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.4`: None
`aap_seed_controller_credential_types.1.inputs.fields.4.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.4.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.4.label`: None
+`aap_seed_controller_credential_types.1.inputs.fields.4.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.5`: None
`aap_seed_controller_credential_types.1.inputs.fields.5.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.5.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.5.label`: None
`aap_seed_controller_credential_types.1.inputs.fields.5.multiline`: None
+`aap_seed_controller_credential_types.1.inputs.fields.5.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.6`: None
`aap_seed_controller_credential_types.1.inputs.fields.6.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.6.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.6.label`: None
+`aap_seed_controller_credential_types.1.inputs.fields.6.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.7`: None
`aap_seed_controller_credential_types.1.inputs.fields.7.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.7.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.7.label`: None
+`aap_seed_controller_credential_types.1.inputs.fields.7.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.8`: None
`aap_seed_controller_credential_types.1.inputs.fields.8.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.8.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.8.label`: None
+`aap_seed_controller_credential_types.1.inputs.fields.8.type`: None +
`aap_seed_controller_credential_types.1.inputs.fields.9`: None
`aap_seed_controller_credential_types.1.inputs.fields.9.id`: None
-`aap_seed_controller_credential_types.1.inputs.fields.9.type`: None -
`aap_seed_controller_credential_types.1.inputs.fields.9.label`: None
-`aap_seed_controller_credential_types.1.inputs.fields.10`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.10.id`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.10.type`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.10.label`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.10.secret`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.11`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.11.id`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.11.type`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.11.label`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.12`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.12.id`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.12.type`: None -
-`aap_seed_controller_credential_types.1.inputs.fields.12.label`: None +`aap_seed_controller_credential_types.1.inputs.fields.9.type`: None
`aap_seed_controller_credential_types.1.inputs.required`: None
@@ -808,47 +770,39 @@ Description: Populates an Ansible Automation Platform instance.
`aap_seed_controller_credential_types.1.inputs.required.2`: None
-`aap_seed_controller_credential_types.1.injectors`: None -
-`aap_seed_controller_credential_types.1.injectors.extra_vars`: None -
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_target_name`: None -
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_insecure_ssl`: None -
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_cacert`: None +`aap_seed_controller_credential_types.1.kind`: None
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_context_path`: None +`aap_seed_controller_credential_types.1.name`: None
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_credentials_secret_ref`: None +`aap_seed_controller_credential_types.1.organization`: None
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image`: None +`aap_seed_controller_credential_types.2`: None
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_username`: None +`aap_seed_controller_credential_types.2.description`: None
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_password`: None +`aap_seed_controller_credential_types.2.injectors`: None
-`aap_seed_controller_credential_types.1.injectors.extra_vars.vmware_vddk_init_image_credentials_secret`: None +`aap_seed_controller_credential_types.2.injectors.env`: None
-`aap_seed_controller_credential_types.1.injectors.extra_vars.provider`: None +`aap_seed_controller_credential_types.2.injectors.env.OVIRT_HOST`: None
-`aap_seed_controller_credential_types.1.injectors.env`: None +`aap_seed_controller_credential_types.2.injectors.env.OVIRT_PASSWORD`: None
-`aap_seed_controller_credential_types.1.injectors.env.VMWARE_HOST`: None +`aap_seed_controller_credential_types.2.injectors.env.OVIRT_USER`: None
-`aap_seed_controller_credential_types.1.injectors.env.VMWARE_USER`: None +`aap_seed_controller_credential_types.2.injectors.extra_vars`: None
-`aap_seed_controller_credential_types.1.injectors.env.VMWARE_PASSWORD`: None +`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_cacert`: None
-`aap_seed_controller_credential_types.2`: None +`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_context_path`: None
-`aap_seed_controller_credential_types.2.name`: None +`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_credentials_secret_ref`: None
-`aap_seed_controller_credential_types.2.description`: None +`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_insecure_ssl`: None
-`aap_seed_controller_credential_types.2.organization`: None +`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_target_name`: None
-`aap_seed_controller_credential_types.2.kind`: None +`aap_seed_controller_credential_types.2.injectors.extra_vars.provider`: None
`aap_seed_controller_credential_types.2.inputs`: None
@@ -858,122 +812,152 @@ Description: Populates an Ansible Automation Platform instance.
`aap_seed_controller_credential_types.2.inputs.fields.0.id`: None
-`aap_seed_controller_credential_types.2.inputs.fields.0.type`: None -
`aap_seed_controller_credential_types.2.inputs.fields.0.label`: None
+`aap_seed_controller_credential_types.2.inputs.fields.0.type`: None +
`aap_seed_controller_credential_types.2.inputs.fields.1`: None
`aap_seed_controller_credential_types.2.inputs.fields.1.id`: None
-`aap_seed_controller_credential_types.2.inputs.fields.1.type`: None -
`aap_seed_controller_credential_types.2.inputs.fields.1.label`: None
+`aap_seed_controller_credential_types.2.inputs.fields.1.type`: None +
`aap_seed_controller_credential_types.2.inputs.fields.2`: None
`aap_seed_controller_credential_types.2.inputs.fields.2.id`: None
-`aap_seed_controller_credential_types.2.inputs.fields.2.type`: None -
`aap_seed_controller_credential_types.2.inputs.fields.2.label`: None
+`aap_seed_controller_credential_types.2.inputs.fields.2.type`: None +
`aap_seed_controller_credential_types.2.inputs.fields.3`: None
`aap_seed_controller_credential_types.2.inputs.fields.3.id`: None
-`aap_seed_controller_credential_types.2.inputs.fields.3.type`: None -
`aap_seed_controller_credential_types.2.inputs.fields.3.label`: None
`aap_seed_controller_credential_types.2.inputs.fields.3.secret`: None
+`aap_seed_controller_credential_types.2.inputs.fields.3.type`: None +
`aap_seed_controller_credential_types.2.inputs.fields.4`: None
`aap_seed_controller_credential_types.2.inputs.fields.4.id`: None
-`aap_seed_controller_credential_types.2.inputs.fields.4.type`: None -
`aap_seed_controller_credential_types.2.inputs.fields.4.label`: None
+`aap_seed_controller_credential_types.2.inputs.fields.4.type`: None +
`aap_seed_controller_credential_types.2.inputs.fields.5`: None
`aap_seed_controller_credential_types.2.inputs.fields.5.id`: None
-`aap_seed_controller_credential_types.2.inputs.fields.5.type`: None -
`aap_seed_controller_credential_types.2.inputs.fields.5.label`: None
`aap_seed_controller_credential_types.2.inputs.fields.5.multiline`: None
+`aap_seed_controller_credential_types.2.inputs.fields.5.type`: None +
`aap_seed_controller_credential_types.2.inputs.fields.6`: None
`aap_seed_controller_credential_types.2.inputs.fields.6.id`: None
-`aap_seed_controller_credential_types.2.inputs.fields.6.type`: None -
`aap_seed_controller_credential_types.2.inputs.fields.6.label`: None
+`aap_seed_controller_credential_types.2.inputs.fields.6.type`: None +
`aap_seed_controller_credential_types.2.inputs.fields.7`: None
`aap_seed_controller_credential_types.2.inputs.fields.7.id`: None
+`aap_seed_controller_credential_types.2.inputs.fields.7.label`: None +
`aap_seed_controller_credential_types.2.inputs.fields.7.type`: None
-`aap_seed_controller_credential_types.2.inputs.fields.7.label`: None +`aap_seed_controller_credential_types.2.inputs.fields.8`: None +
+`aap_seed_controller_credential_types.2.inputs.fields.8.id`: None +
+`aap_seed_controller_credential_types.2.inputs.fields.8.label`: None +
+`aap_seed_controller_credential_types.2.inputs.fields.8.type`: None +
+`aap_seed_controller_credential_types.2.inputs.required`: None +
+`aap_seed_controller_credential_types.2.inputs.required.0`: None +
+`aap_seed_controller_credential_types.2.inputs.required.1`: None +
+`aap_seed_controller_credential_types.2.inputs.required.2`: None +
+`aap_seed_controller_credential_types.2.kind`: None +
+`aap_seed_controller_credential_types.2.name`: None +
+`aap_seed_controller_credential_types.2.organization`: None
-`aap_seed_controller_credential_types.2.inputs.fields.8`: None +`aap_seed_controller_credentials`: Credentials to Seed
-`aap_seed_controller_credential_types.2.inputs.fields.8.id`: None +`aap_seed_controller_dependency_check`: Verify availability and configuration of the required dependencies for the EE
-`aap_seed_controller_credential_types.2.inputs.fields.8.type`: None +`aap_seed_controller_execution_environments`: The execution environment where the ansible playbooks for OpenShift Virtualization Migration will run
-`aap_seed_controller_credential_types.2.inputs.fields.8.label`: None +`aap_seed_controller_execution_environments.0`: None
-`aap_seed_controller_credential_types.2.inputs.required`: None +`aap_seed_controller_execution_environments.0.credential`: None
-`aap_seed_controller_credential_types.2.inputs.required.0`: None +`aap_seed_controller_execution_environments.0.image`: None
-`aap_seed_controller_credential_types.2.inputs.required.1`: None +`aap_seed_controller_execution_environments.0.name`: None
-`aap_seed_controller_credential_types.2.inputs.required.2`: None +`aap_seed_controller_execution_environments.0.pull`: None
-`aap_seed_controller_credential_types.2.injectors`: None +`aap_seed_controller_hostname`: None
-`aap_seed_controller_credential_types.2.injectors.extra_vars`: None +`aap_seed_controller_hosts`: The hosts where the migration will run
-`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_target_name`: None +`aap_seed_controller_hosts.0`: None
-`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_insecure_ssl`: None +`aap_seed_controller_hosts.0.inventory`: None
-`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_cacert`: None +`aap_seed_controller_hosts.0.name`: None
-`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_context_path`: None +`aap_seed_controller_hosts.0.variables`: None
-`aap_seed_controller_credential_types.2.injectors.extra_vars.ovirt_credentials_secret_ref`: None +`aap_seed_controller_hosts.0.variables.ansible_connection`: None
-`aap_seed_controller_credential_types.2.injectors.extra_vars.provider`: None +`aap_seed_controller_hosts.0.variables.ansible_python_interpreter`: None
-`aap_seed_controller_credential_types.2.injectors.env`: None +`aap_seed_controller_inventories`: Target inventory for OpenShift Virtualization Migration
-`aap_seed_controller_credential_types.2.injectors.env.OVIRT_HOST`: None +`aap_seed_controller_inventories.0`: None
-`aap_seed_controller_credential_types.2.injectors.env.OVIRT_USER`: None +`aap_seed_controller_inventories.0.name`: None
-`aap_seed_controller_credential_types.2.injectors.env.OVIRT_PASSWORD`: None +`aap_seed_controller_inventories.0.organization`: None
`aap_seed_controller_organizations`: AAP Organization for OpenShift Virtualization Migration
`aap_seed_controller_organizations.0`: None
+`aap_seed_controller_organizations.0.galaxy_credentials`: None +
`aap_seed_controller_organizations.0.name`: None
-`aap_seed_controller_organizations.0.galaxy_credentials`: None +`aap_seed_controller_organizations_var`: If AAP is 2.5< use controller_organizations, otherwise use aap_organizations +
+`aap_seed_controller_password`: AAP Controller Password
`aap_seed_controller_projects`: None
`aap_seed_controller_projects.0`: None
+`aap_seed_controller_projects.0.credential`: None +
+`aap_seed_controller_projects.0.local_path`: None +
`aap_seed_controller_projects.0.name`: None
`aap_seed_controller_projects.0.organization`: None @@ -990,93 +974,109 @@ Description: Populates an Ansible Automation Platform instance.
`aap_seed_controller_projects.0.scm_url`: None
-`aap_seed_controller_projects.0.credential`: None +`aap_seed_controller_templates`: AAP controller templates to seed
-`aap_seed_controller_projects.0.local_path`: None +`aap_seed_controller_templates.0`: None
-`aap_seed_controller_execution_environments`: The execution environment where the ansible playbooks for OpenShift Virtualization Migration will run +`aap_seed_controller_templates.0.ask_credential_on_launch`: None
-`aap_seed_controller_execution_environments.0`: None +`aap_seed_controller_templates.0.ask_variables_on_launch`: None
-`aap_seed_controller_execution_environments.0.name`: None +`aap_seed_controller_templates.0.execution_environment`: None
-`aap_seed_controller_execution_environments.0.image`: None +`aap_seed_controller_templates.0.extra_vars`: None
-`aap_seed_controller_execution_environments.0.pull`: None +`aap_seed_controller_templates.0.inventory`: None
-`aap_seed_controller_execution_environments.0.credential`: None +`aap_seed_controller_templates.0.job_type`: None
-`aap_seed_controller_inventories`: Target inventory for OpenShift Virtualization Migration +`aap_seed_controller_templates.0.name`: None
-`aap_seed_controller_inventories.0`: None +`aap_seed_controller_templates.0.organization`: None
-`aap_seed_controller_inventories.0.name`: None +`aap_seed_controller_templates.0.playbook`: None
-`aap_seed_controller_inventories.0.organization`: None +`aap_seed_controller_templates.0.project`: None
-`aap_seed_controller_hosts`: The hosts where the migration will run +`aap_seed_controller_token`: AAP token to use for the AAP controller, not required if aap_username and aap_password are set
-`aap_seed_controller_hosts.0`: None +`aap_seed_controller_username`: AAP Controller Username
-`aap_seed_controller_hosts.0.name`: None +`aap_seed_controller_validate_certs`: Validate AAP Controller Certificate
-`aap_seed_controller_hosts.0.inventory`: None +`aap_seed_controller_workflow_launch_jobs`: Workflow Launch Jobs
-`aap_seed_controller_hosts.0.variables`: None +`aap_seed_credential_types_create`: Create Credential Types
-`aap_seed_controller_hosts.0.variables.ansible_connection`: None +`aap_seed_execution_environments_create`: Create Execution Environments
-`aap_seed_controller_hosts.0.variables.ansible_python_interpreter`: None +`aap_seed_git_credential_name`: Git Credential Name
-`aap_seed_controller_templates`: AAP controller templates to seed +`aap_seed_git_password`: Git Password
-`aap_seed_controller_templates.0`: None +`aap_seed_git_ssh_key_passphrase`: Git SSH Private Key Passphrase
-`aap_seed_controller_templates.0.name`: None +`aap_seed_git_ssh_private_key`: Git SSH Private Key
-`aap_seed_controller_templates.0.organization`: None +`aap_seed_git_username`: Git Username
-`aap_seed_controller_templates.0.project`: None +`aap_seed_hosts_create`: Create Hosts
-`aap_seed_controller_templates.0.job_type`: None +`aap_seed_inventories_create`: Create Inventories
-`aap_seed_controller_templates.0.ask_variables_on_launch`: None +`aap_seed_job_templates_create`: Create Job Templates
-`aap_seed_controller_templates.0.extra_vars`: None +`aap_seed_migration_hub`: AAP Migration Hub
-`aap_seed_controller_templates.0.playbook`: None +`aap_seed_migration_targets`: Migration Targets
-`aap_seed_controller_templates.0.inventory`: None +`aap_seed_migration_targets_credentials_create`: Create Migration Target Credentials
-`aap_seed_controller_templates.0.execution_environment`: None +`aap_seed_operator_management_hub`: Default Management Hub Operators
-`aap_seed_controller_templates.0.ask_credential_on_launch`: None +`aap_seed_operator_management_hub.0`: None
-`aap_seed_controller_workflow_launch_jobs`: Workflow Launch Jobs +`aap_seed_operator_management_hub.1`: None
-`aap_seed_organization_create`: Create Organization +`aap_seed_operator_management_hub.2`: None
-`aap_seed_projects_create`: Create Projects +`aap_seed_operator_management_hub.3`: None
-`aap_seed_execution_environments_create`: Create Execution Environments +`aap_seed_operator_management_spoke`: Default Spoke Operators
-`aap_seed_credential_types_create`: Create Credential Types +`aap_seed_operator_management_spoke.0`: None
-`aap_seed_inventories_create`: Create Inventories +`aap_seed_operator_management_spoke.1`: None
-`aap_seed_hosts_create`: Create Hosts +`aap_seed_operator_management_spoke.2`: None
-`aap_seed_job_templates_create`: Create Job Templates +`aap_seed_operator_management_spoke.3`: None
-`aap_seed_workflow_job_templates_create`: Create Workflow Job Templates +`aap_seed_operator_management_spoke.4`: None
-`aap_seed_aap_credentials_create`: Create AAP Credentials +`aap_seed_operator_management_spoke.5`: None +
+`aap_seed_organization_create`: Create Organization
`aap_seed_project_credentials_create`: Create Project Credentials
-`aap_seed_migration_targets_credentials_create`: Create Migration Target Credentials +`aap_seed_projects_create`: Create Projects
-`aap_seed_container_registry_credentials_create`: Create Container Registry Credentials +`aap_seed_secure_logging`: Enable Secure Logging +
+`aap_seed_vmware_cacert`: VMware CA Certificate +
+`aap_seed_vmware_context_path`: VMware Context Path +
+`aap_seed_vmware_host`: VMware Host +
+`aap_seed_vmware_password`: VMware Password +
+`aap_seed_vmware_user`: VMware Username +
+`aap_seed_vmware_validate_certs`: Validate VMware Certificate +
+`aap_seed_workflow_job_templates_create`: Create Workflow Job Templates

@@ -1166,6 +1166,28 @@ Description: Populates an Ansible Automation Platform instance. ## Task Flow Graphs +### Graph for _build_credentials.yml + +```mermaid +flowchart TD +Start +classDef block stroke:#3498db,stroke-width:2px; +classDef task stroke:#4b76bb,stroke-width:2px; +classDef includeTasks stroke:#16a085,stroke-width:2px; +classDef importTasks stroke:#34495e,stroke-width:2px; +classDef includeRole stroke:#2980b9,stroke-width:2px; +classDef importRole stroke:#699ba7,stroke-width:2px; +classDef includeVars stroke:#8e44ad,stroke-width:2px; +classDef rescue stroke:#665352,stroke-width:2px; + + Start-->|Include role| _build_credentials___Create_migration_factory_api_token_for__mf_host_infra_openshift_virtualization_migration_create_mf_aap_token_0( build credentials create migration factory api
token for mf host
When: **hostvars mf host openshift api key is
undefined**
include_role: infra openshift virtualization migration create mf
aap token):::includeRole + _build_credentials___Create_migration_factory_api_token_for__mf_host_infra_openshift_virtualization_migration_create_mf_aap_token_0-->|Task| _build_credentials___Set_openshift_api_key_var_on__mf_host1[ build credentials set openshift api key var on
mf host
When: **hostvars mf host openshift api key is
undefined**]:::task + _build_credentials___Set_openshift_api_key_var_on__mf_host1-->|Task| _build_credentials___Build_migration_targets2[ build credentials build migration targets
When: **mf host in groups migration spoke**]:::task + _build_credentials___Build_migration_targets2-->|Task| _build_credentials___Build_Migration_Factory_CaC_Credential_for__mf_host3[ build credentials build migration factory cac
credential for mf host
When: **mf host in groups migration spoke**]:::task + _build_credentials___Build_Migration_Factory_CaC_Credential_for__mf_host3-->|Task| _build_credentials___Build_kubeconfig_for__mf_host4[ build credentials build kubeconfig for mf host]:::task + _build_credentials___Build_kubeconfig_for__mf_host4-->End +``` + ### Graph for _build_job_templates.yml ```mermaid @@ -1209,7 +1231,7 @@ classDef rescue stroke:#665352,stroke-width:2px; _mtv_job_templates___Configure_oVirt_MTV_Job_Template1-->End ``` -### Graph for main.yml +### Graph for _mtv_workflow_job_templates.yml ```mermaid flowchart TD @@ -1223,21 +1245,13 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| Set_controller_configuration_vars0[set controller configuration vars]:::task - Set_controller_configuration_vars0-->|Include task| Build_Credentials_credentials_yml_1[build credentials
include_task: credentials yml]:::includeTasks - Build_Credentials_credentials_yml_1-->|Include task| Build_Job_Templates_job_templates_yml_2[build job templates
When: **aap seed job templates create default true
bool**
include_task: job templates yml]:::includeTasks - Build_Job_Templates_job_templates_yml_2-->|Include task| Build_Workflows_workflows_yml_3[build workflows
When: **aap seed workflow job templates create default
true bool**
include_task: workflows yml]:::includeTasks - Build_Workflows_workflows_yml_3-->|Task| Ensure_AAP_API_credentials_are_set4[ensure aap api credentials are set]:::task - Ensure_AAP_API_credentials_are_set4-->|Task| Check_if_both_username_password_and_token_are_defined5[check if both username password and token are
defined
When: **aap seed controller username default true
trim length 0 and aap seed controller password
default true trim length 0 and aap
seed controller token default true trim
length 0**]:::task - Check_if_both_username_password_and_token_are_defined5-->|Task| Wait_for_API_to_become_available_using_username_and_password6[wait for api to become available using username
and password
When: **aap seed controller token default true
length 0**]:::task - Wait_for_API_to_become_available_using_username_and_password6-->|Task| Wait_for_API_to_become_available_using_token7[wait for api to become available using token
When: **aap seed controller token default true
length 0**]:::task - Wait_for_API_to_become_available_using_token7-->|Task| Set_controller_configuration_vars8[set controller configuration vars]:::task - Set_controller_configuration_vars8-->|Task| Set_variables_for_aap_seed_cac_collection9[set variables for aap seed cac collection]:::task - Set_variables_for_aap_seed_cac_collection9-->|Include role| Call_dispatch_role____aap_seed_cac_collection____dispatch_10(call dispatch role
include_role: aap seed cac collection dispatch):::includeRole - Call_dispatch_role____aap_seed_cac_collection____dispatch_10-->End + Start-->|Task| _mtv_workflow_job_templates___Build_MTV_Target_Workflows_for__mf_host0[ mtv workflow job templates build mtv target
workflows for mf host]:::task + _mtv_workflow_job_templates___Build_MTV_Target_Workflows_for__mf_host0-->|Task| _mtv_workflow_job_templates___Get_list_of_MTV_Target_workflow_names1[ mtv workflow job templates get list of mtv
target workflow names]:::task + _mtv_workflow_job_templates___Get_list_of_MTV_Target_workflow_names1-->|Task| _mtv_workflow_job_templates___Build_MTV_workflow2[ mtv workflow job templates build mtv workflow]:::task + _mtv_workflow_job_templates___Build_MTV_workflow2-->End ``` -### Graph for _mtv_workflow_job_templates.yml +### Graph for credentials.yml ```mermaid flowchart TD @@ -1251,10 +1265,16 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _mtv_workflow_job_templates___Build_MTV_Target_Workflows_for__mf_host0[ mtv workflow job templates build mtv target
workflows for mf host]:::task - _mtv_workflow_job_templates___Build_MTV_Target_Workflows_for__mf_host0-->|Task| _mtv_workflow_job_templates___Get_list_of_MTV_Target_workflow_names1[ mtv workflow job templates get list of mtv
target workflow names]:::task - _mtv_workflow_job_templates___Get_list_of_MTV_Target_workflow_names1-->|Task| _mtv_workflow_job_templates___Build_MTV_workflow2[ mtv workflow job templates build mtv workflow]:::task - _mtv_workflow_job_templates___Build_MTV_workflow2-->End + Start-->|Task| credentials___Set_credentials_variable0[credentials set credentials variable]:::task + credentials___Set_credentials_variable0-->|Task| credentials___Build_AAP_Credential1[credentials build aap credential
When: **aap seed aap credentials create default true**]:::task + credentials___Build_AAP_Credential1-->|Task| credentials___Build_Automation_Hub_Credentials2[credentials build automation hub credentials
When: **aap seed automation hub credentials create
default true**]:::task + credentials___Build_Automation_Hub_Credentials2-->|Task| credentials___Build_Project_Credential3[credentials build project credential
When: **aap seed project credentials create default true
**]:::task + credentials___Build_Project_Credential3-->|Task| credentials___Build_Container_Registry_Credential4[credentials build container registry credential
When: **aap seed container registry credentials create
default true**]:::task + credentials___Build_Container_Registry_Credential4-->|Block Start| credentials___Build_Operator_Management_Credentials5_block_start_0[[credentials build operator management
credentials
When: **aap seed migration targets credentials create
default true**]]:::block + credentials___Build_Operator_Management_Credentials5_block_start_0-->|Task| credentials___Build_Migration_Target_Credentials0[credentials build migration target credentials
When: **groups migration spoke length 0 and
hostvars groups migration spoke 0 migration
targets default length 0**]:::task + credentials___Build_Migration_Target_Credentials0-->|Include task| credentials___Build_required_credentials__build_credentials_yml_1[credentials build required credentials
include_task: build credentials yml]:::includeTasks + credentials___Build_required_credentials__build_credentials_yml_1-.->|End of Block| credentials___Build_Operator_Management_Credentials5_block_start_0 + credentials___Build_required_credentials__build_credentials_yml_1-->End ``` ### Graph for job_templates.yml @@ -1276,7 +1296,7 @@ classDef rescue stroke:#665352,stroke-width:2px; job_templates___Build_Operator_Install_Job_Templates__build_job_templates_yml_1-->End ``` -### Graph for _build_credentials.yml +### Graph for main.yml ```mermaid flowchart TD @@ -1290,12 +1310,18 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Include role| _build_credentials___Create_migration_factory_api_token_for__mf_host_infra_openshift_virtualization_migration_create_mf_aap_token_0( build credentials create migration factory api
token for mf host
When: **hostvars mf host openshift api key is
undefined**
include_role: infra openshift virtualization migration create mf
aap token):::includeRole - _build_credentials___Create_migration_factory_api_token_for__mf_host_infra_openshift_virtualization_migration_create_mf_aap_token_0-->|Task| _build_credentials___Set_openshift_api_key_var_on__mf_host1[ build credentials set openshift api key var on
mf host
When: **hostvars mf host openshift api key is
undefined**]:::task - _build_credentials___Set_openshift_api_key_var_on__mf_host1-->|Task| _build_credentials___Build_migration_targets2[ build credentials build migration targets
When: **mf host in groups migration spoke**]:::task - _build_credentials___Build_migration_targets2-->|Task| _build_credentials___Build_Migration_Factory_CaC_Credential_for__mf_host3[ build credentials build migration factory cac
credential for mf host
When: **mf host in groups migration spoke**]:::task - _build_credentials___Build_Migration_Factory_CaC_Credential_for__mf_host3-->|Task| _build_credentials___Build_kubeconfig_for__mf_host4[ build credentials build kubeconfig for mf host]:::task - _build_credentials___Build_kubeconfig_for__mf_host4-->End + Start-->|Task| Set_controller_configuration_vars0[set controller configuration vars]:::task + Set_controller_configuration_vars0-->|Include task| Build_Credentials_credentials_yml_1[build credentials
include_task: credentials yml]:::includeTasks + Build_Credentials_credentials_yml_1-->|Include task| Build_Job_Templates_job_templates_yml_2[build job templates
When: **aap seed job templates create default true
bool**
include_task: job templates yml]:::includeTasks + Build_Job_Templates_job_templates_yml_2-->|Include task| Build_Workflows_workflows_yml_3[build workflows
When: **aap seed workflow job templates create default
true bool**
include_task: workflows yml]:::includeTasks + Build_Workflows_workflows_yml_3-->|Task| Ensure_AAP_API_credentials_are_set4[ensure aap api credentials are set]:::task + Ensure_AAP_API_credentials_are_set4-->|Task| Check_if_both_username_password_and_token_are_defined5[check if both username password and token are
defined
When: **aap seed controller username default true
trim length 0 and aap seed controller password
default true trim length 0 and aap
seed controller token default true trim
length 0**]:::task + Check_if_both_username_password_and_token_are_defined5-->|Task| Wait_for_API_to_become_available_using_username_and_password6[wait for api to become available using username
and password
When: **aap seed controller token default true
length 0**]:::task + Wait_for_API_to_become_available_using_username_and_password6-->|Task| Wait_for_API_to_become_available_using_token7[wait for api to become available using token
When: **aap seed controller token default true
length 0**]:::task + Wait_for_API_to_become_available_using_token7-->|Task| Set_controller_configuration_vars8[set controller configuration vars]:::task + Set_controller_configuration_vars8-->|Task| Set_variables_for_aap_seed_cac_collection9[set variables for aap seed cac collection]:::task + Set_variables_for_aap_seed_cac_collection9-->|Include role| Call_dispatch_role____aap_seed_cac_collection____dispatch_10(call dispatch role
include_role: aap seed cac collection dispatch):::includeRole + Call_dispatch_role____aap_seed_cac_collection____dispatch_10-->End ``` ### Graph for workflows.yml @@ -1320,32 +1346,6 @@ classDef rescue stroke:#665352,stroke-width:2px; workflows___Build_Migration_Factory_Workflow4-->End ``` -### Graph for credentials.yml - -```mermaid -flowchart TD -Start -classDef block stroke:#3498db,stroke-width:2px; -classDef task stroke:#4b76bb,stroke-width:2px; -classDef includeTasks stroke:#16a085,stroke-width:2px; -classDef importTasks stroke:#34495e,stroke-width:2px; -classDef includeRole stroke:#2980b9,stroke-width:2px; -classDef importRole stroke:#699ba7,stroke-width:2px; -classDef includeVars stroke:#8e44ad,stroke-width:2px; -classDef rescue stroke:#665352,stroke-width:2px; - - Start-->|Task| credentials___Set_credentials_variable0[credentials set credentials variable]:::task - credentials___Set_credentials_variable0-->|Task| credentials___Build_AAP_Credential1[credentials build aap credential
When: **aap seed aap credentials create default true**]:::task - credentials___Build_AAP_Credential1-->|Task| credentials___Build_Automation_Hub_Credentials2[credentials build automation hub credentials
When: **aap seed automation hub credentials create
default true**]:::task - credentials___Build_Automation_Hub_Credentials2-->|Task| credentials___Build_Project_Credential3[credentials build project credential
When: **aap seed project credentials create default true
**]:::task - credentials___Build_Project_Credential3-->|Task| credentials___Build_Container_Registry_Credential4[credentials build container registry credential
When: **aap seed container registry credentials create
default true**]:::task - credentials___Build_Container_Registry_Credential4-->|Block Start| credentials___Build_Operator_Management_Credentials5_block_start_0[[credentials build operator management
credentials
When: **aap seed migration targets credentials create
default true**]]:::block - credentials___Build_Operator_Management_Credentials5_block_start_0-->|Task| credentials___Build_Migration_Target_Credentials0[credentials build migration target credentials
When: **groups migration spoke length 0 and
hostvars groups migration spoke 0 migration
targets default length 0**]:::task - credentials___Build_Migration_Target_Credentials0-->|Include task| credentials___Build_required_credentials__build_credentials_yml_1[credentials build required credentials
include_task: build credentials yml]:::includeTasks - credentials___Build_required_credentials__build_credentials_yml_1-.->|End of Block| credentials___Build_Operator_Management_Credentials5_block_start_0 - credentials___Build_required_credentials__build_credentials_yml_1-->End -``` - ## Author Information OpenShift Virtualization Migration Contributors diff --git a/roles/bootstrap/README.md b/roles/bootstrap/README.md index 3222a01..f296474 100644 --- a/roles/bootstrap/README.md +++ b/roles/bootstrap/README.md @@ -26,65 +26,65 @@ Description: Initialization of the Ansible for OpenShift Virtualization Migratio | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`bootstrap_user`](defaults/main.yml#L6) | str | `ansible` | None | true | This is the bootstrap user with sudo that should already exist on the bootsrap host | -| [`bootstrap_public_keys`](defaults/main.yml#L10) | list | `[]` | None | false | Add a list of SSH public keys to be added to authorized_keys on the bootstrap VM | -| [`bootstrap_aap_setup_working_dir`](defaults/main.yml#L14) | str | `/home/ansible/bootstrap_dir` | None | true | Working direcotry on the bootstrap host | -| [`bootstrap_rh_username`](defaults/main.yml#L18) | str | `{{ rh_username }}` | None | true | Red Hat account login (this is used to attach your subs to controller) | -| [`bootstrap_rh_password`](defaults/main.yml#L22) | str | `{{ rh_password }}` | None | true | Red Hat account password | -| [`bootstrap_rh_client_id`](defaults/main.yml#L26) | str | `{{ rh_client_id }}` | None | false | Red Hat Service Account Client ID | -| [`bootstrap_rh_client_secret`](defaults/main.yml#L30) | str | `{{ rh_client_secret }}` | None | false | Red Hat Service Account Client Secret | -| [`bootstrap_rh_subscription_id`](defaults/main.yml#L34) | str | `` | None | true | Red Hat subscription ID | -| [`bootstrap_rh_filter_product_name`](defaults/main.yml#L38) | str | `Red Hat Ansible Automation Platform` | None | false | Red Hat subscription product name | -| [`bootstrap_rh_filter_support_level`](defaults/main.yml#L42) | str | `Self-Support` | None | false | Red Hat subscription support level | -| [`bootstrap_controller_password`](defaults/main.yml#L46) | str | `{{ controller_password }}` | None | true | The admin password for the controller | -| [`bootstrap_aap_setup_inst_verbosity`](defaults/main.yml#L50) | int | `1` | None | false | Level from 0 - 5 for verbosity | | [`bootstrap_aap_license_manifest`](defaults/main.yml#L54) | str | `` | None | false | Location of the AAP license manifest file | +| [`bootstrap_aap_setup_inst_verbosity`](defaults/main.yml#L50) | int | `1` | None | false | Level from 0 - 5 for verbosity | +| [`bootstrap_aap_setup_working_dir`](defaults/main.yml#L14) | str | `/home/ansible/bootstrap_dir` | None | true | Working direcotry on the bootstrap host | +| [`bootstrap_aap_version`](defaults/main.yml#L71) | str | `{{ aap_version ¦ default(2.6) }}` | None | false | Bootstrap AAP Version | | [`bootstrap_controller_hostname`](defaults/main.yml#L63) | str | `{{ controller_hostname ¦ default(ansible_host) }}` | None | false | Bootstrap controller hostname | +| [`bootstrap_controller_password`](defaults/main.yml#L46) | str | `{{ controller_password }}` | None | true | The admin password for the controller | | [`bootstrap_controller_username`](defaults/main.yml#L67) | str | `admin` | None | false | Bootstrap controller username | -| [`bootstrap_aap_version`](defaults/main.yml#L71) | str | `{{ aap_version ¦ default(2.6) }}` | None | false | Bootstrap AAP Version | | [`bootstrap_controller_validate_certs`](defaults/main.yml#L75) | str | `{{ controller_validate_certs ¦ default(false) }}` | None | false | Validate Controller SSL certificates | -| [`bootstrap_license_file_submission_retries`](defaults/main.yml#L81) | int | `25` | None | True | License File Submission Retries | | [`bootstrap_license_file_submission_delay`](defaults/main.yml#L87) | int | `10` | None | True | License File Submission Delay | +| [`bootstrap_license_file_submission_retries`](defaults/main.yml#L81) | int | `25` | None | True | License File Submission Retries | +| [`bootstrap_public_keys`](defaults/main.yml#L10) | list | `[]` | None | false | Add a list of SSH public keys to be added to authorized_keys on the bootstrap VM | +| [`bootstrap_rh_client_id`](defaults/main.yml#L26) | str | `{{ rh_client_id }}` | None | false | Red Hat Service Account Client ID | +| [`bootstrap_rh_client_secret`](defaults/main.yml#L30) | str | `{{ rh_client_secret }}` | None | false | Red Hat Service Account Client Secret | +| [`bootstrap_rh_filter_product_name`](defaults/main.yml#L38) | str | `Red Hat Ansible Automation Platform` | None | false | Red Hat subscription product name | +| [`bootstrap_rh_filter_support_level`](defaults/main.yml#L42) | str | `Self-Support` | None | false | Red Hat subscription support level | +| [`bootstrap_rh_password`](defaults/main.yml#L22) | str | `{{ rh_password }}` | None | true | Red Hat account password | +| [`bootstrap_rh_subscription_id`](defaults/main.yml#L34) | str | `` | None | true | Red Hat subscription ID | +| [`bootstrap_rh_username`](defaults/main.yml#L18) | str | `{{ rh_username }}` | None | true | Red Hat account login (this is used to attach your subs to controller) | +| [`bootstrap_user`](defaults/main.yml#L6) | str | `ansible` | None | true | This is the bootstrap user with sudo that should already exist on the bootsrap host | 🖇️ Full descriptions for vars in defaults/main.yml
-`bootstrap_user`: None +`bootstrap_aap_license_manifest`: None
-`bootstrap_public_keys`: None +`bootstrap_aap_setup_inst_verbosity`: None
`bootstrap_aap_setup_working_dir`: None
-`bootstrap_rh_username`: None +`bootstrap_aap_version`: None
-`bootstrap_rh_password`: None +`bootstrap_controller_hostname`: None
-`bootstrap_rh_client_id`: None +`bootstrap_controller_password`: None
-`bootstrap_rh_client_secret`: None +`bootstrap_controller_username`: None
-`bootstrap_rh_subscription_id`: None +`bootstrap_controller_validate_certs`: None
-`bootstrap_rh_filter_product_name`: None +`bootstrap_license_file_submission_delay`: None
-`bootstrap_rh_filter_support_level`: None +`bootstrap_license_file_submission_retries`: None
-`bootstrap_controller_password`: None +`bootstrap_public_keys`: None
-`bootstrap_aap_setup_inst_verbosity`: None +`bootstrap_rh_client_id`: None
-`bootstrap_aap_license_manifest`: None +`bootstrap_rh_client_secret`: None
-`bootstrap_controller_hostname`: None +`bootstrap_rh_filter_product_name`: None
-`bootstrap_controller_username`: None +`bootstrap_rh_filter_support_level`: None
-`bootstrap_aap_version`: None +`bootstrap_rh_password`: None
-`bootstrap_controller_validate_certs`: None +`bootstrap_rh_subscription_id`: None
-`bootstrap_license_file_submission_retries`: None +`bootstrap_rh_username`: None
-`bootstrap_license_file_submission_delay`: None +`bootstrap_user`: None

@@ -134,7 +134,7 @@ Description: Initialization of the Ansible for OpenShift Virtualization Migratio ## Task Flow Graphs -### Graph for main.yml +### Graph for aap_subscription.yml ```mermaid flowchart TD @@ -148,8 +148,18 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Include task| Subscribe_AAP_aap_subscription_yml_0[subscribe aap
include_task: aap subscription yml]:::includeTasks - Subscribe_AAP_aap_subscription_yml_0-->End + Start-->|Block Start| aap_subscription___Get_subscriptions_with_a_filter0_block_start_0[[aap subscription get subscriptions with a filter
When: **bootstrap rh subscription id default true
trim length 0 and bootstrap aap license
manifest default true trim length 0**]]:::block + aap_subscription___Get_subscriptions_with_a_filter0_block_start_0-->|Task| aap_subscription___Query_Subscription0[aap subscription query subscription]:::task + aap_subscription___Query_Subscription0-->|Task| aap_subscription___Set_subscription_ID_based_on_bootstrap_subscription1[aap subscription set subscription id based on
bootstrap subscription]:::task + aap_subscription___Set_subscription_ID_based_on_bootstrap_subscription1-->|Task| aap_subscription___Attach_to_a_subscription2[aap subscription attach to a subscription]:::task + aap_subscription___Attach_to_a_subscription2-.->|End of Block| aap_subscription___Get_subscriptions_with_a_filter0_block_start_0 + aap_subscription___Attach_to_a_subscription2-->|Block Start| aap_subscription___Verify_License_Manifest_Exists1_block_start_0[[aap subscription verify license manifest exists
When: **bootstrap aap license manifest default true
trim length 0**]]:::block + aap_subscription___Verify_License_Manifest_Exists1_block_start_0-->|Task| aap_subscription___Check_if_license_file_exists0[aap subscription check if license file exists]:::task + aap_subscription___Check_if_license_file_exists0-->|Task| aap_subscription___Verify_license_file_exists1[aap subscription verify license file exists]:::task + aap_subscription___Verify_license_file_exists1-->|Task| aap_subscription___Read_the_License_file2[aap subscription read the license file]:::task + aap_subscription___Read_the_License_file2-->|Task| aap_subscription___Apply_license_to_AAP3[aap subscription apply license to aap]:::task + aap_subscription___Apply_license_to_AAP3-.->|End of Block| aap_subscription___Verify_License_Manifest_Exists1_block_start_0 + aap_subscription___Apply_license_to_AAP3-->End ``` ### Graph for create_mf_aap_token.yml @@ -173,7 +183,7 @@ classDef rescue stroke:#665352,stroke-width:2px; create_mf_aap_token___Print_Migration_Factory_AAP_Service_Account_API_key3-->End ``` -### Graph for prep.yml +### Graph for main.yml ```mermaid flowchart TD @@ -187,18 +197,11 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| prep___Register_to_Red_Hat_with_provided_credentials0[prep register to red hat with provided
credentials]:::task - prep___Register_to_Red_Hat_with_provided_credentials0-->|Task| prep___Setup_new_user1[prep setup new user]:::task - prep___Setup_new_user1-->|Task| prep___Allow_passwordless_sudo_for__bootstrap_user_2[prep allow passwordless sudo for bootstrap user
]:::task - prep___Allow_passwordless_sudo_for__bootstrap_user_2-->|Task| prep___Create_SSH_folder3[prep create ssh folder]:::task - prep___Create_SSH_folder3-->|Task| prep___Generate_an_OpenSSH_keypair_with_the_default_values4[prep generate an openssh keypair with the
default values]:::task - prep___Generate_an_OpenSSH_keypair_with_the_default_values4-->|Task| prep___Set_authorized_key_taken_from_file5[prep set authorized key taken from file]:::task - prep___Set_authorized_key_taken_from_file5-->|Task| prep___Set_SSH_config_for_this_host_to_enable_automated_install6[prep set ssh config for this host to enable
automated install]:::task - prep___Set_SSH_config_for_this_host_to_enable_automated_install6-->|Task| prep___Create_working_directory7[prep create working directory]:::task - prep___Create_working_directory7-->End + Start-->|Include task| Subscribe_AAP_aap_subscription_yml_0[subscribe aap
include_task: aap subscription yml]:::includeTasks + Subscribe_AAP_aap_subscription_yml_0-->End ``` -### Graph for aap_subscription.yml +### Graph for prep.yml ```mermaid flowchart TD @@ -212,18 +215,15 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Block Start| aap_subscription___Get_subscriptions_with_a_filter0_block_start_0[[aap subscription get subscriptions with a filter
When: **bootstrap rh subscription id default true
trim length 0 and bootstrap aap license
manifest default true trim length 0**]]:::block - aap_subscription___Get_subscriptions_with_a_filter0_block_start_0-->|Task| aap_subscription___Query_Subscription0[aap subscription query subscription]:::task - aap_subscription___Query_Subscription0-->|Task| aap_subscription___Set_subscription_ID_based_on_bootstrap_subscription1[aap subscription set subscription id based on
bootstrap subscription]:::task - aap_subscription___Set_subscription_ID_based_on_bootstrap_subscription1-->|Task| aap_subscription___Attach_to_a_subscription2[aap subscription attach to a subscription]:::task - aap_subscription___Attach_to_a_subscription2-.->|End of Block| aap_subscription___Get_subscriptions_with_a_filter0_block_start_0 - aap_subscription___Attach_to_a_subscription2-->|Block Start| aap_subscription___Verify_License_Manifest_Exists1_block_start_0[[aap subscription verify license manifest exists
When: **bootstrap aap license manifest default true
trim length 0**]]:::block - aap_subscription___Verify_License_Manifest_Exists1_block_start_0-->|Task| aap_subscription___Check_if_license_file_exists0[aap subscription check if license file exists]:::task - aap_subscription___Check_if_license_file_exists0-->|Task| aap_subscription___Verify_license_file_exists1[aap subscription verify license file exists]:::task - aap_subscription___Verify_license_file_exists1-->|Task| aap_subscription___Read_the_License_file2[aap subscription read the license file]:::task - aap_subscription___Read_the_License_file2-->|Task| aap_subscription___Apply_license_to_AAP3[aap subscription apply license to aap]:::task - aap_subscription___Apply_license_to_AAP3-.->|End of Block| aap_subscription___Verify_License_Manifest_Exists1_block_start_0 - aap_subscription___Apply_license_to_AAP3-->End + Start-->|Task| prep___Register_to_Red_Hat_with_provided_credentials0[prep register to red hat with provided
credentials]:::task + prep___Register_to_Red_Hat_with_provided_credentials0-->|Task| prep___Setup_new_user1[prep setup new user]:::task + prep___Setup_new_user1-->|Task| prep___Allow_passwordless_sudo_for__bootstrap_user_2[prep allow passwordless sudo for bootstrap user
]:::task + prep___Allow_passwordless_sudo_for__bootstrap_user_2-->|Task| prep___Create_SSH_folder3[prep create ssh folder]:::task + prep___Create_SSH_folder3-->|Task| prep___Generate_an_OpenSSH_keypair_with_the_default_values4[prep generate an openssh keypair with the
default values]:::task + prep___Generate_an_OpenSSH_keypair_with_the_default_values4-->|Task| prep___Set_authorized_key_taken_from_file5[prep set authorized key taken from file]:::task + prep___Set_authorized_key_taken_from_file5-->|Task| prep___Set_SSH_config_for_this_host_to_enable_automated_install6[prep set ssh config for this host to enable
automated install]:::task + prep___Set_SSH_config_for_this_host_to_enable_automated_install6-->|Task| prep___Create_working_directory7[prep create working directory]:::task + prep___Create_working_directory7-->End ``` ## Playbook diff --git a/roles/mtv_management/README.md b/roles/mtv_management/README.md index dd2a02b..c8b91f7 100644 --- a/roles/mtv_management/README.md +++ b/roles/mtv_management/README.md @@ -26,89 +26,92 @@ Description: Management of the Migration Toolkit for Virtualization (MTV). | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`mtv_management_namespace`](defaults/main.yml#L7) | str | `openshift-mtv` | None | True | Default MTV Namespace | -| [`mtv_management_provider_namespace`](defaults/main.yml#L11) | str | `{{ mtv_management_namespace }}` | None | True | MTV Provider Namespace | -| [`mtv_management_migration_namespace`](defaults/main.yml#L15) | str | `{{ mtv_management_namespace }}` | None | True | MTV Migration Namespace | +| [`mtv_management_default_storage_class`](defaults/main.yml#L92) | str | `` | None | False | MTV Default StorageClass | +| [`mtv_management_destination_target`](defaults/main.yml#L102) | str | `host` | None | True | MTV Destination Target | +| [`mtv_management_inventory_retrieval_method`](defaults/main.yml#L45) | str | `exec` | None | True | None | +| [`mtv_management_inventory_route_name`](defaults/main.yml#L39) | str | `forklift-inventory` | None | True | Inventory Route Name | +| [`mtv_management_inventory_url`](defaults/main.yml#L35) | str | `` | None | False | Inventory URL | +| [`mtv_management_map_networks`](defaults/main.yml#L29) | bool | `True` | None | False | Map Networks Boolean | | [`mtv_management_map_providers`](defaults/main.yml#L21) | bool | `True` | None | False | Map Providers Boolean | | [`mtv_management_map_storage`](defaults/main.yml#L25) | bool | `True` | None | False | Map Storage Boolean | -| [`mtv_management_map_networks`](defaults/main.yml#L29) | bool | `True` | None | False | Map Networks Boolean | -| [`mtv_management_inventory_url`](defaults/main.yml#L35) | str | `` | None | False | Inventory URL | -| [`mtv_management_inventory_route_name`](defaults/main.yml#L39) | str | `forklift-inventory` | None | True | Inventory Route Name | -| [`mtv_management_inventory_retrieval_method`](defaults/main.yml#L45) | str | `exec` | None | True | None | +| [`mtv_management_migration_namespace`](defaults/main.yml#L15) | str | `{{ mtv_management_namespace }}` | None | True | MTV Migration Namespace | | [`mtv_management_migration_targets`](defaults/main.yml#L51) | list | `[]` | None | False | MTV Migration Targets | -| [`mtv_management_vmware_provider_default_name`](defaults/main.yml#L72) | str | `vmware` | None | True | MTV VMware Provider Name | -| [`mtv_management_vmware_provider_default_sdk_endpoint`](defaults/main.yml#L76) | str | `/sdk` | None | True | MTV SDK Endpoint | +| [`mtv_management_multiple_storage_maps_overrides`](defaults/main.yml#L155) | dict | `{}` | None | False | MTV Multiple Storage Maps Overrides | +| [`mtv_management_nad_source_portgroup_annotation`](defaults/main.yml#L107) | str | `infra.openshift-virtualization-migration/source-portgroup` | None | True | MTV NAD Source Portgroup Annotation | +| [`mtv_management_namespace`](defaults/main.yml#L7) | str | `openshift-mtv` | None | True | Default MTV Namespace | +| [`mtv_management_network_map_overrides`](defaults/main.yml#L170) | list | `[]` | None | False | MTV Network Map Overrides | | [`mtv_management_ovirt_provider_default_name`](defaults/main.yml#L80) | str | `ovirt` | None | True | MTV Ovirt Provider Name | | [`mtv_management_ovirt_provider_default_sdk_endpoint`](defaults/main.yml#L84) | str | `/ovirt-engine/api` | None | True | MTV SDK Endpoint | -| [`mtv_management_vmware_provider_insecure_skip_tls_verify`](defaults/main.yml#L88) | bool | `True` | None | False | MTV Skip TLS | -| [`mtv_management_default_storage_class`](defaults/main.yml#L92) | str | `` | None | False | MTV Default StorageClass | +| [`mtv_management_provider_namespace`](defaults/main.yml#L11) | str | `{{ mtv_management_namespace }}` | None | True | MTV Provider Namespace | | [`mtv_management_source_target`](defaults/main.yml#L98) | str | `vmware` | None | True | MTV Source Target | -| [`mtv_management_destination_target`](defaults/main.yml#L102) | str | `host` | None | True | MTV Destination Target | -| [`mtv_management_nad_source_portgroup_annotation`](defaults/main.yml#L107) | str | `infra.openshift-virtualization-migration/source-portgroup` | None | True | MTV NAD Source Portgroup Annotation | -| [`mtv_management_vmware_vddk_secret_name`](defaults/main.yml#L112) | str | `{{ mtv_management_source_target }}-vddk` | None | True | VDDK Secret Name | +| [`mtv_management_storage_map_overrides`](defaults/main.yml#L143) | list | `[]` | None | False | MTV Storage Map Override | +| [`mtv_management_vmware_provider_default_name`](defaults/main.yml#L72) | str | `vmware` | None | True | MTV VMware Provider Name | +| [`mtv_management_vmware_provider_default_sdk_endpoint`](defaults/main.yml#L76) | str | `/sdk` | None | True | MTV SDK Endpoint | +| [`mtv_management_vmware_provider_insecure_skip_tls_verify`](defaults/main.yml#L88) | bool | `True` | None | False | MTV Skip TLS | | [`mtv_management_vmware_vddk_init_image`](defaults/main.yml#L117) | str | `` | None | False | MTV VDDK Image | -| [`mtv_management_vmware_vddk_init_image_username`](defaults/main.yml#L122) | str | `` | None | False | VDDK Image Username | -| [`mtv_management_vmware_vddk_init_image_password`](defaults/main.yml#L127) | str | `` | None | False | VDDK Image Password | | [`mtv_management_vmware_vddk_init_image_credentials_secret`](defaults/main.yml#L132) | str | `` | None | False | VDDK Credentials Secret | +| [`mtv_management_vmware_vddk_init_image_password`](defaults/main.yml#L127) | str | `` | None | False | VDDK Image Password | | [`mtv_management_vmware_vddk_init_image_service_account`](defaults/main.yml#L137) | str | `default` | None | False | VDDK Service Account | -| [`mtv_management_storage_map_overrides`](defaults/main.yml#L143) | list | `[]` | None | False | MTV Storage Map Override | -| [`mtv_management_network_map_overrides`](defaults/main.yml#L153) | list | `[]` | None | False | MTV Network Map Overrides | +| [`mtv_management_vmware_vddk_init_image_username`](defaults/main.yml#L122) | str | `` | None | False | VDDK Image Username | +| [`mtv_management_vmware_vddk_secret_name`](defaults/main.yml#L112) | str | `{{ mtv_management_source_target }}-vddk` | None | True | VDDK Secret Name | 🖇️ Full descriptions for vars in defaults/main.yml
-`mtv_management_namespace`: The default namespace to use if not specified +`mtv_management_default_storage_class`: The StorageClass to use by default
-`mtv_management_provider_namespace`: The provider namespace to use +`mtv_management_destination_target`: Destination target
-`mtv_management_migration_namespace`: The migration namespace to use +`mtv_management_inventory_retrieval_method`: None
-`mtv_management_map_providers`: Determines whether to include the mtv_providers task file +`mtv_management_inventory_route_name`: Inventory Route Name
-`mtv_management_map_storage`: Determines whether to include the mtv_maps task file +`mtv_management_inventory_url`: Inventory URL
`mtv_management_map_networks`: Determines whether to include the mtv_maps task file
-`mtv_management_inventory_url`: Inventory URL +`mtv_management_map_providers`: Determines whether to include the mtv_providers task file
-`mtv_management_inventory_route_name`: Inventory Route Name +`mtv_management_map_storage`: Determines whether to include the mtv_maps task file
-`mtv_management_inventory_retrieval_method`: None +`mtv_management_migration_namespace`: The migration namespace to use
`mtv_management_migration_targets`: None
-`mtv_management_vmware_provider_default_name`: Default name for VMware provider +`mtv_management_multiple_storage_maps_overrides`: Dictionary of multiple storage maps. Takes precedence over
-`mtv_management_vmware_provider_default_sdk_endpoint`: VMware provider endpoint +`mtv_management_nad_source_portgroup_annotation`: The annotation to use for the Network Attachment Definition +
+`mtv_management_namespace`: The default namespace to use if not specified +
+`mtv_management_network_map_overrides`: Overrides for the network map
`mtv_management_ovirt_provider_default_name`: Default name for Ovirt provider
`mtv_management_ovirt_provider_default_sdk_endpoint`: Ovirt provider endpoint
-`mtv_management_vmware_provider_insecure_skip_tls_verify`: Whether to skip TLS verify -
-`mtv_management_default_storage_class`: The StorageClass to use by default +`mtv_management_provider_namespace`: The provider namespace to use
`mtv_management_source_target`: Source target
-`mtv_management_destination_target`: Destination target +`mtv_management_storage_map_overrides`: Overrides for the default storage map. Note: This variable is ignored if
-`mtv_management_nad_source_portgroup_annotation`: The annotation to use for the Network Attachment Definition +`mtv_management_vmware_provider_default_name`: Default name for VMware provider
-`mtv_management_vmware_vddk_secret_name`: Name of the Created Secret for VDDK Credentials +`mtv_management_vmware_provider_default_sdk_endpoint`: VMware provider endpoint +
+`mtv_management_vmware_provider_insecure_skip_tls_verify`: Whether to skip TLS verify
`mtv_management_vmware_vddk_init_image`: The image to use for VDDK
-`mtv_management_vmware_vddk_init_image_username`: Username for the VDDK Image +`mtv_management_vmware_vddk_init_image_credentials_secret`: Secret Containing Credentials for the VDDK Image
`mtv_management_vmware_vddk_init_image_password`: Password for the VDDK Image
-`mtv_management_vmware_vddk_init_image_credentials_secret`: Secret Containing Credentials for the VDDK Image -
`mtv_management_vmware_vddk_init_image_service_account`: Service Account to Associate the VDDK Init Image Pull Secret
-`mtv_management_storage_map_overrides`: Overrides for the storage map +`mtv_management_vmware_vddk_init_image_username`: Username for the VDDK Image
-`mtv_management_network_map_overrides`: Overrides for the network map +`mtv_management_vmware_vddk_secret_name`: Name of the Created Secret for VDDK Credentials

@@ -130,6 +133,7 @@ Description: Management of the Migration Toolkit for Virtualization (MTV). | _mtv_network_map ¦ Query for VMWare Networks from Source Provider | `ansible.builtin.include_tasks` | True | | _mtv_network_map ¦ Query for Ovirt Networks from Source Provider | `ansible.builtin.include_tasks` | True | | _mtv_network_map ¦ Query for NetworkAttachmentDefinitions from Destination Provider | `ansible.builtin.include_tasks` | False | +| _mtv_network_map ¦ Extract allowed network IDs from overrides | `ansible.builtin.set_fact` | True | | _mtv_network_map ¦ Process VMware Networks | `ansible.builtin.include_tasks` | True | | _mtv_network_map ¦ Process Ovirt Networks | `ansible.builtin.include_tasks` | True | | _mtv_network_map ¦ Template NetworkMap Map | `ansible.builtin.set_fact` | False | @@ -220,6 +224,8 @@ Description: Management of the Migration Toolkit for Virtualization (MTV). | mtv_maps ¦ Verify VMWare Source Provider Exists | `ansible.builtin.assert` | True | | mtv_maps ¦ Verify Ovirt Source Provider Exists | `ansible.builtin.assert` | True | | mtv_maps ¦ Destination OpenShift Destination Provider Exists | `ansible.builtin.assert` | False | +| mtv_maps ¦ Verify mutually exclusive storage map overrides | `ansible.builtin.assert` | True | +| mtv_maps ¦ Configure MTV Storage Maps (Multiple) | `ansible.builtin.include_tasks` | True | | mtv_maps ¦ Configure MTV Storage Maps | `ansible.builtin.include_tasks` | True | | mtv_maps ¦ Configure MTV Network Map | `ansible.builtin.include_tasks` | True | @@ -265,7 +271,7 @@ Description: Management of the Migration Toolkit for Virtualization (MTV). ## Task Flow Graphs -### Graph for main.yml +### Graph for _mtv_network_map.yml ```mermaid flowchart TD @@ -279,12 +285,20 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Include task| Configure_MTV_Providers_mtv_providers_yml_0[configure mtv providers
When: **mtv management map providers is defined and mtv
management map providers bool**
include_task: mtv providers yml]:::includeTasks - Configure_MTV_Providers_mtv_providers_yml_0-->|Include task| Configure_MTV_Maps_mtv_maps_yml_1[configure mtv maps
When: **mtv management map storage is defined and mtv
management map storage bool or mtv management
map networks is defined and mtv management map
networks bool**
include_task: mtv maps yml]:::includeTasks - Configure_MTV_Maps_mtv_maps_yml_1-->End + Start-->|Task| _mtv_network_map___Initialize_data_structures0[ mtv network map initialize data structures]:::task + _mtv_network_map___Initialize_data_structures0-->|Task| _mtv_network_map___Verify_Network_Map_Overrides_do_not_contain_both_includes_and_excludes1[ mtv network map verify network map overrides do
not contain both includes and excludes
When: **mtv management network map overrides is defined
and mtv management network map overrides
selectattr include defined list length
0 and mtv management network map overrides
selectattr exclude defined list length
0**]:::task + _mtv_network_map___Verify_Network_Map_Overrides_do_not_contain_both_includes_and_excludes1-->|Include task| _mtv_network_map___Query_for_VMWare_Networks_from_Source_Provider_mtv_query_inventory_yml_2[ mtv network map query for vmware networks from
source provider
When: **vsphere in provider**
include_task: mtv query inventory yml]:::includeTasks + _mtv_network_map___Query_for_VMWare_Networks_from_Source_Provider_mtv_query_inventory_yml_2-->|Include task| _mtv_network_map___Query_for_Ovirt_Networks_from_Source_Provider_mtv_query_inventory_yml_3[ mtv network map query for ovirt networks from
source provider
When: **ovirt in provider**
include_task: mtv query inventory yml]:::includeTasks + _mtv_network_map___Query_for_Ovirt_Networks_from_Source_Provider_mtv_query_inventory_yml_3-->|Include task| _mtv_network_map___Query_for_NetworkAttachmentDefinitions_from_Destination_Provider_mtv_query_inventory_yml_4[ mtv network map query for
networkattachmentdefinitions from destination
provider
include_task: mtv query inventory yml]:::includeTasks + _mtv_network_map___Query_for_NetworkAttachmentDefinitions_from_Destination_Provider_mtv_query_inventory_yml_4-->|Task| _mtv_network_map___Extract_allowed_network_IDs_from_overrides5[ mtv network map extract allowed network ids
from overrides
When: **mtv management network map overrides is defined
and mtv management network map overrides length
0**]:::task + _mtv_network_map___Extract_allowed_network_IDs_from_overrides5-->|Include task| _mtv_network_map___Process_VMware_Networks__mtv_network_map_process_network_yml_6[ mtv network map process vmware networks
When: **vsphere in provider and mtv networks is defined
and mtv networks length 0**
include_task: mtv network map process network yml]:::includeTasks + _mtv_network_map___Process_VMware_Networks__mtv_network_map_process_network_yml_6-->|Include task| _mtv_network_map___Process_Ovirt_Networks__mtv_network_map_process_network_yml_7[ mtv network map process ovirt networks
When: **ovirt in provider and mtv networks is defined
and mtv networks length 0**
include_task: mtv network map process network yml]:::includeTasks + _mtv_network_map___Process_Ovirt_Networks__mtv_network_map_process_network_yml_7-->|Task| _mtv_network_map___Template_NetworkMap_Map8[ mtv network map template networkmap map]:::task + _mtv_network_map___Template_NetworkMap_Map8-->|Task| _mtv_network_map___Create_Network_Map9[ mtv network map create network map]:::task + _mtv_network_map___Create_Network_Map9-->End ``` -### Graph for mtv_vddk.yml +### Graph for _mtv_network_map_process_network.yml ```mermaid flowchart TD @@ -298,20 +312,19 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| mtv_vddk___Verify_VDDK_Secret_Parameters_Provided0[mtv vddk verify vddk secret parameters provided]:::task - mtv_vddk___Verify_VDDK_Secret_Parameters_Provided0-->|Task| mtv_vddk___Verify_VDDK_Image_Parameters_Provided1[mtv vddk verify vddk image parameters provided]:::task - mtv_vddk___Verify_VDDK_Image_Parameters_Provided1-->|Task| mtv_vddk___Create_VDDK_Pull_Secret2[mtv vddk create vddk pull secret]:::task - mtv_vddk___Create_VDDK_Pull_Secret2-->|Block Start| mtv_vddk___Manage_VDDK_Provided_Credentials3_block_start_0[[mtv vddk manage vddk provided credentials
When: **mtv management vmware vddk init image credentials
secret default true length 0**]]:::block - mtv_vddk___Manage_VDDK_Provided_Credentials3_block_start_0-->|Task| mtv_vddk___Retrieve_Provided_VDDK_Credentials_Secret0[mtv vddk retrieve provided vddk credentials
secret]:::task - mtv_vddk___Retrieve_Provided_VDDK_Credentials_Secret0-->|Task| mtv_vddk___Verify_Provided_VDDK_Credentials_Secret1[mtv vddk verify provided vddk credentials secret]:::task - mtv_vddk___Verify_Provided_VDDK_Credentials_Secret1-->|Task| mtv_vddk___Update_Pull_Secret_Name_for_Provided_Credential2[mtv vddk update pull secret name for provided
credential]:::task - mtv_vddk___Update_Pull_Secret_Name_for_Provided_Credential2-.->|End of Block| mtv_vddk___Manage_VDDK_Provided_Credentials3_block_start_0 - mtv_vddk___Update_Pull_Secret_Name_for_Provided_Credential2-->|Task| mtv_vddk___Retrieve_VDDK_Service_Account4[mtv vddk retrieve vddk service account]:::task - mtv_vddk___Retrieve_VDDK_Service_Account4-->|Task| mtv_vddk___Patch_Service_Account_with_VDDK_pull_secret5[mtv vddk patch service account with vddk pull
secret
When: **resources in mtv management vmware vddk service
account result and mtv management vmware vddk
service account result resources length 0 and
imagepullsecrets in mtv management vmware vddk
service account result resources 0 and mtv
management vmware vddk service account result
resources 0 imagepullsecrets selectattr name
equalto mtv management vmware vddk secret name
length 0**]:::task - mtv_vddk___Patch_Service_Account_with_VDDK_pull_secret5-->End + Start-->|Task| _mtv_network_map_process_network___Set_VMware_NetworkMap_Variables0[ mtv network map process network set vmware
networkmap variables
When: **mtv vmware network is defined**]:::task + _mtv_network_map_process_network___Set_VMware_NetworkMap_Variables0-->|Task| _mtv_network_map_process_network___Set_Ovirt_NetworkMap_Variables1[ mtv network map process network set ovirt
networkmap variables
When: **mtv ovirt network is defined**]:::task + _mtv_network_map_process_network___Set_Ovirt_NetworkMap_Variables1-->|Task| _mtv_network_map_process_network___Locate_VMware_NetworkAttachmentDefinition2[ mtv network map process network locate vmware
networkattachmentdefinition
When: **mtv vmware network is defined**]:::task + _mtv_network_map_process_network___Locate_VMware_NetworkAttachmentDefinition2-->|Task| _mtv_network_map_process_network___Locate_Ovirt_NetworkAttachmentDefinition3[ mtv network map process network locate ovirt
networkattachmentdefinition
When: **mtv ovirt network is defined**]:::task + _mtv_network_map_process_network___Locate_Ovirt_NetworkAttachmentDefinition3-->|Task| _mtv_network_map_process_network___Validate_Found_VMware_NetworkAttachmentDefinitions4[ mtv network map process network validate found
vmware networkattachmentdefinitions
When: **mtv vmware network is defined**]:::task + _mtv_network_map_process_network___Validate_Found_VMware_NetworkAttachmentDefinitions4-->|Task| _mtv_network_map_process_network___Validate_Found_Ovirt_NetworkAttachmentDefinitions5[ mtv network map process network validate found
ovirt networkattachmentdefinitions
When: **mtv ovirt network is defined**]:::task + _mtv_network_map_process_network___Validate_Found_Ovirt_NetworkAttachmentDefinitions5-->|Task| _mtv_network_map_process_network___Template_NetworkMap_Map6[ mtv network map process network template
networkmap map]:::task + _mtv_network_map_process_network___Template_NetworkMap_Map6-->|Task| _mtv_network_map_process_network___Add_VMWare_NetworkMaps_Map_to_Dict7[ mtv network map process network add vmware
networkmaps map to dict
When: **mtv vmware network is defined and include in
mtv management mtv vmware network overrides and
mtv management network map overrides selectattr
include defined list length 0 or mtv
management network map overrides selectattr
include defined list length 0 and mtv
management network map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv vmware network
overrides and mtv management network map overrides
selectattr exclude defined list length
0**]:::task + _mtv_network_map_process_network___Add_VMWare_NetworkMaps_Map_to_Dict7-->|Task| _mtv_network_map_process_network___Add_Ovirt_NetworkMaps_Map_to_Dict8[ mtv network map process network add ovirt
networkmaps map to dict
When: **mtv ovirt network is defined and include in
mtv management mtv ovirt network overrides and mtv
management network map overrides selectattr
include defined list length 0 or mtv
management network map overrides selectattr
include defined list length 0 and mtv
management network map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv ovirt network
overrides and mtv management network map overrides
selectattr exclude defined list length
0**]:::task + _mtv_network_map_process_network___Add_Ovirt_NetworkMaps_Map_to_Dict8-->End ``` -### Graph for mtv_query_inventory.yml +### Graph for _mtv_provider_ovirt.yml ```mermaid flowchart TD @@ -325,24 +338,24 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| mtv_query_inventory___Verify_valid_inventory_query_retrieval_method0[mtv query inventory verify valid inventory query
retrieval method]:::task - mtv_query_inventory___Verify_valid_inventory_query_retrieval_method0-->|Task| mtv_query_inventory___Verify_valid_query_parameters1[mtv query inventory verify valid query
parameters]:::task - mtv_query_inventory___Verify_valid_query_parameters1-->|Block Start| mtv_query_inventory___Exec_inventory_retrieval_method2_block_start_0[[mtv query inventory exec inventory retrieval
method
When: **mtv management inventory retrieval method exec
**]]:::block - mtv_query_inventory___Exec_inventory_retrieval_method2_block_start_0-->|Task| mtv_query_inventory___Obtain_the_name_of_a_Running_Forklift_Inventory_Pod0[mtv query inventory obtain the name of a running
forklift inventory pod]:::task - mtv_query_inventory___Obtain_the_name_of_a_Running_Forklift_Inventory_Pod0-->|Task| mtv_query_inventory___Set_name_of_the_MTV_Inventory_Pod1[mtv query inventory set name of the mtv
inventory pod]:::task - mtv_query_inventory___Set_name_of_the_MTV_Inventory_Pod1-->|Task| mtv_query_inventory___Execute_Query__exec_2[mtv query inventory execute query exec ]:::task - mtv_query_inventory___Execute_Query__exec_2-->|Task| mtv_query_inventory___Set_Result_Fact3[mtv query inventory set result fact]:::task - mtv_query_inventory___Set_Result_Fact3-.->|End of Block| mtv_query_inventory___Exec_inventory_retrieval_method2_block_start_0 - mtv_query_inventory___Set_Result_Fact3-->|Block Start| mtv_query_inventory___Rest_inventory_retrieval_method3_block_start_0[[mtv query inventory rest inventory retrieval
method
When: **mtv management inventory retrieval method rest
**]]:::block - mtv_query_inventory___Rest_inventory_retrieval_method3_block_start_0-->|Task| mtv_query_inventory___Locate_MTV_Route0[mtv query inventory locate mtv route
When: **forklift inventory url default true
length 0**]:::task - mtv_query_inventory___Locate_MTV_Route0-->|Task| mtv_query_inventory___Verify_route_found1[mtv query inventory verify route found]:::task - mtv_query_inventory___Verify_route_found1-->|Task| mtv_query_inventory___Execute_Query__rest_2[mtv query inventory execute query rest ]:::task - mtv_query_inventory___Execute_Query__rest_2-->|Task| mtv_query_inventory___Set_Result_Fact3[mtv query inventory set result fact]:::task - mtv_query_inventory___Set_Result_Fact3-.->|End of Block| mtv_query_inventory___Rest_inventory_retrieval_method3_block_start_0 - mtv_query_inventory___Set_Result_Fact3-->End + Start-->|Task| _mtv_provider_ovirt___Verify_credential_name_provided_when_more_than_one_credential_specified0[ mtv provider ovirt verify credential name
provided when more than one credential specified
When: **not single ovirt target**]:::task + _mtv_provider_ovirt___Verify_credential_name_provided_when_more_than_one_credential_specified0-->|Task| _mtv_provider_ovirt___Set_provider_name1[ mtv provider ovirt set provider name]:::task + _mtv_provider_ovirt___Set_provider_name1-->|Task| _mtv_provider_ovirt___Validate_required_Ovirt_provider_Properties2[ mtv provider ovirt validate required ovirt
provider properties]:::task + _mtv_provider_ovirt___Validate_required_Ovirt_provider_Properties2-->|Task| _mtv_provider_ovirt___Set_Ovirt_Provider_URL3[ mtv provider ovirt set ovirt provider url]:::task + _mtv_provider_ovirt___Set_Ovirt_Provider_URL3-->|Block Start| _mtv_provider_ovirt___MTV_Certificate4_block_start_0[[ mtv provider ovirt mtv certificate
When: **certificate not in mtv management populated
ovirt target or mtv management populated ovirt
target certificate default trim
length 0**]]:::block + _mtv_provider_ovirt___MTV_Certificate4_block_start_0-->|Task| _mtv_provider_ovirt___Retrieve_Remote_Ovirt_Provider_Certificate0[ mtv provider ovirt retrieve remote ovirt
provider certificate]:::task + _mtv_provider_ovirt___Retrieve_Remote_Ovirt_Provider_Certificate0-->|Task| _mtv_provider_ovirt___Set_Ovirt_Provider_Certificate1[ mtv provider ovirt set ovirt provider
certificate]:::task + _mtv_provider_ovirt___Set_Ovirt_Provider_Certificate1-.->|End of Block| _mtv_provider_ovirt___MTV_Certificate4_block_start_0 + _mtv_provider_ovirt___Set_Ovirt_Provider_Certificate1-->|Task| _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Configuration_5[ mtv provider ovirt set provider secret name
namespace configuration
When: **credentialssecretref in mtv management populated
ovirt target and mtv management populated ovirt
target credentialssecretref default
trim length 0**]:::task + _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Configuration_5-->|Block Start| _mtv_provider_ovirt___Configure_Provider_Secret6_block_start_0[[ mtv provider ovirt configure provider secret
When: **credentialssecretref not in mtv management
populated ovirt target or mtv management
populated ovirt target credentialssecretref
default trim length 0**]]:::block + _mtv_provider_ovirt___Configure_Provider_Secret6_block_start_0-->|Task| _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Generated_0[ mtv provider ovirt set provider secret name
namespace generated
When: **credentialssecretref not in mtv management
populated ovirt target or mtv management
populated ovirt target credentialssecretref
default trim length 0**]:::task + _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Generated_0-->|Task| _mtv_provider_ovirt___Create_Ovirt_credentials_secret1[ mtv provider ovirt create ovirt credentials
secret
When: **credentialssecretref not in mtv management
populated ovirt target or mtv management
populated ovirt target credentialssecretref
default trim length 0**]:::task + _mtv_provider_ovirt___Create_Ovirt_credentials_secret1-.->|End of Block| _mtv_provider_ovirt___Configure_Provider_Secret6_block_start_0 + _mtv_provider_ovirt___Create_Ovirt_credentials_secret1-->|Task| _mtv_provider_ovirt___Create_Ovirt_Provider_resource7[ mtv provider ovirt create ovirt provider
resource]:::task + _mtv_provider_ovirt___Create_Ovirt_Provider_resource7-->End ``` -### Graph for _mtv_network_map_process_network.yml +### Graph for _mtv_provider_vmware.yml ```mermaid flowchart TD @@ -356,19 +369,24 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _mtv_network_map_process_network___Set_VMware_NetworkMap_Variables0[ mtv network map process network set vmware
networkmap variables
When: **mtv vmware network is defined**]:::task - _mtv_network_map_process_network___Set_VMware_NetworkMap_Variables0-->|Task| _mtv_network_map_process_network___Set_Ovirt_NetworkMap_Variables1[ mtv network map process network set ovirt
networkmap variables
When: **mtv ovirt network is defined**]:::task - _mtv_network_map_process_network___Set_Ovirt_NetworkMap_Variables1-->|Task| _mtv_network_map_process_network___Locate_VMware_NetworkAttachmentDefinition2[ mtv network map process network locate vmware
networkattachmentdefinition
When: **mtv vmware network is defined**]:::task - _mtv_network_map_process_network___Locate_VMware_NetworkAttachmentDefinition2-->|Task| _mtv_network_map_process_network___Locate_Ovirt_NetworkAttachmentDefinition3[ mtv network map process network locate ovirt
networkattachmentdefinition
When: **mtv ovirt network is defined**]:::task - _mtv_network_map_process_network___Locate_Ovirt_NetworkAttachmentDefinition3-->|Task| _mtv_network_map_process_network___Validate_Found_VMware_NetworkAttachmentDefinitions4[ mtv network map process network validate found
vmware networkattachmentdefinitions
When: **mtv vmware network is defined**]:::task - _mtv_network_map_process_network___Validate_Found_VMware_NetworkAttachmentDefinitions4-->|Task| _mtv_network_map_process_network___Validate_Found_Ovirt_NetworkAttachmentDefinitions5[ mtv network map process network validate found
ovirt networkattachmentdefinitions
When: **mtv ovirt network is defined**]:::task - _mtv_network_map_process_network___Validate_Found_Ovirt_NetworkAttachmentDefinitions5-->|Task| _mtv_network_map_process_network___Template_NetworkMap_Map6[ mtv network map process network template
networkmap map]:::task - _mtv_network_map_process_network___Template_NetworkMap_Map6-->|Task| _mtv_network_map_process_network___Add_VMWare_NetworkMaps_Map_to_Dict7[ mtv network map process network add vmware
networkmaps map to dict
When: **mtv vmware network is defined and include in
mtv management mtv vmware network overrides and
mtv management network map overrides selectattr
include defined list length 0 or mtv
management network map overrides selectattr
include defined list length 0 and mtv
management network map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv vmware network
overrides and mtv management network map overrides
selectattr exclude defined list length
0**]:::task - _mtv_network_map_process_network___Add_VMWare_NetworkMaps_Map_to_Dict7-->|Task| _mtv_network_map_process_network___Add_Ovirt_NetworkMaps_Map_to_Dict8[ mtv network map process network add ovirt
networkmaps map to dict
When: **mtv ovirt network is defined and include in
mtv management mtv ovirt network overrides and mtv
management network map overrides selectattr
include defined list length 0 or mtv
management network map overrides selectattr
include defined list length 0 and mtv
management network map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv ovirt network
overrides and mtv management network map overrides
selectattr exclude defined list length
0**]:::task - _mtv_network_map_process_network___Add_Ovirt_NetworkMaps_Map_to_Dict8-->End + Start-->|Task| _mtv_provider_vmware___Verify_credential_name_provided_when_more_than_one_credential_specified0[ mtv provider vmware verify credential name
provided when more than one credential specified
When: **not single vmware target**]:::task + _mtv_provider_vmware___Verify_credential_name_provided_when_more_than_one_credential_specified0-->|Task| _mtv_provider_vmware___Set_provider_name1[ mtv provider vmware set provider name]:::task + _mtv_provider_vmware___Set_provider_name1-->|Task| _mtv_provider_vmware___Validate_required_VMware_provider_Properties2[ mtv provider vmware validate required vmware
provider properties]:::task + _mtv_provider_vmware___Validate_required_VMware_provider_Properties2-->|Task| _mtv_provider_vmware___Set_VMware_Provider_URL3[ mtv provider vmware set vmware provider url]:::task + _mtv_provider_vmware___Set_VMware_Provider_URL3-->|Block Start| _mtv_provider_vmware___MTV_Certificate4_block_start_0[[ mtv provider vmware mtv certificate
When: **not mtv management populated vmware target
insecureskiptlsverify and certificate not in
mtv management populated vmware target or mtv
management populated vmware target certificate
default trim length 0**]]:::block + _mtv_provider_vmware___MTV_Certificate4_block_start_0-->|Task| _mtv_provider_vmware___Retrieve_Remote_VMware_Provider_Certificate0[ mtv provider vmware retrieve remote vmware
provider certificate]:::task + _mtv_provider_vmware___Retrieve_Remote_VMware_Provider_Certificate0-->|Task| _mtv_provider_vmware___Set_VMware_Provider_Certificate1[ mtv provider vmware set vmware provider
certificate]:::task + _mtv_provider_vmware___Set_VMware_Provider_Certificate1-.->|End of Block| _mtv_provider_vmware___MTV_Certificate4_block_start_0 + _mtv_provider_vmware___Set_VMware_Provider_Certificate1-->|Task| _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Configuration_5[ mtv provider vmware set provider secret name
namespace configuration
When: **credentialssecretref in mtv management populated
vmware target and mtv management populated vmware
target credentialssecretref default
trim length 0**]:::task + _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Configuration_5-->|Block Start| _mtv_provider_vmware___Configure_Provider_Secret6_block_start_0[[ mtv provider vmware configure provider secret
When: **credentialssecretref not in mtv management
populated vmware target or mtv management
populated vmware target credentialssecretref
default trim length 0**]]:::block + _mtv_provider_vmware___Configure_Provider_Secret6_block_start_0-->|Task| _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Generated_0[ mtv provider vmware set provider secret name
namespace generated ]:::task + _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Generated_0-->|Task| _mtv_provider_vmware___Create_VMware_credentials_secret1[ mtv provider vmware create vmware credentials
secret]:::task + _mtv_provider_vmware___Create_VMware_credentials_secret1-.->|End of Block| _mtv_provider_vmware___Configure_Provider_Secret6_block_start_0 + _mtv_provider_vmware___Create_VMware_credentials_secret1-->|Task| _mtv_provider_vmware___Create_VMware_Provider_resource7[ mtv provider vmware create vmware provider
resource]:::task + _mtv_provider_vmware___Create_VMware_Provider_resource7-->End ``` -### Graph for _mtv_network_map.yml +### Graph for _mtv_storage_map.yml ```mermaid flowchart TD @@ -382,19 +400,20 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _mtv_network_map___Initialize_data_structures0[ mtv network map initialize data structures]:::task - _mtv_network_map___Initialize_data_structures0-->|Task| _mtv_network_map___Verify_Network_Map_Overrides_do_not_contain_both_includes_and_excludes1[ mtv network map verify network map overrides do
not contain both includes and excludes
When: **mtv management network map overrides is defined
and mtv management network map overrides
selectattr include defined list length
0 and mtv management network map overrides
selectattr exclude defined list length
0**]:::task - _mtv_network_map___Verify_Network_Map_Overrides_do_not_contain_both_includes_and_excludes1-->|Include task| _mtv_network_map___Query_for_VMWare_Networks_from_Source_Provider_mtv_query_inventory_yml_2[ mtv network map query for vmware networks from
source provider
When: **vsphere in provider**
include_task: mtv query inventory yml]:::includeTasks - _mtv_network_map___Query_for_VMWare_Networks_from_Source_Provider_mtv_query_inventory_yml_2-->|Include task| _mtv_network_map___Query_for_Ovirt_Networks_from_Source_Provider_mtv_query_inventory_yml_3[ mtv network map query for ovirt networks from
source provider
When: **ovirt in provider**
include_task: mtv query inventory yml]:::includeTasks - _mtv_network_map___Query_for_Ovirt_Networks_from_Source_Provider_mtv_query_inventory_yml_3-->|Include task| _mtv_network_map___Query_for_NetworkAttachmentDefinitions_from_Destination_Provider_mtv_query_inventory_yml_4[ mtv network map query for
networkattachmentdefinitions from destination
provider
include_task: mtv query inventory yml]:::includeTasks - _mtv_network_map___Query_for_NetworkAttachmentDefinitions_from_Destination_Provider_mtv_query_inventory_yml_4-->|Include task| _mtv_network_map___Process_VMware_Networks__mtv_network_map_process_network_yml_5[ mtv network map process vmware networks
When: **vsphere in provider and mtv networks is defined
and mtv networks length 0**
include_task: mtv network map process network yml]:::includeTasks - _mtv_network_map___Process_VMware_Networks__mtv_network_map_process_network_yml_5-->|Include task| _mtv_network_map___Process_Ovirt_Networks__mtv_network_map_process_network_yml_6[ mtv network map process ovirt networks
When: **ovirt in provider and mtv networks is defined
and mtv networks length 0**
include_task: mtv network map process network yml]:::includeTasks - _mtv_network_map___Process_Ovirt_Networks__mtv_network_map_process_network_yml_6-->|Task| _mtv_network_map___Template_NetworkMap_Map7[ mtv network map template networkmap map]:::task - _mtv_network_map___Template_NetworkMap_Map7-->|Task| _mtv_network_map___Create_Network_Map8[ mtv network map create network map]:::task - _mtv_network_map___Create_Network_Map8-->End + Start-->|Task| _mtv_storage_map___Initialize_data_structures0[ mtv storage map initialize data structures]:::task + _mtv_storage_map___Initialize_data_structures0-->|Task| _mtv_storage_map___Verify_Storage_Map_Overrides_do_not_contain_both_includes_and_excludes1[ mtv storage map verify storage map overrides do
not contain both includes and excludes
When: **mtv management storage map overrides is defined
and mtv management storage map overrides
selectattr include defined list length
0 and mtv management storage map overrides
selectattr exclude defined list length
0**]:::task + _mtv_storage_map___Verify_Storage_Map_Overrides_do_not_contain_both_includes_and_excludes1-->|Include task| _mtv_storage_map___Query_for_Storage_Classes_from_Destination_Provider_mtv_query_inventory_yml_2[ mtv storage map query for storage classes from
destination provider
include_task: mtv query inventory yml]:::includeTasks + _mtv_storage_map___Query_for_Storage_Classes_from_Destination_Provider_mtv_query_inventory_yml_2-->|Task| _mtv_storage_map___Determine_Destination_Storage_Class3[ mtv storage map determine destination storage
class
When: **mtv management default storage class is not
defined or mtv management default storage class
default true trim length 0 and item
object metadata annotations is defined and item
object metadata annotations storageclass
kubernetes io is default class default false
string lower true**]:::task + _mtv_storage_map___Determine_Destination_Storage_Class3-->|Include task| _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_4[ mtv storage map query for datastores from
destination provider
When: **ovirt in provider**
include_task: mtv query inventory yml]:::includeTasks + _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_4-->|Include task| _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_5[ mtv storage map query for datastores from
destination provider
When: **vsphere in provider**
include_task: mtv query inventory yml]:::includeTasks + _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_5-->|Include task| _mtv_storage_map___Process_VMware_Datastores__mtv_storage_map_process_datastore_yml_6[ mtv storage map process vmware datastores
When: **vsphere in provider and mtv destination
datastores is defined and mtv destination
datastores length 0**
include_task: mtv storage map process datastore yml]:::includeTasks + _mtv_storage_map___Process_VMware_Datastores__mtv_storage_map_process_datastore_yml_6-->|Include task| _mtv_storage_map___Process_Ovirt_Datastores__mtv_storage_map_process_datastore_yml_7[ mtv storage map process ovirt datastores
When: **ovirt in provider and mtv destination datastores
is defined and mtv destination datastores length
0**
include_task: mtv storage map process datastore yml]:::includeTasks + _mtv_storage_map___Process_Ovirt_Datastores__mtv_storage_map_process_datastore_yml_7-->|Task| _mtv_storage_map___Template_StorageMap_Map8[ mtv storage map template storagemap map]:::task + _mtv_storage_map___Template_StorageMap_Map8-->|Task| _mtv_storage_map___Create_Storage_Map9[ mtv storage map create storage map]:::task + _mtv_storage_map___Create_Storage_Map9-->End ``` -### Graph for _mtv_provider_ovirt.yml +### Graph for _mtv_storage_map_process_datastore.yml ```mermaid flowchart TD @@ -408,24 +427,19 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _mtv_provider_ovirt___Verify_credential_name_provided_when_more_than_one_credential_specified0[ mtv provider ovirt verify credential name
provided when more than one credential specified
When: **not single ovirt target**]:::task - _mtv_provider_ovirt___Verify_credential_name_provided_when_more_than_one_credential_specified0-->|Task| _mtv_provider_ovirt___Set_provider_name1[ mtv provider ovirt set provider name]:::task - _mtv_provider_ovirt___Set_provider_name1-->|Task| _mtv_provider_ovirt___Validate_required_Ovirt_provider_Properties2[ mtv provider ovirt validate required ovirt
provider properties]:::task - _mtv_provider_ovirt___Validate_required_Ovirt_provider_Properties2-->|Task| _mtv_provider_ovirt___Set_Ovirt_Provider_URL3[ mtv provider ovirt set ovirt provider url]:::task - _mtv_provider_ovirt___Set_Ovirt_Provider_URL3-->|Block Start| _mtv_provider_ovirt___MTV_Certificate4_block_start_0[[ mtv provider ovirt mtv certificate
When: **certificate not in mtv management populated
ovirt target or mtv management populated ovirt
target certificate default trim
length 0**]]:::block - _mtv_provider_ovirt___MTV_Certificate4_block_start_0-->|Task| _mtv_provider_ovirt___Retrieve_Remote_Ovirt_Provider_Certificate0[ mtv provider ovirt retrieve remote ovirt
provider certificate]:::task - _mtv_provider_ovirt___Retrieve_Remote_Ovirt_Provider_Certificate0-->|Task| _mtv_provider_ovirt___Set_Ovirt_Provider_Certificate1[ mtv provider ovirt set ovirt provider
certificate]:::task - _mtv_provider_ovirt___Set_Ovirt_Provider_Certificate1-.->|End of Block| _mtv_provider_ovirt___MTV_Certificate4_block_start_0 - _mtv_provider_ovirt___Set_Ovirt_Provider_Certificate1-->|Task| _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Configuration_5[ mtv provider ovirt set provider secret name
namespace configuration
When: **credentialssecretref in mtv management populated
ovirt target and mtv management populated ovirt
target credentialssecretref default
trim length 0**]:::task - _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Configuration_5-->|Block Start| _mtv_provider_ovirt___Configure_Provider_Secret6_block_start_0[[ mtv provider ovirt configure provider secret
When: **credentialssecretref not in mtv management
populated ovirt target or mtv management
populated ovirt target credentialssecretref
default trim length 0**]]:::block - _mtv_provider_ovirt___Configure_Provider_Secret6_block_start_0-->|Task| _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Generated_0[ mtv provider ovirt set provider secret name
namespace generated
When: **credentialssecretref not in mtv management
populated ovirt target or mtv management
populated ovirt target credentialssecretref
default trim length 0**]:::task - _mtv_provider_ovirt___Set_Provider_Secret_Name_Namespace__Generated_0-->|Task| _mtv_provider_ovirt___Create_Ovirt_credentials_secret1[ mtv provider ovirt create ovirt credentials
secret
When: **credentialssecretref not in mtv management
populated ovirt target or mtv management
populated ovirt target credentialssecretref
default trim length 0**]:::task - _mtv_provider_ovirt___Create_Ovirt_credentials_secret1-.->|End of Block| _mtv_provider_ovirt___Configure_Provider_Secret6_block_start_0 - _mtv_provider_ovirt___Create_Ovirt_credentials_secret1-->|Task| _mtv_provider_ovirt___Create_Ovirt_Provider_resource7[ mtv provider ovirt create ovirt provider
resource]:::task - _mtv_provider_ovirt___Create_Ovirt_Provider_resource7-->End + Start-->|Task| _mtv_storage_map_process_datastore___Set_VMware_StorageMap_Variables0[ mtv storage map process datastore set vmware
storagemap variables
When: **mtv vmware datastore is defined**]:::task + _mtv_storage_map_process_datastore___Set_VMware_StorageMap_Variables0-->|Task| _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_Variables1[ mtv storage map process datastore set ovirt
storagemap variables
When: **mtv ovirt datastore is defined**]:::task + _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_Variables1-->|Task| _mtv_storage_map_process_datastore___Set_VMware_StorageMap_StorageClass_from_Overrides2[ mtv storage map process datastore set vmware
storagemap storageclass from overrides
When: **mtv vmware datastore is defined and storageclass
in mtv management mtv vmware datastore overrides
and mtv management mtv vmware datastore overrides
storageclass default true trim length
0**]:::task + _mtv_storage_map_process_datastore___Set_VMware_StorageMap_StorageClass_from_Overrides2-->|Task| _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_StorageClass_from_Overrides3[ mtv storage map process datastore set ovirt
storagemap storageclass from overrides
When: **mtv ovirt datastore is defined and storageclass
in mtv management mtv ovirt datastore overrides
and mtv management mtv ovirt datastore overrides
storageclass default true trim length
0**]:::task + _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_StorageClass_from_Overrides3-->|Task| _mtv_storage_map_process_datastore___Verify_VMWare_Destination_Storage_Class4[ mtv storage map process datastore verify vmware
destination storage class
When: **mtv vmware datastore is defined**]:::task + _mtv_storage_map_process_datastore___Verify_VMWare_Destination_Storage_Class4-->|Task| _mtv_storage_map_process_datastore___Verify_Ovirt_Destination_Storage_Class5[ mtv storage map process datastore verify ovirt
destination storage class
When: **mtv ovirt datastore is defined**]:::task + _mtv_storage_map_process_datastore___Verify_Ovirt_Destination_Storage_Class5-->|Task| _mtv_storage_map_process_datastore___Template_StorageMap_Map6[ mtv storage map process datastore template
storagemap map]:::task + _mtv_storage_map_process_datastore___Template_StorageMap_Map6-->|Task| _mtv_storage_map_process_datastore___Add_VMware_StorageMap_Map_to_Dict7[ mtv storage map process datastore add vmware
storagemap map to dict
When: **mtv vmware datastore is defined and include in
mtv management mtv vmware datastore overrides and
mtv management storage map overrides selectattr
include defined list length 0 or mtv
management storage map overrides selectattr
include defined list length 0 and mtv
management storage map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv vmware
datastore overrides and mtv management storage map
overrides selectattr exclude defined
list length 0**]:::task + _mtv_storage_map_process_datastore___Add_VMware_StorageMap_Map_to_Dict7-->|Task| _mtv_storage_map_process_datastore___Add_Ovirt_StorageMap_Map_to_Dict8[ mtv storage map process datastore add ovirt
storagemap map to dict
When: **mtv ovirt datastore is defined and include in
mtv management mtv ovirt datastore overrides and
mtv management storage map overrides selectattr
include defined list length 0 or mtv
management storage map overrides selectattr
include defined list length 0 and mtv
management storage map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv ovirt datastore
overrides and mtv management storage map overrides
selectattr exclude defined list length
0**]:::task + _mtv_storage_map_process_datastore___Add_Ovirt_StorageMap_Map_to_Dict8-->End ``` -### Graph for _mtv_storage_map.yml +### Graph for main.yml ```mermaid flowchart TD @@ -439,20 +453,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _mtv_storage_map___Initialize_data_structures0[ mtv storage map initialize data structures]:::task - _mtv_storage_map___Initialize_data_structures0-->|Task| _mtv_storage_map___Verify_Storage_Map_Overrides_do_not_contain_both_includes_and_excludes1[ mtv storage map verify storage map overrides do
not contain both includes and excludes
When: **mtv management storage map overrides is defined
and mtv management storage map overrides
selectattr include defined list length
0 and mtv management storage map overrides
selectattr exclude defined list length
0**]:::task - _mtv_storage_map___Verify_Storage_Map_Overrides_do_not_contain_both_includes_and_excludes1-->|Include task| _mtv_storage_map___Query_for_Storage_Classes_from_Destination_Provider_mtv_query_inventory_yml_2[ mtv storage map query for storage classes from
destination provider
include_task: mtv query inventory yml]:::includeTasks - _mtv_storage_map___Query_for_Storage_Classes_from_Destination_Provider_mtv_query_inventory_yml_2-->|Task| _mtv_storage_map___Determine_Destination_Storage_Class3[ mtv storage map determine destination storage
class
When: **mtv management default storage class is not
defined or mtv management default storage class
default true trim length 0 and item
object metadata annotations is defined and item
object metadata annotations storageclass
kubernetes io is default class default false
string lower true**]:::task - _mtv_storage_map___Determine_Destination_Storage_Class3-->|Include task| _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_4[ mtv storage map query for datastores from
destination provider
When: **ovirt in provider**
include_task: mtv query inventory yml]:::includeTasks - _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_4-->|Include task| _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_5[ mtv storage map query for datastores from
destination provider
When: **vsphere in provider**
include_task: mtv query inventory yml]:::includeTasks - _mtv_storage_map___Query_for_Datastores_from_Destination_Provider_mtv_query_inventory_yml_5-->|Include task| _mtv_storage_map___Process_VMware_Datastores__mtv_storage_map_process_datastore_yml_6[ mtv storage map process vmware datastores
When: **vsphere in provider and mtv destination
datastores is defined and mtv destination
datastores length 0**
include_task: mtv storage map process datastore yml]:::includeTasks - _mtv_storage_map___Process_VMware_Datastores__mtv_storage_map_process_datastore_yml_6-->|Include task| _mtv_storage_map___Process_Ovirt_Datastores__mtv_storage_map_process_datastore_yml_7[ mtv storage map process ovirt datastores
When: **ovirt in provider and mtv destination datastores
is defined and mtv destination datastores length
0**
include_task: mtv storage map process datastore yml]:::includeTasks - _mtv_storage_map___Process_Ovirt_Datastores__mtv_storage_map_process_datastore_yml_7-->|Task| _mtv_storage_map___Template_StorageMap_Map8[ mtv storage map template storagemap map]:::task - _mtv_storage_map___Template_StorageMap_Map8-->|Task| _mtv_storage_map___Create_Storage_Map9[ mtv storage map create storage map]:::task - _mtv_storage_map___Create_Storage_Map9-->End + Start-->|Include task| Configure_MTV_Providers_mtv_providers_yml_0[configure mtv providers
When: **mtv management map providers is defined and mtv
management map providers bool**
include_task: mtv providers yml]:::includeTasks + Configure_MTV_Providers_mtv_providers_yml_0-->|Include task| Configure_MTV_Maps_mtv_maps_yml_1[configure mtv maps
When: **mtv management map storage is defined and mtv
management map storage bool or mtv management
map networks is defined and mtv management map
networks bool**
include_task: mtv maps yml]:::includeTasks + Configure_MTV_Maps_mtv_maps_yml_1-->End ``` -### Graph for mtv_providers.yml +### Graph for mtv_maps.yml ```mermaid flowchart TD @@ -466,14 +472,18 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| mtv_providers___Verify_ForkliftController_status0[mtv providers verify forkliftcontroller status
When: **mtv management migration targets default
length 0**]:::task - mtv_providers___Verify_ForkliftController_status0-->|Task| mtv_providers___Debug1[mtv providers debug]:::task - mtv_providers___Debug1-->|Include task| mtv_providers___Configure_vmware_providers__mtv_provider_vmware_yml_2[mtv providers configure vmware providers
When: **mtv management migration targets is defined and
mtv management migration targets selectattr
type equalto vmware list length 0**
include_task: mtv provider vmware yml]:::includeTasks - mtv_providers___Configure_vmware_providers__mtv_provider_vmware_yml_2-->|Include task| mtv_providers___Configure_ovirt_providers__mtv_provider_ovirt_yml_3[mtv providers configure ovirt providers
When: **mtv management migration targets is defined and
mtv management migration targets selectattr
type equalto ovirt list length 0**
include_task: mtv provider ovirt yml]:::includeTasks - mtv_providers___Configure_ovirt_providers__mtv_provider_ovirt_yml_3-->End + Start-->|Include task| mtv_maps___Retrieve_Configured_providers_mtv_query_inventory_yml_0[mtv maps retrieve configured providers
include_task: mtv query inventory yml]:::includeTasks + mtv_maps___Retrieve_Configured_providers_mtv_query_inventory_yml_0-->|Task| mtv_maps___Verify_VMWare_Source_Provider_Exists1[mtv maps verify vmware source provider exists
When: **vsphere in provider**]:::task + mtv_maps___Verify_VMWare_Source_Provider_Exists1-->|Task| mtv_maps___Verify_Ovirt_Source_Provider_Exists2[mtv maps verify ovirt source provider exists
When: **ovirt in provider**]:::task + mtv_maps___Verify_Ovirt_Source_Provider_Exists2-->|Task| mtv_maps___Destination_OpenShift_Destination_Provider_Exists3[mtv maps destination openshift destination
provider exists]:::task + mtv_maps___Destination_OpenShift_Destination_Provider_Exists3-->|Task| mtv_maps___Verify_mutually_exclusive_storage_map_overrides4[mtv maps verify mutually exclusive storage map
overrides
When: **mtv management map storage is defined and mtv
management map storage bool**]:::task + mtv_maps___Verify_mutually_exclusive_storage_map_overrides4-->|Include task| mtv_maps___Configure_MTV_Storage_Maps__Multiple___mtv_storage_map_yml_5[mtv maps configure mtv storage maps multiple
When: **mtv management map storage is defined and mtv
management map storage bool and mtv management
multiple storage maps overrides is defined and mtv
management multiple storage maps overrides
length 0**
include_task: mtv storage map yml]:::includeTasks + mtv_maps___Configure_MTV_Storage_Maps__Multiple___mtv_storage_map_yml_5-->|Include task| mtv_maps___Configure_MTV_Storage_Maps__mtv_storage_map_yml_6[mtv maps configure mtv storage maps
When: **mtv management map storage is defined and mtv
management map storage bool and mtv management
multiple storage maps overrides is not defined or
mtv management multiple storage maps overrides
length 0**
include_task: mtv storage map yml]:::includeTasks + mtv_maps___Configure_MTV_Storage_Maps__mtv_storage_map_yml_6-->|Include task| mtv_maps___Configure_MTV_Network_Map__mtv_network_map_yml_7[mtv maps configure mtv network map
When: **mtv management map networks is defined and mtv
management map networks bool**
include_task: mtv network map yml]:::includeTasks + mtv_maps___Configure_MTV_Network_Map__mtv_network_map_yml_7-->End ``` -### Graph for mtv_maps.yml +### Graph for mtv_providers.yml ```mermaid flowchart TD @@ -487,16 +497,14 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Include task| mtv_maps___Retrieve_Configured_providers_mtv_query_inventory_yml_0[mtv maps retrieve configured providers
include_task: mtv query inventory yml]:::includeTasks - mtv_maps___Retrieve_Configured_providers_mtv_query_inventory_yml_0-->|Task| mtv_maps___Verify_VMWare_Source_Provider_Exists1[mtv maps verify vmware source provider exists
When: **vsphere in provider**]:::task - mtv_maps___Verify_VMWare_Source_Provider_Exists1-->|Task| mtv_maps___Verify_Ovirt_Source_Provider_Exists2[mtv maps verify ovirt source provider exists
When: **ovirt in provider**]:::task - mtv_maps___Verify_Ovirt_Source_Provider_Exists2-->|Task| mtv_maps___Destination_OpenShift_Destination_Provider_Exists3[mtv maps destination openshift destination
provider exists]:::task - mtv_maps___Destination_OpenShift_Destination_Provider_Exists3-->|Include task| mtv_maps___Configure_MTV_Storage_Maps__mtv_storage_map_yml_4[mtv maps configure mtv storage maps
When: **mtv management map storage is defined and mtv
management map storage bool**
include_task: mtv storage map yml]:::includeTasks - mtv_maps___Configure_MTV_Storage_Maps__mtv_storage_map_yml_4-->|Include task| mtv_maps___Configure_MTV_Network_Map__mtv_network_map_yml_5[mtv maps configure mtv network map
When: **mtv management map networks is defined and mtv
management map networks bool**
include_task: mtv network map yml]:::includeTasks - mtv_maps___Configure_MTV_Network_Map__mtv_network_map_yml_5-->End + Start-->|Task| mtv_providers___Verify_ForkliftController_status0[mtv providers verify forkliftcontroller status
When: **mtv management migration targets default
length 0**]:::task + mtv_providers___Verify_ForkliftController_status0-->|Task| mtv_providers___Debug1[mtv providers debug]:::task + mtv_providers___Debug1-->|Include task| mtv_providers___Configure_vmware_providers__mtv_provider_vmware_yml_2[mtv providers configure vmware providers
When: **mtv management migration targets is defined and
mtv management migration targets selectattr
type equalto vmware list length 0**
include_task: mtv provider vmware yml]:::includeTasks + mtv_providers___Configure_vmware_providers__mtv_provider_vmware_yml_2-->|Include task| mtv_providers___Configure_ovirt_providers__mtv_provider_ovirt_yml_3[mtv providers configure ovirt providers
When: **mtv management migration targets is defined and
mtv management migration targets selectattr
type equalto ovirt list length 0**
include_task: mtv provider ovirt yml]:::includeTasks + mtv_providers___Configure_ovirt_providers__mtv_provider_ovirt_yml_3-->End ``` -### Graph for _mtv_provider_vmware.yml +### Graph for mtv_query_inventory.yml ```mermaid flowchart TD @@ -510,24 +518,24 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _mtv_provider_vmware___Verify_credential_name_provided_when_more_than_one_credential_specified0[ mtv provider vmware verify credential name
provided when more than one credential specified
When: **not single vmware target**]:::task - _mtv_provider_vmware___Verify_credential_name_provided_when_more_than_one_credential_specified0-->|Task| _mtv_provider_vmware___Set_provider_name1[ mtv provider vmware set provider name]:::task - _mtv_provider_vmware___Set_provider_name1-->|Task| _mtv_provider_vmware___Validate_required_VMware_provider_Properties2[ mtv provider vmware validate required vmware
provider properties]:::task - _mtv_provider_vmware___Validate_required_VMware_provider_Properties2-->|Task| _mtv_provider_vmware___Set_VMware_Provider_URL3[ mtv provider vmware set vmware provider url]:::task - _mtv_provider_vmware___Set_VMware_Provider_URL3-->|Block Start| _mtv_provider_vmware___MTV_Certificate4_block_start_0[[ mtv provider vmware mtv certificate
When: **not mtv management populated vmware target
insecureskiptlsverify and certificate not in
mtv management populated vmware target or mtv
management populated vmware target certificate
default trim length 0**]]:::block - _mtv_provider_vmware___MTV_Certificate4_block_start_0-->|Task| _mtv_provider_vmware___Retrieve_Remote_VMware_Provider_Certificate0[ mtv provider vmware retrieve remote vmware
provider certificate]:::task - _mtv_provider_vmware___Retrieve_Remote_VMware_Provider_Certificate0-->|Task| _mtv_provider_vmware___Set_VMware_Provider_Certificate1[ mtv provider vmware set vmware provider
certificate]:::task - _mtv_provider_vmware___Set_VMware_Provider_Certificate1-.->|End of Block| _mtv_provider_vmware___MTV_Certificate4_block_start_0 - _mtv_provider_vmware___Set_VMware_Provider_Certificate1-->|Task| _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Configuration_5[ mtv provider vmware set provider secret name
namespace configuration
When: **credentialssecretref in mtv management populated
vmware target and mtv management populated vmware
target credentialssecretref default
trim length 0**]:::task - _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Configuration_5-->|Block Start| _mtv_provider_vmware___Configure_Provider_Secret6_block_start_0[[ mtv provider vmware configure provider secret
When: **credentialssecretref not in mtv management
populated vmware target or mtv management
populated vmware target credentialssecretref
default trim length 0**]]:::block - _mtv_provider_vmware___Configure_Provider_Secret6_block_start_0-->|Task| _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Generated_0[ mtv provider vmware set provider secret name
namespace generated ]:::task - _mtv_provider_vmware___Set_Provider_Secret_Name_Namespace__Generated_0-->|Task| _mtv_provider_vmware___Create_VMware_credentials_secret1[ mtv provider vmware create vmware credentials
secret]:::task - _mtv_provider_vmware___Create_VMware_credentials_secret1-.->|End of Block| _mtv_provider_vmware___Configure_Provider_Secret6_block_start_0 - _mtv_provider_vmware___Create_VMware_credentials_secret1-->|Task| _mtv_provider_vmware___Create_VMware_Provider_resource7[ mtv provider vmware create vmware provider
resource]:::task - _mtv_provider_vmware___Create_VMware_Provider_resource7-->End + Start-->|Task| mtv_query_inventory___Verify_valid_inventory_query_retrieval_method0[mtv query inventory verify valid inventory query
retrieval method]:::task + mtv_query_inventory___Verify_valid_inventory_query_retrieval_method0-->|Task| mtv_query_inventory___Verify_valid_query_parameters1[mtv query inventory verify valid query
parameters]:::task + mtv_query_inventory___Verify_valid_query_parameters1-->|Block Start| mtv_query_inventory___Exec_inventory_retrieval_method2_block_start_0[[mtv query inventory exec inventory retrieval
method
When: **mtv management inventory retrieval method exec
**]]:::block + mtv_query_inventory___Exec_inventory_retrieval_method2_block_start_0-->|Task| mtv_query_inventory___Obtain_the_name_of_a_Running_Forklift_Inventory_Pod0[mtv query inventory obtain the name of a running
forklift inventory pod]:::task + mtv_query_inventory___Obtain_the_name_of_a_Running_Forklift_Inventory_Pod0-->|Task| mtv_query_inventory___Set_name_of_the_MTV_Inventory_Pod1[mtv query inventory set name of the mtv
inventory pod]:::task + mtv_query_inventory___Set_name_of_the_MTV_Inventory_Pod1-->|Task| mtv_query_inventory___Execute_Query__exec_2[mtv query inventory execute query exec ]:::task + mtv_query_inventory___Execute_Query__exec_2-->|Task| mtv_query_inventory___Set_Result_Fact3[mtv query inventory set result fact]:::task + mtv_query_inventory___Set_Result_Fact3-.->|End of Block| mtv_query_inventory___Exec_inventory_retrieval_method2_block_start_0 + mtv_query_inventory___Set_Result_Fact3-->|Block Start| mtv_query_inventory___Rest_inventory_retrieval_method3_block_start_0[[mtv query inventory rest inventory retrieval
method
When: **mtv management inventory retrieval method rest
**]]:::block + mtv_query_inventory___Rest_inventory_retrieval_method3_block_start_0-->|Task| mtv_query_inventory___Locate_MTV_Route0[mtv query inventory locate mtv route
When: **forklift inventory url default true
length 0**]:::task + mtv_query_inventory___Locate_MTV_Route0-->|Task| mtv_query_inventory___Verify_route_found1[mtv query inventory verify route found]:::task + mtv_query_inventory___Verify_route_found1-->|Task| mtv_query_inventory___Execute_Query__rest_2[mtv query inventory execute query rest ]:::task + mtv_query_inventory___Execute_Query__rest_2-->|Task| mtv_query_inventory___Set_Result_Fact3[mtv query inventory set result fact]:::task + mtv_query_inventory___Set_Result_Fact3-.->|End of Block| mtv_query_inventory___Rest_inventory_retrieval_method3_block_start_0 + mtv_query_inventory___Set_Result_Fact3-->End ``` -### Graph for _mtv_storage_map_process_datastore.yml +### Graph for mtv_vddk.yml ```mermaid flowchart TD @@ -541,16 +549,17 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _mtv_storage_map_process_datastore___Set_VMware_StorageMap_Variables0[ mtv storage map process datastore set vmware
storagemap variables
When: **mtv vmware datastore is defined**]:::task - _mtv_storage_map_process_datastore___Set_VMware_StorageMap_Variables0-->|Task| _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_Variables1[ mtv storage map process datastore set ovirt
storagemap variables
When: **mtv ovirt datastore is defined**]:::task - _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_Variables1-->|Task| _mtv_storage_map_process_datastore___Set_VMware_StorageMap_StorageClass_from_Overrides2[ mtv storage map process datastore set vmware
storagemap storageclass from overrides
When: **mtv vmware datastore is defined and storageclass
in mtv management mtv vmware datastore overrides
and mtv management mtv vmware datastore overrides
storageclass default true trim length
0**]:::task - _mtv_storage_map_process_datastore___Set_VMware_StorageMap_StorageClass_from_Overrides2-->|Task| _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_StorageClass_from_Overrides3[ mtv storage map process datastore set ovirt
storagemap storageclass from overrides
When: **mtv ovirt datastore is defined and storageclass
in mtv management mtv ovirt datastore overrides
and mtv management mtv ovirt datastore overrides
storageclass default true trim length
0**]:::task - _mtv_storage_map_process_datastore___Set_Ovirt_StorageMap_StorageClass_from_Overrides3-->|Task| _mtv_storage_map_process_datastore___Verify_VMWare_Destination_Storage_Class4[ mtv storage map process datastore verify vmware
destination storage class
When: **mtv vmware datastore is defined**]:::task - _mtv_storage_map_process_datastore___Verify_VMWare_Destination_Storage_Class4-->|Task| _mtv_storage_map_process_datastore___Verify_Ovirt_Destination_Storage_Class5[ mtv storage map process datastore verify ovirt
destination storage class
When: **mtv ovirt datastore is defined**]:::task - _mtv_storage_map_process_datastore___Verify_Ovirt_Destination_Storage_Class5-->|Task| _mtv_storage_map_process_datastore___Template_StorageMap_Map6[ mtv storage map process datastore template
storagemap map]:::task - _mtv_storage_map_process_datastore___Template_StorageMap_Map6-->|Task| _mtv_storage_map_process_datastore___Add_VMware_StorageMap_Map_to_Dict7[ mtv storage map process datastore add vmware
storagemap map to dict
When: **mtv vmware datastore is defined and include in
mtv management mtv vmware datastore overrides and
mtv management storage map overrides selectattr
include defined list length 0 or mtv
management storage map overrides selectattr
include defined list length 0 and mtv
management storage map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv vmware
datastore overrides and mtv management storage map
overrides selectattr exclude defined
list length 0**]:::task - _mtv_storage_map_process_datastore___Add_VMware_StorageMap_Map_to_Dict7-->|Task| _mtv_storage_map_process_datastore___Add_Ovirt_StorageMap_Map_to_Dict8[ mtv storage map process datastore add ovirt
storagemap map to dict
When: **mtv ovirt datastore is defined and include in
mtv management mtv ovirt datastore overrides and
mtv management storage map overrides selectattr
include defined list length 0 or mtv
management storage map overrides selectattr
include defined list length 0 and mtv
management storage map overrides selectattr
exclude defined list length 0 or
exclude not in mtv management mtv ovirt datastore
overrides and mtv management storage map overrides
selectattr exclude defined list length
0**]:::task - _mtv_storage_map_process_datastore___Add_Ovirt_StorageMap_Map_to_Dict8-->End + Start-->|Task| mtv_vddk___Verify_VDDK_Secret_Parameters_Provided0[mtv vddk verify vddk secret parameters provided]:::task + mtv_vddk___Verify_VDDK_Secret_Parameters_Provided0-->|Task| mtv_vddk___Verify_VDDK_Image_Parameters_Provided1[mtv vddk verify vddk image parameters provided]:::task + mtv_vddk___Verify_VDDK_Image_Parameters_Provided1-->|Task| mtv_vddk___Create_VDDK_Pull_Secret2[mtv vddk create vddk pull secret]:::task + mtv_vddk___Create_VDDK_Pull_Secret2-->|Block Start| mtv_vddk___Manage_VDDK_Provided_Credentials3_block_start_0[[mtv vddk manage vddk provided credentials
When: **mtv management vmware vddk init image credentials
secret default true length 0**]]:::block + mtv_vddk___Manage_VDDK_Provided_Credentials3_block_start_0-->|Task| mtv_vddk___Retrieve_Provided_VDDK_Credentials_Secret0[mtv vddk retrieve provided vddk credentials
secret]:::task + mtv_vddk___Retrieve_Provided_VDDK_Credentials_Secret0-->|Task| mtv_vddk___Verify_Provided_VDDK_Credentials_Secret1[mtv vddk verify provided vddk credentials secret]:::task + mtv_vddk___Verify_Provided_VDDK_Credentials_Secret1-->|Task| mtv_vddk___Update_Pull_Secret_Name_for_Provided_Credential2[mtv vddk update pull secret name for provided
credential]:::task + mtv_vddk___Update_Pull_Secret_Name_for_Provided_Credential2-.->|End of Block| mtv_vddk___Manage_VDDK_Provided_Credentials3_block_start_0 + mtv_vddk___Update_Pull_Secret_Name_for_Provided_Credential2-->|Task| mtv_vddk___Retrieve_VDDK_Service_Account4[mtv vddk retrieve vddk service account]:::task + mtv_vddk___Retrieve_VDDK_Service_Account4-->|Task| mtv_vddk___Patch_Service_Account_with_VDDK_pull_secret5[mtv vddk patch service account with vddk pull
secret
When: **resources in mtv management vmware vddk service
account result and mtv management vmware vddk
service account result resources length 0 and
imagepullsecrets in mtv management vmware vddk
service account result resources 0 and mtv
management vmware vddk service account result
resources 0 imagepullsecrets selectattr name
equalto mtv management vmware vddk secret name
length 0**]:::task + mtv_vddk___Patch_Service_Account_with_VDDK_pull_secret5-->End ``` ## Playbook diff --git a/roles/mtv_migrate/README.md b/roles/mtv_migrate/README.md index f48fafe..83e70c8 100644 --- a/roles/mtv_migrate/README.md +++ b/roles/mtv_migrate/README.md @@ -27,37 +27,67 @@ Description: Migration of Virtual Machines from Source to Destination. * **Description**: MTV Migrate - Migrate VMs at scale * **Options**: + * **mtv_migrate_default_destination_target**: + * **Required**: false + * **Type**: str + * **Default**: host + * **Description**: Default destination for migrations + * **mtv_migrate_default_destination_type**: + * **Required**: false + * **Type**: str + * **Default**: openshift + * **Description**: Default destination type for migrations + * **mtv_migrate_default_migrate_dry_run**: + * **Required**: false + * **Type**: bool + * **Default**: False + * **Description**: Whether to perform a dry_run of plan creation * **mtv_migrate_default_namespace**: * **Required**: false * **Type**: str * **Default**: openshift-mtv * **Description**: The default namespace to use if not specified + * **mtv_migrate_default_source_target**: + * **Required**: false + * **Type**: str + * **Default**: vmware + * **Description**: Default source target for migration + * **mtv_migrate_default_source_type**: + * **Required**: false + * **Type**: str + * **Default**: vsphere + * **Description**: Default source type for migrations + * **mtv_migrate_default_split_plans**: + * **Required**: false + * **Type**: bool + * **Default**: False + * **Description**: Whether to split the plans into chunks of VMs + * **mtv_migrate_default_start_migration**: + * **Required**: false + * **Type**: bool + * **Default**: False + * **Description**: Whether to start the migration after plan is created + * **mtv_migrate_default_verify_migrations_complete**: + * **Required**: false + * **Type**: bool + * **Default**: False + * **Description**: Whether to wait for migrations to finish + * **mtv_migrate_default_verify_plans_ready**: + * **Required**: false + * **Type**: bool + * **Default**: False + * **Description**: Whether to verify the plans are ready + * **mtv_migrate_default_vms_per_plan**: + * **Required**: false + * **Type**: int + * **Default**: 10 + * **Description**: The size for each chunk of VMs split out * **mtv_migrate_migration_request**: * **Required**: True * **Type**: dict * **Default**: none * **Description**: This is a dictionary with details of a migration plan to create and / or run * **Options**: - * **mtv_namespace**: - * **Required**: false - * **Type**: str - * **Default**: openshift-mtv - * **Description**: The namespace MTV is deployed in - * **source_type**: - * **Required**: false - * **Type**: str - * **Default**: vsphere - * **Description**: Source MTV Provider - * **source**: - * **Required**: false - * **Type**: str - * **Default**: vmware - * **Description**: Source containing VMs - * **source_namespace**: - * **Required**: false - * **Type**: str - * **Default**: openshift-mtv - * **Description**: Namespace the source provider is located * **destination**: * **Required**: false * **Type**: str @@ -73,36 +103,21 @@ Description: Migration of Virtual Machines from Source to Destination. * **Type**: str * **Default**: openshift * **Description**: Destination provider type - * **vms_per_plan**: - * **Required**: false - * **Type**: int - * **Default**: 10 - * **Description**: Number of VMs to split into multiple plans - * **split_plans**: + * **dry_run**: * **Required**: false * **Type**: bool * **Default**: False - * **Description**: Determines whether to split into multiple plans - * **plan_overrides**: - * **Required**: false - * **Type**: dict - * **Default**: none - * **Description**: Config to apply at the plan level - * **vm_overrides**: + * **Description**: Build the plans without applying them + * **folders**: * **Required**: false - * **Type**: dict + * **Type**: list * **Default**: none - * **Description**: Config to apply at to each VM - * **target_namespace**: + * **Description**: Explicit list of folders to migrate + * **mtv_namespace**: * **Required**: false * **Type**: str * **Default**: openshift-mtv - * **Description**: Namespace to create VMs in - * **dry_run**: - * **Required**: false - * **Type**: bool - * **Default**: False - * **Description**: Build the plans without applying them + * **Description**: The namespace MTV is deployed in * **network_map**: * **Required**: false * **Type**: str @@ -113,6 +128,41 @@ Description: Migration of Virtual Machines from Source to Destination. * **Type**: str * **Default**: openshift-mtv * **Description**: Namespace containing the network map + * **plan_name**: + * **Required**: false + * **Type**: str + * **Default**: source_name-target_name-yyyyMMdd-HHmm + * **Description**: Name of the migration plan + * **plan_overrides**: + * **Required**: false + * **Type**: dict + * **Default**: none + * **Description**: Config to apply at the plan level + * **source**: + * **Required**: false + * **Type**: str + * **Default**: vmware + * **Description**: Source containing VMs + * **source_namespace**: + * **Required**: false + * **Type**: str + * **Default**: openshift-mtv + * **Description**: Namespace the source provider is located + * **source_type**: + * **Required**: false + * **Type**: str + * **Default**: vsphere + * **Description**: Source MTV Provider + * **split_plans**: + * **Required**: false + * **Type**: bool + * **Default**: False + * **Description**: Determines whether to split into multiple plans + * **start_migration**: + * **Required**: false + * **Type**: bool + * **Default**: False + * **Description**: Create migration resources for the created plan * **storage_map**: * **Required**: false * **Type**: str @@ -123,91 +173,41 @@ Description: Migration of Virtual Machines from Source to Destination. * **Type**: str * **Default**: openshift-mtv * **Description**: Namespace containing the storage map - * **start_migration**: + * **target_namespace**: + * **Required**: false + * **Type**: str + * **Default**: openshift-mtv + * **Description**: Namespace to create VMs in + * **verify_migrations_complete**: * **Required**: false * **Type**: bool * **Default**: False - * **Description**: Create migration resources for the created plan + * **Description**: Waits for migrations to complete * **verify_plans_ready**: * **Required**: false * **Type**: bool * **Default**: False * **Description**: Verify the plan is in a ready state - * **verify_migrations_complete**: - * **Required**: false - * **Type**: bool - * **Default**: False - * **Description**: Waits for migrations to complete - * **plan_name**: + * **vm_overrides**: * **Required**: false - * **Type**: str - * **Default**: source_name-target_name-yyyyMMdd-HHmm - * **Description**: Name of the migration plan + * **Type**: dict + * **Default**: none + * **Description**: Config to apply at to each VM * **vms**: * **Required**: false * **Type**: list * **Default**: none * **Description**: Explicit list of VMs to migrate - * **folders**: + * **vms_per_plan**: * **Required**: false - * **Type**: list - * **Default**: none - * **Description**: Explicit list of folders to migrate + * **Type**: int + * **Default**: 10 + * **Description**: Number of VMs to split into multiple plans * **mtv_migrate_plan_base_name_annotation**: * **Required**: false * **Type**: str * **Default**: infra.openshift-virtualization-migration/plan-name * **Description**: Label assigned to the MTV plan name - * **mtv_migrate_default_source_type**: - * **Required**: false - * **Type**: str - * **Default**: vsphere - * **Description**: Default source type for migrations - * **mtv_migrate_default_source_target**: - * **Required**: false - * **Type**: str - * **Default**: vmware - * **Description**: Default source target for migration - * **mtv_migrate_default_destination_type**: - * **Required**: false - * **Type**: str - * **Default**: openshift - * **Description**: Default destination type for migrations - * **mtv_migrate_default_destination_target**: - * **Required**: false - * **Type**: str - * **Default**: host - * **Description**: Default destination for migrations - * **mtv_migrate_default_split_plans**: - * **Required**: false - * **Type**: bool - * **Default**: False - * **Description**: Whether to split the plans into chunks of VMs - * **mtv_migrate_default_vms_per_plan**: - * **Required**: false - * **Type**: int - * **Default**: 10 - * **Description**: The size for each chunk of VMs split out - * **mtv_migrate_default_start_migration**: - * **Required**: false - * **Type**: bool - * **Default**: False - * **Description**: Whether to start the migration after plan is created - * **mtv_migrate_default_migrate_dry_run**: - * **Required**: false - * **Type**: bool - * **Default**: False - * **Description**: Whether to perform a dry_run of plan creation - * **mtv_migrate_default_verify_plans_ready**: - * **Required**: false - * **Type**: bool - * **Default**: False - * **Description**: Whether to verify the plans are ready - * **mtv_migrate_default_verify_migrations_complete**: - * **Required**: false - * **Type**: bool - * **Default**: False - * **Description**: Whether to wait for migrations to finish @@ -219,83 +219,83 @@ Description: Migration of Virtual Machines from Source to Destination. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`mtv_migrate_default_namespace`](defaults/main.yml#L7) | str | `openshift-mtv` | None | True | Default MTV Namespace | -| [`mtv_migrate_migration_request`](defaults/main.yml#L13) | dict | `{}` | None | True | Migration Request | -| [`mtv_migrate_plan_base_name_annotation`](defaults/main.yml#L53) | str | `infra.openshift-virtualization-migration/plan-name` | None | True | MTV Migrate Annotation | -| [`mtv_migrate_default_source_type`](defaults/main.yml#L61) | str | `vsphere` | None | True | MTV Default Source Type | -| [`mtv_migrate_default_source_target`](defaults/main.yml#L67) | str | `vmware` | None | True | MTV Default Source Target | -| [`mtv_migrate_default_source_target_namespace`](defaults/main.yml#L73) | str | `{{ _mtv_migrate_mtv_namespace }}` | None | True | MTV Default Source Namespace | -| [`mtv_migrate_default_destination_type`](defaults/main.yml#L79) | str | `openshift` | None | True | MTV Default Destination Type | | [`mtv_migrate_default_destination_target`](defaults/main.yml#L85) | str | `host` | None | True | MTV Default Destination Target | | [`mtv_migrate_default_destination_target_namespace`](defaults/main.yml#L91) | str | `{{ _mtv_migrate_mtv_namespace }}` | None | True | MTV Default Target Namespace | -| [`mtv_migrate_default_split_plans`](defaults/main.yml#L97) | bool | `False` | None | True | MTV Default Split Plans | -| [`mtv_migrate_default_vms_per_plan`](defaults/main.yml#L103) | int | `10` | None | True | MTV Default VMs Per Plan | -| [`mtv_migrate_default_start_migration`](defaults/main.yml#L109) | bool | `False` | None | True | MTV Default Start Migration | +| [`mtv_migrate_default_destination_type`](defaults/main.yml#L79) | str | `openshift` | None | True | MTV Default Destination Type | | [`mtv_migrate_default_migrate_dry_run`](defaults/main.yml#L115) | bool | `False` | None | True | MTV Default Dry Run | -| [`mtv_migrate_default_verify_plans_ready`](defaults/main.yml#L121) | bool | `False` | None | True | MTV Default Verify Plans Ready | -| [`mtv_migrate_default_verify_migrations_complete`](defaults/main.yml#L127) | bool | `False` | None | True | MTV Default Verify Migrations Complete | -| [`mtv_migrate_default_target_namespace`](defaults/main.yml#L133) | str | `{{ _mtv_migrate_mtv_namespace }}` | None | True | MTV Default Target Namespace | -| [`mtv_migrate_default_plan_base_name`](defaults/main.yml#L139) | str | `{{ (_mtv_migrate_mtv_source_target + '-' + _mtv_migrate_mtv_destination_target) + '-' + lookup('pipe', 'date +%Y%m%d-%H%M') }}` | None | True | MTV Default Plan Base Name | +| [`mtv_migrate_default_namespace`](defaults/main.yml#L7) | str | `openshift-mtv` | None | True | Default MTV Namespace | | [`mtv_migrate_default_network_map_name`](defaults/main.yml#L147) | str | `{{ (_mtv_migrate_mtv_source_target + '-' + _mtv_migrate_mtv_destination_target) ¦ infra.openshift_virtualization_migration.rfc1123 }}` | None | True | MTV Default Network Map Name | | [`mtv_migrate_default_network_map_namespace`](defaults/main.yml#L153) | str | `{{ _mtv_migrate_mtv_namespace }}` | None | True | MTV Default Network Map Namespace | +| [`mtv_migrate_default_plan_base_name`](defaults/main.yml#L139) | str | `{{ (_mtv_migrate_mtv_source_target + '-' + _mtv_migrate_mtv_destination_target) + '-' + lookup('pipe', 'date +%Y%m%d-%H%M') }}` | None | True | MTV Default Plan Base Name | +| [`mtv_migrate_default_source_target`](defaults/main.yml#L67) | str | `vmware` | None | True | MTV Default Source Target | +| [`mtv_migrate_default_source_target_namespace`](defaults/main.yml#L73) | str | `{{ _mtv_migrate_mtv_namespace }}` | None | True | MTV Default Source Namespace | +| [`mtv_migrate_default_source_type`](defaults/main.yml#L61) | str | `vsphere` | None | True | MTV Default Source Type | +| [`mtv_migrate_default_split_plans`](defaults/main.yml#L97) | bool | `False` | None | True | MTV Default Split Plans | +| [`mtv_migrate_default_start_migration`](defaults/main.yml#L109) | bool | `False` | None | True | MTV Default Start Migration | | [`mtv_migrate_default_storage_map_name`](defaults/main.yml#L159) | str | `{{ (_mtv_migrate_mtv_source_target + '-' + _mtv_migrate_mtv_destination_target) ¦ infra.openshift_virtualization_migration.rfc1123 }}` | None | True | MTV Default Storage Map Name | | [`mtv_migrate_default_storage_map_namespace`](defaults/main.yml#L165) | str | `{{ _mtv_migrate_mtv_namespace }}` | None | True | MTV Default Storage Map Namespace | -| [`mtv_migrate_verify_plans_ready_retries`](defaults/main.yml#L170) | int | `180` | None | True | MTV Migration Verify Plans Ready Retries | -| [`mtv_migrate_verify_plans_ready_delay`](defaults/main.yml#L175) | int | `20` | None | True | MTV Migration Verify Plans Ready Delay | -| [`mtv_migrate_verify_migration_complete_retries`](defaults/main.yml#L180) | int | `360` | None | True | MTV Migration Verify Migration Complete Retries | +| [`mtv_migrate_default_target_namespace`](defaults/main.yml#L133) | str | `{{ _mtv_migrate_mtv_namespace }}` | None | True | MTV Default Target Namespace | +| [`mtv_migrate_default_verify_migrations_complete`](defaults/main.yml#L127) | bool | `False` | None | True | MTV Default Verify Migrations Complete | +| [`mtv_migrate_default_verify_plans_ready`](defaults/main.yml#L121) | bool | `False` | None | True | MTV Default Verify Plans Ready | +| [`mtv_migrate_default_vms_per_plan`](defaults/main.yml#L103) | int | `10` | None | True | MTV Default VMs Per Plan | +| [`mtv_migrate_migration_request`](defaults/main.yml#L13) | dict | `{}` | None | True | Migration Request | +| [`mtv_migrate_plan_base_name_annotation`](defaults/main.yml#L53) | str | `infra.openshift-virtualization-migration/plan-name` | None | True | MTV Migrate Annotation | | [`mtv_migrate_verify_migration_complete_delay`](defaults/main.yml#L185) | int | `20` | None | True | MTV Migration Verify Migration Complete Delay | +| [`mtv_migrate_verify_migration_complete_retries`](defaults/main.yml#L180) | int | `360` | None | True | MTV Migration Verify Migration Complete Retries | +| [`mtv_migrate_verify_plans_ready_delay`](defaults/main.yml#L175) | int | `20` | None | True | MTV Migration Verify Plans Ready Delay | +| [`mtv_migrate_verify_plans_ready_retries`](defaults/main.yml#L170) | int | `180` | None | True | MTV Migration Verify Plans Ready Retries | 🖇️ Full descriptions for vars in defaults/main.yml
+`mtv_migrate_default_destination_target`: None +
+`mtv_migrate_default_destination_target_namespace`: None +
+`mtv_migrate_default_destination_type`: None +
+`mtv_migrate_default_migrate_dry_run`: None +
`mtv_migrate_default_namespace`: The default namespace to use if not specified
-`mtv_migrate_migration_request`: None +`mtv_migrate_default_network_map_name`: None
-`mtv_migrate_plan_base_name_annotation`: Label assigned to the MTV plan name +`mtv_migrate_default_network_map_namespace`: None
-`mtv_migrate_default_source_type`: None +`mtv_migrate_default_plan_base_name`: None
`mtv_migrate_default_source_target`: None
`mtv_migrate_default_source_target_namespace`: None
-`mtv_migrate_default_destination_type`: None -
-`mtv_migrate_default_destination_target`: None -
-`mtv_migrate_default_destination_target_namespace`: None +`mtv_migrate_default_source_type`: None
`mtv_migrate_default_split_plans`: None
-`mtv_migrate_default_vms_per_plan`: None -
`mtv_migrate_default_start_migration`: None
-`mtv_migrate_default_migrate_dry_run`: None -
-`mtv_migrate_default_verify_plans_ready`: None +`mtv_migrate_default_storage_map_name`: None
-`mtv_migrate_default_verify_migrations_complete`: None +`mtv_migrate_default_storage_map_namespace`: None
`mtv_migrate_default_target_namespace`: None
-`mtv_migrate_default_plan_base_name`: None -
-`mtv_migrate_default_network_map_name`: None +`mtv_migrate_default_verify_migrations_complete`: None
-`mtv_migrate_default_network_map_namespace`: None +`mtv_migrate_default_verify_plans_ready`: None
-`mtv_migrate_default_storage_map_name`: None +`mtv_migrate_default_vms_per_plan`: None
-`mtv_migrate_default_storage_map_namespace`: None +`mtv_migrate_migration_request`: None
-`mtv_migrate_verify_plans_ready_retries`: None +`mtv_migrate_plan_base_name_annotation`: Label assigned to the MTV plan name
-`mtv_migrate_verify_plans_ready_delay`: None +`mtv_migrate_verify_migration_complete_delay`: None
`mtv_migrate_verify_migration_complete_retries`: None
-`mtv_migrate_verify_migration_complete_delay`: None +`mtv_migrate_verify_plans_ready_delay`: None +
+`mtv_migrate_verify_plans_ready_retries`: None

@@ -389,7 +389,7 @@ Description: Migration of Virtual Machines from Source to Destination. ## Task Flow Graphs -### Graph for main.yml +### Graph for _migrations.yml ```mermaid flowchart TD @@ -403,18 +403,15 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| Verify_Request_Provided0[verify request provided]:::task - Verify_Request_Provided0-->|Task| Initialize_Data_Structures1[initialize data structures]:::task - Initialize_Data_Structures1-->|Task| Process_Request__MTV_Namespace_2[process request mtv namespace ]:::task - Process_Request__MTV_Namespace_2-->|Task| Process_Request__Baseline_3[process request baseline ]:::task - Process_Request__Baseline_3-->|Task| Process_Request__Maps_4[process request maps ]:::task - Process_Request__Maps_4-->|Task| Verify_Split_Plan_Value_is_Positive5[verify split plan value is positive
When: **mtv migrate mtv split plans bool**]:::task - Verify_Split_Plan_Value_is_Positive5-->|Include task| Generate_Plans__plans_yml_6[generate plans
When: **mtv migrate migration request vms default
mtv migrate migration request folders
default length 0**
include_task: plans yml]:::includeTasks - Generate_Plans__plans_yml_6-->|Include task| Manage_Migrations__migrations_yml_7[manage migrations
When: **mtv migrate mtv start migration bool and not mtv
migrate mtv dry run bool and mtv migrate mtv
plans to migrate default length 0**
include_task: migrations yml]:::includeTasks - Manage_Migrations__migrations_yml_7-->End + Start-->|Task| _migrations___Template_Migrations0[ migrations template migrations]:::task + _migrations___Template_Migrations0-->|Task| _migrations___Create_Migrations1[ migrations create migrations]:::task + _migrations___Create_Migrations1-->|Block Start| _migrations___Wait_for_Migrations2_block_start_0[[ migrations wait for migrations
When: **mtv migrate mtv verify migrations complete bool**]]:::block + _migrations___Wait_for_Migrations2_block_start_0-->|Task| _migrations___Check_on_Migrations0[ migrations check on migrations]:::task + _migrations___Check_on_Migrations0-.->|End of Block| _migrations___Wait_for_Migrations2_block_start_0 + _migrations___Check_on_Migrations0-->End ``` -### Graph for _process_folder.yml +### Graph for _plans.yml ```mermaid flowchart TD @@ -428,21 +425,34 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _process_folder___Initialize_Folder_Variables0[ process folder initialize folder variables]:::task - _process_folder___Initialize_Folder_Variables0-->|Task| _process_folder___Verify_Name_or_ID_or_Path_specified_for_Folder1[ process folder verify name or id or path
specified for folder]:::task - _process_folder___Verify_Name_or_ID_or_Path_specified_for_Folder1-->|Task| _process_folder___Locate_Folder_by_name2[ process folder locate folder by name
When: **name in folder to process and id not in folder
to process and path not in folder to process**]:::task - _process_folder___Locate_Folder_by_name2-->|Task| _process_folder___Locate_Folder_by_id3[ process folder locate folder by id
When: **id in folder to process and name not in folder
to process and path not in folder to process**]:::task - _process_folder___Locate_Folder_by_id3-->|Task| _process_folder___Locate_VM_by_path4[ process folder locate vm by path
When: **path in folder to process and id not in folder
to process and name not in folder to process**]:::task - _process_folder___Locate_VM_by_path4-->|Task| _process_folder___Verify_single_Folder_found5[ process folder verify single folder found]:::task - _process_folder___Verify_single_Folder_found5-->|Task| _process_folder___Set_Folder_to_Process6[ process folder set folder to process]:::task - _process_folder___Set_Folder_to_Process6-->|Block Start| _process_folder___Check_Excludes7_block_start_0[[ process folder check excludes
When: **mtv migrate migration request folders default
selectattr exclude defined
selectattr exclude equalto true
selectattr name defined selectattr name
equalto mtv migrate folder to process name
list length 0 and mtv migrate migration
request folders default selectattr
exclude defined selectattr exclude
equalto true selectattr id defined
selectattr id equalto mtv migrate folder to
process id list length 0 and mtv
migrate migration request folders default
selectattr exclude defined selectattr
exclude equalto true selectattr path
defined selectattr path equalto mtv
migrate folder to process path list length
0**]]:::block - _process_folder___Check_Excludes7_block_start_0-->|Include task| _process_folder___Process_Folder_VM_s__process_vm_yml_0[ process folder process folder vm s
When: **children in mtv migrate folder to process**
include_task: process vm yml]:::includeTasks - _process_folder___Process_Folder_VM_s__process_vm_yml_0-->|Include task| _process_folder___Process_Subfolders__process_folder_yml_1[ process folder process subfolders
When: **children in mtv migrate folder to process**
include_task: process folder yml]:::includeTasks - _process_folder___Process_Subfolders__process_folder_yml_1-.->|End of Block| _process_folder___Check_Excludes7_block_start_0 - _process_folder___Process_Subfolders__process_folder_yml_1-->End + Start-->|Task| _plans___Set_Plan_Base_Name0[ plans set plan base name]:::task + _plans___Set_Plan_Base_Name0-->|Include role| _plans___Retrieve_Configured_providers_mtv_management_1( plans retrieve configured providers
include_role: mtv management):::includeRole + _plans___Retrieve_Configured_providers_mtv_management_1-->|Task| _plans___Verify_Source_Provider2[ plans verify source provider]:::task + _plans___Verify_Source_Provider2-->|Task| _plans___Verify_Destination_Providers3[ plans verify destination providers]:::task + _plans___Verify_Destination_Providers3-->|Task| _plans___Retrieve_StorageMaps4[ plans retrieve storagemaps]:::task + _plans___Retrieve_StorageMaps4-->|Task| _plans___Verify_StorageMap5[ plans verify storagemap]:::task + _plans___Verify_StorageMap5-->|Task| _plans___Retrieve_NetworkMap6[ plans retrieve networkmap]:::task + _plans___Retrieve_NetworkMap6-->|Task| _plans___Verify_NetworkMap7[ plans verify networkmap]:::task + _plans___Verify_NetworkMap7-->|Task| _plans___Process_Plan_Skeleton8[ plans process plan skeleton]:::task + _plans___Process_Plan_Skeleton8-->|Include role| _plans___Get_Inventory_vms_mtv_management_9( plans get inventory vms
include_role: mtv management):::includeRole + _plans___Get_Inventory_vms_mtv_management_9-->|Block Start| _plans___Manage_specified_folders10_block_start_0[[ plans manage specified folders
When: **folders in mtv migrate migration request and
folder to process exclude is not defined or
exclude in folder to process and not folder to
process exclude bool**]]:::block + _plans___Manage_specified_folders10_block_start_0-->|Include role| _plans___Get_Inventory_folders_mtv_management_0( plans get inventory folders
include_role: mtv management):::includeRole + _plans___Get_Inventory_folders_mtv_management_0-->|Include task| _plans___Manage_specified_Folders__process_folder_yml_1[ plans manage specified folders
include_task: process folder yml]:::includeTasks + _plans___Manage_specified_Folders__process_folder_yml_1-.->|End of Block| _plans___Manage_specified_folders10_block_start_0 + _plans___Manage_specified_Folders__process_folder_yml_1-->|Include task| _plans___Manage_specified_VM_s__process_vm_yml_11[ plans manage specified vm s
When: **vms in mtv migrate migration request and vm to
process exclude is not defined or exclude in
vm to process and not vm to process exclude
bool**
include_task: process vm yml]:::includeTasks + _plans___Manage_specified_VM_s__process_vm_yml_11-->|Task| _plans___Flatten_VM_s_to_Migrate12[ plans flatten vm s to migrate]:::task + _plans___Flatten_VM_s_to_Migrate12-->|Task| _plans___Verify_Plan_has_VMs13[ plans verify plan has vms]:::task + _plans___Verify_Plan_has_VMs13-->|Include task| _plans___Process_Plans__process_plans_yml_14[ plans process plans
include_task: process plans yml]:::includeTasks + _plans___Process_Plans__process_plans_yml_14-->|Block Start| _plans___Create_and_Verify_Plans15_block_start_0[[ plans create and verify plans
When: **not mtv migrate mtv dry run bool**]]:::block + _plans___Create_and_Verify_Plans15_block_start_0-->|Task| _plans___Create_Plans0[ plans create plans]:::task + _plans___Create_Plans0-->|Task| _plans___Verify_Plans_Ready1[ plans verify plans ready
When: **mtv migrate mtv verify plans ready bool**]:::task + _plans___Verify_Plans_Ready1-->|Task| _plans___Set_Created_Plans_to_Migrate2[ plans set created plans to migrate
When: **mtv migrate mtv start migration bool**]:::task + _plans___Set_Created_Plans_to_Migrate2-.->|End of Block| _plans___Create_and_Verify_Plans15_block_start_0 + _plans___Set_Created_Plans_to_Migrate2-->|Task| _plans___Display_Plans__Dry_Run_16[ plans display plans dry run
When: **mtv migrate mtv dry run bool**]:::task + _plans___Display_Plans__Dry_Run_16-->End ``` -### Graph for _migrations.yml +### Graph for _process_folder.yml ```mermaid flowchart TD @@ -456,12 +466,18 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _migrations___Template_Migrations0[ migrations template migrations]:::task - _migrations___Template_Migrations0-->|Task| _migrations___Create_Migrations1[ migrations create migrations]:::task - _migrations___Create_Migrations1-->|Block Start| _migrations___Wait_for_Migrations2_block_start_0[[ migrations wait for migrations
When: **mtv migrate mtv verify migrations complete bool**]]:::block - _migrations___Wait_for_Migrations2_block_start_0-->|Task| _migrations___Check_on_Migrations0[ migrations check on migrations]:::task - _migrations___Check_on_Migrations0-.->|End of Block| _migrations___Wait_for_Migrations2_block_start_0 - _migrations___Check_on_Migrations0-->End + Start-->|Task| _process_folder___Initialize_Folder_Variables0[ process folder initialize folder variables]:::task + _process_folder___Initialize_Folder_Variables0-->|Task| _process_folder___Verify_Name_or_ID_or_Path_specified_for_Folder1[ process folder verify name or id or path
specified for folder]:::task + _process_folder___Verify_Name_or_ID_or_Path_specified_for_Folder1-->|Task| _process_folder___Locate_Folder_by_name2[ process folder locate folder by name
When: **name in folder to process and id not in folder
to process and path not in folder to process**]:::task + _process_folder___Locate_Folder_by_name2-->|Task| _process_folder___Locate_Folder_by_id3[ process folder locate folder by id
When: **id in folder to process and name not in folder
to process and path not in folder to process**]:::task + _process_folder___Locate_Folder_by_id3-->|Task| _process_folder___Locate_VM_by_path4[ process folder locate vm by path
When: **path in folder to process and id not in folder
to process and name not in folder to process**]:::task + _process_folder___Locate_VM_by_path4-->|Task| _process_folder___Verify_single_Folder_found5[ process folder verify single folder found]:::task + _process_folder___Verify_single_Folder_found5-->|Task| _process_folder___Set_Folder_to_Process6[ process folder set folder to process]:::task + _process_folder___Set_Folder_to_Process6-->|Block Start| _process_folder___Check_Excludes7_block_start_0[[ process folder check excludes
When: **mtv migrate migration request folders default
selectattr exclude defined
selectattr exclude equalto true
selectattr name defined selectattr name
equalto mtv migrate folder to process name
list length 0 and mtv migrate migration
request folders default selectattr
exclude defined selectattr exclude
equalto true selectattr id defined
selectattr id equalto mtv migrate folder to
process id list length 0 and mtv
migrate migration request folders default
selectattr exclude defined selectattr
exclude equalto true selectattr path
defined selectattr path equalto mtv
migrate folder to process path list length
0**]]:::block + _process_folder___Check_Excludes7_block_start_0-->|Include task| _process_folder___Process_Folder_VM_s__process_vm_yml_0[ process folder process folder vm s
When: **children in mtv migrate folder to process**
include_task: process vm yml]:::includeTasks + _process_folder___Process_Folder_VM_s__process_vm_yml_0-->|Include task| _process_folder___Process_Subfolders__process_folder_yml_1[ process folder process subfolders
When: **children in mtv migrate folder to process**
include_task: process folder yml]:::includeTasks + _process_folder___Process_Subfolders__process_folder_yml_1-.->|End of Block| _process_folder___Check_Excludes7_block_start_0 + _process_folder___Process_Subfolders__process_folder_yml_1-->End ``` ### Graph for _process_plans.yml @@ -510,7 +526,7 @@ classDef rescue stroke:#665352,stroke-width:2px; _process_vm___Clear_VM_Variables8-->End ``` -### Graph for _plans.yml +### Graph for main.yml ```mermaid flowchart TD @@ -524,31 +540,15 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _plans___Set_Plan_Base_Name0[ plans set plan base name]:::task - _plans___Set_Plan_Base_Name0-->|Include role| _plans___Retrieve_Configured_providers_mtv_management_1( plans retrieve configured providers
include_role: mtv management):::includeRole - _plans___Retrieve_Configured_providers_mtv_management_1-->|Task| _plans___Verify_Source_Provider2[ plans verify source provider]:::task - _plans___Verify_Source_Provider2-->|Task| _plans___Verify_Destination_Providers3[ plans verify destination providers]:::task - _plans___Verify_Destination_Providers3-->|Task| _plans___Retrieve_StorageMaps4[ plans retrieve storagemaps]:::task - _plans___Retrieve_StorageMaps4-->|Task| _plans___Verify_StorageMap5[ plans verify storagemap]:::task - _plans___Verify_StorageMap5-->|Task| _plans___Retrieve_NetworkMap6[ plans retrieve networkmap]:::task - _plans___Retrieve_NetworkMap6-->|Task| _plans___Verify_NetworkMap7[ plans verify networkmap]:::task - _plans___Verify_NetworkMap7-->|Task| _plans___Process_Plan_Skeleton8[ plans process plan skeleton]:::task - _plans___Process_Plan_Skeleton8-->|Include role| _plans___Get_Inventory_vms_mtv_management_9( plans get inventory vms
include_role: mtv management):::includeRole - _plans___Get_Inventory_vms_mtv_management_9-->|Block Start| _plans___Manage_specified_folders10_block_start_0[[ plans manage specified folders
When: **folders in mtv migrate migration request and
folder to process exclude is not defined or
exclude in folder to process and not folder to
process exclude bool**]]:::block - _plans___Manage_specified_folders10_block_start_0-->|Include role| _plans___Get_Inventory_folders_mtv_management_0( plans get inventory folders
include_role: mtv management):::includeRole - _plans___Get_Inventory_folders_mtv_management_0-->|Include task| _plans___Manage_specified_Folders__process_folder_yml_1[ plans manage specified folders
include_task: process folder yml]:::includeTasks - _plans___Manage_specified_Folders__process_folder_yml_1-.->|End of Block| _plans___Manage_specified_folders10_block_start_0 - _plans___Manage_specified_Folders__process_folder_yml_1-->|Include task| _plans___Manage_specified_VM_s__process_vm_yml_11[ plans manage specified vm s
When: **vms in mtv migrate migration request and vm to
process exclude is not defined or exclude in
vm to process and not vm to process exclude
bool**
include_task: process vm yml]:::includeTasks - _plans___Manage_specified_VM_s__process_vm_yml_11-->|Task| _plans___Flatten_VM_s_to_Migrate12[ plans flatten vm s to migrate]:::task - _plans___Flatten_VM_s_to_Migrate12-->|Task| _plans___Verify_Plan_has_VMs13[ plans verify plan has vms]:::task - _plans___Verify_Plan_has_VMs13-->|Include task| _plans___Process_Plans__process_plans_yml_14[ plans process plans
include_task: process plans yml]:::includeTasks - _plans___Process_Plans__process_plans_yml_14-->|Block Start| _plans___Create_and_Verify_Plans15_block_start_0[[ plans create and verify plans
When: **not mtv migrate mtv dry run bool**]]:::block - _plans___Create_and_Verify_Plans15_block_start_0-->|Task| _plans___Create_Plans0[ plans create plans]:::task - _plans___Create_Plans0-->|Task| _plans___Verify_Plans_Ready1[ plans verify plans ready
When: **mtv migrate mtv verify plans ready bool**]:::task - _plans___Verify_Plans_Ready1-->|Task| _plans___Set_Created_Plans_to_Migrate2[ plans set created plans to migrate
When: **mtv migrate mtv start migration bool**]:::task - _plans___Set_Created_Plans_to_Migrate2-.->|End of Block| _plans___Create_and_Verify_Plans15_block_start_0 - _plans___Set_Created_Plans_to_Migrate2-->|Task| _plans___Display_Plans__Dry_Run_16[ plans display plans dry run
When: **mtv migrate mtv dry run bool**]:::task - _plans___Display_Plans__Dry_Run_16-->End + Start-->|Task| Verify_Request_Provided0[verify request provided]:::task + Verify_Request_Provided0-->|Task| Initialize_Data_Structures1[initialize data structures]:::task + Initialize_Data_Structures1-->|Task| Process_Request__MTV_Namespace_2[process request mtv namespace ]:::task + Process_Request__MTV_Namespace_2-->|Task| Process_Request__Baseline_3[process request baseline ]:::task + Process_Request__Baseline_3-->|Task| Process_Request__Maps_4[process request maps ]:::task + Process_Request__Maps_4-->|Task| Verify_Split_Plan_Value_is_Positive5[verify split plan value is positive
When: **mtv migrate mtv split plans bool**]:::task + Verify_Split_Plan_Value_is_Positive5-->|Include task| Generate_Plans__plans_yml_6[generate plans
When: **mtv migrate migration request vms default
mtv migrate migration request folders
default length 0**
include_task: plans yml]:::includeTasks + Generate_Plans__plans_yml_6-->|Include task| Manage_Migrations__migrations_yml_7[manage migrations
When: **mtv migrate mtv start migration bool and not mtv
migrate mtv dry run bool and mtv migrate mtv
plans to migrate default length 0**
include_task: migrations yml]:::includeTasks + Manage_Migrations__migrations_yml_7-->End ``` ## Playbook diff --git a/roles/network_mgmt/README.md b/roles/network_mgmt/README.md index e0c434e..63a0e15 100644 --- a/roles/network_mgmt/README.md +++ b/roles/network_mgmt/README.md @@ -27,74 +27,74 @@ Description: Management of network related components. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`network_mgmt_openshift_node_network_ports`](defaults/main.yml#L5) | list | `[]` | None | True | OpenShift Node Network Ports | -| [`network_mgmt_port_is_existing_bond`](defaults/main.yml#L10) | bool | `False` | None | True | Define Bond | -| [`network_mgmt_vcenter_dvswitch`](defaults/main.yml#L16) | str | `` | None | True | vCenter DVSwitch | -| [`network_mgmt_vcenter_datacenter`](defaults/main.yml#L21) | str | `` | None | True | vCenter Data Center | -| [`network_mgmt_openshift_network_bridge_mode`](defaults/main.yml#L26) | str | `linux-bridge` | None | True | OpenShift Network Bridge Mode | -| [`network_mgmt_use_default_ovn_bridge`](defaults/main.yml#L31) | bool | `False` | None | True | OVN Bridge | +| [`network_mgmt_manual_bond_name`](defaults/main.yml#L90) | str | `` | None | True | Bond Name in Manual Mode | +| [`network_mgmt_manual_bridge_name`](defaults/main.yml#L95) | str | `vm-bridge` | None | True | Bridge Name in Manual Mode | +| [`network_mgmt_manual_localnet_name`](defaults/main.yml#L100) | str | `` | None | True | Local Network Name in Manual Mode | +| [`network_mgmt_manual_nad_list`](defaults/main.yml#L105) | list | `[]` | None | True | NAD List in Manual Mode | +| [`network_mgmt_nad_auto_bridge_name`](defaults/main.yml#L78) | str | `` | None | None | None | +| [`network_mgmt_nad_name_prefix`](defaults/main.yml#L85) | str | `net-` | None | True | NAD Name Prefix | +| [`network_mgmt_nad_namespace`](defaults/main.yml#L73) | str | `default` | None | True | NAD Namespace | +| [`network_mgmt_nncp_max_unavailable`](defaults/main.yml#L54) | int | `3` | None | True | NNCP Max Unavailability | +| [`network_mgmt_nncp_name_prefix`](defaults/main.yml#L68) | str | `vs-` | None | True | NNCP Name Prefix | +| [`network_mgmt_nncp_nodeselector`](defaults/main.yml#L62) | dict | `{}` | None | True | NNCP NodeSelector | +| [`network_mgmt_nncp_nodeselector.node-role.kubernetes.io/worker`](defaults/main.yml#L63) | str | `` | None | None | None | | [`network_mgmt_openshift_network_bond_mode`](defaults/main.yml#L40) | str | `802.3ad` | None | True | OpenShift Network Bond Mode | +| [`network_mgmt_openshift_network_bridge_mode`](defaults/main.yml#L26) | str | `linux-bridge` | None | True | OpenShift Network Bridge Mode | | [`network_mgmt_openshift_network_supported_bond_modes`](defaults/main.yml#L46) | list | `[]` | None | True | Supported Bond Modes | | [`network_mgmt_openshift_network_supported_bond_modes.0`](defaults/main.yml#L47) | str | `802.3ad` | None | None | None | | [`network_mgmt_openshift_network_supported_bond_modes.1`](defaults/main.yml#L48) | str | `active-backup` | None | None | None | | [`network_mgmt_openshift_network_supported_bond_modes.2`](defaults/main.yml#L49) | str | `balance-xor` | None | None | None | -| [`network_mgmt_nncp_max_unavailable`](defaults/main.yml#L54) | int | `3` | None | True | NNCP Max Unavailability | -| [`network_mgmt_nncp_nodeselector`](defaults/main.yml#L62) | dict | `{}` | None | True | NNCP NodeSelector | -| [`network_mgmt_nncp_nodeselector.node-role.kubernetes.io/worker`](defaults/main.yml#L63) | str | `` | None | None | None | -| [`network_mgmt_nncp_name_prefix`](defaults/main.yml#L68) | str | `vs-` | None | True | NNCP Name Prefix | -| [`network_mgmt_nad_namespace`](defaults/main.yml#L73) | str | `default` | None | True | NAD Namespace | -| [`network_mgmt_nad_auto_bridge_name`](defaults/main.yml#L78) | str | `` | None | None | None | -| [`network_mgmt_nad_name_prefix`](defaults/main.yml#L85) | str | `net-` | None | True | NAD Name Prefix | -| [`network_mgmt_manual_bond_name`](defaults/main.yml#L90) | str | `` | None | True | Bond Name in Manual Mode | -| [`network_mgmt_manual_bridge_name`](defaults/main.yml#L95) | str | `vm-bridge` | None | True | Bridge Name in Manual Mode | -| [`network_mgmt_manual_localnet_name`](defaults/main.yml#L100) | str | `` | None | True | Local Network Name in Manual Mode | -| [`network_mgmt_manual_nad_list`](defaults/main.yml#L105) | list | `[]` | None | True | NAD List in Manual Mode | +| [`network_mgmt_openshift_node_network_ports`](defaults/main.yml#L5) | list | `[]` | None | True | OpenShift Node Network Ports | +| [`network_mgmt_port_is_existing_bond`](defaults/main.yml#L10) | bool | `False` | None | True | Define Bond | +| [`network_mgmt_use_default_ovn_bridge`](defaults/main.yml#L31) | bool | `False` | None | True | OVN Bridge | +| [`network_mgmt_vcenter_datacenter`](defaults/main.yml#L21) | str | `` | None | True | vCenter Data Center | +| [`network_mgmt_vcenter_dvswitch`](defaults/main.yml#L16) | str | `` | None | True | vCenter DVSwitch | 🖇️ Full descriptions for vars in defaults/main.yml
-`network_mgmt_openshift_node_network_ports`: List of Node Network Ports +`network_mgmt_manual_bond_name`: Bond Name in Manual Mode
-`network_mgmt_port_is_existing_bond`: Boolean value to check if a bond is defined +`network_mgmt_manual_bridge_name`: Bridge Name in Manual Mode
-`network_mgmt_vcenter_dvswitch`: vCenter Distributed Switch +`network_mgmt_manual_localnet_name`: Local Network Name in Manual Mode
-`network_mgmt_vcenter_datacenter`: vCenter Data Center name +`network_mgmt_manual_nad_list`: NAD List in Manual Mode
-`network_mgmt_openshift_network_bridge_mode`: OpenShift Network Bridge Mode +`network_mgmt_nad_auto_bridge_name`: None
-`network_mgmt_use_default_ovn_bridge`: Boolean value defines usage of OVN bridge +`network_mgmt_nad_name_prefix`: NAD Name Prefix
-`network_mgmt_openshift_network_bond_mode`: OpenShift Network Bond Mode +`network_mgmt_nad_namespace`: NAD Namespace
-`network_mgmt_openshift_network_supported_bond_modes`: List of supported bond modes +`network_mgmt_nncp_max_unavailable`: Maximum number of times NNCP can be unavailable
-`network_mgmt_openshift_network_supported_bond_modes.0`: None +`network_mgmt_nncp_name_prefix`: NNCP Name Prefix
-`network_mgmt_openshift_network_supported_bond_modes.1`: None +`network_mgmt_nncp_nodeselector`: NNCP NodeSelector on the OpenShift cluster
-`network_mgmt_openshift_network_supported_bond_modes.2`: None +`network_mgmt_nncp_nodeselector.node-role.kubernetes.io/worker`: None
-`network_mgmt_nncp_max_unavailable`: Maximum number of times NNCP can be unavailable +`network_mgmt_openshift_network_bond_mode`: OpenShift Network Bond Mode
-`network_mgmt_nncp_nodeselector`: NNCP NodeSelector on the OpenShift cluster +`network_mgmt_openshift_network_bridge_mode`: OpenShift Network Bridge Mode
-`network_mgmt_nncp_nodeselector.node-role.kubernetes.io/worker`: None +`network_mgmt_openshift_network_supported_bond_modes`: List of supported bond modes
-`network_mgmt_nncp_name_prefix`: NNCP Name Prefix +`network_mgmt_openshift_network_supported_bond_modes.0`: None
-`network_mgmt_nad_namespace`: NAD Namespace +`network_mgmt_openshift_network_supported_bond_modes.1`: None
-`network_mgmt_nad_auto_bridge_name`: None +`network_mgmt_openshift_network_supported_bond_modes.2`: None
-`network_mgmt_nad_name_prefix`: NAD Name Prefix +`network_mgmt_openshift_node_network_ports`: List of Node Network Ports
-`network_mgmt_manual_bond_name`: Bond Name in Manual Mode +`network_mgmt_port_is_existing_bond`: Boolean value to check if a bond is defined
-`network_mgmt_manual_bridge_name`: Bridge Name in Manual Mode +`network_mgmt_use_default_ovn_bridge`: Boolean value defines usage of OVN bridge
-`network_mgmt_manual_localnet_name`: Local Network Name in Manual Mode +`network_mgmt_vcenter_datacenter`: vCenter Data Center name
-`network_mgmt_manual_nad_list`: NAD List in Manual Mode +`network_mgmt_vcenter_dvswitch`: vCenter Distributed Switch

@@ -165,7 +165,7 @@ Description: Management of network related components. ## Task Flow Graphs -### Graph for main.yml +### Graph for automatic.yml ```mermaid flowchart TD @@ -179,12 +179,14 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Include task| Use_automatic_mode_automatic_yml_0[use automatic mode
When: **network mgmt manual nad list default
length 0**
include_task: automatic yml]:::includeTasks - Use_automatic_mode_automatic_yml_0-->|Include task| Use_manual_mode_manual_yml_1[use manual mode
When: **network mgmt manual nad list default is
iterable and network mgmt manual nad list
length 0**
include_task: manual yml]:::includeTasks - Use_manual_mode_manual_yml_1-->End + Start-->|Include task| automatic___Include_tasks_from_gather_networks_yml_gather_networks_yml_0[automatic include tasks from gather networks yml
include_task: gather networks yml]:::includeTasks + automatic___Include_tasks_from_gather_networks_yml_gather_networks_yml_0-->|Task| automatic___Set_the_switches_and_portgroups_to_migrate1[automatic set the switches and portgroups to
migrate]:::task + automatic___Set_the_switches_and_portgroups_to_migrate1-->|Include task| automatic___Include_tasks_from_automatic_nncp_yml_automatic_nncp_yml_2[automatic include tasks from automatic nncp yml
When: **network mgmt openshift node network ports
default is iterable and network mgmt
openshift node network ports default is
not string and network mgmt openshift node network
ports default length 0 and network mgmt
vcenter dvswitch default true trim
length 0 and network mgmt vcenter datacenter
default true trim length 0**
include_task: automatic nncp yml]:::includeTasks + automatic___Include_tasks_from_automatic_nncp_yml_automatic_nncp_yml_2-->|Include task| automatic___Include_tasks_from_automatic_nad_yml_automatic_nad_yml_3[automatic include tasks from automatic nad yml
When: **network mgmt vcenter dvswitch default true
trim length 0 and network mgmt vcenter
datacenter default true trim length 0
and network mgmt openshift node network ports
default is iterable and network mgmt
openshift node network ports default is
not string and network mgmt openshift node
network ports default length 0 or
network mgmt nad auto bridge name is defined and
network mgmt nad auto bridge name length 0**
include_task: automatic nad yml]:::includeTasks + automatic___Include_tasks_from_automatic_nad_yml_automatic_nad_yml_3-->End ``` -### Graph for automatic_nncp.yml +### Graph for automatic_nad.yml ```mermaid flowchart TD @@ -198,12 +200,11 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| automatic_nncp___Validate_supported_bonding_mode0[automatic nncp validate supported bonding mode
When: **not network mgmt override openshift supported
bond mode default false**]:::task - automatic_nncp___Validate_supported_bonding_mode0-->|Include task| automatic_nncp___Include_tasks_from_create_nncp_yml_create_nncp_yml_1[automatic nncp include tasks from create nncp
yml
include_task: create nncp yml]:::includeTasks - automatic_nncp___Include_tasks_from_create_nncp_yml_create_nncp_yml_1-->End + Start-->|Include task| automatic_nad___Include_tasks_from_create_nad_yml_create_nad_yml_0[automatic nad include tasks from create nad yml
include_task: create nad yml]:::includeTasks + automatic_nad___Include_tasks_from_create_nad_yml_create_nad_yml_0-->End ``` -### Graph for create_nncp.yml +### Graph for automatic_nncp.yml ```mermaid flowchart TD @@ -217,12 +218,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| create_nncp___DEBUG_nncp_Template0[create nncp debug nncp template
When: **vswitch name network mgmt vcenter dvswitch**]:::task - create_nncp___DEBUG_nncp_Template0-->|Task| create_nncp___Apply_NodeNetworkConfigurationPolicy1[create nncp apply nodenetworkconfigurationpolicy
When: **vswitch name network mgmt vcenter dvswitch**]:::task - create_nncp___Apply_NodeNetworkConfigurationPolicy1-->End + Start-->|Task| automatic_nncp___Validate_supported_bonding_mode0[automatic nncp validate supported bonding mode
When: **not network mgmt override openshift supported
bond mode default false**]:::task + automatic_nncp___Validate_supported_bonding_mode0-->|Include task| automatic_nncp___Include_tasks_from_create_nncp_yml_create_nncp_yml_1[automatic nncp include tasks from create nncp
yml
include_task: create nncp yml]:::includeTasks + automatic_nncp___Include_tasks_from_create_nncp_yml_create_nncp_yml_1-->End ``` -### Graph for manual.yml +### Graph for create_nad.yml ```mermaid flowchart TD @@ -236,18 +237,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| manual___Validate_network_mgmt_manual_nad_list0[manual validate network mgmt manual nad list]:::task - manual___Validate_network_mgmt_manual_nad_list0-->|Task| manual___Validate_supported_bonding_mode_if_also_creating_bond1[manual validate supported bonding mode if also
creating bond
When: **not network mgmt override openshift supported
bond mode default false and network mgmt
openshift node network ports default
length 0**]:::task - manual___Validate_supported_bonding_mode_if_also_creating_bond1-->|Task| manual___Validate_ovs_bridge_mode2[manual validate ovs bridge mode
When: **network mgmt openshift network bridge mode ovs
bridge**]:::task - manual___Validate_ovs_bridge_mode2-->|Task| manual___Validate_linux_bridge3[manual validate linux bridge]:::task - manual___Validate_linux_bridge3-->|Task| manual___Apply_NodeNetworkConfigurationPolicy4[manual apply nodenetworkconfigurationpolicy
When: **network mgmt manual bridge name default
length 0 and network mgmt manual bond name
default length 0 and network mgmt
openshift network bridge mode linux bridge**]:::task - manual___Apply_NodeNetworkConfigurationPolicy4-->|Task| manual___Validate_access_port5[manual validate access port
When: **trunk not in nad or not nad trunk**]:::task - manual___Validate_access_port5-->|Task| manual___Validate_trunk_ports6[manual validate trunk ports
When: **trunk in nad and nad trunk**]:::task - manual___Validate_trunk_ports6-->|Task| manual___Apply_NetworkAttachmentDefinitions7[manual apply networkattachmentdefinitions]:::task - manual___Apply_NetworkAttachmentDefinitions7-->End + Start-->|Task| create_nad____DEBUG_nad_Template_0[create nad debug nad template
When: **portgroup uplinks 0 and not portgroup vlan
trunk and network mgmt openshift network bridge
mode ovs bridge and portgroup switch
network mgmt vcenter dvswitch**]:::task + create_nad____DEBUG_nad_Template_0-->|Task| create_nad___Apply_NetworkAttachmentDefinitions1[create nad apply networkattachmentdefinitions
When: **portgroup uplinks 0 and not portgroup vlan
trunk and network mgmt openshift network bridge
mode ovs bridge and portgroup switch
network mgmt vcenter dvswitch**]:::task + create_nad___Apply_NetworkAttachmentDefinitions1-->End ``` -### Graph for automatic_nad.yml +### Graph for create_nncp.yml ```mermaid flowchart TD @@ -261,11 +256,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Include task| automatic_nad___Include_tasks_from_create_nad_yml_create_nad_yml_0[automatic nad include tasks from create nad yml
include_task: create nad yml]:::includeTasks - automatic_nad___Include_tasks_from_create_nad_yml_create_nad_yml_0-->End + Start-->|Task| create_nncp___DEBUG_nncp_Template0[create nncp debug nncp template
When: **vswitch name network mgmt vcenter dvswitch**]:::task + create_nncp___DEBUG_nncp_Template0-->|Task| create_nncp___Apply_NodeNetworkConfigurationPolicy1[create nncp apply nodenetworkconfigurationpolicy
When: **vswitch name network mgmt vcenter dvswitch**]:::task + create_nncp___Apply_NodeNetworkConfigurationPolicy1-->End ``` -### Graph for create_nad.yml +### Graph for gather_networks.yml ```mermaid flowchart TD @@ -279,12 +275,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| create_nad____DEBUG_nad_Template_0[create nad debug nad template
When: **portgroup uplinks 0 and not portgroup vlan
trunk and network mgmt openshift network bridge
mode ovs bridge and portgroup switch
network mgmt vcenter dvswitch**]:::task - create_nad____DEBUG_nad_Template_0-->|Task| create_nad___Apply_NetworkAttachmentDefinitions1[create nad apply networkattachmentdefinitions
When: **portgroup uplinks 0 and not portgroup vlan
trunk and network mgmt openshift network bridge
mode ovs bridge and portgroup switch
network mgmt vcenter dvswitch**]:::task - create_nad___Apply_NetworkAttachmentDefinitions1-->End + Start-->|Task| gather_networks___Gather_all_registered_dvswitch0[gather networks gather all registered dvswitch]:::task + gather_networks___Gather_all_registered_dvswitch0-->|Task| gather_networks___Get_info_for_all_dVSwitch_Port_Groups1[gather networks get info for all dvswitch port
groups]:::task + gather_networks___Get_info_for_all_dVSwitch_Port_Groups1-->End ``` -### Graph for automatic.yml +### Graph for main.yml ```mermaid flowchart TD @@ -298,14 +294,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Include task| automatic___Include_tasks_from_gather_networks_yml_gather_networks_yml_0[automatic include tasks from gather networks yml
include_task: gather networks yml]:::includeTasks - automatic___Include_tasks_from_gather_networks_yml_gather_networks_yml_0-->|Task| automatic___Set_the_switches_and_portgroups_to_migrate1[automatic set the switches and portgroups to
migrate]:::task - automatic___Set_the_switches_and_portgroups_to_migrate1-->|Include task| automatic___Include_tasks_from_automatic_nncp_yml_automatic_nncp_yml_2[automatic include tasks from automatic nncp yml
When: **network mgmt openshift node network ports
default is iterable and network mgmt
openshift node network ports default is
not string and network mgmt openshift node network
ports default length 0 and network mgmt
vcenter dvswitch default true trim
length 0 and network mgmt vcenter datacenter
default true trim length 0**
include_task: automatic nncp yml]:::includeTasks - automatic___Include_tasks_from_automatic_nncp_yml_automatic_nncp_yml_2-->|Include task| automatic___Include_tasks_from_automatic_nad_yml_automatic_nad_yml_3[automatic include tasks from automatic nad yml
When: **network mgmt vcenter dvswitch default true
trim length 0 and network mgmt vcenter
datacenter default true trim length 0
and network mgmt openshift node network ports
default is iterable and network mgmt
openshift node network ports default is
not string and network mgmt openshift node
network ports default length 0 or
network mgmt nad auto bridge name is defined and
network mgmt nad auto bridge name length 0**
include_task: automatic nad yml]:::includeTasks - automatic___Include_tasks_from_automatic_nad_yml_automatic_nad_yml_3-->End + Start-->|Include task| Use_automatic_mode_automatic_yml_0[use automatic mode
When: **network mgmt manual nad list default
length 0**
include_task: automatic yml]:::includeTasks + Use_automatic_mode_automatic_yml_0-->|Include task| Use_manual_mode_manual_yml_1[use manual mode
When: **network mgmt manual nad list default is
iterable and network mgmt manual nad list
length 0**
include_task: manual yml]:::includeTasks + Use_manual_mode_manual_yml_1-->End ``` -### Graph for gather_networks.yml +### Graph for manual.yml ```mermaid flowchart TD @@ -319,9 +313,15 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| gather_networks___Gather_all_registered_dvswitch0[gather networks gather all registered dvswitch]:::task - gather_networks___Gather_all_registered_dvswitch0-->|Task| gather_networks___Get_info_for_all_dVSwitch_Port_Groups1[gather networks get info for all dvswitch port
groups]:::task - gather_networks___Get_info_for_all_dVSwitch_Port_Groups1-->End + Start-->|Task| manual___Validate_network_mgmt_manual_nad_list0[manual validate network mgmt manual nad list]:::task + manual___Validate_network_mgmt_manual_nad_list0-->|Task| manual___Validate_supported_bonding_mode_if_also_creating_bond1[manual validate supported bonding mode if also
creating bond
When: **not network mgmt override openshift supported
bond mode default false and network mgmt
openshift node network ports default
length 0**]:::task + manual___Validate_supported_bonding_mode_if_also_creating_bond1-->|Task| manual___Validate_ovs_bridge_mode2[manual validate ovs bridge mode
When: **network mgmt openshift network bridge mode ovs
bridge**]:::task + manual___Validate_ovs_bridge_mode2-->|Task| manual___Validate_linux_bridge3[manual validate linux bridge]:::task + manual___Validate_linux_bridge3-->|Task| manual___Apply_NodeNetworkConfigurationPolicy4[manual apply nodenetworkconfigurationpolicy
When: **network mgmt manual bridge name default
length 0 and network mgmt manual bond name
default length 0 and network mgmt
openshift network bridge mode linux bridge**]:::task + manual___Apply_NodeNetworkConfigurationPolicy4-->|Task| manual___Validate_access_port5[manual validate access port
When: **trunk not in nad or not nad trunk**]:::task + manual___Validate_access_port5-->|Task| manual___Validate_trunk_ports6[manual validate trunk ports
When: **trunk in nad and nad trunk**]:::task + manual___Validate_trunk_ports6-->|Task| manual___Apply_NetworkAttachmentDefinitions7[manual apply networkattachmentdefinitions]:::task + manual___Apply_NetworkAttachmentDefinitions7-->End ``` ## Playbook diff --git a/roles/operator_management/README.md b/roles/operator_management/README.md index 089306a..89a682e 100644 --- a/roles/operator_management/README.md +++ b/roles/operator_management/README.md @@ -28,59 +28,34 @@ Description: Management of OpenShift Operators. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| +| [`operator_management_catalog_sources`](defaults/main.yml#L210) | list | `[]` | None | True | Operator Management of Red Hat Marketplace | +| [`operator_management_catalog_sources.0`](defaults/main.yml#L211) | dict | `{}` | None | None | None | +| [`operator_management_catalog_sources.0.address`](defaults/main.yml#L220) | str | `` | None | None | None | +| [`operator_management_catalog_sources.0.display_name`](defaults/main.yml#L213) | str | `Mirror to Red Hat Marketplace` | None | None | None | +| [`operator_management_catalog_sources.0.grpc_pod_config`](defaults/main.yml#L221) | str | `` | None | None | None | +| [`operator_management_catalog_sources.0.icon`](defaults/main.yml#L216) | dict | `{}` | None | None | None | +| [`operator_management_catalog_sources.0.icon.base64data`](defaults/main.yml#L217) | str | `` | None | None | None | +| [`operator_management_catalog_sources.0.icon.mediatype`](defaults/main.yml#L218) | str | `` | None | None | None | +| [`operator_management_catalog_sources.0.image_path`](defaults/main.yml#L214) | str | `internal-registry.example.com/operator:v1` | None | None | None | +| [`operator_management_catalog_sources.0.name`](defaults/main.yml#L211) | str | `redhat-marketplace2` | None | None | None | +| [`operator_management_catalog_sources.0.priority`](defaults/main.yml#L215) | str | `-300` | None | None | None | +| [`operator_management_catalog_sources.0.publisher`](defaults/main.yml#L219) | str | `redhat` | None | None | None | +| [`operator_management_catalog_sources.0.registry_poll_interval`](defaults/main.yml#L239) | str | `10m` | None | None | None | +| [`operator_management_catalog_sources.0.source_type`](defaults/main.yml#L212) | str | `grpc` | None | None | None | | [`operator_management_catalogsources`](defaults/main.yml#L7) | dict | `{}` | None | True | CatalogSources | -| [`operator_management_default_operators`](defaults/main.yml#L27) | list | `[]` | None | True | Default Operators for OpenShift Virtualization | -| [`operator_management_default_operators.0`](defaults/main.yml#L28) | str | `mtv` | None | None | None | -| [`operator_management_default_operators.1`](defaults/main.yml#L29) | str | `cnv` | None | None | None | -| [`operator_management_default_operators.2`](defaults/main.yml#L30) | str | `acm` | None | None | None | -| [`operator_management_default_operators.3`](defaults/main.yml#L31) | str | `oadp` | None | None | None | -| [`operator_management_default_operators.4`](defaults/main.yml#L32) | str | `far` | None | None | None | -| [`operator_management_default_operators.5`](defaults/main.yml#L33) | str | `nmstate` | None | None | None | -| [`operator_management_default_operators.6`](defaults/main.yml#L34) | str | `nho` | None | None | None | -| [`operator_management_default_operators.7`](defaults/main.yml#L35) | str | `gitops` | None | None | None | -| [`operator_management_default_mtv`](defaults/main.yml#L40) | dict | `{}` | None | True | Operator Management of MTV | -| [`operator_management_default_mtv.namespace`](defaults/main.yml#L41) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.namespace.metadata`](defaults/main.yml#L42) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.namespace.metadata.name`](defaults/main.yml#L43) | str | `openshift-mtv` | None | None | None | -| [`operator_management_default_mtv.operatorgroup`](defaults/main.yml#L44) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.operatorgroup.metadata`](defaults/main.yml#L45) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.operatorgroup.metadata.name`](defaults/main.yml#L46) | str | `migration` | None | None | None | -| [`operator_management_default_mtv.operatorgroup.spec`](defaults/main.yml#L47) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L48) | list | `[]` | None | None | None | -| [`operator_management_default_mtv.operatorgroup.spec.targetNamespaces.0`](defaults/main.yml#L48) | str | `openshift-mtv` | None | None | None | -| [`operator_management_default_mtv.subscription`](defaults/main.yml#L50) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.subscription.spec`](defaults/main.yml#L51) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.subscription.spec.name`](defaults/main.yml#L52) | str | `mtv-operator` | None | None | None | -| [`operator_management_default_mtv.extra_resources`](defaults/main.yml#L53) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller`](defaults/main.yml#L54) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller.apiVersion`](defaults/main.yml#L55) | str | `forklift.konveyor.io/v1beta1` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller.kind`](defaults/main.yml#L56) | str | `ForkliftController` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata`](defaults/main.yml#L57) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.name`](defaults/main.yml#L58) | str | `forklift-controller` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.namespace`](defaults/main.yml#L59) | str | `openshift-mtv` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller.spec`](defaults/main.yml#L60) | dict | `{}` | None | None | None | -| [`operator_management_default_mtv.extra_resources.forkliftcontroller.spec.olm_managed`](defaults/main.yml#L61) | bool | `True` | None | None | None | -| [`operator_management_default_cnv`](defaults/main.yml#L66) | dict | `{}` | None | True | Operator Management of OpenShift Virtualization | -| [`operator_management_default_cnv.namespace`](defaults/main.yml#L67) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.namespace.metadata`](defaults/main.yml#L68) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.namespace.metadata.name`](defaults/main.yml#L69) | str | `openshift-cnv` | None | None | None | -| [`operator_management_default_cnv.operatorgroup`](defaults/main.yml#L70) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.operatorgroup.metadata`](defaults/main.yml#L71) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.operatorgroup.metadata.name`](defaults/main.yml#L72) | str | `kubevirt-hyperconverged-group` | None | None | None | -| [`operator_management_default_cnv.operatorgroup.spec`](defaults/main.yml#L73) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L74) | list | `[]` | None | None | None | -| [`operator_management_default_cnv.operatorgroup.spec.targetNamespaces.0`](defaults/main.yml#L74) | str | `openshift-cnv` | None | None | None | -| [`operator_management_default_cnv.subscription`](defaults/main.yml#L76) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.subscription.metadata`](defaults/main.yml#L77) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.subscription.metadata.name`](defaults/main.yml#L78) | str | `kubevirt-hyperconverged` | None | None | None | -| [`operator_management_default_cnv.extra_resources`](defaults/main.yml#L79) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.extra_resources.hyperconverged`](defaults/main.yml#L80) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.extra_resources.hyperconverged.apiVersion`](defaults/main.yml#L81) | str | `hco.kubevirt.io/v1beta1` | None | None | None | -| [`operator_management_default_cnv.extra_resources.hyperconverged.kind`](defaults/main.yml#L82) | str | `HyperConverged` | None | None | None | -| [`operator_management_default_cnv.extra_resources.hyperconverged.metadata`](defaults/main.yml#L83) | dict | `{}` | None | None | None | -| [`operator_management_default_cnv.extra_resources.hyperconverged.metadata.name`](defaults/main.yml#L84) | str | `kubevirt-hyperconverged` | None | None | None | -| [`operator_management_default_cnv.extra_resources.hyperconverged.metadata.namespace`](defaults/main.yml#L85) | str | `openshift-cnv` | None | None | None | | [`operator_management_default_acm`](defaults/main.yml#L89) | dict | `{}` | None | True | Operator Management of ACM | +| [`operator_management_default_acm.extra_resources`](defaults/main.yml#L166) | dict | `{}` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub`](defaults/main.yml#L166) | dict | `{}` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.apiVersion`](defaults/main.yml#L168) | str | `operator.open-cluster-management.io/v1` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.kind`](defaults/main.yml#L169) | str | `MultiClusterHub` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata`](defaults/main.yml#L170) | dict | `{}` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers`](defaults/main.yml#L177) | list | `[]` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers.0`](defaults/main.yml#L177) | str | `finalizer.operator.open-cluster-management.io` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.name`](defaults/main.yml#L171) | str | `multiclusterhub` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.namespace`](defaults/main.yml#L177) | str | `open-cluster-management` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.spec`](defaults/main.yml#L186) | dict | `{}` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.spec.availabilityConfig`](defaults/main.yml#L186) | str | `High` | None | None | None | +| [`operator_management_default_acm.extra_resources.multiclusterhub.spec.enableClusterBackup`](defaults/main.yml#L186) | bool | `False` | None | None | None | | [`operator_management_default_acm.namespace`](defaults/main.yml#L90) | dict | `{}` | None | None | None | | [`operator_management_default_acm.namespace.metadata`](defaults/main.yml#L91) | dict | `{}` | None | None | None | | [`operator_management_default_acm.namespace.metadata.name`](defaults/main.yml#L92) | str | `open-cluster-management` | None | None | None | @@ -95,18 +70,93 @@ Description: Management of OpenShift Operators. | [`operator_management_default_acm.subscription.metadata.name`](defaults/main.yml#L132) | str | `acm-operator` | None | None | None | | [`operator_management_default_acm.subscription.spec`](defaults/main.yml#L133) | dict | `{}` | None | None | None | | [`operator_management_default_acm.subscription.spec.name`](defaults/main.yml#L134) | str | `advanced-cluster-management` | None | None | None | -| [`operator_management_default_acm.extra_resources`](defaults/main.yml#L166) | dict | `{}` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub`](defaults/main.yml#L166) | dict | `{}` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.apiVersion`](defaults/main.yml#L168) | str | `operator.open-cluster-management.io/v1` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.kind`](defaults/main.yml#L169) | str | `MultiClusterHub` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata`](defaults/main.yml#L170) | dict | `{}` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.name`](defaults/main.yml#L171) | str | `multiclusterhub` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.namespace`](defaults/main.yml#L177) | str | `open-cluster-management` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers`](defaults/main.yml#L177) | list | `[]` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers.0`](defaults/main.yml#L177) | str | `finalizer.operator.open-cluster-management.io` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.spec`](defaults/main.yml#L186) | dict | `{}` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.spec.availabilityConfig`](defaults/main.yml#L186) | str | `High` | None | None | None | -| [`operator_management_default_acm.extra_resources.multiclusterhub.spec.enableClusterBackup`](defaults/main.yml#L186) | bool | `False` | None | None | None | +| [`operator_management_default_cnv`](defaults/main.yml#L66) | dict | `{}` | None | True | Operator Management of OpenShift Virtualization | +| [`operator_management_default_cnv.extra_resources`](defaults/main.yml#L79) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.extra_resources.hyperconverged`](defaults/main.yml#L80) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.extra_resources.hyperconverged.apiVersion`](defaults/main.yml#L81) | str | `hco.kubevirt.io/v1beta1` | None | None | None | +| [`operator_management_default_cnv.extra_resources.hyperconverged.kind`](defaults/main.yml#L82) | str | `HyperConverged` | None | None | None | +| [`operator_management_default_cnv.extra_resources.hyperconverged.metadata`](defaults/main.yml#L83) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.extra_resources.hyperconverged.metadata.name`](defaults/main.yml#L84) | str | `kubevirt-hyperconverged` | None | None | None | +| [`operator_management_default_cnv.extra_resources.hyperconverged.metadata.namespace`](defaults/main.yml#L85) | str | `openshift-cnv` | None | None | None | +| [`operator_management_default_cnv.namespace`](defaults/main.yml#L67) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.namespace.metadata`](defaults/main.yml#L68) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.namespace.metadata.name`](defaults/main.yml#L69) | str | `openshift-cnv` | None | None | None | +| [`operator_management_default_cnv.operatorgroup`](defaults/main.yml#L70) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.operatorgroup.metadata`](defaults/main.yml#L71) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.operatorgroup.metadata.name`](defaults/main.yml#L72) | str | `kubevirt-hyperconverged-group` | None | None | None | +| [`operator_management_default_cnv.operatorgroup.spec`](defaults/main.yml#L73) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L74) | list | `[]` | None | None | None | +| [`operator_management_default_cnv.operatorgroup.spec.targetNamespaces.0`](defaults/main.yml#L74) | str | `openshift-cnv` | None | None | None | +| [`operator_management_default_cnv.subscription`](defaults/main.yml#L76) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.subscription.metadata`](defaults/main.yml#L77) | dict | `{}` | None | None | None | +| [`operator_management_default_cnv.subscription.metadata.name`](defaults/main.yml#L78) | str | `kubevirt-hyperconverged` | None | None | None | +| [`operator_management_default_gitops`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.namespace`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.namespace.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.namespace.metadata.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator` | None | None | None | +| [`operator_management_default_gitops.operatorgroup`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.operatorgroup.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.operatorgroup.metadata.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator-group` | None | None | None | +| [`operator_management_default_gitops.operatorgroup.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L205) | list | `[]` | None | None | None | +| [`operator_management_default_gitops.subscription`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.subscription.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.subscription.metadata.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator` | None | None | None | +| [`operator_management_default_gitops.subscription.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_gitops.subscription.spec.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator` | None | None | None | +| [`operator_management_default_mtv`](defaults/main.yml#L40) | dict | `{}` | None | True | Operator Management of MTV | +| [`operator_management_default_mtv.extra_resources`](defaults/main.yml#L53) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller`](defaults/main.yml#L54) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller.apiVersion`](defaults/main.yml#L55) | str | `forklift.konveyor.io/v1beta1` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller.kind`](defaults/main.yml#L56) | str | `ForkliftController` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata`](defaults/main.yml#L57) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.name`](defaults/main.yml#L58) | str | `forklift-controller` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.namespace`](defaults/main.yml#L59) | str | `openshift-mtv` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller.spec`](defaults/main.yml#L60) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.extra_resources.forkliftcontroller.spec.olm_managed`](defaults/main.yml#L61) | bool | `True` | None | None | None | +| [`operator_management_default_mtv.namespace`](defaults/main.yml#L41) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.namespace.metadata`](defaults/main.yml#L42) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.namespace.metadata.name`](defaults/main.yml#L43) | str | `openshift-mtv` | None | None | None | +| [`operator_management_default_mtv.operatorgroup`](defaults/main.yml#L44) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.operatorgroup.metadata`](defaults/main.yml#L45) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.operatorgroup.metadata.name`](defaults/main.yml#L46) | str | `migration` | None | None | None | +| [`operator_management_default_mtv.operatorgroup.spec`](defaults/main.yml#L47) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L48) | list | `[]` | None | None | None | +| [`operator_management_default_mtv.operatorgroup.spec.targetNamespaces.0`](defaults/main.yml#L48) | str | `openshift-mtv` | None | None | None | +| [`operator_management_default_mtv.subscription`](defaults/main.yml#L50) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.subscription.spec`](defaults/main.yml#L51) | dict | `{}` | None | None | None | +| [`operator_management_default_mtv.subscription.spec.name`](defaults/main.yml#L52) | str | `mtv-operator` | None | None | None | +| [`operator_management_default_nho`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.namespace`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.namespace.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.namespace.metadata.name`](defaults/main.yml#L205) | str | `openshift-workload-availability` | None | None | None | +| [`operator_management_default_nho.operatorgroup`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.operatorgroup.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.operatorgroup.metadata.name`](defaults/main.yml#L205) | str | `openshift-workload-availability-operator-group` | None | None | None | +| [`operator_management_default_nho.subscription`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.subscription.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.subscription.metadata.name`](defaults/main.yml#L205) | str | `node-healthcheck-operator` | None | None | None | +| [`operator_management_default_nho.subscription.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nho.subscription.spec.name`](defaults/main.yml#L205) | str | `node-healthcheck-operator` | None | None | None | +| [`operator_management_default_nmstate`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.extra_resources`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.extra_resources.nmstate`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.extra_resources.nmstate.apiVersion`](defaults/main.yml#L205) | str | `nmstate.io/v1` | None | None | None | +| [`operator_management_default_nmstate.extra_resources.nmstate.kind`](defaults/main.yml#L205) | str | `NMState` | None | None | None | +| [`operator_management_default_nmstate.extra_resources.nmstate.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.extra_resources.nmstate.metadata.name`](defaults/main.yml#L205) | str | `nmstate` | None | None | None | +| [`operator_management_default_nmstate.namespace`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.namespace.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.namespace.metadata.name`](defaults/main.yml#L205) | str | `openshift-nmstate` | None | None | None | +| [`operator_management_default_nmstate.operatorgroup`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.operatorgroup.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.operatorgroup.metadata.name`](defaults/main.yml#L205) | str | `nmstate-operator-group` | None | None | None | +| [`operator_management_default_nmstate.operatorgroup.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L205) | list | `[]` | None | None | None | +| [`operator_management_default_nmstate.operatorgroup.spec.targetNamespaces.0`](defaults/main.yml#L205) | str | `openshift-nmstate` | None | None | None | +| [`operator_management_default_nmstate.subscription`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.subscription.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | +| [`operator_management_default_nmstate.subscription.metadata.name`](defaults/main.yml#L205) | str | `kubernetes-nmstate-operator` | None | None | None | | [`operator_management_default_oadp`](defaults/main.yml#L186) | dict | `{}` | None | None | None | | [`operator_management_default_oadp.namespace`](defaults/main.yml#L193) | dict | `{}` | None | None | None | | [`operator_management_default_oadp.namespace.metadata`](defaults/main.yml#L194) | dict | `{}` | None | None | None | @@ -122,6 +172,15 @@ Description: Management of OpenShift Operators. | [`operator_management_default_oadp.subscription.metadata.name`](defaults/main.yml#L203) | str | `redhat-oadp-operator-subscription` | None | None | None | | [`operator_management_default_oadp.subscription.spec`](defaults/main.yml#L204) | dict | `{}` | None | None | None | | [`operator_management_default_oadp.subscription.spec.name`](defaults/main.yml#L205) | str | `redhat-oadp-operator` | None | None | None | +| [`operator_management_default_operators`](defaults/main.yml#L27) | list | `[]` | None | True | Default Operators for OpenShift Virtualization | +| [`operator_management_default_operators.0`](defaults/main.yml#L28) | str | `mtv` | None | None | None | +| [`operator_management_default_operators.1`](defaults/main.yml#L29) | str | `cnv` | None | None | None | +| [`operator_management_default_operators.2`](defaults/main.yml#L30) | str | `acm` | None | None | None | +| [`operator_management_default_operators.3`](defaults/main.yml#L31) | str | `oadp` | None | None | None | +| [`operator_management_default_operators.4`](defaults/main.yml#L32) | str | `far` | None | None | None | +| [`operator_management_default_operators.5`](defaults/main.yml#L33) | str | `nmstate` | None | None | None | +| [`operator_management_default_operators.6`](defaults/main.yml#L34) | str | `nho` | None | None | None | +| [`operator_management_default_operators.7`](defaults/main.yml#L35) | str | `gitops` | None | None | None | | [`operator_management_far`](defaults/main.yml#L205) | dict | `{}` | None | None | None | | [`operator_management_far.namespace`](defaults/main.yml#L205) | dict | `{}` | None | None | None | | [`operator_management_far.namespace.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | @@ -132,134 +191,109 @@ Description: Management of OpenShift Operators. | [`operator_management_far.subscription`](defaults/main.yml#L205) | dict | `{}` | None | None | None | | [`operator_management_far.subscription.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | | [`operator_management_far.subscription.metadata.name`](defaults/main.yml#L205) | str | `fence-agents-remediation` | None | None | None | -| [`operator_management_default_nmstate`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.namespace`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.namespace.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.namespace.metadata.name`](defaults/main.yml#L205) | str | `openshift-nmstate` | None | None | None | -| [`operator_management_default_nmstate.operatorgroup`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.operatorgroup.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.operatorgroup.metadata.name`](defaults/main.yml#L205) | str | `nmstate-operator-group` | None | None | None | -| [`operator_management_default_nmstate.operatorgroup.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L205) | list | `[]` | None | None | None | -| [`operator_management_default_nmstate.operatorgroup.spec.targetNamespaces.0`](defaults/main.yml#L205) | str | `openshift-nmstate` | None | None | None | -| [`operator_management_default_nmstate.subscription`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.subscription.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.subscription.metadata.name`](defaults/main.yml#L205) | str | `kubernetes-nmstate-operator` | None | None | None | -| [`operator_management_default_nmstate.extra_resources`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.extra_resources.nmstate`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.extra_resources.nmstate.apiVersion`](defaults/main.yml#L205) | str | `nmstate.io/v1` | None | None | None | -| [`operator_management_default_nmstate.extra_resources.nmstate.kind`](defaults/main.yml#L205) | str | `NMState` | None | None | None | -| [`operator_management_default_nmstate.extra_resources.nmstate.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nmstate.extra_resources.nmstate.metadata.name`](defaults/main.yml#L205) | str | `nmstate` | None | None | None | -| [`operator_management_default_nho`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.namespace`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.namespace.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.namespace.metadata.name`](defaults/main.yml#L205) | str | `openshift-workload-availability` | None | None | None | -| [`operator_management_default_nho.operatorgroup`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.operatorgroup.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.operatorgroup.metadata.name`](defaults/main.yml#L205) | str | `openshift-workload-availability-operator-group` | None | None | None | -| [`operator_management_default_nho.subscription`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.subscription.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.subscription.metadata.name`](defaults/main.yml#L205) | str | `node-healthcheck-operator` | None | None | None | -| [`operator_management_default_nho.subscription.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_nho.subscription.spec.name`](defaults/main.yml#L205) | str | `node-healthcheck-operator` | None | None | None | -| [`operator_management_default_gitops`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.namespace`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.namespace.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.namespace.metadata.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator` | None | None | None | -| [`operator_management_default_gitops.operatorgroup`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.operatorgroup.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.operatorgroup.metadata.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator-group` | None | None | None | -| [`operator_management_default_gitops.operatorgroup.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.operatorgroup.spec.targetNamespaces`](defaults/main.yml#L205) | list | `[]` | None | None | None | -| [`operator_management_default_gitops.subscription`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.subscription.metadata`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.subscription.metadata.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator` | None | None | None | -| [`operator_management_default_gitops.subscription.spec`](defaults/main.yml#L205) | dict | `{}` | None | None | None | -| [`operator_management_default_gitops.subscription.spec.name`](defaults/main.yml#L205) | str | `openshift-gitops-operator` | None | None | None | -| [`operator_management_catalog_sources`](defaults/main.yml#L210) | list | `[]` | None | True | Operator Management of Red Hat Marketplace | -| [`operator_management_catalog_sources.0`](defaults/main.yml#L211) | dict | `{}` | None | None | None | -| [`operator_management_catalog_sources.0.name`](defaults/main.yml#L211) | str | `redhat-marketplace2` | None | None | None | -| [`operator_management_catalog_sources.0.source_type`](defaults/main.yml#L212) | str | `grpc` | None | None | None | -| [`operator_management_catalog_sources.0.display_name`](defaults/main.yml#L213) | str | `Mirror to Red Hat Marketplace` | None | None | None | -| [`operator_management_catalog_sources.0.image_path`](defaults/main.yml#L214) | str | `internal-registry.example.com/operator:v1` | None | None | None | -| [`operator_management_catalog_sources.0.priority`](defaults/main.yml#L215) | str | `-300` | None | None | None | -| [`operator_management_catalog_sources.0.icon`](defaults/main.yml#L216) | dict | `{}` | None | None | None | -| [`operator_management_catalog_sources.0.icon.base64data`](defaults/main.yml#L217) | str | `` | None | None | None | -| [`operator_management_catalog_sources.0.icon.mediatype`](defaults/main.yml#L218) | str | `` | None | None | None | -| [`operator_management_catalog_sources.0.publisher`](defaults/main.yml#L219) | str | `redhat` | None | None | None | -| [`operator_management_catalog_sources.0.address`](defaults/main.yml#L220) | str | `` | None | None | None | -| [`operator_management_catalog_sources.0.grpc_pod_config`](defaults/main.yml#L221) | str | `` | None | None | None | -| [`operator_management_catalog_sources.0.registry_poll_interval`](defaults/main.yml#L239) | str | `10m` | None | None | None | 🖇️ Full descriptions for vars in defaults/main.yml
-`operator_management_catalogsources`: List of Custom CatalogSources +`operator_management_catalog_sources`: Operator Management of Red Hat Marketplace
-`operator_management_default_operators`: defaults file for operator_management +`operator_management_catalog_sources.0`: None
-`operator_management_default_operators.0`: None +`operator_management_catalog_sources.0.address`: None
-`operator_management_default_operators.1`: None +`operator_management_catalog_sources.0.display_name`: None
-`operator_management_default_operators.2`: None +`operator_management_catalog_sources.0.grpc_pod_config`: None
-`operator_management_default_operators.3`: None +`operator_management_catalog_sources.0.icon`: None
-`operator_management_default_operators.4`: None +`operator_management_catalog_sources.0.icon.base64data`: None
-`operator_management_default_operators.5`: None +`operator_management_catalog_sources.0.icon.mediatype`: None
-`operator_management_default_operators.6`: None +`operator_management_catalog_sources.0.image_path`: None
-`operator_management_default_operators.7`: None +`operator_management_catalog_sources.0.name`: None
-`operator_management_default_mtv`: Operator Management of Migration Toolkit for Virtualization (MTV) +`operator_management_catalog_sources.0.priority`: None
-`operator_management_default_mtv.namespace`: None +`operator_management_catalog_sources.0.publisher`: None
-`operator_management_default_mtv.namespace.metadata`: None +`operator_management_catalog_sources.0.registry_poll_interval`: None
-`operator_management_default_mtv.namespace.metadata.name`: None +`operator_management_catalog_sources.0.source_type`: None
-`operator_management_default_mtv.operatorgroup`: None +`operator_management_catalogsources`: List of Custom CatalogSources
-`operator_management_default_mtv.operatorgroup.metadata`: None +`operator_management_default_acm`: Operator Management of Advanced Cluster Management (ACM)
-`operator_management_default_mtv.operatorgroup.metadata.name`: None +`operator_management_default_acm.extra_resources`: None
-`operator_management_default_mtv.operatorgroup.spec`: None +`operator_management_default_acm.extra_resources.multiclusterhub`: None
-`operator_management_default_mtv.operatorgroup.spec.targetNamespaces`: None +`operator_management_default_acm.extra_resources.multiclusterhub.apiVersion`: None
-`operator_management_default_mtv.operatorgroup.spec.targetNamespaces.0`: None +`operator_management_default_acm.extra_resources.multiclusterhub.kind`: None
-`operator_management_default_mtv.subscription`: None +`operator_management_default_acm.extra_resources.multiclusterhub.metadata`: None
-`operator_management_default_mtv.subscription.spec`: None +`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers`: None
-`operator_management_default_mtv.subscription.spec.name`: None +`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers.0`: None
-`operator_management_default_mtv.extra_resources`: None +`operator_management_default_acm.extra_resources.multiclusterhub.metadata.name`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller`: None +`operator_management_default_acm.extra_resources.multiclusterhub.metadata.namespace`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller.apiVersion`: None +`operator_management_default_acm.extra_resources.multiclusterhub.spec`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller.kind`: None +`operator_management_default_acm.extra_resources.multiclusterhub.spec.availabilityConfig`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata`: None +`operator_management_default_acm.extra_resources.multiclusterhub.spec.enableClusterBackup`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.name`: None +`operator_management_default_acm.namespace`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.namespace`: None +`operator_management_default_acm.namespace.metadata`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller.spec`: None +`operator_management_default_acm.namespace.metadata.name`: None
-`operator_management_default_mtv.extra_resources.forkliftcontroller.spec.olm_managed`: None +`operator_management_default_acm.operatorgroup`: None +
+`operator_management_default_acm.operatorgroup.metadata`: None +
+`operator_management_default_acm.operatorgroup.metadata.name`: None +
+`operator_management_default_acm.operatorgroup.spec`: None +
+`operator_management_default_acm.operatorgroup.spec.targetNamespaces`: None +
+`operator_management_default_acm.operatorgroup.spec.targetNamespaces.0`: None +
+`operator_management_default_acm.subscription`: None +
+`operator_management_default_acm.subscription.metadata`: None +
+`operator_management_default_acm.subscription.metadata.name`: None +
+`operator_management_default_acm.subscription.spec`: None +
+`operator_management_default_acm.subscription.spec.name`: None
`operator_management_default_cnv`: Operator Management of OpenShift Virtualization
+`operator_management_default_cnv.extra_resources`: None +
+`operator_management_default_cnv.extra_resources.hyperconverged`: None +
+`operator_management_default_cnv.extra_resources.hyperconverged.apiVersion`: None +
+`operator_management_default_cnv.extra_resources.hyperconverged.kind`: None +
+`operator_management_default_cnv.extra_resources.hyperconverged.metadata`: None +
+`operator_management_default_cnv.extra_resources.hyperconverged.metadata.name`: None +
+`operator_management_default_cnv.extra_resources.hyperconverged.metadata.namespace`: None +
`operator_management_default_cnv.namespace`: None
`operator_management_default_cnv.namespace.metadata`: None @@ -284,125 +318,115 @@ Description: Management of OpenShift Operators.
`operator_management_default_cnv.subscription.metadata.name`: None
-`operator_management_default_cnv.extra_resources`: None -
-`operator_management_default_cnv.extra_resources.hyperconverged`: None -
-`operator_management_default_cnv.extra_resources.hyperconverged.apiVersion`: None -
-`operator_management_default_cnv.extra_resources.hyperconverged.kind`: None -
-`operator_management_default_cnv.extra_resources.hyperconverged.metadata`: None -
-`operator_management_default_cnv.extra_resources.hyperconverged.metadata.name`: None +`operator_management_default_gitops`: None
-`operator_management_default_cnv.extra_resources.hyperconverged.metadata.namespace`: None +`operator_management_default_gitops.namespace`: None
-`operator_management_default_acm`: Operator Management of Advanced Cluster Management (ACM) +`operator_management_default_gitops.namespace.metadata`: None
-`operator_management_default_acm.namespace`: None +`operator_management_default_gitops.namespace.metadata.name`: None
-`operator_management_default_acm.namespace.metadata`: None +`operator_management_default_gitops.operatorgroup`: None
-`operator_management_default_acm.namespace.metadata.name`: None +`operator_management_default_gitops.operatorgroup.metadata`: None
-`operator_management_default_acm.operatorgroup`: None +`operator_management_default_gitops.operatorgroup.metadata.name`: None
-`operator_management_default_acm.operatorgroup.metadata`: None +`operator_management_default_gitops.operatorgroup.spec`: None
-`operator_management_default_acm.operatorgroup.metadata.name`: None +`operator_management_default_gitops.operatorgroup.spec.targetNamespaces`: None
-`operator_management_default_acm.operatorgroup.spec`: None +`operator_management_default_gitops.subscription`: None
-`operator_management_default_acm.operatorgroup.spec.targetNamespaces`: None +`operator_management_default_gitops.subscription.metadata`: None
-`operator_management_default_acm.operatorgroup.spec.targetNamespaces.0`: None +`operator_management_default_gitops.subscription.metadata.name`: None
-`operator_management_default_acm.subscription`: None +`operator_management_default_gitops.subscription.spec`: None
-`operator_management_default_acm.subscription.metadata`: None +`operator_management_default_gitops.subscription.spec.name`: None
-`operator_management_default_acm.subscription.metadata.name`: None +`operator_management_default_mtv`: Operator Management of Migration Toolkit for Virtualization (MTV)
-`operator_management_default_acm.subscription.spec`: None +`operator_management_default_mtv.extra_resources`: None
-`operator_management_default_acm.subscription.spec.name`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller`: None
-`operator_management_default_acm.extra_resources`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller.apiVersion`: None
-`operator_management_default_acm.extra_resources.multiclusterhub`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller.kind`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.apiVersion`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.kind`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.name`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.metadata`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller.metadata.namespace`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.metadata.name`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller.spec`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.metadata.namespace`: None +`operator_management_default_mtv.extra_resources.forkliftcontroller.spec.olm_managed`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers`: None +`operator_management_default_mtv.namespace`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.metadata.finalizers.0`: None +`operator_management_default_mtv.namespace.metadata`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.spec`: None +`operator_management_default_mtv.namespace.metadata.name`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.spec.availabilityConfig`: None +`operator_management_default_mtv.operatorgroup`: None
-`operator_management_default_acm.extra_resources.multiclusterhub.spec.enableClusterBackup`: None +`operator_management_default_mtv.operatorgroup.metadata`: None
-`operator_management_default_oadp`: None +`operator_management_default_mtv.operatorgroup.metadata.name`: None
-`operator_management_default_oadp.namespace`: None +`operator_management_default_mtv.operatorgroup.spec`: None
-`operator_management_default_oadp.namespace.metadata`: None +`operator_management_default_mtv.operatorgroup.spec.targetNamespaces`: None
-`operator_management_default_oadp.namespace.metadata.name`: None +`operator_management_default_mtv.operatorgroup.spec.targetNamespaces.0`: None
-`operator_management_default_oadp.operatorgroup`: None +`operator_management_default_mtv.subscription`: None
-`operator_management_default_oadp.operatorgroup.metadata`: None +`operator_management_default_mtv.subscription.spec`: None
-`operator_management_default_oadp.operatorgroup.metadata.name`: None +`operator_management_default_mtv.subscription.spec.name`: None
-`operator_management_default_oadp.operatorgroup.spec`: None +`operator_management_default_nho`: None
-`operator_management_default_oadp.operatorgroup.spec.targetNamespaces`: None +`operator_management_default_nho.namespace`: None
-`operator_management_default_oadp.operatorgroup.spec.targetNamespaces.0`: None +`operator_management_default_nho.namespace.metadata`: None
-`operator_management_default_oadp.subscription`: None +`operator_management_default_nho.namespace.metadata.name`: None
-`operator_management_default_oadp.subscription.metadata`: None +`operator_management_default_nho.operatorgroup`: None
-`operator_management_default_oadp.subscription.metadata.name`: None +`operator_management_default_nho.operatorgroup.metadata`: None
-`operator_management_default_oadp.subscription.spec`: None +`operator_management_default_nho.operatorgroup.metadata.name`: None
-`operator_management_default_oadp.subscription.spec.name`: None +`operator_management_default_nho.subscription`: None
-`operator_management_far`: None +`operator_management_default_nho.subscription.metadata`: None
-`operator_management_far.namespace`: None +`operator_management_default_nho.subscription.metadata.name`: None
-`operator_management_far.namespace.metadata`: None +`operator_management_default_nho.subscription.spec`: None
-`operator_management_far.namespace.metadata.name`: None +`operator_management_default_nho.subscription.spec.name`: None
-`operator_management_far.operatorgroup`: None +`operator_management_default_nmstate`: None
-`operator_management_far.operatorgroup.metadata`: None +`operator_management_default_nmstate.extra_resources`: None
-`operator_management_far.operatorgroup.metadata.name`: None +`operator_management_default_nmstate.extra_resources.nmstate`: None
-`operator_management_far.subscription`: None +`operator_management_default_nmstate.extra_resources.nmstate.apiVersion`: None
-`operator_management_far.subscription.metadata`: None +`operator_management_default_nmstate.extra_resources.nmstate.kind`: None
-`operator_management_far.subscription.metadata.name`: None +`operator_management_default_nmstate.extra_resources.nmstate.metadata`: None
-`operator_management_default_nmstate`: None +`operator_management_default_nmstate.extra_resources.nmstate.metadata.name`: None
`operator_management_default_nmstate.namespace`: None
@@ -428,97 +452,73 @@ Description: Management of OpenShift Operators.
`operator_management_default_nmstate.subscription.metadata.name`: None
-`operator_management_default_nmstate.extra_resources`: None -
-`operator_management_default_nmstate.extra_resources.nmstate`: None -
-`operator_management_default_nmstate.extra_resources.nmstate.apiVersion`: None -
-`operator_management_default_nmstate.extra_resources.nmstate.kind`: None -
-`operator_management_default_nmstate.extra_resources.nmstate.metadata`: None -
-`operator_management_default_nmstate.extra_resources.nmstate.metadata.name`: None -
-`operator_management_default_nho`: None -
-`operator_management_default_nho.namespace`: None -
-`operator_management_default_nho.namespace.metadata`: None -
-`operator_management_default_nho.namespace.metadata.name`: None -
-`operator_management_default_nho.operatorgroup`: None -
-`operator_management_default_nho.operatorgroup.metadata`: None -
-`operator_management_default_nho.operatorgroup.metadata.name`: None +`operator_management_default_oadp`: None
-`operator_management_default_nho.subscription`: None +`operator_management_default_oadp.namespace`: None
-`operator_management_default_nho.subscription.metadata`: None +`operator_management_default_oadp.namespace.metadata`: None
-`operator_management_default_nho.subscription.metadata.name`: None +`operator_management_default_oadp.namespace.metadata.name`: None
-`operator_management_default_nho.subscription.spec`: None +`operator_management_default_oadp.operatorgroup`: None
-`operator_management_default_nho.subscription.spec.name`: None +`operator_management_default_oadp.operatorgroup.metadata`: None
-`operator_management_default_gitops`: None +`operator_management_default_oadp.operatorgroup.metadata.name`: None
-`operator_management_default_gitops.namespace`: None +`operator_management_default_oadp.operatorgroup.spec`: None
-`operator_management_default_gitops.namespace.metadata`: None +`operator_management_default_oadp.operatorgroup.spec.targetNamespaces`: None
-`operator_management_default_gitops.namespace.metadata.name`: None +`operator_management_default_oadp.operatorgroup.spec.targetNamespaces.0`: None
-`operator_management_default_gitops.operatorgroup`: None +`operator_management_default_oadp.subscription`: None
-`operator_management_default_gitops.operatorgroup.metadata`: None +`operator_management_default_oadp.subscription.metadata`: None
-`operator_management_default_gitops.operatorgroup.metadata.name`: None +`operator_management_default_oadp.subscription.metadata.name`: None
-`operator_management_default_gitops.operatorgroup.spec`: None +`operator_management_default_oadp.subscription.spec`: None
-`operator_management_default_gitops.operatorgroup.spec.targetNamespaces`: None +`operator_management_default_oadp.subscription.spec.name`: None
-`operator_management_default_gitops.subscription`: None +`operator_management_default_operators`: defaults file for operator_management
-`operator_management_default_gitops.subscription.metadata`: None +`operator_management_default_operators.0`: None
-`operator_management_default_gitops.subscription.metadata.name`: None +`operator_management_default_operators.1`: None
-`operator_management_default_gitops.subscription.spec`: None +`operator_management_default_operators.2`: None
-`operator_management_default_gitops.subscription.spec.name`: None +`operator_management_default_operators.3`: None
-`operator_management_catalog_sources`: Operator Management of Red Hat Marketplace +`operator_management_default_operators.4`: None
-`operator_management_catalog_sources.0`: None +`operator_management_default_operators.5`: None
-`operator_management_catalog_sources.0.name`: None +`operator_management_default_operators.6`: None
-`operator_management_catalog_sources.0.source_type`: None +`operator_management_default_operators.7`: None
-`operator_management_catalog_sources.0.display_name`: None +`operator_management_far`: None
-`operator_management_catalog_sources.0.image_path`: None +`operator_management_far.namespace`: None
-`operator_management_catalog_sources.0.priority`: None +`operator_management_far.namespace.metadata`: None
-`operator_management_catalog_sources.0.icon`: None +`operator_management_far.namespace.metadata.name`: None
-`operator_management_catalog_sources.0.icon.base64data`: None +`operator_management_far.operatorgroup`: None
-`operator_management_catalog_sources.0.icon.mediatype`: None +`operator_management_far.operatorgroup.metadata`: None
-`operator_management_catalog_sources.0.publisher`: None +`operator_management_far.operatorgroup.metadata.name`: None
-`operator_management_catalog_sources.0.address`: None +`operator_management_far.subscription`: None
-`operator_management_catalog_sources.0.grpc_pod_config`: None +`operator_management_far.subscription.metadata`: None
-`operator_management_catalog_sources.0.registry_poll_interval`: None +`operator_management_far.subscription.metadata.name`: None

@@ -575,7 +575,7 @@ Description: Management of OpenShift Operators. ## Task Flow Graphs -### Graph for main.yml +### Graph for _operator_catalog_source_item.yml ```mermaid flowchart TD @@ -589,14 +589,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| Obtain_List_of_PackageManifests0[obtain list of packagemanifests
When: **operator management operators default operator
management default operators length 0**]:::task - Obtain_List_of_PackageManifests0-->|Task| Disable_default_CatalogSources1[disable default catalogsources
When: **disabledefaultoperatorsources is defined**]:::task - Disable_default_CatalogSources1-->|Include task| Configure_CatalogSources__operator_catalog_source_item_yml_2[configure catalogsources
include_task: operator catalog source item yml]:::includeTasks - Configure_CatalogSources__operator_catalog_source_item_yml_2-->|Include task| Configure_Operators__operator_config_item_yml_3[configure operators
include_task: operator config item yml]:::includeTasks - Configure_Operators__operator_config_item_yml_3-->End + Start-->|Task| _operator_catalog_source_item___Set_Fact______catalogsource_item_key___0[ operator catalog source item set fact
catalogsource item key ]:::task + _operator_catalog_source_item___Set_Fact______catalogsource_item_key___0-->|Task| _operator_catalog_source_item___Apply_Resource_____catalogsource_item_key___1[ operator catalog source item apply resource
catalogsource item key ]:::task + _operator_catalog_source_item___Apply_Resource_____catalogsource_item_key___1-->End ``` -### Graph for _operator_resource_item.yml +### Graph for _operator_config_item.yml ```mermaid flowchart TD @@ -610,23 +608,13 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _operator_resource_item___Set_Fact______operator_resource_name___capitalize___0[ operator resource item set fact operator
resource name capitalize ]:::task - _operator_resource_item___Set_Fact______operator_resource_name___capitalize___0-->|Block Start| _operator_resource_item___Configure_Operator_Subscription1_block_start_0[[ operator resource item configure operator
subscription
When: **operator resource name subscription**]]:::block - _operator_resource_item___Configure_Operator_Subscription1_block_start_0-->|Task| _operator_resource_item___Verify_Operator_Exists0[ operator resource item verify operator exists]:::task - _operator_resource_item___Verify_Operator_Exists0-->|Task| _operator_resource_item___Verify_Operator_Channel_Exists1[ operator resource item verify operator channel
exists
When: **operator management resource spec is defined and
operator management resource spec channel is
defined**]:::task - _operator_resource_item___Verify_Operator_Channel_Exists1-->|Task| _operator_resource_item___Set_Operator_channel_when_not_defined2[ operator resource item set operator channel
when not defined]:::task - _operator_resource_item___Set_Operator_channel_when_not_defined2-.->|End of Block| _operator_resource_item___Configure_Operator_Subscription1_block_start_0 - _operator_resource_item___Set_Operator_channel_when_not_defined2-->|Task| _operator_resource_item___Apply_Resource_____operator_resource_name___capitalize___2[ operator resource item apply resource
operator resource name capitalize ]:::task - _operator_resource_item___Apply_Resource_____operator_resource_name___capitalize___2-->|Block Start| _operator_resource_item___Operator_Installation_Management3_block_start_0[[ operator resource item operator installation
management
When: **operator resource name subscription**]]:::block - _operator_resource_item___Operator_Installation_Management3_block_start_0-->|Task| _operator_resource_item___Obtain_Related_CSV_Name0[ operator resource item obtain related csv name]:::task - _operator_resource_item___Obtain_Related_CSV_Name0-->|Task| _operator_resource_item___Wait_until_InstallPlan_created_______operator_management_resource_spec_name____1[ operator resource item wait until installplan
created operator management resource spec
name ]:::task - _operator_resource_item___Wait_until_InstallPlan_created_______operator_management_resource_spec_name____1-->|Task| _operator_resource_item___Get_Installed_CSV_______operator_management_resource_spec_name____2[ operator resource item get installed csv
operator management resource spec name ]:::task - _operator_resource_item___Get_Installed_CSV_______operator_management_resource_spec_name____2-->|Task| _operator_resource_item___Wait_until_CSV_is_installed_______operator_management_resource_spec_name____3[ operator resource item wait until csv is
installed operator management resource spec
name ]:::task - _operator_resource_item___Wait_until_CSV_is_installed_______operator_management_resource_spec_name____3-.->|End of Block| _operator_resource_item___Operator_Installation_Management3_block_start_0 - _operator_resource_item___Wait_until_CSV_is_installed_______operator_management_resource_spec_name____3-->End + Start-->|Task| _operator_config_item___Retrieve_Operator_name0[ operator config item retrieve operator name]:::task + _operator_config_item___Retrieve_Operator_name0-->|Include task| _operator_config_item___Configure_Resources__operator_resource_item_yml_1[ operator config item configure resources
When: **operator management operator operator resource
name is defined**
include_task: operator resource item yml]:::includeTasks + _operator_config_item___Configure_Resources__operator_resource_item_yml_1-->|Task| _operator_config_item___Apply_Extra_Resources2[ operator config item apply extra resources
When: **operator management operator extra resources
is defined**]:::task + _operator_config_item___Apply_Extra_Resources2-->End ``` -### Graph for _operator_catalog_source_item.yml +### Graph for _operator_resource_item.yml ```mermaid flowchart TD @@ -640,12 +628,23 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _operator_catalog_source_item___Set_Fact______catalogsource_item_key___0[ operator catalog source item set fact
catalogsource item key ]:::task - _operator_catalog_source_item___Set_Fact______catalogsource_item_key___0-->|Task| _operator_catalog_source_item___Apply_Resource_____catalogsource_item_key___1[ operator catalog source item apply resource
catalogsource item key ]:::task - _operator_catalog_source_item___Apply_Resource_____catalogsource_item_key___1-->End + Start-->|Task| _operator_resource_item___Set_Fact______operator_resource_name___capitalize___0[ operator resource item set fact operator
resource name capitalize ]:::task + _operator_resource_item___Set_Fact______operator_resource_name___capitalize___0-->|Block Start| _operator_resource_item___Configure_Operator_Subscription1_block_start_0[[ operator resource item configure operator
subscription
When: **operator resource name subscription**]]:::block + _operator_resource_item___Configure_Operator_Subscription1_block_start_0-->|Task| _operator_resource_item___Verify_Operator_Exists0[ operator resource item verify operator exists]:::task + _operator_resource_item___Verify_Operator_Exists0-->|Task| _operator_resource_item___Verify_Operator_Channel_Exists1[ operator resource item verify operator channel
exists
When: **operator management resource spec is defined and
operator management resource spec channel is
defined**]:::task + _operator_resource_item___Verify_Operator_Channel_Exists1-->|Task| _operator_resource_item___Set_Operator_channel_when_not_defined2[ operator resource item set operator channel
when not defined]:::task + _operator_resource_item___Set_Operator_channel_when_not_defined2-.->|End of Block| _operator_resource_item___Configure_Operator_Subscription1_block_start_0 + _operator_resource_item___Set_Operator_channel_when_not_defined2-->|Task| _operator_resource_item___Apply_Resource_____operator_resource_name___capitalize___2[ operator resource item apply resource
operator resource name capitalize ]:::task + _operator_resource_item___Apply_Resource_____operator_resource_name___capitalize___2-->|Block Start| _operator_resource_item___Operator_Installation_Management3_block_start_0[[ operator resource item operator installation
management
When: **operator resource name subscription**]]:::block + _operator_resource_item___Operator_Installation_Management3_block_start_0-->|Task| _operator_resource_item___Obtain_Related_CSV_Name0[ operator resource item obtain related csv name]:::task + _operator_resource_item___Obtain_Related_CSV_Name0-->|Task| _operator_resource_item___Wait_until_InstallPlan_created_______operator_management_resource_spec_name____1[ operator resource item wait until installplan
created operator management resource spec
name ]:::task + _operator_resource_item___Wait_until_InstallPlan_created_______operator_management_resource_spec_name____1-->|Task| _operator_resource_item___Get_Installed_CSV_______operator_management_resource_spec_name____2[ operator resource item get installed csv
operator management resource spec name ]:::task + _operator_resource_item___Get_Installed_CSV_______operator_management_resource_spec_name____2-->|Task| _operator_resource_item___Wait_until_CSV_is_installed_______operator_management_resource_spec_name____3[ operator resource item wait until csv is
installed operator management resource spec
name ]:::task + _operator_resource_item___Wait_until_CSV_is_installed_______operator_management_resource_spec_name____3-.->|End of Block| _operator_resource_item___Operator_Installation_Management3_block_start_0 + _operator_resource_item___Wait_until_CSV_is_installed_______operator_management_resource_spec_name____3-->End ``` -### Graph for _operator_config_item.yml +### Graph for main.yml ```mermaid flowchart TD @@ -659,10 +658,11 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _operator_config_item___Retrieve_Operator_name0[ operator config item retrieve operator name]:::task - _operator_config_item___Retrieve_Operator_name0-->|Include task| _operator_config_item___Configure_Resources__operator_resource_item_yml_1[ operator config item configure resources
When: **operator management operator operator resource
name is defined**
include_task: operator resource item yml]:::includeTasks - _operator_config_item___Configure_Resources__operator_resource_item_yml_1-->|Task| _operator_config_item___Apply_Extra_Resources2[ operator config item apply extra resources
When: **operator management operator extra resources
is defined**]:::task - _operator_config_item___Apply_Extra_Resources2-->End + Start-->|Task| Obtain_List_of_PackageManifests0[obtain list of packagemanifests
When: **operator management operators default operator
management default operators length 0**]:::task + Obtain_List_of_PackageManifests0-->|Task| Disable_default_CatalogSources1[disable default catalogsources
When: **disabledefaultoperatorsources is defined**]:::task + Disable_default_CatalogSources1-->|Include task| Configure_CatalogSources__operator_catalog_source_item_yml_2[configure catalogsources
include_task: operator catalog source item yml]:::includeTasks + Configure_CatalogSources__operator_catalog_source_item_yml_2-->|Include task| Configure_Operators__operator_config_item_yml_3[configure operators
include_task: operator config item yml]:::includeTasks + Configure_Operators__operator_config_item_yml_3-->End ``` ### Graph for node-health-check.yml diff --git a/roles/validate_migration/README.md b/roles/validate_migration/README.md index 6a3184c..e894f69 100644 --- a/roles/validate_migration/README.md +++ b/roles/validate_migration/README.md @@ -26,9 +26,12 @@ Description: Verification of an Ansible for OpenShift Virtualization Migration e | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| +| [`validate_migration_cluster_name`](defaults/main.yml#L20) | str | `cluster01` | None | None | None | +| [`validate_migration_debug`](defaults/main.yml#L18) | bool | `True` | None | None | None | | [`validate_migration_expected_provisioners`](defaults/main.yml#L3) | list | `[]` | None | None | None | | [`validate_migration_expected_provisioners.0`](defaults/main.yml#L4) | str | `kubernetes.io/aws-ebs` | None | None | None | | [`validate_migration_expected_provisioners.1`](defaults/main.yml#L5) | str | `kubernetes.io/azure-disk` | None | None | None | +| [`validate_migration_expected_provisioners.10`](defaults/main.yml#L14) | str | `kubernetes.io/vsphere-volume` | None | None | None | | [`validate_migration_expected_provisioners.2`](defaults/main.yml#L6) | str | `kubernetes.io/azure-file` | None | None | None | | [`validate_migration_expected_provisioners.3`](defaults/main.yml#L7) | str | `kubernetes.io/cinder` | None | None | None | | [`validate_migration_expected_provisioners.4`](defaults/main.yml#L8) | str | `kubernetes.io/gce-pd` | None | None | None | @@ -37,19 +40,22 @@ Description: Verification of an Ansible for OpenShift Virtualization Migration e | [`validate_migration_expected_provisioners.7`](defaults/main.yml#L11) | str | `openshift-storage.cephfs.csi.ceph.com` | None | None | None | | [`validate_migration_expected_provisioners.8`](defaults/main.yml#L12) | str | `openshift-storage.rbd.csi.ceph.com` | None | None | None | | [`validate_migration_expected_provisioners.9`](defaults/main.yml#L13) | str | `kubernetes.io/rbd` | None | None | None | -| [`validate_migration_expected_provisioners.10`](defaults/main.yml#L14) | str | `kubernetes.io/vsphere-volume` | None | None | None | | [`validate_migration_namespace`](defaults/main.yml#L16) | str | `openshift-mtv` | None | None | None | -| [`validate_migration_debug`](defaults/main.yml#L18) | bool | `True` | None | None | None | -| [`validate_migration_cluster_name`](defaults/main.yml#L20) | str | `cluster01` | None | None | None | 🖇️ Full descriptions for vars in defaults/main.yml
+`validate_migration_cluster_name`: None +
+`validate_migration_debug`: None +
`validate_migration_expected_provisioners`: None
`validate_migration_expected_provisioners.0`: None
`validate_migration_expected_provisioners.1`: None
+`validate_migration_expected_provisioners.10`: None +
`validate_migration_expected_provisioners.2`: None
`validate_migration_expected_provisioners.3`: None @@ -66,14 +72,8 @@ Description: Verification of an Ansible for OpenShift Virtualization Migration e
`validate_migration_expected_provisioners.9`: None
-`validate_migration_expected_provisioners.10`: None -
`validate_migration_namespace`: None
-`validate_migration_debug`: None -
-`validate_migration_cluster_name`: None -

### Tasks @@ -149,45 +149,6 @@ classDef rescue stroke:#665352,stroke-width:2px; Include_vmware_firewall_rules_tasks_vmware_firewall_rules_yml_3-->End ``` -### Graph for vmware_firewall_rules.yml - -```mermaid -flowchart TD -Start -classDef block stroke:#3498db,stroke-width:2px; -classDef task stroke:#4b76bb,stroke-width:2px; -classDef includeTasks stroke:#16a085,stroke-width:2px; -classDef importTasks stroke:#34495e,stroke-width:2px; -classDef includeRole stroke:#2980b9,stroke-width:2px; -classDef importRole stroke:#699ba7,stroke-width:2px; -classDef includeVars stroke:#8e44ad,stroke-width:2px; -classDef rescue stroke:#665352,stroke-width:2px; - - Start-->|Task| vmware_firewall_rules___Build_a_list_of_all_the_clusters0[vmware firewall rules build a list of all the
clusters]:::task - vmware_firewall_rules___Build_a_list_of_all_the_clusters0-->|Task| vmware_firewall_rules___Gather_firewall_info_about_all_ESXi_Host_in_given_Cluster1[vmware firewall rules gather firewall info about
all esxi host in given cluster]:::task - vmware_firewall_rules___Gather_firewall_info_about_all_ESXi_Host_in_given_Cluster1-->|Task| vmware_firewall_rules___Debug_firewall_details2[vmware firewall rules debug firewall details
When: **validate migration debug is defined and validate
migration debug**]:::task - vmware_firewall_rules___Debug_firewall_details2-->End -``` - -### Graph for ocp_version.yml - -```mermaid -flowchart TD -Start -classDef block stroke:#3498db,stroke-width:2px; -classDef task stroke:#4b76bb,stroke-width:2px; -classDef includeTasks stroke:#16a085,stroke-width:2px; -classDef importTasks stroke:#34495e,stroke-width:2px; -classDef includeRole stroke:#2980b9,stroke-width:2px; -classDef importRole stroke:#699ba7,stroke-width:2px; -classDef includeVars stroke:#8e44ad,stroke-width:2px; -classDef rescue stroke:#665352,stroke-width:2px; - - Start-->|Task| ocp_version___Get_OCP_version_and_check_if_it_s_4_12_or_higher0[ocp version get ocp version and check if it s 4
12 or higher]:::task - ocp_version___Get_OCP_version_and_check_if_it_s_4_12_or_higher0-->|Task| ocp_version___Print_OCP_version1[ocp version print ocp version]:::task - ocp_version___Print_OCP_version1-->End -``` - ### Graph for ocp_operators.yml ```mermaid @@ -248,6 +209,45 @@ classDef rescue stroke:#665352,stroke-width:2px; ocp_storage_support___Print_PVs_for_block_storage_with_EXT44-->End ``` +### Graph for ocp_version.yml + +```mermaid +flowchart TD +Start +classDef block stroke:#3498db,stroke-width:2px; +classDef task stroke:#4b76bb,stroke-width:2px; +classDef includeTasks stroke:#16a085,stroke-width:2px; +classDef importTasks stroke:#34495e,stroke-width:2px; +classDef includeRole stroke:#2980b9,stroke-width:2px; +classDef importRole stroke:#699ba7,stroke-width:2px; +classDef includeVars stroke:#8e44ad,stroke-width:2px; +classDef rescue stroke:#665352,stroke-width:2px; + + Start-->|Task| ocp_version___Get_OCP_version_and_check_if_it_s_4_12_or_higher0[ocp version get ocp version and check if it s 4
12 or higher]:::task + ocp_version___Get_OCP_version_and_check_if_it_s_4_12_or_higher0-->|Task| ocp_version___Print_OCP_version1[ocp version print ocp version]:::task + ocp_version___Print_OCP_version1-->End +``` + +### Graph for vmware_firewall_rules.yml + +```mermaid +flowchart TD +Start +classDef block stroke:#3498db,stroke-width:2px; +classDef task stroke:#4b76bb,stroke-width:2px; +classDef includeTasks stroke:#16a085,stroke-width:2px; +classDef importTasks stroke:#34495e,stroke-width:2px; +classDef includeRole stroke:#2980b9,stroke-width:2px; +classDef importRole stroke:#699ba7,stroke-width:2px; +classDef includeVars stroke:#8e44ad,stroke-width:2px; +classDef rescue stroke:#665352,stroke-width:2px; + + Start-->|Task| vmware_firewall_rules___Build_a_list_of_all_the_clusters0[vmware firewall rules build a list of all the
clusters]:::task + vmware_firewall_rules___Build_a_list_of_all_the_clusters0-->|Task| vmware_firewall_rules___Gather_firewall_info_about_all_ESXi_Host_in_given_Cluster1[vmware firewall rules gather firewall info about
all esxi host in given cluster]:::task + vmware_firewall_rules___Gather_firewall_info_about_all_ESXi_Host_in_given_Cluster1-->|Task| vmware_firewall_rules___Debug_firewall_details2[vmware firewall rules debug firewall details
When: **validate migration debug is defined and validate
migration debug**]:::task + vmware_firewall_rules___Debug_firewall_details2-->End +``` + ## Playbook ```yml diff --git a/roles/vm_backup_restore/README.md b/roles/vm_backup_restore/README.md index a38feb5..273134e 100644 --- a/roles/vm_backup_restore/README.md +++ b/roles/vm_backup_restore/README.md @@ -33,41 +33,41 @@ Description: Virtual Machine backup and restore capabilities. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`vm_backup_restore_request`](defaults/main.yml#L7) | list | `[]` | None | True | Backup and restore list | +| [`vm_backup_restore_collect_obj_default_api_version`](defaults/main.yml#L46) | str | `{{ vm_backup_restore_kubevirt_api_version }}` | None | True | KubeVirt API version | +| [`vm_backup_restore_collect_obj_default_kind`](defaults/main.yml#L51) | str | `VirtualMachine` | None | True | Backup and restore default kind | | [`vm_backup_restore_kubevirt_api_version`](defaults/main.yml#L18) | str | `kubevirt.io/v1` | None | True | KubeVirt API version | -| [`vm_backup_restore_snapshot_kubevirt_api_version`](defaults/main.yml#L23) | str | `snapshot.kubevirt.io/v1alpha1` | None | True | KubeVirt API snapshot version | -| [`vm_backup_restore_openshift_host`](defaults/main.yml#L28) | str | `{{ openshift_host ¦ default(lookup('ansible.builtin.env', 'K8S_AUTH_HOST')) }}` | None | True | Location of the OpenShift host | | [`vm_backup_restore_openshift_api_key`](defaults/main.yml#L33) | str | `` | None | True | OpenShift API key | +| [`vm_backup_restore_openshift_host`](defaults/main.yml#L28) | str | `{{ openshift_host ¦ default(lookup('ansible.builtin.env', 'K8S_AUTH_HOST')) }}` | None | True | Location of the OpenShift host | | [`vm_backup_restore_openshift_verify_ssl`](defaults/main.yml#L40) | str | `` | None | True | OpenShift SSL certificate verification | -| [`vm_backup_restore_collect_obj_default_api_version`](defaults/main.yml#L46) | str | `{{ vm_backup_restore_kubevirt_api_version }}` | None | True | KubeVirt API version | -| [`vm_backup_restore_collect_obj_default_kind`](defaults/main.yml#L51) | str | `VirtualMachine` | None | True | Backup and restore default kind | -| [`vm_backup_restore_vm_wait_timeout`](defaults/main.yml#L56) | int | `300` | None | True | VM wait timeout | -| [`vm_backup_restore_vm_snapshot_wait_timeout`](defaults/main.yml#L61) | int | `600` | None | True | VM snapshot wait timeout | +| [`vm_backup_restore_request`](defaults/main.yml#L7) | list | `[]` | None | True | Backup and restore list | +| [`vm_backup_restore_snapshot_kubevirt_api_version`](defaults/main.yml#L23) | str | `snapshot.kubevirt.io/v1alpha1` | None | True | KubeVirt API snapshot version | | [`vm_backup_restore_vm_restore_wait_timeout`](defaults/main.yml#L66) | int | `600` | None | True | VM restore wait timeout | +| [`vm_backup_restore_vm_snapshot_wait_timeout`](defaults/main.yml#L61) | int | `600` | None | True | VM snapshot wait timeout | +| [`vm_backup_restore_vm_wait_timeout`](defaults/main.yml#L56) | int | `300` | None | True | VM wait timeout | 🖇️ Full descriptions for vars in defaults/main.yml
-`vm_backup_restore_request`: A list of requests for backup and restore +`vm_backup_restore_collect_obj_default_api_version`: KubeVirt API version +
+`vm_backup_restore_collect_obj_default_kind`: Default resource for the backup and restore
`vm_backup_restore_kubevirt_api_version`: KubeVirt API version
-`vm_backup_restore_snapshot_kubevirt_api_version`: KubeVirt API snapshot version +`vm_backup_restore_openshift_api_key`: OpenShift API key
`vm_backup_restore_openshift_host`: name of OpenShift host
-`vm_backup_restore_openshift_api_key`: OpenShift API key -
`vm_backup_restore_openshift_verify_ssl`: OpenShift SSL certificate verification
-`vm_backup_restore_collect_obj_default_api_version`: KubeVirt API version +`vm_backup_restore_request`: A list of requests for backup and restore
-`vm_backup_restore_collect_obj_default_kind`: Default resource for the backup and restore +`vm_backup_restore_snapshot_kubevirt_api_version`: KubeVirt API snapshot version
-`vm_backup_restore_vm_wait_timeout`: Amount of time to wait for VM lifecycle actions to complete +`vm_backup_restore_vm_restore_wait_timeout`: Amount of time to wait for VM snapshot to be completed
`vm_backup_restore_vm_snapshot_wait_timeout`: Amount of time to wait for VM snapshot to be completed
-`vm_backup_restore_vm_restore_wait_timeout`: Amount of time to wait for VM snapshot to be completed +`vm_backup_restore_vm_wait_timeout`: Amount of time to wait for VM lifecycle actions to complete

@@ -120,7 +120,7 @@ Description: Virtual Machine backup and restore capabilities. ## Task Flow Graphs -### Graph for _snapshot_vm.yml +### Graph for _restore_vm.yml ```mermaid flowchart TD @@ -134,12 +134,13 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _snapshot_vm___Create_Snapshot0[ snapshot vm create snapshot]:::task - _snapshot_vm___Create_Snapshot0-->|Task| _snapshot_vm___Print_Snapshot_Name1[ snapshot vm print snapshot name]:::task - _snapshot_vm___Print_Snapshot_Name1-->End + Start-->|Task| _restore_vm___Stop_Virtual_Machine0[ restore vm stop virtual machine]:::task + _restore_vm___Stop_Virtual_Machine0-->|Task| _restore_vm___Create_Restore1[ restore vm create restore]:::task + _restore_vm___Create_Restore1-->|Task| _restore_vm___Start_Virtual_Machine2[ restore vm start virtual machine
When: **vm restore snapshot start vm default true
bool**]:::task + _restore_vm___Start_Virtual_Machine2-->End ``` -### Graph for vm_restore.yml +### Graph for _snapshot_vm.yml ```mermaid flowchart TD @@ -153,14 +154,12 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| vm_restore___Verify_OpenShift_Connectivity_Details_Provided0[vm restore verify openshift connectivity details
provided]:::task - vm_restore___Verify_OpenShift_Connectivity_Details_Provided0-->|Task| vm_restore___Initialize_Variables1[vm restore initialize variables]:::task - vm_restore___Initialize_Variables1-->|Include role| vm_restore___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2(vm restore invoke collect vm role
include_role: infra openshift virtualization migration vm
collect):::includeRole - vm_restore___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2-->|Include task| vm_restore___Restore_VM_Snapshots__restore_vm_yml_3[vm restore restore vm snapshots
include_task: restore vm yml]:::includeTasks - vm_restore___Restore_VM_Snapshots__restore_vm_yml_3-->End + Start-->|Task| _snapshot_vm___Create_Snapshot0[ snapshot vm create snapshot]:::task + _snapshot_vm___Create_Snapshot0-->|Task| _snapshot_vm___Print_Snapshot_Name1[ snapshot vm print snapshot name]:::task + _snapshot_vm___Print_Snapshot_Name1-->End ``` -### Graph for _restore_vm.yml +### Graph for vm_backup.yml ```mermaid flowchart TD @@ -174,13 +173,14 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _restore_vm___Stop_Virtual_Machine0[ restore vm stop virtual machine]:::task - _restore_vm___Stop_Virtual_Machine0-->|Task| _restore_vm___Create_Restore1[ restore vm create restore]:::task - _restore_vm___Create_Restore1-->|Task| _restore_vm___Start_Virtual_Machine2[ restore vm start virtual machine
When: **vm restore snapshot start vm default true
bool**]:::task - _restore_vm___Start_Virtual_Machine2-->End + Start-->|Task| vm_backup___Verify_OpenShift_Connectivity_Details_Provided0[vm backup verify openshift connectivity details
provided]:::task + vm_backup___Verify_OpenShift_Connectivity_Details_Provided0-->|Task| vm_backup___Initialize_Variables1[vm backup initialize variables]:::task + vm_backup___Initialize_Variables1-->|Include role| vm_backup___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2(vm backup invoke collect vm role
include_role: infra openshift virtualization migration vm
collect):::includeRole + vm_backup___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2-->|Include task| vm_backup___Snapshot_VMs___snapshot_vm_yml_3[vm backup snapshot vms
include_task: snapshot vm yml]:::includeTasks + vm_backup___Snapshot_VMs___snapshot_vm_yml_3-->End ``` -### Graph for vm_backup.yml +### Graph for vm_restore.yml ```mermaid flowchart TD @@ -194,11 +194,11 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| vm_backup___Verify_OpenShift_Connectivity_Details_Provided0[vm backup verify openshift connectivity details
provided]:::task - vm_backup___Verify_OpenShift_Connectivity_Details_Provided0-->|Task| vm_backup___Initialize_Variables1[vm backup initialize variables]:::task - vm_backup___Initialize_Variables1-->|Include role| vm_backup___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2(vm backup invoke collect vm role
include_role: infra openshift virtualization migration vm
collect):::includeRole - vm_backup___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2-->|Include task| vm_backup___Snapshot_VMs___snapshot_vm_yml_3[vm backup snapshot vms
include_task: snapshot vm yml]:::includeTasks - vm_backup___Snapshot_VMs___snapshot_vm_yml_3-->End + Start-->|Task| vm_restore___Verify_OpenShift_Connectivity_Details_Provided0[vm restore verify openshift connectivity details
provided]:::task + vm_restore___Verify_OpenShift_Connectivity_Details_Provided0-->|Task| vm_restore___Initialize_Variables1[vm restore initialize variables]:::task + vm_restore___Initialize_Variables1-->|Include role| vm_restore___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2(vm restore invoke collect vm role
include_role: infra openshift virtualization migration vm
collect):::includeRole + vm_restore___Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_2-->|Include task| vm_restore___Restore_VM_Snapshots__restore_vm_yml_3[vm restore restore vm snapshots
include_task: restore vm yml]:::includeTasks + vm_restore___Restore_VM_Snapshots__restore_vm_yml_3-->End ``` ## Playbook diff --git a/roles/vm_hot_plug/README.md b/roles/vm_hot_plug/README.md index 676db8a..901f0d3 100644 --- a/roles/vm_hot_plug/README.md +++ b/roles/vm_hot_plug/README.md @@ -30,23 +30,23 @@ Description: Hot Plug Virtual Machine resources. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`vm_hot_plug_request`](defaults/main.yml#L7) | list | `[]` | None | True | Hot Plug Requests | -| [`vm_hot_plug_openshift_host`](defaults/main.yml#L26) | str | `{{ openshift_host }}` | None | True | OpenShift Host | | [`vm_hot_plug_api_key`](defaults/main.yml#L30) | str | `{{ openshift_api_key }}` | None | True | OpenShift API Key | -| [`vm_hot_plug_openshift_verify_ssl`](defaults/main.yml#L34) | str | `{{ openshift_verify_ssl }}` | None | True | Verify SSL Certificate | | [`vm_hot_plug_kubevirt_api_version`](defaults/main.yml#L38) | str | `kubevirt.io/v1` | None | True | KubeVirt API Version | +| [`vm_hot_plug_openshift_host`](defaults/main.yml#L26) | str | `{{ openshift_host }}` | None | True | OpenShift Host | +| [`vm_hot_plug_openshift_verify_ssl`](defaults/main.yml#L34) | str | `{{ openshift_verify_ssl }}` | None | True | Verify SSL Certificate | +| [`vm_hot_plug_request`](defaults/main.yml#L7) | list | `[]` | None | True | Hot Plug Requests | 🖇️ Full descriptions for vars in defaults/main.yml
-`vm_hot_plug_request`: List of Hot Plug Requests +`vm_hot_plug_api_key`: OpenShift API Key
-`vm_hot_plug_openshift_host`: OpenShift Host +`vm_hot_plug_kubevirt_api_version`: KubeVirt API Version
-`vm_hot_plug_api_key`: OpenShift API Key +`vm_hot_plug_openshift_host`: OpenShift Host
`vm_hot_plug_openshift_verify_ssl`: Verify SSL Certificate
-`vm_hot_plug_kubevirt_api_version`: KubeVirt API Version +`vm_hot_plug_request`: List of Hot Plug Requests

@@ -88,7 +88,7 @@ Description: Hot Plug Virtual Machine resources. ## Task Flow Graphs -### Graph for main.yml +### Graph for _compute.yml ```mermaid flowchart TD @@ -102,10 +102,10 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| Initialize_Variables0[initialize variables]:::task - Initialize_Variables0-->|Include role| Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_1(invoke collect vm role
include_role: infra openshift virtualization migration vm
collect):::includeRole - Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_1-->|Include task| Process_Hot_Plug_VM__process_vm_yml_2[process hot plug vm
include_task: process vm yml]:::includeTasks - Process_Hot_Plug_VM__process_vm_yml_2-->End + Start-->|Task| _compute___Verify_Instance_Type_exists_on_VM0[ compute verify instance type exists on vm
When: **instancetype in vm hot plug vm compute**]:::task + _compute___Verify_Instance_Type_exists_on_VM0-->|Task| _compute___Verify_Instance_Type_does_not_exist_on_VM1[ compute verify instance type does not exist on
vm
When: **cpu in vm hot plug vm compute or memory in vm
hot plug vm compute**]:::task + _compute___Verify_Instance_Type_does_not_exist_on_VM1-->|Task| _compute___Patch_VM_with_Compute_Modifications2[ compute patch vm with compute modifications]:::task + _compute___Patch_VM_with_Compute_Modifications2-->End ``` ### Graph for _process_vm.yml @@ -134,7 +134,7 @@ classDef rescue stroke:#665352,stroke-width:2px; _process_vm___Verify_the_VirtualMachine_restarted_infra_openshift_virtualization_migration_vm_lifecycle_1-->End ``` -### Graph for _compute.yml +### Graph for _storage.yml ```mermaid flowchart TD @@ -148,13 +148,11 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _compute___Verify_Instance_Type_exists_on_VM0[ compute verify instance type exists on vm
When: **instancetype in vm hot plug vm compute**]:::task - _compute___Verify_Instance_Type_exists_on_VM0-->|Task| _compute___Verify_Instance_Type_does_not_exist_on_VM1[ compute verify instance type does not exist on
vm
When: **cpu in vm hot plug vm compute or memory in vm
hot plug vm compute**]:::task - _compute___Verify_Instance_Type_does_not_exist_on_VM1-->|Task| _compute___Patch_VM_with_Compute_Modifications2[ compute patch vm with compute modifications]:::task - _compute___Patch_VM_with_Compute_Modifications2-->End + Start-->|Task| _storage___Perform_VM_Storage_Operation0[ storage perform vm storage operation
When: **state in vm hot plug storage instance and
vm hot plug storage instance state absent and
vm hot plug vm response obj spec template spec
domain devices disks default
selectattr name equalto vm hot plug storage
instance name list length 0 or
state not in vm hot plug storage instance or
state in vm hot plug storage instance and vm
hot plug storage instance state absent
and vm hot plug vm response obj spec template
spec domain devices disks default
selectattr name equalto vm hot plug storage
instance name list length 0**]:::task + _storage___Perform_VM_Storage_Operation0-->End ``` -### Graph for _storage.yml +### Graph for main.yml ```mermaid flowchart TD @@ -168,8 +166,10 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _storage___Perform_VM_Storage_Operation0[ storage perform vm storage operation
When: **state in vm hot plug storage instance and
vm hot plug storage instance state absent and
vm hot plug vm response obj spec template spec
domain devices disks default
selectattr name equalto vm hot plug storage
instance name list length 0 or
state not in vm hot plug storage instance or
state in vm hot plug storage instance and vm
hot plug storage instance state absent
and vm hot plug vm response obj spec template
spec domain devices disks default
selectattr name equalto vm hot plug storage
instance name list length 0**]:::task - _storage___Perform_VM_Storage_Operation0-->End + Start-->|Task| Initialize_Variables0[initialize variables]:::task + Initialize_Variables0-->|Include role| Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_1(invoke collect vm role
include_role: infra openshift virtualization migration vm
collect):::includeRole + Invoke_Collect_VM_Role_infra_openshift_virtualization_migration_vm_collect_1-->|Include task| Process_Hot_Plug_VM__process_vm_yml_2[process hot plug vm
include_task: process vm yml]:::includeTasks + Process_Hot_Plug_VM__process_vm_yml_2-->End ``` ## Playbook diff --git a/roles/vm_lifecycle/README.md b/roles/vm_lifecycle/README.md index 1abb21b..6f567c7 100644 --- a/roles/vm_lifecycle/README.md +++ b/roles/vm_lifecycle/README.md @@ -30,29 +30,29 @@ Description: Management of the lifecycle activities of Virtual Machines. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`vm_lifecycle_vm_operations_request`](defaults/main.yml#L6) | list | `[]` | None | True | List of VMs to perform lifecycle operations | | [`vm_lifecycle_kubevirt_api_version`](defaults/main.yml#L17) | str | `kubevirt.io/v1` | None | True | KubeVirt API Version | -| [`vm_lifecycle_openshift_host`](defaults/main.yml#L21) | str | `{{ openshift_host }}` | None | True | OpenShift host | | [`vm_lifecycle_openshift_api_key`](defaults/main.yml#L25) | str | `{{ openshift_api_key }}` | None | True | OpenShift API Key | +| [`vm_lifecycle_openshift_host`](defaults/main.yml#L21) | str | `{{ openshift_host }}` | None | True | OpenShift host | | [`vm_lifecycle_openshift_verify_ssl`](defaults/main.yml#L29) | str | `{{ openshift_verify_ssl }}` | None | True | Enable SSL Verification | -| [`vm_lifecycle_verify_retries`](defaults/main.yml#L34) | int | `100` | None | True | Number of retries | | [`vm_lifecycle_verify_delay`](defaults/main.yml#L38) | int | `10` | None | True | Number of delays | +| [`vm_lifecycle_verify_retries`](defaults/main.yml#L34) | int | `100` | None | True | Number of retries | +| [`vm_lifecycle_vm_operations_request`](defaults/main.yml#L6) | list | `[]` | None | True | List of VMs to perform lifecycle operations | 🖇️ Full descriptions for vars in defaults/main.yml
-`vm_lifecycle_vm_operations_request`: List of VM Lifecycle Operation requests -
`vm_lifecycle_kubevirt_api_version`: KubeVirt API Version
-`vm_lifecycle_openshift_host`: OpenShift host -
`vm_lifecycle_openshift_api_key`: OpenShift API Key
+`vm_lifecycle_openshift_host`: OpenShift host +
`vm_lifecycle_openshift_verify_ssl`: Variable to enable SSL verification
+`vm_lifecycle_verify_delay`: Number of delays +
`vm_lifecycle_verify_retries`: Number of retries
-`vm_lifecycle_verify_delay`: Number of delays +`vm_lifecycle_vm_operations_request`: List of VM Lifecycle Operation requests

@@ -65,18 +65,18 @@ Description: Management of the lifecycle activities of Virtual Machines. | Var | Type | Value | |--------------|--------------|-------------| | [vm_lifecycle_valid_vm_operations](vars/main.yml#L2) | dict | `{}` | +| [vm_lifecycle_valid_vm_operations.restart](vars/main.yml#L10) | dict | `{}` | +| [vm_lifecycle_valid_vm_operations.restart.endpoint](vars/main.yml#L11) | str | `restart` | +| [vm_lifecycle_valid_vm_operations.restart.idempotent](vars/main.yml#L14) | bool | `True` | +| [vm_lifecycle_valid_vm_operations.restart.ready](vars/main.yml#L13) | bool | `True` | +| [vm_lifecycle_valid_vm_operations.restart.status](vars/main.yml#L12) | str | `Running` | | [vm_lifecycle_valid_vm_operations.start](vars/main.yml#L3) | dict | `{}` | | [vm_lifecycle_valid_vm_operations.start.endpoint](vars/main.yml#L4) | str | `start` | -| [vm_lifecycle_valid_vm_operations.start.status](vars/main.yml#L5) | str | `Running` | | [vm_lifecycle_valid_vm_operations.start.ready](vars/main.yml#L6) | bool | `True` | +| [vm_lifecycle_valid_vm_operations.start.status](vars/main.yml#L5) | str | `Running` | | [vm_lifecycle_valid_vm_operations.stop](vars/main.yml#L7) | dict | `{}` | | [vm_lifecycle_valid_vm_operations.stop.endpoint](vars/main.yml#L8) | str | `stop` | | [vm_lifecycle_valid_vm_operations.stop.status](vars/main.yml#L9) | str | `Stopped` | -| [vm_lifecycle_valid_vm_operations.restart](vars/main.yml#L10) | dict | `{}` | -| [vm_lifecycle_valid_vm_operations.restart.endpoint](vars/main.yml#L11) | str | `restart` | -| [vm_lifecycle_valid_vm_operations.restart.status](vars/main.yml#L12) | str | `Running` | -| [vm_lifecycle_valid_vm_operations.restart.ready](vars/main.yml#L13) | bool | `True` | -| [vm_lifecycle_valid_vm_operations.restart.idempotent](vars/main.yml#L14) | bool | `True` | ### Tasks @@ -118,24 +118,6 @@ Description: Management of the lifecycle activities of Virtual Machines. ## Task Flow Graphs -### Graph for _verify_operation.yml - -```mermaid -flowchart TD -Start -classDef block stroke:#3498db,stroke-width:2px; -classDef task stroke:#4b76bb,stroke-width:2px; -classDef includeTasks stroke:#16a085,stroke-width:2px; -classDef importTasks stroke:#34495e,stroke-width:2px; -classDef includeRole stroke:#2980b9,stroke-width:2px; -classDef importRole stroke:#699ba7,stroke-width:2px; -classDef includeVars stroke:#8e44ad,stroke-width:2px; -classDef rescue stroke:#665352,stroke-width:2px; - - Start-->|Task| _verify_operation___Verify_VMs0[ verify operation verify vms]:::task - _verify_operation___Verify_VMs0-->End -``` - ### Graph for _collect_vms.yml ```mermaid @@ -181,6 +163,24 @@ classDef rescue stroke:#665352,stroke-width:2px; _perform_operation___Perform_VM_Operation0-->End ``` +### Graph for _verify_operation.yml + +```mermaid +flowchart TD +Start +classDef block stroke:#3498db,stroke-width:2px; +classDef task stroke:#4b76bb,stroke-width:2px; +classDef includeTasks stroke:#16a085,stroke-width:2px; +classDef importTasks stroke:#34495e,stroke-width:2px; +classDef includeRole stroke:#2980b9,stroke-width:2px; +classDef importRole stroke:#699ba7,stroke-width:2px; +classDef includeVars stroke:#8e44ad,stroke-width:2px; +classDef rescue stroke:#665352,stroke-width:2px; + + Start-->|Task| _verify_operation___Verify_VMs0[ verify operation verify vms]:::task + _verify_operation___Verify_VMs0-->End +``` + ### Graph for vm_operations.yml ```mermaid diff --git a/roles/vm_mac_address/README.md b/roles/vm_mac_address/README.md index 407fcf3..8fe2bc1 100644 --- a/roles/vm_mac_address/README.md +++ b/roles/vm_mac_address/README.md @@ -26,23 +26,23 @@ Description: Management of Virtual Machine MAC Addresses. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`vm_mac_address_request`](defaults/main.yml#L7) | list | `[]` | None | True | MAC Address Request | -| [`vm_mac_address_openshift_host`](defaults/main.yml#L17) | str | `{{ openshift_host }}` | None | True | OpenShift Host | | [`vm_mac_address_api_key`](defaults/main.yml#L21) | str | `{{ openshift_api_key }}` | None | True | OpenShift API Key | -| [`vm_mac_address_openshift_verify_ssl`](defaults/main.yml#L25) | str | `{{ openshift_verify_ssl }}` | None | True | Verify SSL Certificate | | [`vm_mac_address_kubevirt_api_version`](defaults/main.yml#L29) | str | `kubevirt.io/v1` | None | True | KubeVirt API Version | +| [`vm_mac_address_openshift_host`](defaults/main.yml#L17) | str | `{{ openshift_host }}` | None | True | OpenShift Host | +| [`vm_mac_address_openshift_verify_ssl`](defaults/main.yml#L25) | str | `{{ openshift_verify_ssl }}` | None | True | Verify SSL Certificate | +| [`vm_mac_address_request`](defaults/main.yml#L7) | list | `[]` | None | True | MAC Address Request | 🖇️ Full descriptions for vars in defaults/main.yml
-`vm_mac_address_request`: List of MAC Address Requests +`vm_mac_address_api_key`: OpenShift API Key
-`vm_mac_address_openshift_host`: OpenShift Host +`vm_mac_address_kubevirt_api_version`: KubeVirt API Version
-`vm_mac_address_api_key`: OpenShift API Key +`vm_mac_address_openshift_host`: OpenShift Host
`vm_mac_address_openshift_verify_ssl`: Verify SSL Certificate
-`vm_mac_address_kubevirt_api_version`: KubeVirt API Version +`vm_mac_address_request`: List of MAC Address Requests

@@ -76,7 +76,7 @@ Description: Management of Virtual Machine MAC Addresses. ## Task Flow Graphs -### Graph for main.yml +### Graph for _compute_patch.yml ```mermaid flowchart TD @@ -90,13 +90,13 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| Verify_vm_mac_address_request_Variable_Provided0[verify vm mac address request variable provided]:::task - Verify_vm_mac_address_request_Variable_Provided0-->|Task| Verify_Required_Properties_Provided1[verify required properties provided]:::task - Verify_Required_Properties_Provided1-->|Include task| Process_MAC_Address_VM__process_vm_yml_2[process mac address vm
include_task: process vm yml]:::includeTasks - Process_MAC_Address_VM__process_vm_yml_2-->End + Start-->|Task| _compute_patch___Verify_Valid_MAC_Address_Provided0[ compute patch verify valid mac address provided]:::task + _compute_patch___Verify_Valid_MAC_Address_Provided0-->|Task| _compute_patch___Locate_Interface_Index1[ compute patch locate interface index]:::task + _compute_patch___Locate_Interface_Index1-->|Task| _compute_patch___Create_Patch_Item2[ compute patch create patch item
When: **vm mac address interface idx length 0 and
macaddress not in vm mac address vm interfaces
vm mac address interface idx 0 or
macaddress in vm mac address vm interfaces vm
mac address interface idx 0 and vm mac
address vm interfaces vm mac address interface
idx 0 macaddress vm mac address interface
macaddress**]:::task + _compute_patch___Create_Patch_Item2-->End ``` -### Graph for _compute_patch.yml +### Graph for _process_vm.yml ```mermaid flowchart TD @@ -110,13 +110,15 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _compute_patch___Verify_Valid_MAC_Address_Provided0[ compute patch verify valid mac address provided]:::task - _compute_patch___Verify_Valid_MAC_Address_Provided0-->|Task| _compute_patch___Locate_Interface_Index1[ compute patch locate interface index]:::task - _compute_patch___Locate_Interface_Index1-->|Task| _compute_patch___Create_Patch_Item2[ compute patch create patch item
When: **vm mac address interface idx length 0 and
macaddress not in vm mac address vm interfaces
vm mac address interface idx 0 or
macaddress in vm mac address vm interfaces vm
mac address interface idx 0 and vm mac
address vm interfaces vm mac address interface
idx 0 macaddress vm mac address interface
macaddress**]:::task - _compute_patch___Create_Patch_Item2-->End + Start-->|Task| _process_vm___Initialize_Variables0[ process vm initialize variables]:::task + _process_vm___Initialize_Variables0-->|Task| _process_vm___Query_for_Virtual_Machine1[ process vm query for virtual machine]:::task + _process_vm___Query_for_Virtual_Machine1-->|Task| _process_vm___Verify_Virtual_Machine_Exists2[ process vm verify virtual machine exists]:::task + _process_vm___Verify_Virtual_Machine_Exists2-->|Include task| _process_vm___Compute_Patch_for_Interface__compute_patch_yml_3[ process vm compute patch for interface
When: **vm mac address interface name default true
length 0 and vm mac address interface
macaddress default true string length
0**
include_task: compute patch yml]:::includeTasks + _process_vm___Compute_Patch_for_Interface__compute_patch_yml_3-->|Task| _process_vm___Update_VM_MAC_Address4[ process vm update vm mac address
When: **vm mac address interfaces patch length 0**]:::task + _process_vm___Update_VM_MAC_Address4-->End ``` -### Graph for _process_vm.yml +### Graph for main.yml ```mermaid flowchart TD @@ -130,12 +132,10 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _process_vm___Initialize_Variables0[ process vm initialize variables]:::task - _process_vm___Initialize_Variables0-->|Task| _process_vm___Query_for_Virtual_Machine1[ process vm query for virtual machine]:::task - _process_vm___Query_for_Virtual_Machine1-->|Task| _process_vm___Verify_Virtual_Machine_Exists2[ process vm verify virtual machine exists]:::task - _process_vm___Verify_Virtual_Machine_Exists2-->|Include task| _process_vm___Compute_Patch_for_Interface__compute_patch_yml_3[ process vm compute patch for interface
When: **vm mac address interface name default true
length 0 and vm mac address interface
macaddress default true string length
0**
include_task: compute patch yml]:::includeTasks - _process_vm___Compute_Patch_for_Interface__compute_patch_yml_3-->|Task| _process_vm___Update_VM_MAC_Address4[ process vm update vm mac address
When: **vm mac address interfaces patch length 0**]:::task - _process_vm___Update_VM_MAC_Address4-->End + Start-->|Task| Verify_vm_mac_address_request_Variable_Provided0[verify vm mac address request variable provided]:::task + Verify_vm_mac_address_request_Variable_Provided0-->|Task| Verify_Required_Properties_Provided1[verify required properties provided]:::task + Verify_Required_Properties_Provided1-->|Include task| Process_MAC_Address_VM__process_vm_yml_2[process mac address vm
include_task: process vm yml]:::includeTasks + Process_MAC_Address_VM__process_vm_yml_2-->End ``` ## Playbook diff --git a/roles/vm_ssh/README.md b/roles/vm_ssh/README.md index 2ce8f77..146502a 100644 --- a/roles/vm_ssh/README.md +++ b/roles/vm_ssh/README.md @@ -28,29 +28,29 @@ Description: Management of SSH keys for Virtual Machines in OpenShift. | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`vm_ssh_request`](defaults/main.yml#L7) | dict | `{}` | None | True | SSH Requests | -| [`vm_ssh_openshift_host`](defaults/main.yml#L26) | str | `{{ openshift_host }}` | None | True | OpenShift host | -| [`vm_ssh_openshift_api_key`](defaults/main.yml#L31) | str | `{{ openshift_api_key }}` | None | True | OpenShift API Key | -| [`vm_ssh_openshift_verify_ssl`](defaults/main.yml#L36) | str | `{{ openshift_verify_ssl }}` | None | True | Verify SSL Certificate | | [`vm_ssh_default_users`](defaults/main.yml#L41) | list | `[]` | None | True | List of default SSH users | | [`vm_ssh_default_users.0`](defaults/main.yml#L42) | str | `root` | None | None | None | | [`vm_ssh_kubevirt_api_version`](defaults/main.yml#L47) | str | `kubevirt.io/v1` | None | True | KubeVirt API Version | +| [`vm_ssh_openshift_api_key`](defaults/main.yml#L31) | str | `{{ openshift_api_key }}` | None | True | OpenShift API Key | +| [`vm_ssh_openshift_host`](defaults/main.yml#L26) | str | `{{ openshift_host }}` | None | True | OpenShift host | +| [`vm_ssh_openshift_verify_ssl`](defaults/main.yml#L36) | str | `{{ openshift_verify_ssl }}` | None | True | Verify SSL Certificate | +| [`vm_ssh_request`](defaults/main.yml#L7) | dict | `{}` | None | True | SSH Requests | 🖇️ Full descriptions for vars in defaults/main.yml
-`vm_ssh_request`: SSH Requests +`vm_ssh_default_users`: List of default SSH users (default user: root)
-`vm_ssh_openshift_host`: OpenShift host +`vm_ssh_default_users.0`: None
-`vm_ssh_openshift_api_key`: OpenShift API Key +`vm_ssh_kubevirt_api_version`: KubeVirt API Version
-`vm_ssh_openshift_verify_ssl`: Variable to enable SSL verification +`vm_ssh_openshift_api_key`: OpenShift API Key
-`vm_ssh_default_users`: List of default SSH users (default user: root) +`vm_ssh_openshift_host`: OpenShift host
-`vm_ssh_default_users.0`: None +`vm_ssh_openshift_verify_ssl`: Variable to enable SSL verification
-`vm_ssh_kubevirt_api_version`: KubeVirt API Version +`vm_ssh_request`: SSH Requests

@@ -107,7 +107,7 @@ Description: Management of SSH keys for Virtual Machines in OpenShift. ## Task Flow Graphs -### Graph for _manage_secrets.yml +### Graph for _manage_secret_keys.yml ```mermaid flowchart TD @@ -121,14 +121,19 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _manage_secrets___Verify_Secret_Namespace_and_Name_Provided0[ manage secrets verify secret namespace and name
provided]:::task - _manage_secrets___Verify_Secret_Namespace_and_Name_Provided0-->|Task| _manage_secrets___Initialize_SSH_Keys_Variables1[ manage secrets initialize ssh keys variables]:::task - _manage_secrets___Initialize_SSH_Keys_Variables1-->|Include task| _manage_secrets___Manage_Secret_SSH_Keys__manage_secret_keys_yml_2[ manage secrets manage secret ssh keys
When: **ssh keys in ssh secret**
include_task: manage secret keys yml]:::includeTasks - _manage_secrets___Manage_Secret_SSH_Keys__manage_secret_keys_yml_2-->|Task| _manage_secrets___Create_SSH_Key_Secret3[ manage secrets create ssh key secret]:::task - _manage_secrets___Create_SSH_Key_Secret3-->End + Start-->|Task| _manage_secret_keys___Verify_SSH_path_location_or_inline_content_provided0[ manage secret keys verify ssh path location or
inline content provided]:::task + _manage_secret_keys___Verify_SSH_path_location_or_inline_content_provided0-->|Block Start| _manage_secret_keys___Process_Key_from_Path1_block_start_0[[ manage secret keys process key from path
When: **path in ssh key**]]:::block + _manage_secret_keys___Process_Key_from_Path1_block_start_0-->|Task| _manage_secret_keys___Get_SSH_Key_Path_information0[ manage secret keys get ssh key path information]:::task + _manage_secret_keys___Get_SSH_Key_Path_information0-->|Task| _manage_secret_keys___Verify_SSH_Key_Path_Exists1[ manage secret keys verify ssh key path exists]:::task + _manage_secret_keys___Verify_SSH_Key_Path_Exists1-->|Task| _manage_secret_keys___Add__path__Key_to_Dict2[ manage secret keys add path key to dict]:::task + _manage_secret_keys___Add__path__Key_to_Dict2-.->|End of Block| _manage_secret_keys___Process_Key_from_Path1_block_start_0 + _manage_secret_keys___Add__path__Key_to_Dict2-->|Block Start| _manage_secret_keys___Process_Key_from_Path2_block_start_0[[ manage secret keys process key from path
When: **content in ssh key**]]:::block + _manage_secret_keys___Process_Key_from_Path2_block_start_0-->|Task| _manage_secret_keys___Add__content__Key_to_Dict0[ manage secret keys add content key to dict]:::task + _manage_secret_keys___Add__content__Key_to_Dict0-.->|End of Block| _manage_secret_keys___Process_Key_from_Path2_block_start_0 + _manage_secret_keys___Add__content__Key_to_Dict0-->End ``` -### Graph for main.yml +### Graph for _manage_secrets.yml ```mermaid flowchart TD @@ -142,17 +147,14 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| Verify_OpenShift_Connectivity_Details_Provided0[verify openshift connectivity details provided]:::task - Verify_OpenShift_Connectivity_Details_Provided0-->|Block Start| Manage_Secrets1_block_start_0[[manage secrets
When: **secrets in vm ssh request default**]]:::block - Manage_Secrets1_block_start_0-->|Include task| Process_Secrets__manage_secrets_yml_0[process secrets
include_task: manage secrets yml]:::includeTasks - Process_Secrets__manage_secrets_yml_0-.->|End of Block| Manage_Secrets1_block_start_0 - Process_Secrets__manage_secrets_yml_0-->|Block Start| Manage_Targets2_block_start_0[[manage targets
When: **targets in vm ssh request default**]]:::block - Manage_Targets2_block_start_0-->|Include task| Process_Targets__manage_targets_yml_0[process targets
include_task: manage targets yml]:::includeTasks - Process_Targets__manage_targets_yml_0-.->|End of Block| Manage_Targets2_block_start_0 - Process_Targets__manage_targets_yml_0-->End + Start-->|Task| _manage_secrets___Verify_Secret_Namespace_and_Name_Provided0[ manage secrets verify secret namespace and name
provided]:::task + _manage_secrets___Verify_Secret_Namespace_and_Name_Provided0-->|Task| _manage_secrets___Initialize_SSH_Keys_Variables1[ manage secrets initialize ssh keys variables]:::task + _manage_secrets___Initialize_SSH_Keys_Variables1-->|Include task| _manage_secrets___Manage_Secret_SSH_Keys__manage_secret_keys_yml_2[ manage secrets manage secret ssh keys
When: **ssh keys in ssh secret**
include_task: manage secret keys yml]:::includeTasks + _manage_secrets___Manage_Secret_SSH_Keys__manage_secret_keys_yml_2-->|Task| _manage_secrets___Create_SSH_Key_Secret3[ manage secrets create ssh key secret]:::task + _manage_secrets___Create_SSH_Key_Secret3-->End ``` -### Graph for _manage_secret_keys.yml +### Graph for _manage_target.yml ```mermaid flowchart TD @@ -166,16 +168,13 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _manage_secret_keys___Verify_SSH_path_location_or_inline_content_provided0[ manage secret keys verify ssh path location or
inline content provided]:::task - _manage_secret_keys___Verify_SSH_path_location_or_inline_content_provided0-->|Block Start| _manage_secret_keys___Process_Key_from_Path1_block_start_0[[ manage secret keys process key from path
When: **path in ssh key**]]:::block - _manage_secret_keys___Process_Key_from_Path1_block_start_0-->|Task| _manage_secret_keys___Get_SSH_Key_Path_information0[ manage secret keys get ssh key path information]:::task - _manage_secret_keys___Get_SSH_Key_Path_information0-->|Task| _manage_secret_keys___Verify_SSH_Key_Path_Exists1[ manage secret keys verify ssh key path exists]:::task - _manage_secret_keys___Verify_SSH_Key_Path_Exists1-->|Task| _manage_secret_keys___Add__path__Key_to_Dict2[ manage secret keys add path key to dict]:::task - _manage_secret_keys___Add__path__Key_to_Dict2-.->|End of Block| _manage_secret_keys___Process_Key_from_Path1_block_start_0 - _manage_secret_keys___Add__path__Key_to_Dict2-->|Block Start| _manage_secret_keys___Process_Key_from_Path2_block_start_0[[ manage secret keys process key from path
When: **content in ssh key**]]:::block - _manage_secret_keys___Process_Key_from_Path2_block_start_0-->|Task| _manage_secret_keys___Add__content__Key_to_Dict0[ manage secret keys add content key to dict]:::task - _manage_secret_keys___Add__content__Key_to_Dict0-.->|End of Block| _manage_secret_keys___Process_Key_from_Path2_block_start_0 - _manage_secret_keys___Add__content__Key_to_Dict0-->End + Start-->|Task| _manage_target___Update_VirtualMachine_with_SSH_Configuration0[ manage target update virtualmachine with ssh
configuration]:::task + _manage_target___Update_VirtualMachine_with_SSH_Configuration0-->|Task| _manage_target___Query_VM_for_Updated_Configuration1[ manage target query vm for updated
configuration]:::task + _manage_target___Query_VM_for_Updated_Configuration1-->|Block Start| _manage_target___Restart_the_machine2_block_start_0[[ manage target restart the machine
When: **resources in vm ssh update response and vm ssh
update response length 0 and status in vm
ssh update response resources 0 and conditions
in vm ssh update response resources 0 status and
vm ssh update response resources 0 status
conditions selectattr type equalto
restartrequired list length 0**]]:::block + _manage_target___Restart_the_machine2_block_start_0-->|Include role| _manage_target___Restart_the_VirtualMachine_infra_openshift_virtualization_migration_vm_lifecycle_0( manage target restart the virtualmachine
include_role: infra openshift virtualization migration vm
lifecycle):::includeRole + _manage_target___Restart_the_VirtualMachine_infra_openshift_virtualization_migration_vm_lifecycle_0-->|Include role| _manage_target___Verify_the_VirtualMachine_restarted_infra_openshift_virtualization_migration_vm_lifecycle_1( manage target verify the virtualmachine
restarted
include_role: infra openshift virtualization migration vm
lifecycle):::includeRole + _manage_target___Verify_the_VirtualMachine_restarted_infra_openshift_virtualization_migration_vm_lifecycle_1-.->|End of Block| _manage_target___Restart_the_machine2_block_start_0 + _manage_target___Verify_the_VirtualMachine_restarted_infra_openshift_virtualization_migration_vm_lifecycle_1-->End ``` ### Graph for _manage_targets.yml @@ -198,7 +197,7 @@ classDef rescue stroke:#665352,stroke-width:2px; _manage_targets___Update_VirtualMachine_with_SSH_Configurations__manage_target_yml_2-->End ``` -### Graph for _manage_target.yml +### Graph for main.yml ```mermaid flowchart TD @@ -212,13 +211,14 @@ classDef importRole stroke:#699ba7,stroke-width:2px; classDef includeVars stroke:#8e44ad,stroke-width:2px; classDef rescue stroke:#665352,stroke-width:2px; - Start-->|Task| _manage_target___Update_VirtualMachine_with_SSH_Configuration0[ manage target update virtualmachine with ssh
configuration]:::task - _manage_target___Update_VirtualMachine_with_SSH_Configuration0-->|Task| _manage_target___Query_VM_for_Updated_Configuration1[ manage target query vm for updated
configuration]:::task - _manage_target___Query_VM_for_Updated_Configuration1-->|Block Start| _manage_target___Restart_the_machine2_block_start_0[[ manage target restart the machine
When: **resources in vm ssh update response and vm ssh
update response length 0 and status in vm
ssh update response resources 0 and conditions
in vm ssh update response resources 0 status and
vm ssh update response resources 0 status
conditions selectattr type equalto
restartrequired list length 0**]]:::block - _manage_target___Restart_the_machine2_block_start_0-->|Include role| _manage_target___Restart_the_VirtualMachine_infra_openshift_virtualization_migration_vm_lifecycle_0( manage target restart the virtualmachine
include_role: infra openshift virtualization migration vm
lifecycle):::includeRole - _manage_target___Restart_the_VirtualMachine_infra_openshift_virtualization_migration_vm_lifecycle_0-->|Include role| _manage_target___Verify_the_VirtualMachine_restarted_infra_openshift_virtualization_migration_vm_lifecycle_1( manage target verify the virtualmachine
restarted
include_role: infra openshift virtualization migration vm
lifecycle):::includeRole - _manage_target___Verify_the_VirtualMachine_restarted_infra_openshift_virtualization_migration_vm_lifecycle_1-.->|End of Block| _manage_target___Restart_the_machine2_block_start_0 - _manage_target___Verify_the_VirtualMachine_restarted_infra_openshift_virtualization_migration_vm_lifecycle_1-->End + Start-->|Task| Verify_OpenShift_Connectivity_Details_Provided0[verify openshift connectivity details provided]:::task + Verify_OpenShift_Connectivity_Details_Provided0-->|Block Start| Manage_Secrets1_block_start_0[[manage secrets
When: **secrets in vm ssh request default**]]:::block + Manage_Secrets1_block_start_0-->|Include task| Process_Secrets__manage_secrets_yml_0[process secrets
include_task: manage secrets yml]:::includeTasks + Process_Secrets__manage_secrets_yml_0-.->|End of Block| Manage_Secrets1_block_start_0 + Process_Secrets__manage_secrets_yml_0-->|Block Start| Manage_Targets2_block_start_0[[manage targets
When: **targets in vm ssh request default**]]:::block + Manage_Targets2_block_start_0-->|Include task| Process_Targets__manage_targets_yml_0[process targets
include_task: manage targets yml]:::includeTasks + Process_Targets__manage_targets_yml_0-.->|End of Block| Manage_Targets2_block_start_0 + Process_Targets__manage_targets_yml_0-->End ``` ## Playbook diff --git a/scripts/check-documentation.sh b/scripts/check-documentation.sh new file mode 100755 index 0000000..fcd552f --- /dev/null +++ b/scripts/check-documentation.sh @@ -0,0 +1,27 @@ +#!/bin/bash -eu +# +# Pre-commit hook script to verify documentation is up-to-date +# This checks if README.md or any role READMEs have uncommitted changes +# after running update-documentation.sh +# + +if ! git diff --exit-code --quiet README.md roles/*/README.md 2>/dev/null; then + echo "" + echo "❌ Documentation is out of date!" + echo "" + echo "Changed files:" + git diff --name-only README.md roles/*/README.md 2>/dev/null | sed "s/^/ - /" + echo "" + echo "The pre-commit hook regenerated documentation, but it differs from what is committed." + echo "This means your changes affected the auto-generated docs." + echo "" + echo "The changes have been applied to your working directory." + echo "Please review and stage them:" + echo "" + echo " git add README.md roles/*/README.md" + echo "" + exit 1 +fi + +echo "✓ Documentation is up to date" +exit 0 diff --git a/scripts/docsible-collection-template.md b/scripts/docsible-collection-template.md index 70c4898..8e13840 100644 --- a/scripts/docsible-collection-template.md +++ b/scripts/docsible-collection-template.md @@ -83,7 +83,7 @@ Description: Not available. {%- endif %} {%- endmacro %} {%- macro render_arguments_list(arguments, level=0) %} -{%- for arg, details in arguments.items() %} +{%- for arg, details in arguments.items() | sort %} {%- set indent = ' ' * level %} {{ indent }}- **{{ arg }}** {{ indent }} - **Required**: {{ details.required | default('false') }} @@ -123,7 +123,7 @@ Description: Not available. {%- if role.argument_specs %}
🧩 {{ role.name }} Argument Specifications in meta/argument_specs -{% for section, specs in role.argument_specs.argument_specs.items() %} +{% for section, specs in role.argument_specs.argument_specs.items() | sort %} #### Key: {{ section }} **Description**: {{ specs.description or specs.short_description or 'No description provided' }} {{ render_arguments_list(specs.options) }} @@ -141,14 +141,14 @@ Description: Not available. #### {{ role.name }} File: [defaults/{{ defaultfile.file }}]({{ render_repo_role_readme_link(collection.repository, role.name, collection.repository_type, collection.repository_branch) }}/defaults/{{ defaultfile.file }}) {# Cycle used for deciding to set Title and Required Column #} {% set ns = namespace(details_required = false, details_title = false, details_choices = false) %} -{%- for key, details in defaultfile.data.items() -%} +{%- for key, details in defaultfile.data.items() | sort -%} {%- if details.required is not none -%}{%- set ns.details_required = true -%}{%- endif -%} {%- if details.title is not none -%}{%- set ns.details_title = true -%}{%- endif -%} {%- if details.choices != None -%}{%- set ns.details_choices = true -%}{%- endif -%} {%- endfor -%} | Var | Type | Value |{%- if ns.details_choices %} Choices |{%- endif %}{%- if ns.details_required %} Required |{%- endif %}{%- if ns.details_title %} Title |{%- endif %} |--------------|--------------|-------------|{%- if ns.details_choices %}-------------|{%- endif %}{%- if ns.details_required %}-------------|{%- endif %}{%- if ns.details_title %}-------------|{%- endif %} -{%- for key, details in defaultfile.data.items() %} +{%- for key, details in defaultfile.data.items() | sort %} {%- set var_type = details.value.__class__.__name__ %} | [{{ key }}]({{ render_repo_link(role.repository, role.name, 'defaults/' ~ defaultfile.file, details.line, role.repository_type, role.repository_branch) }}) | {{ var_type }} | {% if details.value is string and details.value | length == 0 %}{% else %}`{{ details.value | replace('|', '¦') }}`{% endif %} | {%- if ns.details_choices %} {{ details.choices | replace('|', '¦') }} |{%- endif %} {%- if ns.details_required %} {{ details.required }} |{%- endif %} {%- if ns.details_title %} {{ details.title | replace('|', '¦') }} |{%- endif %} {%- endfor %} @@ -156,14 +156,14 @@ Description: Not available. {%- for defaultfile in role.defaults|sort(attribute='file') -%} {%- set ns = namespace(has_descriptions = false) -%} -{%- for key, details in defaultfile.data.items() -%} +{%- for key, details in defaultfile.data.items() | sort -%} {%- if details.description != None -%}{%- set ns.has_descriptions = true -%}{% endif -%} {%- endfor -%} {%- if ns.has_descriptions %}
🖇️ {{ role.name }} Full descriptions for vars in defaults/{{ defaultfile.file }}
-{%- for key, details in defaultfile.data.items() %} +{%- for key, details in defaultfile.data.items() | sort %} {%- if details.description != None %} {{ key }}: {{ details.description }}
@@ -185,14 +185,14 @@ Description: Not available. #### {{ role.name }} File: [vars/{{ varsfile.file }}]({{ render_repo_role_readme_link(collection.repository, role.name, collection.repository_type, collection.repository_branch) }}/vars/{{ varsfile.file }}) {# Cycle used for deciding to set Title and Required Column #} {% set ns = namespace(details_required = false, details_title = false, details_choices = false) %} -{%- for key, details in varsfile.data.items() -%} +{%- for key, details in varsfile.data.items() | sort -%} {%- if details.required is not none -%}{%- set ns.details_required = true -%}{%- endif -%} {%- if details.title is not none -%}{%- set ns.details_title = true -%}{%- endif -%} {%- if details.choices != None -%}{%- set ns.details_choices = true -%}{%- endif -%} {%- endfor -%} | Var | Type | Value |{% if ns.details_choices %}Choices |{% endif %}{% if ns.details_required %}Required |{% endif %}{% if ns.details_title %} Title |{% endif %} |--------------|--------------|-------------|{% if ns.details_choices %}-------------|{% endif %}{% if ns.details_required %}-------------|{% endif %}{% if ns.details_title %}-------------|{% endif %} -{%- for key, details in varsfile.data.items() %} +{%- for key, details in varsfile.data.items() | sort %} {%- set var_type = details.value.__class__.__name__ %} | [{{ key }}]({{ render_repo_link(role.repository, role.name, 'vars/' ~ varsfile.file, details.line, role.repository_type, role.repository_branch) }}) | {{ var_type }} | {% if details.value is string and details.value | length == 0 %}{% else %}`{{ details.value | replace('|', '¦') }}`{% endif %} | {% if ns.details_choices %} {{ details.choices | replace('|', '¦') }} |{% endif %} {% if ns.details_required %} {{ details.required }} |{% endif %} {% if ns.details_title %} {{ details.title | replace('|', '¦') }} |{% endif %} {%- endfor %} @@ -200,14 +200,14 @@ Description: Not available. {%- for varsfile in role.vars|sort(attribute='file') -%} {% set ns = namespace(has_descriptions = false) -%} -{%- for key, details in varsfile.data.items() -%} +{%- for key, details in varsfile.data.items() | sort -%} {%- if details.description != None -%}{%- set ns.has_descriptions = true -%}{%- endif %} {%- endfor %} {%- if ns.has_descriptions %}
🖇️ {{ role.name }} Full Descriptions for vars in vars/{{ varsfile.file }}
-{%- for key, details in varsfile.data.items() %} +{%- for key, details in varsfile.data.items() | sort %} {%- if details.description != None %} {{ key }}: {{ details.description }}
diff --git a/scripts/docsible-role-template.md b/scripts/docsible-role-template.md index daf3c8b..019a94a 100644 --- a/scripts/docsible-role-template.md +++ b/scripts/docsible-role-template.md @@ -61,7 +61,7 @@ Description: Not available. {%- endif %} {%- macro render_arguments_list(arguments, level=0) %} -{%- for arg, details in arguments.items() %} +{%- for arg, details in arguments.items() | sort %} {%- set indent = ' ' * level %} {{ indent }}* **{{ arg }}**: {{ indent }} * **Required**: {{ details.required | default('false') }} @@ -99,7 +99,7 @@ Description: Not available.
🧩 Argument Specifications in `meta/argument_specs` -{%- for section, specs in role.argument_specs.argument_specs.items() %} +{%- for section, specs in role.argument_specs.argument_specs.items() | sort %} #### Key: {{ section }} @@ -122,14 +122,14 @@ Description: Not available. #### File: defaults/{{ defaultfile.file }} {# Cycle used for deciding to set Title and Required Column #} {% set ns = namespace(details_required = true, details_title = true, details_choices = true) %} -{%- for key, details in defaultfile.data.items() -%} +{%- for key, details in defaultfile.data.items() | sort -%} {%- if details.required is not none -%}{%- set ns.details_required = true -%}{%- endif -%} {%- if details.title is not none -%}{%- set ns.details_title = true -%}{%- endif -%} {%- if details.choices != "n/a" -%}{%- set ns.details_choices = true -%}{%- endif -%} {%- endfor -%} | Var | Type | Value |{% if ns.details_choices %}Choices |{% endif %}{% if ns.details_required %}Required |{% endif %}{% if ns.details_title %} Title |{% endif %} |--------------|--------------|-------------|{% if ns.details_choices %}-------------|{% endif %}{% if ns.details_required %}-------------|{% endif %}{% if ns.details_title %}-------------|{% endif %} -{%- for key, details in defaultfile.data.items() %} +{%- for key, details in defaultfile.data.items() | sort %} {%- set var_type = details.value.__class__.__name__ %} | [`{{ key }}`](defaults/{{ defaultfile.file }}#L{{details.line}}) | {{ var_type }} | `{{ details.value | replace('|', '¦') }}` | {% if ns.details_choices %} {{ details.choices | replace('|', '¦') }} |{% endif %} {% if ns.details_required %} {{ details.required }} |{% endif %} {% if ns.details_title %} {{ details.title | replace('|', '¦') }} |{% endif %} {%- endfor %} @@ -137,14 +137,14 @@ Description: Not available. {%- for defaultfile in role.defaults -%} {%- set ns = namespace(has_descriptions = false) -%} -{%- for key, details in defaultfile.data.items() -%} +{%- for key, details in defaultfile.data.items() | sort -%} {%- if details.description != "n/a" -%}{%- set ns.has_descriptions = true -%}{% endif -%} {%- endfor -%} {%- if ns.has_descriptions %} 🖇️ Full descriptions for vars in defaults/{{ defaultfile.file }}
-{%- for key, details in defaultfile.data.items() %} +{%- for key, details in defaultfile.data.items() | sort %} {%- if details.description != "n/a" %} `{{ key }}`: {{ details.description }}
@@ -169,7 +169,7 @@ Description: Not available. {%- set ns = namespace(details_required = false, details_title = false, details_choices = false) %} | Var | Type | Value |{% if ns.details_choices %}Choices |{% endif %}{% if ns.details_required %}Required |{% endif %}{% if ns.details_title %} Title |{% endif %} |--------------|--------------|-------------|{% if ns.details_choices %}-------------|{% endif %}{% if ns.details_required %}-------------|{% endif %}{% if ns.details_title %}-------------|{% endif %} -{%- for key, details in varsfile.data.items() %} +{%- for key, details in varsfile.data.items() | sort %} {%- set var_type = details.value.__class__.__name__ %} | [{{ key }}](vars/{{ varsfile.file }}#L{{details.line}}) | {{ var_type }} | `{{ details.value | replace('|', '¦') }}` |{% if ns.details_choices %}{{ details.choices | replace('|', '¦') }}|{% endif %}{% if ns.details_required %}{{ details.required }}|{% endif %}{% if ns.details_title %}{{ details.title | replace('|', '¦') }}|{% endif %} {%- endfor %} @@ -177,7 +177,7 @@ Description: Not available. {%- for varsfile in role.vars -%} {% set ns = namespace(has_descriptions = false) -%} -{%- for key, details in varsfile.data.items() -%} +{%- for key, details in varsfile.data.items() | sort -%} {%- if details.description != "n/a" -%}{%- set ns.has_descriptions = true -%}{%- endif %} {%- endfor %} @@ -213,7 +213,7 @@ Description: Not available. ## Task Flow Graphs -{%- for task_file, mermaid_code in mermaid_code_per_file.items() %} +{%- for task_file, mermaid_code in mermaid_code_per_file.items() | sort %} ### Graph for {{ task_file }} diff --git a/scripts/generate-role-list.py b/scripts/generate-role-list.py new file mode 100755 index 0000000..f571620 --- /dev/null +++ b/scripts/generate-role-list.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +"""Generate a markdown list of roles with descriptions from their metadata.""" + +import sys +from pathlib import Path + +try: + import yaml +except ImportError: + print("Error: PyYAML is required. Install with: pip install pyyaml", file=sys.stderr) + sys.exit(1) + + +def generate_role_list(): + """Generate markdown list of roles from their meta/main.yml files.""" + roles_dir = Path("roles") + + if not roles_dir.exists(): + print(f"Error: {roles_dir} directory not found", file=sys.stderr) + sys.exit(1) + + role_list = [] + + for role_path in sorted(roles_dir.iterdir()): + if not role_path.is_dir() or role_path.name.startswith('.'): + continue + + meta_file = role_path / "meta" / "main.yml" + if not meta_file.exists(): + print(f"Warning: {meta_file} not found, skipping {role_path.name}", file=sys.stderr) + continue + + try: + with open(meta_file, 'r') as f: + meta = yaml.safe_load(f) + except yaml.YAMLError as e: + print(f"Warning: Failed to parse {meta_file}: {e}", file=sys.stderr) + continue + + description = meta.get("galaxy_info", {}).get("description", "No description available") + role_name = role_path.name + + role_list.append(f"* [{role_name}](roles/{role_name}/README.md) - {description}") + + if not role_list: + print("Warning: No roles found", file=sys.stderr) + + return "\n".join(role_list) + + +if __name__ == "__main__": + print(generate_role_list()) diff --git a/scripts/update-documentation.sh b/scripts/update-documentation.sh index a446ffb..ce2216f 100755 --- a/scripts/update-documentation.sh +++ b/scripts/update-documentation.sh @@ -2,26 +2,46 @@ DOCSIBLE_ROLE_TEMPLATE="./scripts/docsible-role-template.md" DOCSIBLE_COLLECTION_TEMPLATE="./scripts/docsible-collection-template.md" - -# Document roles -# for dir in $(ls -d roles/*); do -# echo "Running docsible role generation against ${dir}" -# docsible --md-template ${DOCSIBLE_ROLE_TEMPLATE} \ -# --role ${dir} --no-backup --no-docsible --graph --append | tee -a collection-build.log -# # git add ${dir}/README.md -# done +ROLE_LIST_GENERATOR="./scripts/generate-role-list.py" # Document collection and roles +# Note: We backup the README to preserve manual edits touch README.md mv README.md README.md.bkp + echo "Running docsible collection generation" docsible --collection . --no-backup --no-docsible --graph --append \ --md-collection-template ${DOCSIBLE_COLLECTION_TEMPLATE} \ --md-template ${DOCSIBLE_ROLE_TEMPLATE} \ | tee -a collection-build.log + +# Restore original README to preserve manual content mv README.md.bkp README.md -# git add README.md -# for dir in $(ls -d roles/*); do -# git add ${dir}/README.md -# done +# Generate role list from metadata +echo "Generating role list from role metadata..." +ROLE_LIST=$(python3 ${ROLE_LIST_GENERATOR}) + +# Injecting role list into Roles section +echo "Building Roles section..." +README_TMP=$(mktemp) +awk -v roles="$ROLE_LIST" ' + // { + print $0 + print roles + in_roles=1 + next + } + // { + in_roles=0 + } + !in_roles { print } +' README.md > "${README_TMP}" +mv "${README_TMP}" README.md +rm -f "${README_TMP}" + +# Generate/update TOC in README.md (in-place, GitHub flavor) +echo "Generating table of contents for README.md" +md_toc --in-place github README.md + +echo "Documentation update complete!" From f9dc74b7e0be9237a1c4e4e01ff30a9557d69166 Mon Sep 17 00:00:00 2001 From: Lucas Burigo <281664+burigolucas@users.noreply.github.com> Date: Thu, 11 Jun 2026 10:40:31 +0200 Subject: [PATCH 2/3] ci: fix pip cache, disable ansible-lint in pre-commit workflow --- .github/workflows/pre-commit.yml | 35 +++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index e924a2d..a97b876 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -57,11 +57,18 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.12' - cache: 'pip' - - name: Install system dependencies + - name: Cache pip packages + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('requirements-ci.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install dependencies run: | - # Install dependencies needed for pre-commit hooks + # Install pre-commit and CI dependencies pip install pre-commit pip install -r requirements-ci.txt @@ -76,19 +83,27 @@ jobs: - name: Run pre-commit hooks run: | echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" - echo "🔍 Running all pre-commit hooks" + echo "🔍 Running pre-commit hooks (skipping ansible-lint)" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" + echo "Note: ansible-lint is skipped in this workflow because it requires" + echo " the collection to be built and installed with all dependencies." + echo " It runs in the main CI workflow with proper setup." + echo "" - # Run all pre-commit hooks on all files - # This includes: + # Run pre-commit hooks, skipping ansible-lint + # ansible-lint is skipped because: + # - It requires the collection to be built and installed + # - It needs external collection dependencies + # - It's already run in the main CI workflow with proper setup + # + # This workflow focuses on quick, local-friendly checks: # - Documentation generation and validation # - Markdown linting - # - Ansible linting - # - Secret scanning - # - And all other configured hooks + # - Secret scanning (gitleaks) + # - Trailing whitespace, merge conflicts, etc. - if pre-commit run --all-files --show-diff-on-failure --color=always; then + if SKIP=ansible-lint pre-commit run --all-files --show-diff-on-failure --color=always; then echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "✅ All pre-commit checks passed!" From 7dfcac27422bb66489c884828e685208c3efd45f Mon Sep 17 00:00:00 2001 From: Lucas Burigo <281664+burigolucas@users.noreply.github.com> Date: Thu, 11 Jun 2026 10:49:32 +0200 Subject: [PATCH 3/3] ci: simplify trigger for PR title validation --- .github/workflows/pr-title-validation.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr-title-validation.yml b/.github/workflows/pr-title-validation.yml index 680d31b..791e2c9 100644 --- a/.github/workflows/pr-title-validation.yml +++ b/.github/workflows/pr-title-validation.yml @@ -2,15 +2,13 @@ name: PR Validation on: pull_request: - branches: [ "main" ] - pull_request_target: types: [opened, synchronize, reopened, edited] branches: [ "main" ] merge_group: types: [checks_requested] + permissions: - contents: read - pull-requests: write + contents: read # Only read access needed for title validation jobs: validate: