From 83b9dd11f53a8bd2ecaff4aba301d29a80fd8001 Mon Sep 17 00:00:00 2001 From: aknochow Date: Thu, 24 Oct 2024 10:12:21 -0400 Subject: [PATCH] adding redirect page --- config/crd/bases/awx.ansible.com_awxs.yaml | 4 + .../awx-operator.clusterserviceversion.yaml | 6 ++ roles/installer/tasks/install.yml | 6 ++ .../redirect-page.configmap.html.j2 | 76 +++++++++++++++++++ .../templates/deployments/web.yaml.j2 | 22 +++++- 5 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 roles/installer/templates/configmaps/redirect-page.configmap.html.j2 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..b0099eb9d 100644 --- a/roles/installer/tasks/install.yml +++ b/roles/installer/tasks/install.yml @@ -44,6 +44,12 @@ - name: Include secret key configuration tasks include_tasks: secret_key_configuration.yml +- name: Apply Redirect Page Configmap + k8s: + apply: true + 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..2038bcabb --- /dev/null +++ b/roles/installer/templates/configmaps/redirect-page.configmap.html.j2 @@ -0,0 +1,76 @@ +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 }}/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..ae0abb782 100644 --- a/roles/installer/templates/deployments/web.yaml.j2 +++ b/roles/installer/templates/deployments/web.yaml.j2 @@ -28,11 +28,12 @@ spec: annotations: kubectl.kubernetes.io/default-container: '{{ ansible_operator_meta.name }}-web' {% for template in [ - "configmaps/config", - "secrets/app_credentials", - "storage/persistent", + "configmaps/config.yaml", + "configmaps/redirect-page.configmap.html", + "secrets/app_credentials.yaml", + "storage/persistent.yaml", ] %} - checksum-{{ template | replace('/', '-') }}: "{{ lookup('template', template + '.yaml.j2') | sha1 }}" + checksum-{{ template | replace('/', '-') }}: "{{ lookup('template', template + '.j2') | sha1 }}" {% endfor %} {% for secret in [ "bundle_cacert", @@ -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"