diff --git a/.gitignore b/.gitignore index 852b188..35eae3b 100644 --- a/.gitignore +++ b/.gitignore @@ -201,3 +201,5 @@ ansible-navigator.yml # Secrets and certificates *.pem *.key +.cursor/ +.docsible diff --git a/roles/aap_seed/README.md b/roles/aap_seed/README.md index 8f6453a..5620714 100644 --- a/roles/aap_seed/README.md +++ b/roles/aap_seed/README.md @@ -1,7 +1,10 @@ + # aap_seed Seeds Ansible Automation Platform with Migration Factory Configuration as Code content. + + The role dynamically builds all AAP objects from the Ansible inventory and role defaults at runtime: - **Credential types** -- custom type for source hypervisor environments @@ -510,157 +513,157 @@ Description: Seed AAP with Migration Factory Configuration as Code content | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`aap_seed_common_survey_spec`](defaults/main.yml#L66) | dict | `{}` | None | None | None | -| [`aap_seed_common_survey_spec.description`](defaults/main.yml#L68) | str | `` | None | None | None | -| [`aap_seed_common_survey_spec.name`](defaults/main.yml#L67) | str | `` | None | None | None | -| [`aap_seed_common_survey_spec.spec`](defaults/main.yml#L69) | list | `[]` | None | None | None | -| [`aap_seed_common_survey_spec.spec.0`](defaults/main.yml#L70) | dict | `{}` | None | None | None | -| [`aap_seed_common_survey_spec.spec.0.question_description`](defaults/main.yml#L71) | str | `` | None | None | None | -| [`aap_seed_common_survey_spec.spec.0.question_name`](defaults/main.yml#L70) | str | `Source Name` | None | None | None | -| [`aap_seed_common_survey_spec.spec.0.required`](defaults/main.yml#L77) | bool | `True` | None | None | None | -| [`aap_seed_common_survey_spec.spec.0.type`](defaults/main.yml#L76) | str | `text` | None | None | None | -| [`aap_seed_common_survey_spec.spec.0.variable`](defaults/main.yml#L75) | str | `source_name` | None | None | None | -| [`aap_seed_common_survey_spec.spec.1`](defaults/main.yml#L78) | dict | `{}` | None | None | None | -| [`aap_seed_common_survey_spec.spec.1.question_description`](defaults/main.yml#L79) | str | `` | None | None | None | -| [`aap_seed_common_survey_spec.spec.1.question_name`](defaults/main.yml#L78) | str | `Target Name` | None | None | None | -| [`aap_seed_common_survey_spec.spec.1.required`](defaults/main.yml#L85) | bool | `True` | None | None | None | -| [`aap_seed_common_survey_spec.spec.1.type`](defaults/main.yml#L84) | str | `text` | None | None | None | -| [`aap_seed_common_survey_spec.spec.1.variable`](defaults/main.yml#L83) | str | `target_name` | None | None | None | -| [`aap_seed_controller_credential_types`](defaults/main.yml#L109) | list | `[]` | None | None | None | -| [`aap_seed_controller_credential_types.0`](defaults/main.yml#L110) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors`](defaults/main.yml#L137) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars`](defaults/main.yml#L138) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_insecure_skip_tls_verify`](defaults/main.yml#L143) | str | `{% raw %}{ { insecure_skip_tls_verify }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_certificate`](defaults/main.yml#L142) | str | `{% raw %}{ { certificate }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_host`](defaults/main.yml#L139) | str | `{% raw %}{ { host }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_password`](defaults/main.yml#L141) | str | `{% raw %}{ { password }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_username`](defaults/main.yml#L140) | str | `{% raw %}{ { username }}{% endraw %}` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs`](defaults/main.yml#L113) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields`](defaults/main.yml#L114) | list | `[]` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.0`](defaults/main.yml#L115) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.0.id`](defaults/main.yml#L115) | str | `host` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.0.label`](defaults/main.yml#L117) | str | `Hostname or IP` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.0.type`](defaults/main.yml#L116) | str | `string` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.1`](defaults/main.yml#L118) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.1.id`](defaults/main.yml#L118) | str | `username` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.1.label`](defaults/main.yml#L120) | str | `Username` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.1.type`](defaults/main.yml#L119) | str | `string` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.2`](defaults/main.yml#L121) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.2.id`](defaults/main.yml#L121) | str | `password` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.2.label`](defaults/main.yml#L123) | str | `Password` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.2.secret`](defaults/main.yml#L124) | bool | `True` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.2.type`](defaults/main.yml#L122) | str | `string` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.3`](defaults/main.yml#L125) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.3.id`](defaults/main.yml#L125) | str | `certificate` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.3.label`](defaults/main.yml#L127) | str | `SSL/TLS CA Certificate` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.3.multiline`](defaults/main.yml#L128) | bool | `True` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.3.secret`](defaults/main.yml#L129) | bool | `True` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.3.type`](defaults/main.yml#L126) | str | `string` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.4`](defaults/main.yml#L130) | dict | `{}` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.4.id`](defaults/main.yml#L130) | str | `insecure_skip_tls_verify` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.4.label`](defaults/main.yml#L132) | str | `Insecure Skip TLS Verify` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.fields.4.type`](defaults/main.yml#L131) | str | `boolean` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.required`](defaults/main.yml#L133) | list | `[]` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.required.0`](defaults/main.yml#L134) | str | `host` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.required.1`](defaults/main.yml#L135) | str | `username` | None | None | None | -| [`aap_seed_controller_credential_types.0.inputs.required.2`](defaults/main.yml#L136) | str | `password` | None | None | None | -| [`aap_seed_controller_credential_types.0.kind`](defaults/main.yml#L112) | str | `cloud` | None | None | None | -| [`aap_seed_controller_credential_types.0.name`](defaults/main.yml#L110) | str | `{{ aap_seed_source_credential_type }}` | None | None | None | -| [`aap_seed_controller_credential_types.0.organization`](defaults/main.yml#L111) | str | `{{ aap_seed_org_name }}` | None | None | None | -| [`aap_seed_controller_execution_environments`](defaults/main.yml#L158) | list | `[]` | None | None | None | -| [`aap_seed_controller_execution_environments.0`](defaults/main.yml#L159) | dict | `{}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.credential`](defaults/main.yml#L164) | str | `{{ aap_seed_execution_environment_credential ¦ default(omit, true) }}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.description`](defaults/main.yml#L160) | str | `{{ aap_seed_execution_environment_description }}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.image`](defaults/main.yml#L161) | str | `{{ aap_seed_execution_environment_image }}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.name`](defaults/main.yml#L159) | str | `{{ aap_seed_execution_environment }}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.organization`](defaults/main.yml#L162) | str | `{{ aap_seed_org_name }}` | None | None | None | -| [`aap_seed_controller_execution_environments.0.pull`](defaults/main.yml#L163) | str | `{{ aap_seed_execution_environment_pull }}` | None | None | None | -| [`aap_seed_controller_inventories`](defaults/main.yml#L145) | list | `[]` | None | None | None | -| [`aap_seed_controller_inventories.0`](defaults/main.yml#L146) | dict | `{}` | None | None | None | -| [`aap_seed_controller_inventories.0.name`](defaults/main.yml#L146) | str | `{{ aap_seed_inventory_name }}` | None | None | None | -| [`aap_seed_controller_inventories.0.organization`](defaults/main.yml#L147) | str | `{{ aap_seed_org_name }}` | None | None | None | -| [`aap_seed_controller_organizations`](defaults/main.yml#L107) | list | `[]` | None | None | None | -| [`aap_seed_controller_projects`](defaults/main.yml#L149) | list | `[]` | None | None | None | -| [`aap_seed_controller_projects.0`](defaults/main.yml#L150) | dict | `{}` | None | None | None | -| [`aap_seed_controller_projects.0.credential`](defaults/main.yml#L156) | str | `{{ aap_seed_project_credential ¦ default(omit, true) }}` | None | None | None | -| [`aap_seed_controller_projects.0.name`](defaults/main.yml#L150) | str | `{{ aap_seed_project_name }}` | None | None | None | -| [`aap_seed_controller_projects.0.organization`](defaults/main.yml#L151) | str | `{{ aap_seed_org_name }}` | None | None | None | -| [`aap_seed_controller_projects.0.scm_branch`](defaults/main.yml#L154) | str | `{{ aap_seed_project_scm_branch }}` | None | None | None | -| [`aap_seed_controller_projects.0.scm_type`](defaults/main.yml#L152) | str | `git` | None | None | None | -| [`aap_seed_controller_projects.0.scm_update_on_launch`](defaults/main.yml#L155) | bool | `True` | None | None | None | -| [`aap_seed_controller_projects.0.scm_url`](defaults/main.yml#L153) | str | `{{ aap_seed_project_scm_url }}` | None | None | None | -| [`aap_seed_controller_templates`](defaults/main.yml#L166) | list | `[]` | None | None | None | -| [`aap_seed_controller_templates.0`](defaults/main.yml#L167) | dict | `{}` | None | None | None | -| [`aap_seed_controller_templates.0.ask_credential_on_launch`](defaults/main.yml#L173) | bool | `True` | None | None | None | -| [`aap_seed_controller_templates.0.ask_variables_on_launch`](defaults/main.yml#L174) | bool | `True` | None | None | None | -| [`aap_seed_controller_templates.0.execution_environment`](defaults/main.yml#L172) | str | `{{ aap_seed_execution_environment }}` | None | None | None | -| [`aap_seed_controller_templates.0.inventory`](defaults/main.yml#L171) | str | `{{ aap_seed_inventory_name }}` | None | None | None | -| [`aap_seed_controller_templates.0.name`](defaults/main.yml#L167) | str | `{{ aap_seed_migrate_template_name }}` | None | None | None | -| [`aap_seed_controller_templates.0.organization`](defaults/main.yml#L168) | str | `{{ aap_seed_org_name }}` | None | None | None | -| [`aap_seed_controller_templates.0.playbook`](defaults/main.yml#L170) | str | `{{ aap_seed_migrate_playbook }}` | None | None | None | -| [`aap_seed_controller_templates.0.project`](defaults/main.yml#L169) | str | `{{ aap_seed_project_name }}` | None | None | None | -| [`aap_seed_controller_templates.0.survey_enabled`](defaults/main.yml#L176) | bool | `True` | None | None | None | -| [`aap_seed_controller_templates.0.survey_spec`](defaults/main.yml#L177) | str | `{{ aap_seed_common_survey_spec }}` | None | None | None | -| [`aap_seed_controller_templates.0.verbosity`](defaults/main.yml#L175) | int | `0` | None | None | None | -| [`aap_seed_controller_templates.1`](defaults/main.yml#L178) | dict | `{}` | None | None | None | -| [`aap_seed_controller_templates.1.ask_credential_on_launch`](defaults/main.yml#L184) | bool | `True` | None | None | None | -| [`aap_seed_controller_templates.1.ask_variables_on_launch`](defaults/main.yml#L185) | bool | `True` | None | None | None | -| [`aap_seed_controller_templates.1.execution_environment`](defaults/main.yml#L183) | str | `{{ aap_seed_execution_environment }}` | None | None | None | -| [`aap_seed_controller_templates.1.inventory`](defaults/main.yml#L182) | str | `{{ aap_seed_inventory_name }}` | None | None | None | -| [`aap_seed_controller_templates.1.name`](defaults/main.yml#L178) | str | `{{ aap_seed_mtv_provider_template_name }}` | None | None | None | -| [`aap_seed_controller_templates.1.organization`](defaults/main.yml#L179) | str | `{{ aap_seed_org_name }}` | None | None | None | -| [`aap_seed_controller_templates.1.playbook`](defaults/main.yml#L181) | str | `{{ aap_seed_mtv_provider_playbook }}` | None | None | None | -| [`aap_seed_controller_templates.1.project`](defaults/main.yml#L180) | str | `{{ aap_seed_project_name }}` | None | None | None | -| [`aap_seed_controller_templates.1.survey_enabled`](defaults/main.yml#L187) | bool | `True` | None | None | None | -| [`aap_seed_controller_templates.1.survey_spec`](defaults/main.yml#L188) | str | `{{ aap_seed_common_survey_spec }}` | None | None | None | -| [`aap_seed_controller_templates.1.verbosity`](defaults/main.yml#L186) | int | `0` | None | None | None | -| [`aap_seed_credential_types_create`](defaults/main.yml#L91) | bool | `True` | None | None | None | -| [`aap_seed_credentials_create`](defaults/main.yml#L92) | bool | `True` | None | None | None | -| [`aap_seed_execution_environment`](defaults/main.yml#L23) | str | `` | None | None | None | -| [`aap_seed_execution_environment_credential`](defaults/main.yml#L45) | str | `` | None | None | None | -| [`aap_seed_execution_environment_credential_description`](defaults/main.yml#L47) | str | `` | None | None | None | -| [`aap_seed_execution_environment_credential_host`](defaults/main.yml#L50) | str | `` | None | None | None | -| [`aap_seed_execution_environment_credential_password`](defaults/main.yml#L54) | str | `` | None | None | None | -| [`aap_seed_execution_environment_credential_username`](defaults/main.yml#L52) | str | `` | None | None | None | -| [`aap_seed_execution_environment_credential_verify_ssl`](defaults/main.yml#L56) | str | `` | None | None | None | -| [`aap_seed_execution_environment_description`](defaults/main.yml#L39) | str | `` | None | None | None | -| [`aap_seed_execution_environment_image`](defaults/main.yml#L42) | str | `{{ aap_execution_environment_image ¦ default('') }}` | None | None | None | -| [`aap_seed_execution_environment_pull`](defaults/main.yml#L43) | str | `{{ aap_execution_environment_pull ¦ default('missing') }}` | None | None | None | -| [`aap_seed_execution_environments_create`](defaults/main.yml#L96) | bool | `True` | None | None | None | -| [`aap_seed_git_password`](defaults/main.yml#L35) | str | `{{ aap_git_password ¦ default('') }}` | None | None | None | -| [`aap_seed_git_ssh_key`](defaults/main.yml#L36) | str | `{{ aap_git_ssh_key ¦ default('') }}` | None | None | None | -| [`aap_seed_git_ssh_key_unlock`](defaults/main.yml#L37) | str | `{{ aap_git_ssh_key_unlock ¦ default('') }}` | None | None | None | -| [`aap_seed_git_username`](defaults/main.yml#L34) | str | `{{ aap_git_username ¦ default('') }}` | None | None | None | -| [`aap_seed_hostname`](defaults/main.yml#L5) | str | `{{ aap_hostname }}` | None | None | None | -| [`aap_seed_hosts_create`](defaults/main.yml#L94) | bool | `True` | None | None | None | -| [`aap_seed_inventories_create`](defaults/main.yml#L93) | bool | `True` | None | None | None | -| [`aap_seed_inventory_name`](defaults/main.yml#L22) | str | `OpenShift Virtualization Migration` | None | None | None | -| [`aap_seed_migrate_playbook`](defaults/main.yml#L61) | str | `playbooks/vmf_migrate.yml` | None | None | None | -| [`aap_seed_migrate_template_name`](defaults/main.yml#L60) | str | `OpenShift Virtualization Migration - Migrate` | None | None | None | -| [`aap_seed_mtv_provider_playbook`](defaults/main.yml#L64) | str | `playbooks/vmf_mtv_provider.yml` | None | None | None | -| [`aap_seed_mtv_provider_template_name`](defaults/main.yml#L63) | str | `OpenShift Virtualization Migration - MTV Provider` | None | None | None | -| [`aap_seed_org_name`](defaults/main.yml#L15) | str | `Default` | None | None | None | -| [`aap_seed_organizations_create`](defaults/main.yml#L90) | bool | `True` | None | None | None | -| [`aap_seed_password`](defaults/main.yml#L7) | str | `{{ aap_password ¦ default(omit) }}` | None | None | None | -| [`aap_seed_project_credential`](defaults/main.yml#L33) | str | `{{ aap_project_credential ¦ default('') }}` | None | None | None | -| [`aap_seed_project_name`](defaults/main.yml#L16) | str | `OpenShift Virtualization Migration` | None | None | None | -| [`aap_seed_project_scm_branch`](defaults/main.yml#L20) | str | `{{ aap_project_scm_branch ¦ default('v2') }}` | None | None | None | -| [`aap_seed_project_scm_url`](defaults/main.yml#L17) | str | `` | None | None | None | -| [`aap_seed_project_sync_timeout`](defaults/main.yml#L21) | int | `120` | None | None | None | -| [`aap_seed_projects_create`](defaults/main.yml#L95) | bool | `True` | None | None | None | -| [`aap_seed_secure_logging`](defaults/main.yml#L10) | str | `{{ secure_logging ¦ default(true) }}` | None | None | None | -| [`aap_seed_source_credential_type`](defaults/main.yml#L27) | str | `Migration Factory - Source Environment` | None | None | None | -| [`aap_seed_source_inventory_group`](defaults/main.yml#L30) | str | `vm_sources` | None | None | None | -| [`aap_seed_target_credential_type`](defaults/main.yml#L28) | str | `OpenShift or Kubernetes API Bearer Token` | None | None | None | -| [`aap_seed_target_inventory_group`](defaults/main.yml#L31) | str | `migration_clusters` | None | None | None | -| [`aap_seed_templates_create`](defaults/main.yml#L97) | bool | `True` | None | None | None | -| [`aap_seed_token`](defaults/main.yml#L8) | str | `{{ aap_token ¦ default(omit) }}` | None | None | None | -| [`aap_seed_username`](defaults/main.yml#L6) | str | `{{ aap_username ¦ default(omit) }}` | None | None | None | -| [`aap_seed_validate_certs`](defaults/main.yml#L9) | str | `{{ aap_validate_certs ¦ default(true) }}` | None | None | None | +| [`aap_seed_common_survey_spec`](defaults/main.yml#L203) | dict | `{}` | None | False | Common Survey Spec | +| [`aap_seed_common_survey_spec.description`](defaults/main.yml#L205) | str | `` | None | None | None | +| [`aap_seed_common_survey_spec.name`](defaults/main.yml#L204) | str | `` | None | None | None | +| [`aap_seed_common_survey_spec.spec`](defaults/main.yml#L206) | list | `[]` | None | None | None | +| [`aap_seed_common_survey_spec.spec.0`](defaults/main.yml#L207) | dict | `{}` | None | None | None | +| [`aap_seed_common_survey_spec.spec.0.question_description`](defaults/main.yml#L208) | str | `` | None | None | None | +| [`aap_seed_common_survey_spec.spec.0.question_name`](defaults/main.yml#L207) | str | `Source Name` | None | None | None | +| [`aap_seed_common_survey_spec.spec.0.required`](defaults/main.yml#L214) | bool | `True` | None | None | None | +| [`aap_seed_common_survey_spec.spec.0.type`](defaults/main.yml#L213) | str | `text` | None | None | None | +| [`aap_seed_common_survey_spec.spec.0.variable`](defaults/main.yml#L212) | str | `source_name` | None | None | None | +| [`aap_seed_common_survey_spec.spec.1`](defaults/main.yml#L215) | dict | `{}` | None | None | None | +| [`aap_seed_common_survey_spec.spec.1.question_description`](defaults/main.yml#L216) | str | `` | None | None | None | +| [`aap_seed_common_survey_spec.spec.1.question_name`](defaults/main.yml#L215) | str | `Target Name` | None | None | None | +| [`aap_seed_common_survey_spec.spec.1.required`](defaults/main.yml#L222) | bool | `True` | None | None | None | +| [`aap_seed_common_survey_spec.spec.1.type`](defaults/main.yml#L221) | str | `text` | None | None | None | +| [`aap_seed_common_survey_spec.spec.1.variable`](defaults/main.yml#L220) | str | `target_name` | None | None | None | +| [`aap_seed_controller_credential_types`](defaults/main.yml#L274) | list | `[]` | None | False | Controller Credential Types | +| [`aap_seed_controller_credential_types.0`](defaults/main.yml#L275) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors`](defaults/main.yml#L302) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars`](defaults/main.yml#L303) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_insecure_skip_tls_verify`](defaults/main.yml#L308) | str | `{% raw %}{ { insecure_skip_tls_verify }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_certificate`](defaults/main.yml#L307) | str | `{% raw %}{ { certificate }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_host`](defaults/main.yml#L304) | str | `{% raw %}{ { host }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_password`](defaults/main.yml#L306) | str | `{% raw %}{ { password }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.injectors.extra_vars.mf_source_username`](defaults/main.yml#L305) | str | `{% raw %}{ { username }}{% endraw %}` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs`](defaults/main.yml#L278) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields`](defaults/main.yml#L279) | list | `[]` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.0`](defaults/main.yml#L280) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.0.id`](defaults/main.yml#L280) | str | `host` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.0.label`](defaults/main.yml#L282) | str | `Hostname or IP` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.0.type`](defaults/main.yml#L281) | str | `string` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.1`](defaults/main.yml#L283) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.1.id`](defaults/main.yml#L283) | str | `username` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.1.label`](defaults/main.yml#L285) | str | `Username` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.1.type`](defaults/main.yml#L284) | str | `string` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.2`](defaults/main.yml#L286) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.2.id`](defaults/main.yml#L286) | str | `password` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.2.label`](defaults/main.yml#L288) | str | `Password` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.2.secret`](defaults/main.yml#L289) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.2.type`](defaults/main.yml#L287) | str | `string` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.3`](defaults/main.yml#L290) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.3.id`](defaults/main.yml#L290) | str | `certificate` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.3.label`](defaults/main.yml#L292) | str | `SSL/TLS CA Certificate` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.3.multiline`](defaults/main.yml#L293) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.3.secret`](defaults/main.yml#L294) | bool | `True` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.3.type`](defaults/main.yml#L291) | str | `string` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.4`](defaults/main.yml#L295) | dict | `{}` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.4.id`](defaults/main.yml#L295) | str | `insecure_skip_tls_verify` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.4.label`](defaults/main.yml#L297) | str | `Insecure Skip TLS Verify` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.fields.4.type`](defaults/main.yml#L296) | str | `boolean` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.required`](defaults/main.yml#L298) | list | `[]` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.required.0`](defaults/main.yml#L299) | str | `host` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.required.1`](defaults/main.yml#L300) | str | `username` | None | None | None | +| [`aap_seed_controller_credential_types.0.inputs.required.2`](defaults/main.yml#L301) | str | `password` | None | None | None | +| [`aap_seed_controller_credential_types.0.kind`](defaults/main.yml#L277) | str | `cloud` | None | None | None | +| [`aap_seed_controller_credential_types.0.name`](defaults/main.yml#L275) | str | `{{ aap_seed_source_credential_type }}` | None | None | None | +| [`aap_seed_controller_credential_types.0.organization`](defaults/main.yml#L276) | str | `{{ aap_seed_org_name }}` | None | None | None | +| [`aap_seed_controller_execution_environments`](defaults/main.yml#L334) | list | `[]` | None | False | Controller Execution Environments | +| [`aap_seed_controller_execution_environments.0`](defaults/main.yml#L335) | dict | `{}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.credential`](defaults/main.yml#L340) | str | `{{ aap_seed_execution_environment_credential ¦ default(omit, true) }}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.description`](defaults/main.yml#L336) | str | `{{ aap_seed_execution_environment_description }}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.image`](defaults/main.yml#L337) | str | `{{ aap_seed_execution_environment_image }}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.name`](defaults/main.yml#L335) | str | `{{ aap_seed_execution_environment }}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.organization`](defaults/main.yml#L338) | str | `{{ aap_seed_org_name }}` | None | None | None | +| [`aap_seed_controller_execution_environments.0.pull`](defaults/main.yml#L339) | str | `{{ aap_seed_execution_environment_pull }}` | None | None | None | +| [`aap_seed_controller_inventories`](defaults/main.yml#L313) | list | `[]` | None | False | Controller Inventories | +| [`aap_seed_controller_inventories.0`](defaults/main.yml#L314) | dict | `{}` | None | None | None | +| [`aap_seed_controller_inventories.0.name`](defaults/main.yml#L314) | str | `{{ aap_seed_inventory_name }}` | None | None | None | +| [`aap_seed_controller_inventories.0.organization`](defaults/main.yml#L315) | str | `{{ aap_seed_org_name }}` | None | None | None | +| [`aap_seed_controller_organizations`](defaults/main.yml#L267) | list | `[]` | None | False | Controller Organizations | +| [`aap_seed_controller_projects`](defaults/main.yml#L320) | list | `[]` | None | False | Controller Projects | +| [`aap_seed_controller_projects.0`](defaults/main.yml#L321) | dict | `{}` | None | None | None | +| [`aap_seed_controller_projects.0.credential`](defaults/main.yml#L327) | str | `{{ aap_seed_project_credential ¦ default(omit, true) }}` | None | None | None | +| [`aap_seed_controller_projects.0.name`](defaults/main.yml#L321) | str | `{{ aap_seed_project_name }}` | None | None | None | +| [`aap_seed_controller_projects.0.organization`](defaults/main.yml#L322) | str | `{{ aap_seed_org_name }}` | None | None | None | +| [`aap_seed_controller_projects.0.scm_branch`](defaults/main.yml#L325) | str | `{{ aap_seed_project_scm_branch }}` | None | None | None | +| [`aap_seed_controller_projects.0.scm_type`](defaults/main.yml#L323) | str | `git` | None | None | None | +| [`aap_seed_controller_projects.0.scm_update_on_launch`](defaults/main.yml#L326) | bool | `True` | None | None | None | +| [`aap_seed_controller_projects.0.scm_url`](defaults/main.yml#L324) | str | `{{ aap_seed_project_scm_url }}` | None | None | None | +| [`aap_seed_controller_templates`](defaults/main.yml#L347) | list | `[]` | None | False | Controller Templates | +| [`aap_seed_controller_templates.0`](defaults/main.yml#L348) | dict | `{}` | None | None | None | +| [`aap_seed_controller_templates.0.ask_credential_on_launch`](defaults/main.yml#L354) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.0.ask_variables_on_launch`](defaults/main.yml#L355) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.0.execution_environment`](defaults/main.yml#L353) | str | `{{ aap_seed_execution_environment }}` | None | None | None | +| [`aap_seed_controller_templates.0.inventory`](defaults/main.yml#L352) | str | `{{ aap_seed_inventory_name }}` | None | None | None | +| [`aap_seed_controller_templates.0.name`](defaults/main.yml#L348) | str | `{{ aap_seed_migrate_template_name }}` | None | None | None | +| [`aap_seed_controller_templates.0.organization`](defaults/main.yml#L349) | str | `{{ aap_seed_org_name }}` | None | None | None | +| [`aap_seed_controller_templates.0.playbook`](defaults/main.yml#L351) | str | `{{ aap_seed_migrate_playbook }}` | None | None | None | +| [`aap_seed_controller_templates.0.project`](defaults/main.yml#L350) | str | `{{ aap_seed_project_name }}` | None | None | None | +| [`aap_seed_controller_templates.0.survey_enabled`](defaults/main.yml#L357) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.0.survey_spec`](defaults/main.yml#L358) | str | `{{ aap_seed_common_survey_spec }}` | None | None | None | +| [`aap_seed_controller_templates.0.verbosity`](defaults/main.yml#L356) | int | `0` | None | None | None | +| [`aap_seed_controller_templates.1`](defaults/main.yml#L359) | dict | `{}` | None | None | None | +| [`aap_seed_controller_templates.1.ask_credential_on_launch`](defaults/main.yml#L365) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.1.ask_variables_on_launch`](defaults/main.yml#L366) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.1.execution_environment`](defaults/main.yml#L364) | str | `{{ aap_seed_execution_environment }}` | None | None | None | +| [`aap_seed_controller_templates.1.inventory`](defaults/main.yml#L363) | str | `{{ aap_seed_inventory_name }}` | None | None | None | +| [`aap_seed_controller_templates.1.name`](defaults/main.yml#L359) | str | `{{ aap_seed_mtv_provider_template_name }}` | None | None | None | +| [`aap_seed_controller_templates.1.organization`](defaults/main.yml#L360) | str | `{{ aap_seed_org_name }}` | None | None | None | +| [`aap_seed_controller_templates.1.playbook`](defaults/main.yml#L362) | str | `{{ aap_seed_mtv_provider_playbook }}` | None | None | None | +| [`aap_seed_controller_templates.1.project`](defaults/main.yml#L361) | str | `{{ aap_seed_project_name }}` | None | None | None | +| [`aap_seed_controller_templates.1.survey_enabled`](defaults/main.yml#L368) | bool | `True` | None | None | None | +| [`aap_seed_controller_templates.1.survey_spec`](defaults/main.yml#L369) | str | `{{ aap_seed_common_survey_spec }}` | None | None | None | +| [`aap_seed_controller_templates.1.verbosity`](defaults/main.yml#L367) | int | `0` | None | None | None | +| [`aap_seed_credential_types_create`](defaults/main.yml#L232) | bool | `True` | None | False | Create Credential Types | +| [`aap_seed_credentials_create`](defaults/main.yml#L237) | bool | `True` | None | False | Create Credentials | +| [`aap_seed_execution_environment`](defaults/main.yml#L70) | str | `` | None | False | Execution Environment | +| [`aap_seed_execution_environment_credential`](defaults/main.yml#L141) | str | `` | None | False | EE Registry Credential | +| [`aap_seed_execution_environment_credential_description`](defaults/main.yml#L147) | str | `` | None | False | EE Registry Credential Description | +| [`aap_seed_execution_environment_credential_host`](defaults/main.yml#L154) | str | `` | None | False | EE Registry Credential Host | +| [`aap_seed_execution_environment_credential_password`](defaults/main.yml#L166) | str | `` | None | False | EE Registry Credential Password | +| [`aap_seed_execution_environment_credential_username`](defaults/main.yml#L160) | str | `` | None | False | EE Registry Credential Username | +| [`aap_seed_execution_environment_credential_verify_ssl`](defaults/main.yml#L174) | str | `` | None | False | EE Registry Credential Verify SSL | +| [`aap_seed_execution_environment_description`](defaults/main.yml#L122) | str | `` | None | False | EE Description | +| [`aap_seed_execution_environment_image`](defaults/main.yml#L129) | str | `{{ aap_execution_environment_image ¦ default('') }}` | None | False | EE Image | +| [`aap_seed_execution_environment_pull`](defaults/main.yml#L134) | str | `{{ aap_execution_environment_pull ¦ default('missing') }}` | None | False | EE Pull Policy | +| [`aap_seed_execution_environments_create`](defaults/main.yml#L257) | bool | `True` | None | False | Create Execution Environments | +| [`aap_seed_git_password`](defaults/main.yml#L107) | str | `{{ aap_git_password ¦ default('') }}` | None | False | Git Password | +| [`aap_seed_git_ssh_key`](defaults/main.yml#L112) | str | `{{ aap_git_ssh_key ¦ default('') }}` | None | False | Git SSH Key | +| [`aap_seed_git_ssh_key_unlock`](defaults/main.yml#L117) | str | `{{ aap_git_ssh_key_unlock ¦ default('') }}` | None | False | Git SSH Key Unlock | +| [`aap_seed_git_username`](defaults/main.yml#L102) | str | `{{ aap_git_username ¦ default('') }}` | None | False | Git Username | +| [`aap_seed_hostname`](defaults/main.yml#L6) | str | `{{ aap_hostname }}` | None | True | AAP Hostname | +| [`aap_seed_hosts_create`](defaults/main.yml#L247) | bool | `True` | None | False | Create Hosts | +| [`aap_seed_inventories_create`](defaults/main.yml#L242) | bool | `True` | None | False | Create Inventories | +| [`aap_seed_inventory_name`](defaults/main.yml#L65) | str | `OpenShift Virtualization Migration` | None | False | Inventory Name | +| [`aap_seed_migrate_playbook`](defaults/main.yml#L186) | str | `playbooks/vmf_migrate.yml` | None | False | Migrate Playbook | +| [`aap_seed_migrate_template_name`](defaults/main.yml#L181) | str | `OpenShift Virtualization Migration - Migrate` | None | False | Migrate Template Name | +| [`aap_seed_mtv_provider_playbook`](defaults/main.yml#L196) | str | `playbooks/vmf_mtv_provider.yml` | None | False | MTV Provider Playbook | +| [`aap_seed_mtv_provider_template_name`](defaults/main.yml#L191) | str | `OpenShift Virtualization Migration - MTV Provider` | None | False | MTV Provider Template Name | +| [`aap_seed_org_name`](defaults/main.yml#L38) | str | `Default` | None | False | Organization Name | +| [`aap_seed_organizations_create`](defaults/main.yml#L227) | bool | `True` | None | False | Create Organizations | +| [`aap_seed_password`](defaults/main.yml#L16) | str | `{{ aap_password ¦ default(omit) }}` | None | False | AAP Password | +| [`aap_seed_project_credential`](defaults/main.yml#L97) | str | `{{ aap_project_credential ¦ default('') }}` | None | False | Project Credential | +| [`aap_seed_project_name`](defaults/main.yml#L43) | str | `OpenShift Virtualization Migration` | None | False | Project Name | +| [`aap_seed_project_scm_branch`](defaults/main.yml#L55) | str | `{{ aap_project_scm_branch ¦ default('v2') }}` | None | False | Project SCM Branch | +| [`aap_seed_project_scm_url`](defaults/main.yml#L48) | str | `` | None | False | Project SCM URL | +| [`aap_seed_project_sync_timeout`](defaults/main.yml#L60) | int | `120` | None | False | Project Sync Timeout | +| [`aap_seed_projects_create`](defaults/main.yml#L252) | bool | `True` | None | False | Create Projects | +| [`aap_seed_secure_logging`](defaults/main.yml#L33) | str | `{{ secure_logging ¦ default(true) }}` | None | False | Secure Logging | +| [`aap_seed_source_credential_type`](defaults/main.yml#L77) | str | `Migration Factory - Source Environment` | None | False | Source Credential Type | +| [`aap_seed_source_inventory_group`](defaults/main.yml#L87) | str | `vm_sources` | None | False | Source Inventory Group | +| [`aap_seed_target_credential_type`](defaults/main.yml#L82) | str | `OpenShift or Kubernetes API Bearer Token` | None | False | Target Credential Type | +| [`aap_seed_target_inventory_group`](defaults/main.yml#L92) | str | `migration_clusters` | None | False | Target Inventory Group | +| [`aap_seed_templates_create`](defaults/main.yml#L262) | bool | `True` | None | False | Create Templates | +| [`aap_seed_token`](defaults/main.yml#L21) | str | `{{ aap_token ¦ default(omit) }}` | None | False | AAP Token | +| [`aap_seed_username`](defaults/main.yml#L11) | str | `{{ aap_username ¦ default(omit) }}` | None | False | AAP Username | +| [`aap_seed_validate_certs`](defaults/main.yml#L26) | str | `{{ aap_validate_certs ¦ default(true) }}` | None | False | Validate Certificates | 🖇️ Full descriptions for vars in defaults/main.yml
-`aap_seed_common_survey_spec`: None +`aap_seed_common_survey_spec`: >-
`aap_seed_common_survey_spec.description`: None
@@ -692,7 +695,7 @@ Description: Seed AAP with Migration Factory Configuration as Code content
`aap_seed_common_survey_spec.spec.1.variable`: None
-`aap_seed_controller_credential_types`: None +`aap_seed_controller_credential_types`: >-
`aap_seed_controller_credential_types.0`: None
@@ -774,7 +777,7 @@ Description: Seed AAP with Migration Factory Configuration as Code content
`aap_seed_controller_credential_types.0.organization`: None
-`aap_seed_controller_execution_environments`: None +`aap_seed_controller_execution_environments`: >-
`aap_seed_controller_execution_environments.0`: None
@@ -790,7 +793,7 @@ Description: Seed AAP with Migration Factory Configuration as Code content
`aap_seed_controller_execution_environments.0.pull`: None
-`aap_seed_controller_inventories`: None +`aap_seed_controller_inventories`: List of AAP inventory definitions.
`aap_seed_controller_inventories.0`: None
@@ -798,9 +801,9 @@ Description: Seed AAP with Migration Factory Configuration as Code content
`aap_seed_controller_inventories.0.organization`: None
-`aap_seed_controller_organizations`: None +`aap_seed_controller_organizations`: List of AAP organization definitions.
-`aap_seed_controller_projects`: None +`aap_seed_controller_projects`: List of AAP project definitions.
`aap_seed_controller_projects.0`: None
@@ -818,7 +821,7 @@ Description: Seed AAP with Migration Factory Configuration as Code content
`aap_seed_controller_projects.0.scm_url`: None
-`aap_seed_controller_templates`: None +`aap_seed_controller_templates`: >-
`aap_seed_controller_templates.0`: None
@@ -868,91 +871,91 @@ Description: Seed AAP with Migration Factory Configuration as Code content
`aap_seed_controller_templates.1.verbosity`: None
-`aap_seed_credential_types_create`: None +`aap_seed_credential_types_create`: Whether to create custom credential type objects in AAP.
-`aap_seed_credentials_create`: None +`aap_seed_credentials_create`: Whether to create credential objects in AAP.
-`aap_seed_execution_environment`: None +`aap_seed_execution_environment`: Execution environment assigned to job templates. Cascades from aap_execution_environment.
-`aap_seed_execution_environment_credential`: None +`aap_seed_execution_environment_credential`: >-
-`aap_seed_execution_environment_credential_description`: None +`aap_seed_execution_environment_credential_description`: Description for the registry credential.
-`aap_seed_execution_environment_credential_host`: None +`aap_seed_execution_environment_credential_host`: Hostname of the container registry. Cascades from aap_execution_environment_credential_host.
-`aap_seed_execution_environment_credential_password`: None +`aap_seed_execution_environment_credential_password`: Password for the container registry. Cascades from aap_execution_environment_credential_password.
-`aap_seed_execution_environment_credential_username`: None +`aap_seed_execution_environment_credential_username`: Username for the container registry. Cascades from aap_execution_environment_credential_username.
-`aap_seed_execution_environment_credential_verify_ssl`: None +`aap_seed_execution_environment_credential_verify_ssl`: >-
-`aap_seed_execution_environment_description`: None +`aap_seed_execution_environment_description`: Description for the custom execution environment. Cascades from aap_execution_environment_description.
-`aap_seed_execution_environment_image`: None +`aap_seed_execution_environment_image`: Container image for the custom execution environment. Cascades from aap_execution_environment_image.
-`aap_seed_execution_environment_pull`: None +`aap_seed_execution_environment_pull`: Image pull policy for the execution environment. Cascades from aap_execution_environment_pull.
-`aap_seed_execution_environments_create`: None +`aap_seed_execution_environments_create`: Whether to create execution environment objects in AAP.
-`aap_seed_git_password`: None +`aap_seed_git_password`: Password or token for Git authentication (HTTPS). Cascades from aap_git_password.
-`aap_seed_git_ssh_key`: None +`aap_seed_git_ssh_key`: SSH private key for Git authentication. Cascades from aap_git_ssh_key.
-`aap_seed_git_ssh_key_unlock`: None +`aap_seed_git_ssh_key_unlock`: Passphrase to unlock the SSH key. Cascades from aap_git_ssh_key_unlock.
-`aap_seed_git_username`: None +`aap_seed_git_username`: Username for Git authentication (HTTPS). Cascades from aap_git_username.
-`aap_seed_hostname`: None +`aap_seed_hostname`: Hostname of the AAP instance. Cascades from aap_hostname inventory variable.
-`aap_seed_hosts_create`: None +`aap_seed_hosts_create`: Whether to create host objects in AAP.
-`aap_seed_inventories_create`: None +`aap_seed_inventories_create`: Whether to create inventory objects in AAP.
-`aap_seed_inventory_name`: None +`aap_seed_inventory_name`: Name of the AAP inventory created for migration hosts.
-`aap_seed_migrate_playbook`: None +`aap_seed_migrate_playbook`: Playbook path for the migration job template.
-`aap_seed_migrate_template_name`: None +`aap_seed_migrate_template_name`: Name of the migration job template created in AAP.
-`aap_seed_mtv_provider_playbook`: None +`aap_seed_mtv_provider_playbook`: Playbook path for the MTV provider job template.
-`aap_seed_mtv_provider_template_name`: None +`aap_seed_mtv_provider_template_name`: Name of the MTV provider job template created in AAP.
-`aap_seed_org_name`: None +`aap_seed_org_name`: AAP organization name used for all created objects.
-`aap_seed_organizations_create`: None +`aap_seed_organizations_create`: Whether to create organization objects in AAP.
-`aap_seed_password`: None +`aap_seed_password`: Password for AAP authentication. Cascades from aap_password inventory variable.
-`aap_seed_project_credential`: None +`aap_seed_project_credential`: Name of the Git credential to attach to the AAP project. Leave empty to skip.
-`aap_seed_project_name`: None +`aap_seed_project_name`: Name of the AAP project created for the migration collection.
-`aap_seed_project_scm_branch`: None +`aap_seed_project_scm_branch`: Git branch for the AAP project. Cascades from aap_project_scm_branch.
-`aap_seed_project_scm_url`: None +`aap_seed_project_scm_url`: Git repository URL for the AAP project. Cascades from aap_project_scm_url.
-`aap_seed_project_sync_timeout`: None +`aap_seed_project_sync_timeout`: Timeout in seconds for AAP project sync operations.
-`aap_seed_projects_create`: None +`aap_seed_projects_create`: Whether to create project objects in AAP.
-`aap_seed_secure_logging`: None +`aap_seed_secure_logging`: >-
-`aap_seed_source_credential_type`: None +`aap_seed_source_credential_type`: Name of the custom credential type created for source hypervisor environments.
-`aap_seed_source_inventory_group`: None +`aap_seed_source_inventory_group`: AAP inventory group name containing source hypervisor hosts.
-`aap_seed_target_credential_type`: None +`aap_seed_target_credential_type`: Name of the built-in credential type used for OpenShift target clusters.
-`aap_seed_target_inventory_group`: None +`aap_seed_target_inventory_group`: AAP inventory group name containing target OpenShift cluster hosts.
-`aap_seed_templates_create`: None +`aap_seed_templates_create`: Whether to create job template objects in AAP.
-`aap_seed_token`: None +`aap_seed_token`: OAuth token for AAP authentication. Cascades from aap_token inventory variable.
-`aap_seed_username`: None +`aap_seed_username`: Username for AAP authentication. Cascades from aap_username inventory variable.
-`aap_seed_validate_certs`: None +`aap_seed_validate_certs`: Whether to validate TLS certificates for AAP connections.

diff --git a/roles/aap_seed/defaults/main.yml b/roles/aap_seed/defaults/main.yml index ead026f..dd8e502 100644 --- a/roles/aap_seed/defaults/main.yml +++ b/roles/aap_seed/defaults/main.yml @@ -1,68 +1,205 @@ --- -# --------------------------------------------------------------------------- -# AAP connection — cascade from generic inventory variables -# --------------------------------------------------------------------------- + +# title: AAP Hostname +# required: True +# description: Hostname of the AAP instance. Cascades from aap_hostname inventory variable. aap_seed_hostname: "{{ aap_hostname }}" + +# title: AAP Username +# required: False +# description: Username for AAP authentication. Cascades from aap_username inventory variable. aap_seed_username: "{{ aap_username | default(omit) }}" + +# title: AAP Password +# required: False +# description: Password for AAP authentication. Cascades from aap_password inventory variable. aap_seed_password: "{{ aap_password | default(omit) }}" + +# title: AAP Token +# required: False +# description: OAuth token for AAP authentication. Cascades from aap_token inventory variable. aap_seed_token: "{{ aap_token | default(omit) }}" + +# title: Validate Certificates +# required: False +# description: Whether to validate TLS certificates for AAP connections. aap_seed_validate_certs: "{{ aap_validate_certs | default(true) }}" + +# title: Secure Logging +# required: False +# description: >- +# Suppress task output for credential loops to prevent secrets from +# leaking to logs. Set to false when debugging credential construction. aap_seed_secure_logging: "{{ secure_logging | default(true) }}" -# --------------------------------------------------------------------------- -# Object naming -# --------------------------------------------------------------------------- +# title: Organization Name +# required: False +# description: AAP organization name used for all created objects. aap_seed_org_name: Default + +# title: Project Name +# required: False +# description: Name of the AAP project created for the migration collection. aap_seed_project_name: OpenShift Virtualization Migration + +# title: Project SCM URL +# required: False +# description: Git repository URL for the AAP project. Cascades from aap_project_scm_url. aap_seed_project_scm_url: >- {{ aap_project_scm_url | default('https://github.com/redhat-cop/openshift_virtualization_migration.git') }} + +# title: Project SCM Branch +# required: False +# description: Git branch for the AAP project. Cascades from aap_project_scm_branch. aap_seed_project_scm_branch: "{{ aap_project_scm_branch | default('v2') }}" + +# title: Project Sync Timeout +# required: False +# description: Timeout in seconds for AAP project sync operations. aap_seed_project_sync_timeout: 120 + +# title: Inventory Name +# required: False +# description: Name of the AAP inventory created for migration hosts. aap_seed_inventory_name: OpenShift Virtualization Migration + +# title: Execution Environment +# required: False +# description: Execution environment assigned to job templates. Cascades from aap_execution_environment. aap_seed_execution_environment: >- {{ aap_execution_environment | default('Default execution environment') }} +# title: Source Credential Type +# required: False +# description: Name of the custom credential type created for source hypervisor environments. aap_seed_source_credential_type: Migration Factory - Source Environment + +# title: Target Credential Type +# required: False +# description: Name of the built-in credential type used for OpenShift target clusters. aap_seed_target_credential_type: OpenShift or Kubernetes API Bearer Token +# title: Source Inventory Group +# required: False +# description: AAP inventory group name containing source hypervisor hosts. aap_seed_source_inventory_group: vm_sources + +# title: Target Inventory Group +# required: False +# description: AAP inventory group name containing target OpenShift cluster hosts. aap_seed_target_inventory_group: migration_clusters +# title: Project Credential +# required: False +# description: Name of the Git credential to attach to the AAP project. Leave empty to skip. aap_seed_project_credential: "{{ aap_project_credential | default('') }}" + +# title: Git Username +# required: False +# description: Username for Git authentication (HTTPS). Cascades from aap_git_username. aap_seed_git_username: "{{ aap_git_username | default('') }}" + +# title: Git Password +# required: False +# description: Password or token for Git authentication (HTTPS). Cascades from aap_git_password. aap_seed_git_password: "{{ aap_git_password | default('') }}" + +# title: Git SSH Key +# required: False +# description: SSH private key for Git authentication. Cascades from aap_git_ssh_key. aap_seed_git_ssh_key: "{{ aap_git_ssh_key | default('') }}" + +# title: Git SSH Key Unlock +# required: False +# description: Passphrase to unlock the SSH key. Cascades from aap_git_ssh_key_unlock. aap_seed_git_ssh_key_unlock: "{{ aap_git_ssh_key_unlock | default('') }}" +# title: EE Description +# required: False +# description: Description for the custom execution environment. Cascades from aap_execution_environment_description. aap_seed_execution_environment_description: >- {{ aap_execution_environment_description | default('') }} + +# title: EE Image +# required: False +# description: Container image for the custom execution environment. Cascades from aap_execution_environment_image. aap_seed_execution_environment_image: "{{ aap_execution_environment_image | default('') }}" + +# title: EE Pull Policy +# required: False +# description: Image pull policy for the execution environment. Cascades from aap_execution_environment_pull. aap_seed_execution_environment_pull: "{{ aap_execution_environment_pull | default('missing') }}" +# title: EE Registry Credential +# required: False +# description: >- +# Name of the registry credential for pulling the EE image. +# Cascades from aap_execution_environment_credential. aap_seed_execution_environment_credential: >- {{ aap_execution_environment_credential | default('') }} + +# title: EE Registry Credential Description +# required: False +# description: Description for the registry credential. aap_seed_execution_environment_credential_description: >- {{ aap_execution_environment_credential_description | default('Migration Factory Registry Credential') }} + +# title: EE Registry Credential Host +# required: False +# description: Hostname of the container registry. Cascades from aap_execution_environment_credential_host. aap_seed_execution_environment_credential_host: >- {{ aap_execution_environment_credential_host | default('') }} + +# title: EE Registry Credential Username +# required: False +# description: Username for the container registry. Cascades from aap_execution_environment_credential_username. aap_seed_execution_environment_credential_username: >- {{ aap_execution_environment_credential_username | default('') }} + +# title: EE Registry Credential Password +# required: False +# description: Password for the container registry. Cascades from aap_execution_environment_credential_password. aap_seed_execution_environment_credential_password: >- {{ aap_execution_environment_credential_password | default('') }} + +# title: EE Registry Credential Verify SSL +# required: False +# description: >- +# Whether to verify SSL for the container registry. +# Cascades from aap_execution_environment_credential_verify_ssl. aap_seed_execution_environment_credential_verify_ssl: >- {{ aap_execution_environment_credential_verify_ssl | default(true) }} +# title: Migrate Template Name +# required: False +# description: Name of the migration job template created in AAP. aap_seed_migrate_template_name: OpenShift Virtualization Migration - Migrate + +# title: Migrate Playbook +# required: False +# description: Playbook path for the migration job template. aap_seed_migrate_playbook: playbooks/vmf_migrate.yml +# title: MTV Provider Template Name +# required: False +# description: Name of the MTV provider job template created in AAP. aap_seed_mtv_provider_template_name: OpenShift Virtualization Migration - MTV Provider + +# title: MTV Provider Playbook +# required: False +# description: Playbook path for the MTV provider job template. aap_seed_mtv_provider_playbook: playbooks/vmf_mtv_provider.yml +# title: Common Survey Spec +# required: False +# description: >- +# Shared survey specification used by job templates. Contains the +# source_name and target_name prompts. aap_seed_common_survey_spec: name: "" description: "" @@ -84,28 +221,56 @@ aap_seed_common_survey_spec: type: text required: true -# --------------------------------------------------------------------------- -# Per-type create toggles — set to false to skip an entire category -# --------------------------------------------------------------------------- +# title: Create Organizations +# required: False +# description: Whether to create organization objects in AAP. aap_seed_organizations_create: true + +# title: Create Credential Types +# required: False +# description: Whether to create custom credential type objects in AAP. aap_seed_credential_types_create: true + +# title: Create Credentials +# required: False +# description: Whether to create credential objects in AAP. aap_seed_credentials_create: true + +# title: Create Inventories +# required: False +# description: Whether to create inventory objects in AAP. aap_seed_inventories_create: true + +# title: Create Hosts +# required: False +# description: Whether to create host objects in AAP. aap_seed_hosts_create: true + +# title: Create Projects +# required: False +# description: Whether to create project objects in AAP. aap_seed_projects_create: true + +# title: Create Execution Environments +# required: False +# description: Whether to create execution environment objects in AAP. aap_seed_execution_environments_create: true -aap_seed_templates_create: true -# --------------------------------------------------------------------------- -# Default AAP object lists -# -# Users may override any of these by redefining the variable in their -# inventory or playbook. The role builds these into controller_* -# variables at runtime and passes them to infra.aap_configuration.dispatch. -# --------------------------------------------------------------------------- +# title: Create Templates +# required: False +# description: Whether to create job template objects in AAP. +aap_seed_templates_create: true +# title: Controller Organizations +# required: False +# description: List of AAP organization definitions. aap_seed_controller_organizations: [] +# title: Controller Credential Types +# required: False +# description: >- +# List of custom credential type definitions. Default creates the +# Migration Factory source environment credential type. aap_seed_controller_credential_types: - name: "{{ aap_seed_source_credential_type }}" organization: "{{ aap_seed_org_name }}" @@ -142,10 +307,16 @@ aap_seed_controller_credential_types: mf_source_certificate: "{% raw %}{ { certificate }}{% endraw %}" mf_insecure_skip_tls_verify: "{% raw %}{ { insecure_skip_tls_verify }}{% endraw %}" +# title: Controller Inventories +# required: False +# description: List of AAP inventory definitions. aap_seed_controller_inventories: - name: "{{ aap_seed_inventory_name }}" organization: "{{ aap_seed_org_name }}" +# title: Controller Projects +# required: False +# description: List of AAP project definitions. aap_seed_controller_projects: - name: "{{ aap_seed_project_name }}" organization: "{{ aap_seed_org_name }}" @@ -155,6 +326,11 @@ aap_seed_controller_projects: scm_update_on_launch: true credential: "{{ aap_seed_project_credential | default(omit, true) }}" +# title: Controller Execution Environments +# required: False +# description: >- +# List of AAP execution environment definitions. Default creates one +# EE using the configured image and registry credential. aap_seed_controller_execution_environments: - name: "{{ aap_seed_execution_environment }}" description: "{{ aap_seed_execution_environment_description }}" @@ -163,6 +339,11 @@ aap_seed_controller_execution_environments: pull: "{{ aap_seed_execution_environment_pull }}" credential: "{{ aap_seed_execution_environment_credential | default(omit, true) }}" +# title: Controller Templates +# required: False +# description: >- +# List of AAP job template definitions. Default creates the migrate +# and MTV provider templates. aap_seed_controller_templates: - name: "{{ aap_seed_migrate_template_name }}" organization: "{{ aap_seed_org_name }}" diff --git a/roles/mtv_provider/README.md b/roles/mtv_provider/README.md index 53d9915..4af5772 100644 --- a/roles/mtv_provider/README.md +++ b/roles/mtv_provider/README.md @@ -1,8 +1,7 @@ # mtv_provider -Creates MTV/Forklift source Provider CRs on OpenShift target clusters. -Designed to run from AAP with credential injection. +Create MTV/Forklift source provider CRs on OpenShift target clusters. @@ -96,47 +95,50 @@ Description: Create MTV/Forklift source provider CRs on OpenShift target cluster | Var | Type | Value |Choices |Required | Title | |--------------|--------------|-------------|-------------|-------------|-------------| -| [`mtv_provider_api_version`](defaults/main.yml#L26) | str | `forklift.konveyor.io/v1beta1` | None | None | None | -| [`mtv_provider_auto_retrieve_cert`](defaults/main.yml#L33) | bool | `True` | None | None | None | -| [`mtv_provider_provider_namespace`](defaults/main.yml#L10) | str | `` | None | None | None | -| [`mtv_provider_provider_override`](defaults/main.yml#L29) | dict | `{}` | None | None | None | -| [`mtv_provider_provider_state`](defaults/main.yml#L23) | str | `present` | None | None | None | -| [`mtv_provider_provider_wait`](defaults/main.yml#L14) | bool | `True` | None | None | None | -| [`mtv_provider_provider_wait_poll`](defaults/main.yml#L20) | int | `10` | None | None | None | -| [`mtv_provider_provider_wait_timeout`](defaults/main.yml#L17) | int | `120` | None | None | None | -| [`mtv_provider_secure_logging`](defaults/main.yml#L2) | str | `{{ secure_logging ¦ default(true) }}` | None | None | None | -| [`mtv_provider_source_host`](defaults/main.yml#L41) | str | `` | None | None | None | -| [`mtv_provider_source_sdk_endpoint`](defaults/main.yml#L44) | str | `` | None | None | None | -| [`mtv_provider_source_type`](defaults/main.yml#L38) | str | `` | None | None | None | -| [`mtv_provider_source_vddk`](defaults/main.yml#L47) | str | `{{ hostvars[source_name]['vddk'] ¦ default({}) }}` | None | None | None | +| [`mtv_provider_api_version`](defaults/main.yml#L39) | str | `forklift.konveyor.io/v1beta1` | None | False | Forklift API Version | +| [`mtv_provider_auto_retrieve_cert`](defaults/main.yml#L51) | bool | `True` | None | False | Auto Retrieve Certificate | +| [`mtv_provider_managed_by_label`](defaults/main.yml#L83) | str | `ansible-migration-factory` | None | False | Managed By Label | +| [`mtv_provider_provider_namespace`](defaults/main.yml#L13) | str | `` | None | False | Provider Namespace | +| [`mtv_provider_provider_override`](defaults/main.yml#L44) | dict | `{}` | None | False | Provider Override | +| [`mtv_provider_provider_state`](defaults/main.yml#L34) | str | `present` | None | False | Provider State | +| [`mtv_provider_provider_wait`](defaults/main.yml#L19) | bool | `True` | None | False | Wait for Provider Ready | +| [`mtv_provider_provider_wait_poll`](defaults/main.yml#L29) | int | `10` | None | False | Provider Wait Poll Interval | +| [`mtv_provider_provider_wait_timeout`](defaults/main.yml#L24) | int | `120` | None | False | Provider Wait Timeout | +| [`mtv_provider_secure_logging`](defaults/main.yml#L6) | str | `{{ secure_logging ¦ default(true) }}` | None | False | Secure Logging | +| [`mtv_provider_source_host`](defaults/main.yml#L66) | str | `` | None | True | Source Host | +| [`mtv_provider_source_sdk_endpoint`](defaults/main.yml#L72) | str | `` | None | False | Source SDK Endpoint | +| [`mtv_provider_source_type`](defaults/main.yml#L58) | str | `` | None | False | Source Type | +| [`mtv_provider_source_vddk`](defaults/main.yml#L78) | str | `{{ hostvars[source_name]['vddk'] ¦ default({}) }}` | None | False | Source VDDK Configuration | 🖇️ Full descriptions for vars in defaults/main.yml
-`mtv_provider_api_version`: None +`mtv_provider_api_version`: Forklift API version for Provider CRs.
-`mtv_provider_auto_retrieve_cert`: None +`mtv_provider_auto_retrieve_cert`: >-
-`mtv_provider_provider_namespace`: None +`mtv_provider_managed_by_label`: Value of the app.kubernetes.io/managed-by label applied to CRs.
-`mtv_provider_provider_override`: None +`mtv_provider_provider_namespace`: >-
-`mtv_provider_provider_state`: None +`mtv_provider_provider_override`: Override configuration merged into the Provider CR spec.
-`mtv_provider_provider_wait`: None +`mtv_provider_provider_state`: Desired state of the provider — present or absent.
-`mtv_provider_provider_wait_poll`: None +`mtv_provider_provider_wait`: Whether to wait for the Provider CR to reach Ready status after creation.
-`mtv_provider_provider_wait_timeout`: None +`mtv_provider_provider_wait_poll`: Seconds between status polls while waiting for Ready.
-`mtv_provider_secure_logging`: None +`mtv_provider_provider_wait_timeout`: Seconds to wait for the Provider to become Ready before failing.
-`mtv_provider_source_host`: None +`mtv_provider_secure_logging`: Whether to enable secure logging for sensitive tasks.
-`mtv_provider_source_sdk_endpoint`: None +`mtv_provider_source_host`: >-
-`mtv_provider_source_type`: None +`mtv_provider_source_sdk_endpoint`: SDK endpoint path appended to the source host URL for VMware providers.
-`mtv_provider_source_vddk`: None +`mtv_provider_source_type`: >- +
+`mtv_provider_source_vddk`: VDDK configuration dictionary from the source host vars.

diff --git a/roles/mtv_provider/defaults/main.yml b/roles/mtv_provider/defaults/main.yml index f603f83..fb6c48b 100644 --- a/roles/mtv_provider/defaults/main.yml +++ b/roles/mtv_provider/defaults/main.yml @@ -1,48 +1,84 @@ --- -mtv_provider_secure_logging: "{{ secure_logging | default(true) }}" -# --------------------------------------------------------------------------- -# Provider configuration — controls how MTV providers are created -# --------------------------------------------------------------------------- +# title: Secure Logging +# required: False +# description: Whether to enable secure logging for sensitive tasks. +mtv_provider_secure_logging: "{{ secure_logging | default(true) }}" -# Namespace where the provider will be created. -# Resolved from target host vars in AAP inventory; override if needed. +# title: Provider Namespace +# required: False +# description: >- +# Namespace where the provider will be created. Resolved from +# target host vars in AAP inventory; override if needed. mtv_provider_provider_namespace: >- {{ hostvars[target_name]['mtv_namespace'] | default('openshift-mtv') }} -# Whether to wait for the Provider CR to reach Ready status after creation. +# title: Wait for Provider Ready +# required: False +# description: Whether to wait for the Provider CR to reach Ready status after creation. mtv_provider_provider_wait: true -# Seconds to wait for the Provider to become Ready before failing. +# title: Provider Wait Timeout +# required: False +# description: Seconds to wait for the Provider to become Ready before failing. mtv_provider_provider_wait_timeout: 120 -# Seconds between status polls while waiting for Ready. +# title: Provider Wait Poll Interval +# required: False +# description: Seconds between status polls while waiting for Ready. mtv_provider_provider_wait_poll: 10 -# Desired state of the provider — present or absent. +# title: Provider State +# required: False +# description: Desired state of the provider — present or absent. mtv_provider_provider_state: present -# Forklift API version for Provider CRs. +# title: Forklift API Version +# required: False +# description: Forklift API version for Provider CRs. mtv_provider_api_version: forklift.konveyor.io/v1beta1 -# Override configuration merged into the Provider CR spec. +# title: Provider Override +# required: False +# description: Override configuration merged into the Provider CR spec. mtv_provider_provider_override: {} -# Whether to automatically retrieve the source TLS certificate -# when insecureSkipTlsVerify is false and no certificate is provided. +# title: Auto Retrieve Certificate +# required: False +# description: >- +# Whether to automatically retrieve the source TLS certificate +# when insecureSkipTlsVerify is false and no certificate is provided. mtv_provider_auto_retrieve_cert: true -# --------------------------------------------------------------------------- -# Source metadata — resolved from AAP inventory host vars -# --------------------------------------------------------------------------- +# title: Source Type +# required: False +# description: >- +# Type of the source environment. Resolved from the source host's +# type variable in the AAP inventory. Supported values: vmware, ovirt. mtv_provider_source_type: >- {{ hostvars[source_name]['type'] | default('vmware') }} +# title: Source Host +# required: True +# description: >- +# Hostname or URL of the source hypervisor. Resolved from the +# source host's host variable in the AAP inventory. mtv_provider_source_host: >- {{ hostvars[source_name]['host'] }} +# title: Source SDK Endpoint +# required: False +# description: SDK endpoint path appended to the source host URL for VMware providers. mtv_provider_source_sdk_endpoint: >- {{ hostvars[source_name]['sdk_endpoint'] | default('/sdk') }} +# title: Source VDDK Configuration +# required: False +# description: VDDK configuration dictionary from the source host vars. mtv_provider_source_vddk: "{{ hostvars[source_name]['vddk'] | default({}) }}" + +# title: Managed By Label +# required: False +# description: Value of the app.kubernetes.io/managed-by label applied to CRs. +mtv_provider_managed_by_label: ansible-migration-factory ... diff --git a/roles/mtv_provider/templates/provider.yml.j2 b/roles/mtv_provider/templates/provider.yml.j2 index 8bbda29..2d45d86 100644 --- a/roles/mtv_provider/templates/provider.yml.j2 +++ b/roles/mtv_provider/templates/provider.yml.j2 @@ -4,7 +4,7 @@ metadata: name: {{ _mtv_provider_provider_name | to_json }} namespace: {{ mtv_provider_provider_namespace | to_json }} labels: - app.kubernetes.io/managed-by: ansible-migration-factory + app.kubernetes.io/managed-by: {{ mtv_provider_managed_by_label }} spec: type: {{ _mtv_provider_forklift_type | to_json }} url: {{ _mtv_provider_source_url | to_json }} diff --git a/roles/mtv_provider/templates/provider_secret.yml.j2 b/roles/mtv_provider/templates/provider_secret.yml.j2 index b376102..fcdb131 100644 --- a/roles/mtv_provider/templates/provider_secret.yml.j2 +++ b/roles/mtv_provider/templates/provider_secret.yml.j2 @@ -6,7 +6,7 @@ metadata: labels: createdForProviderType: {{ _mtv_provider_forklift_type }} createdForResourceType: providers - app.kubernetes.io/managed-by: ansible-migration-factory + app.kubernetes.io/managed-by: {{ mtv_provider_managed_by_label }} type: Opaque stringData: user: {{ mf_source_username | to_json }} diff --git a/roles/utility_openshift_target_credential/README.md b/roles/utility_openshift_target_credential/README.md index edafc18..5f95034 100644 --- a/roles/utility_openshift_target_credential/README.md +++ b/roles/utility_openshift_target_credential/README.md @@ -1,10 +1,9 @@ - -# 📃 Role overview + +# utility_openshift_target_credential + +Manage OpenShift target cluster credentials for migration automation. - ## utility_openshift_target_credential @@ -90,7 +89,7 @@ Description: A utility role to manage OpenShift target cluster credentials for m |--------------|--------------|-------------|-------------|-------------|-------------| | [`utility_openshift_target_credential_cluster_role`](defaults/main.yml#L43) | str | `cluster-admin` | None | False | Cluster Role applied to the generated OpenShift Service Account | | [`utility_openshift_target_credential_display_credential`](defaults/main.yml#L58) | bool | `False` | None | False | Display Credential | -| [`utility_openshift_target_credential_managed_by_label`](defaults/main.yml#L48) | str | `ansible` | None | False | Managed By Label | +| [`utility_openshift_target_credential_managed_by_label`](defaults/main.yml#L48) | str | `ansible-migration-factory` | None | False | Managed By Label | | [`utility_openshift_target_credential_openshift_api_key`](defaults/main.yml#L12) | str | `` | None | True | OpenShift API Key | | [`utility_openshift_target_credential_openshift_ca_cert_path`](defaults/main.yml#L23) | str | `{{ openshift_ca_cert_path ¦ default(omit) }}` | None | False | OpenShift CA Certificate Path | | [`utility_openshift_target_credential_openshift_host`](defaults/main.yml#L7) | str | `{{ openshift_host }}` | None | True | OpenShift Host | diff --git a/roles/utility_openshift_target_credential/defaults/main.yml b/roles/utility_openshift_target_credential/defaults/main.yml index 79cf1d5..36f983e 100644 --- a/roles/utility_openshift_target_credential/defaults/main.yml +++ b/roles/utility_openshift_target_credential/defaults/main.yml @@ -45,7 +45,7 @@ utility_openshift_target_credential_cluster_role: "cluster-admin" # title: Managed By Label # required: False # description: Value of the app.kubernetes.io/managed-by label applied to resources. -utility_openshift_target_credential_managed_by_label: "ansible" +utility_openshift_target_credential_managed_by_label: "ansible-migration-factory" # title: Secure Logging # required: False