diff --git a/config/crd/bases/awx.ansible.com_awxs.yaml b/config/crd/bases/awx.ansible.com_awxs.yaml index ebe61b84c..eb7b4f6a4 100644 --- a/config/crd/bases/awx.ansible.com_awxs.yaml +++ b/config/crd/bases/awx.ansible.com_awxs.yaml @@ -2009,6 +2009,10 @@ spec: description: Enable metrics utility shipping to Red Hat Hybrid Cloud Console type: boolean default: false + public_base_url: + description: Public base URL + type: string + default: '' type: object status: properties: diff --git a/config/manifests/bases/awx-operator.clusterserviceversion.yaml b/config/manifests/bases/awx-operator.clusterserviceversion.yaml index 337d18842..c7f8cc7d4 100644 --- a/config/manifests/bases/awx-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/awx-operator.clusterserviceversion.yaml @@ -173,6 +173,12 @@ spec: path: db_management_pod_node_selector x-descriptors: - urn:alm:descriptor:com.tectonic.ui:advanced + - displayName: Public Base URL + path: public_base_url + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - urn:alm:descriptor:com.tectonic.ui:advanced + - urn:alm:descriptor:com.tectonic.ui:hidden statusDescriptors: - description: Persistent volume claim name used during backup displayName: Backup Claim diff --git a/roles/installer/tasks/install.yml b/roles/installer/tasks/install.yml index e1c44eff6..60b94577a 100644 --- a/roles/installer/tasks/install.yml +++ b/roles/installer/tasks/install.yml @@ -44,6 +44,11 @@ - name: Include secret key configuration tasks include_tasks: secret_key_configuration.yml +- name: Apply Redirect Page Configmap + k8s: + definition: "{{ lookup('template', 'configmaps/redirect-page.configmap.html.j2') }}" + when: public_base_url is defined + - name: Load LDAP CAcert certificate (Deprecated) include_tasks: load_ldap_cacert_secret.yml when: diff --git a/roles/installer/templates/configmaps/config.yaml.j2 b/roles/installer/templates/configmaps/config.yaml.j2 index 99acf723e..7f253d241 100644 --- a/roles/installer/templates/configmaps/config.yaml.j2 +++ b/roles/installer/templates/configmaps/config.yaml.j2 @@ -26,7 +26,7 @@ data: return open('/etc/tower/SECRET_KEY', 'rb').read().strip() ADMINS = () - STATIC_ROOT = '/var/lib/awx/public/static' + STATIC_ROOT = '{{ _static_root | default('/var/lib/awx/public/static') }}' STATIC_URL = '{{ (ingress_path + '/static/').replace('//', '/') }}' PROJECTS_ROOT = '/var/lib/awx/projects' JOBOUTPUT_ROOT = '/var/lib/awx/job_status' diff --git a/roles/installer/templates/configmaps/redirect-page.configmap.html.j2 b/roles/installer/templates/configmaps/redirect-page.configmap.html.j2 new file mode 100644 index 000000000..bc893b372 --- /dev/null +++ b/roles/installer/templates/configmaps/redirect-page.configmap.html.j2 @@ -0,0 +1,77 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ ansible_operator_meta.name }}-redirect-page + namespace: {{ ansible_operator_meta.namespace }} +data: + redirect-page.html: | + + + + + + + Redirecting to Ansible Automation Platform + + + + + + + + + + + + + + +

Redirecting to Ansible Automation Platform...

+

If you are not redirected automatically, click here to go to AAP.

+

+ The API endpoints for this platform service will temporarily remain available at the URL for this service. + Please use the Ansible Automation Platform API endpoints corresponding to this component in the future. + These can be found at {{ public_base_url }}/awx/api/. +

+ + + + + + \ No newline at end of file diff --git a/roles/installer/templates/deployments/task.yaml.j2 b/roles/installer/templates/deployments/task.yaml.j2 index 72140f404..f74790f3e 100644 --- a/roles/installer/templates/deployments/task.yaml.j2 +++ b/roles/installer/templates/deployments/task.yaml.j2 @@ -267,6 +267,11 @@ spec: timeoutSeconds: {{ task_readiness_timeout }} {% endif %} volumeMounts: +{% if public_base_url is defined %} + - name: redirect-page + mountPath: '/static/awx/index.html' + subPath: redirect-page.html +{% endif %} {% if bundle_ca_crt %} - name: "ca-trust-extracted" mountPath: "/etc/pki/ca-trust/extracted" @@ -516,6 +521,14 @@ spec: terminationGracePeriodSeconds: {{ termination_grace_period_seconds }} {% endif %} volumes: +{% if public_base_url is defined %} + - name: redirect-page + configMap: + name: '{{ ansible_operator_meta.name }}-redirect-page' + items: + - key: redirect-page.html + path: redirect-page.html +{% endif %} {% if bundle_ca_crt %} - name: "ca-trust-extracted" emptyDir: {}