diff --git a/changelogs/fragments/add_eda_install_on_ocp.yaml b/changelogs/fragments/add_eda_install_on_ocp.yaml new file mode 100644 index 0000000..a13b9fa --- /dev/null +++ b/changelogs/fragments/add_eda_install_on_ocp.yaml @@ -0,0 +1,2 @@ +minor_changes: + - Added ability to install EDA Controller on OCP diff --git a/roles/aap_ocp_install/README.md b/roles/aap_ocp_install/README.md index c00fa42..1574d92 100644 --- a/roles/aap_ocp_install/README.md +++ b/roles/aap_ocp_install/README.md @@ -60,13 +60,20 @@ If the variable is omitted the corresponding component will not be installed (e. | projects_storage_size | | 8Gi | Size of /var/lib/projects persistent volume claim (PVC) | | link_text | | Automation Controller () | Text used for creating the OCP application link | -| ### aap_ocp_install_hub keys |### aap_ocp_install_hub keys +### aap_ocp_install_hub keys | Key Name | Required | Default Value | Description | |---------------|:--------:|----------------------------------|-------------------------------------------------| | instance_name | Yes | None | Name of the hub instance to create | | link_text | | Automation Hub () | Text used for creating the OCP application link | +### aap_ocp_install_eda keys + +| Key Name | Required | Default Value | Description | +|---------------|:--------:|----------------------------------|-------------------------------------------------| +| instance_name | Yes | None | Name of the EDA instance to create | +| link_text | | EDA Controller () | Text used for creating the OCP application link | + ## Dependencies This role depends on the redhat.openshift and kubernetes.core collections. @@ -94,6 +101,8 @@ Including an example of how to use your role (for instance, with variables passe instance_name: automationcontroller aap_ocp_install_hub: instance_name: automationhub + aap_ocp_install_eda: + instance_name: edacontroller roles: - infra.aap_utilities.aap_ocp_install @@ -107,3 +116,4 @@ Including an example of how to use your role (for instance, with variables passe ## Author Information Brant Evans +Derek Waters diff --git a/roles/aap_ocp_install/defaults/main.yml b/roles/aap_ocp_install/defaults/main.yml index f1316ae..69e5bac 100644 --- a/roles/aap_ocp_install/defaults/main.yml +++ b/roles/aap_ocp_install/defaults/main.yml @@ -24,4 +24,11 @@ # aap_ocp_install_hub: # instance_name: # link_text: + +# Variable applicable to the EDA installation +# aap_ocp_install_eda: +# namespace: +# instance_name: +# replicas: +# link_text: ... diff --git a/roles/aap_ocp_install/tasks/install-eda.yml b/roles/aap_ocp_install/tasks/install-eda.yml new file mode 100644 index 0000000..833a506 --- /dev/null +++ b/roles/aap_ocp_install/tasks/install-eda.yml @@ -0,0 +1,63 @@ +--- +- name: Create EDA controller namespace + kubernetes.core.k8s: + host: "{{ __aap_ocp_install_auth_results['openshift_auth']['host'] }}" + api_key: "{{ __aap_ocp_install_auth_results['openshift_auth']['api_key'] }}" + validate_certs: "{{ aap_ocp_install_connection['validate_certs'] | default(omit) }}" + state: present + resource_definition: "{{ lookup('ansible.builtin.template', 'namespace.yaml.j2', template_vars=ns_vars) | from_yaml }}" + apply: true + vars: + ns_vars: + ns_name: "{{ aap_ocp_install_eda['namespace'] }}" + when: + - aap_ocp_install_eda['namespace'] is defined + +- name: Create EDA instance + kubernetes.core.k8s: + host: "{{ __aap_ocp_install_auth_results['openshift_auth']['host'] }}" + api_key: "{{ __aap_ocp_install_auth_results['openshift_auth']['api_key'] }}" + validate_certs: "{{ aap_ocp_install_connection['validate_certs'] | default(omit) }}" + state: present + resource_definition: "{{ lookup('template', 'eda/instance.yaml.j2') | from_yaml }}" + apply: true + +- name: Wait for operator to create the EDA route + kubernetes.core.k8s_info: + host: "{{ __aap_ocp_install_auth_results['openshift_auth']['host'] }}" + api_key: "{{ __aap_ocp_install_auth_results['openshift_auth']['api_key'] }}" + validate_certs: "{{ aap_ocp_install_connection['validate_certs'] | default(omit) }}" + kind: Route + name: "{{ aap_ocp_install_eda['instance_name'] | mandatory }}" + api_version: route.openshift.io/v1 + namespace: "{{ aap_ocp_install_eda['namespace'] | default(aap_ocp_install_namespace) }}" + register: __aap_ocp_install_eda_route_result + until: __aap_ocp_install_eda_route_result['resources'] + retries: 60 # Wait for 15 minutes (60*15/60) + delay: 15 + +- name: Store EDA route + ansible.builtin.set_fact: + __aap_ocp_install_eda_route: "{{ __aap_ocp_install_eda_route_result['resources'][0]['status']['ingress'][0]['host'] }}" + +- name: Ensure EDA login is available + ansible.builtin.uri: + url: "https://{{ __aap_ocp_install_eda_route }}" + validate_certs: "{{ aap_ocp_install_connection['validate_certs'] | default(omit) }}" + method: GET + status_code: + - 200 + register: __aap_ocp_install_eda_available + until: __aap_ocp_install_eda_available['status'] == 200 + retries: 120 # Wait for 30 minutes (120*15/60) + delay: 15 + +- name: Create EDA console link + kubernetes.core.k8s: + host: "{{ __aap_ocp_install_auth_results['openshift_auth']['host'] }}" + api_key: "{{ __aap_ocp_install_auth_results['openshift_auth']['api_key'] }}" + validate_certs: "{{ aap_ocp_install_connection['validate_certs'] | default(omit) }}" + state: present + resource_definition: "{{ lookup('template', 'eda/consolelink.yaml.j2') | from_yaml }}" + apply: true +... diff --git a/roles/aap_ocp_install/tasks/main.yml b/roles/aap_ocp_install/tasks/main.yml index 4841dfc..67df8f6 100644 --- a/roles/aap_ocp_install/tasks/main.yml +++ b/roles/aap_ocp_install/tasks/main.yml @@ -50,6 +50,16 @@ tags: - hub + - name: Include Ansible Automation Platform EDA install tasks + ansible.builtin.include_tasks: + file: install-eda.yml + apply: + tags: + - eda + when: aap_ocp_install_eda is defined + tags: + - eda + always: - name: Include OpenShift finalization tasks diff --git a/roles/aap_ocp_install/tasks/pre-validate-eda.yml b/roles/aap_ocp_install/tasks/pre-validate-eda.yml new file mode 100644 index 0000000..4b4d0b7 --- /dev/null +++ b/roles/aap_ocp_install/tasks/pre-validate-eda.yml @@ -0,0 +1,56 @@ +--- +- name: Ensure eda instance name variable is set (block) + block: + - name: Ensure eda instance name variable is set + ansible.builtin.assert: + that: + - aap_ocp_install_eda['instance_name'] | default('', true) | length > 0 + quiet: true + rescue: + - name: Update validation errors fact - eda instance_name + ansible.builtin.set_fact: + __aap_ocp_install_prevalidate_errors: > + {{ __aap_ocp_install_prevalidate_errors + ["aap_ocp_install_eda['instance_name'] must be set"] }} + +- name: Ensure EDA namespace variable is set (block) + when: aap_ocp_install_eda['namespace'] is defined + block: + - name: Ensure EDA namespace variable is set + ansible.builtin.assert: + that: + - aap_ocp_install_eda['namespace'] | default("", true) | regex_search('^[a-z0-9]([-a-z0-9]*[a-z0-9])?$') + quiet: true + rescue: + - name: Update validation errors fact - namespace + ansible.builtin.set_fact: + __aap_ocp_install_prevalidate_errors: > + {{ __aap_ocp_install_prevalidate_errors + ["aap_ocp_install_eda['namespace'] must be a lowercase RFC 1123 label consisting of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character (e.g. 'my-name', or '123-abc'"] }} + +- name: Ensure EDA link text variable is set (block) + when: aap_ocp_install_eda['link_text'] is defined + block: + - name: Ensure EDA link text variable is set + ansible.builtin.assert: + that: + - aap_ocp_install_eda['link_text'] | default('', true) | length > 0 + quiet: true + rescue: + - name: Update validation errors fact - EDA link_text + ansible.builtin.set_fact: + __aap_ocp_install_prevalidate_errors: > + {{ __aap_ocp_install_prevalidate_errors + ["aap_ocp_install_eda['link_text'] must be a non-empty string"] }} + +- name: Ensure EDA replicas is valid (block) + when: aap_ocp_install_eda['replicas'] is defined + block: + - name: Ensure EDA replicas is valid + ansible.builtin.assert: + that: + - (aap_ocp_install_eda['replicas'] | int) > 0 + quiet: true + rescue: + - name: Update validation errors fact - EDA replicas + ansible.builtin.set_fact: + __aap_ocp_install_prevalidate_errors: > + {{ __aap_ocp_install_prevalidate_errors + ["aap_ocp_install_eda['replicas'] must be a number greater than 0"] }} +... diff --git a/roles/aap_ocp_install/tasks/pre-validate.yml b/roles/aap_ocp_install/tasks/pre-validate.yml index ad1ea00..b634a7b 100644 --- a/roles/aap_ocp_install/tasks/pre-validate.yml +++ b/roles/aap_ocp_install/tasks/pre-validate.yml @@ -104,6 +104,12 @@ when: - ( 'hub' in ansible_run_tags ) or ( 'all' in ansible_run_tags and aap_ocp_install_hub is defined ) +- name: Ensure eda variables are set + ansible.builtin.include_tasks: + file: pre-validate-eda.yml + when: + - ( 'eda' in ansible_run_tags ) or ( 'all' in ansible_run_tags and aap_ocp_install_eda is defined ) + - name: Ensure no validation errors found ansible.builtin.debug: msg: diff --git a/roles/aap_ocp_install/templates/eda/consolelink.yaml.j2 b/roles/aap_ocp_install/templates/eda/consolelink.yaml.j2 new file mode 100644 index 0000000..a15aa88 --- /dev/null +++ b/roles/aap_ocp_install/templates/eda/consolelink.yaml.j2 @@ -0,0 +1,17 @@ +--- +apiVersion: console.openshift.io/v1 +kind: ConsoleLink +metadata: + name: {{ aap_ocp_install_eda['instance_name'] }} +spec: + applicationMenu: + section: Red Hat applications + imageURL: data:image/png;base64,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 + href: 'https://{{ __aap_ocp_install_eda_route }}/' + location: ApplicationMenu +{% if aap_ocp_install_eda['link_text'] is defined %} + text: {{ aap_ocp_install_eda['link_text'] }} +{% else %} + text: EDA Controller ({{ aap_ocp_install_eda['instance_name'] }}) +{% endif%} +... diff --git a/roles/aap_ocp_install/templates/eda/instance.yaml.j2 b/roles/aap_ocp_install/templates/eda/instance.yaml.j2 new file mode 100644 index 0000000..b4958cf --- /dev/null +++ b/roles/aap_ocp_install/templates/eda/instance.yaml.j2 @@ -0,0 +1,10 @@ +--- +apiVersion: eda.ansible.com/v1alpha1 +kind: EDA +metadata: + name: {{ aap_ocp_install_eda['instance_name'] }} + namespace: {{ aap_ocp_install_eda['namespace'] | default(aap_ocp_install_namespace) }} +spec: + replicas: {{ aap_ocp_install_eda['replicas'] | default(1) | int }} + automation_server_url: 'https://{{ __aap_ocp_install_controller_route }}/' +...