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/redirect-page.configmap.html.j2 b/roles/installer/templates/configmaps/redirect-page.configmap.html.j2 new file mode 100644 index 000000000..290b2e053 --- /dev/null +++ b/roles/installer/templates/configmaps/redirect-page.configmap.html.j2 @@ -0,0 +1,71 @@ +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.

+

Please note: The component-level API endpoints for this platform service are temporarily available and will be deprecated in an upcoming release.
In the future, please use the corresponding Ansible Automation Platform API endpoint: {{ public_base_url }}/api/{{ deployment_type }}

+ + + + + + \ No newline at end of file diff --git a/roles/installer/templates/deployments/web.yaml.j2 b/roles/installer/templates/deployments/web.yaml.j2 index f32020f1b..26ca99f93 100644 --- a/roles/installer/templates/deployments/web.yaml.j2 +++ b/roles/installer/templates/deployments/web.yaml.j2 @@ -29,6 +29,7 @@ spec: kubectl.kubernetes.io/default-container: '{{ ansible_operator_meta.name }}-web' {% for template in [ "configmaps/config", + "configmaps/redirect-page.configmap.html", "secrets/app_credentials", "storage/persistent", ] %} @@ -197,6 +198,11 @@ spec: timeoutSeconds: {{ web_readiness_timeout }} {% endif %} volumeMounts: +{% if public_base_url is defined %} + - name: redirect-page + mountPath: '/var/lib/awx/venv/awx/lib/python3.11/site-packages/awx/ui/build/index.html' + subPath: redirect-page.html +{% endif %} {% if bundle_ca_crt %} - name: "ca-trust-extracted" mountPath: "/etc/pki/ca-trust/extracted" @@ -375,6 +381,14 @@ spec: {{ security_context_settings | to_nice_yaml | indent(8) }} {% 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 %} - name: "{{ ansible_operator_meta.name }}-receptor-ca" secret: secretName: "{{ ansible_operator_meta.name }}-receptor-ca"