From f4f73b61972f416db9fe6ec305de282094581e07 Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Mon, 5 Jul 2021 17:49:26 +0200 Subject: [PATCH] dashboard: support dedicated network for the dashboard This introduces a new variable `dashboard_network` in order to support deploying the dashboard on a different subnet. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1927574 Signed-off-by: Guillaume Abrioux --- group_vars/all.yml.sample | 2 ++ group_vars/rhcs.yml.sample | 2 ++ roles/ceph-dashboard/tasks/configure_dashboard_backends.yml | 6 +++--- roles/ceph-defaults/defaults/main.yml | 2 ++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/group_vars/all.yml.sample b/group_vars/all.yml.sample index d3ce14ca9..f318d28e8 100644 --- a/group_vars/all.yml.sample +++ b/group_vars/all.yml.sample @@ -645,6 +645,8 @@ dummy: # then we will autogenerate a cert and keyfile #dashboard_protocol: https #dashboard_port: 8443 +# set this variable to the network you want the dashboard to listen on. (Default to public_network) +#dashboard_network: "{{ public_network }}" #dashboard_admin_user: admin #dashboard_admin_user_ro: false # This variable must be set with a strong custom password when dashboard_enabled is True diff --git a/group_vars/rhcs.yml.sample b/group_vars/rhcs.yml.sample index 8f10e16db..ad73a8bc0 100644 --- a/group_vars/rhcs.yml.sample +++ b/group_vars/rhcs.yml.sample @@ -645,6 +645,8 @@ containerized_deployment: true # then we will autogenerate a cert and keyfile #dashboard_protocol: https #dashboard_port: 8443 +# set this variable to the network you want the dashboard to listen on. (Default to public_network) +#dashboard_network: "{{ public_network }}" #dashboard_admin_user: admin #dashboard_admin_user_ro: false # This variable must be set with a strong custom password when dashboard_enabled is True diff --git a/roles/ceph-dashboard/tasks/configure_dashboard_backends.yml b/roles/ceph-dashboard/tasks/configure_dashboard_backends.yml index e2f7774b4..d094e446f 100644 --- a/roles/ceph-dashboard/tasks/configure_dashboard_backends.yml +++ b/roles/ceph-dashboard/tasks/configure_dashboard_backends.yml @@ -1,16 +1,16 @@ --- - name: get current mgr backend - ipv4 set_fact: - mgr_server_addr: "{{ hostvars[dashboard_backend]['ansible_facts']['all_ipv4_addresses'] | ips_in_ranges(public_network.split(',')) | first }}" + dashboard_server_addr: "{{ hostvars[dashboard_backend]['ansible_facts']['all_ipv4_addresses'] | ips_in_ranges(dashboard_network.split(',')) | first }}" when: ip_version == 'ipv4' - name: get current mgr backend - ipv6 set_fact: - mgr_server_addr: "{{ hostvars[dashboard_backend]['ansible_facts']['all_ipv6_addresses'] | ips_in_ranges(public_network.split(',')) | last }}" + dashboard_server_addr: "{{ hostvars[dashboard_backend]['ansible_facts']['all_ipv6_addresses'] | ips_in_ranges(dashboard_network.split(',')) | last }}" when: ip_version == 'ipv6' - name: config the current dashboard backend - command: "{{ container_exec_cmd }} ceph --cluster {{ cluster }} config set mgr mgr/dashboard/{{ hostvars[dashboard_backend]['ansible_facts']['hostname'] }}/server_addr {{ mgr_server_addr }}" + command: "{{ container_exec_cmd }} ceph --cluster {{ cluster }} config set mgr mgr/dashboard/{{ hostvars[dashboard_backend]['ansible_facts']['hostname'] }}/server_addr {{ dashboard_server_addr }}" delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false run_once: true diff --git a/roles/ceph-defaults/defaults/main.yml b/roles/ceph-defaults/defaults/main.yml index 8c25c5dcc..1919a98b9 100644 --- a/roles/ceph-defaults/defaults/main.yml +++ b/roles/ceph-defaults/defaults/main.yml @@ -637,6 +637,8 @@ dashboard_enabled: True # then we will autogenerate a cert and keyfile dashboard_protocol: https dashboard_port: 8443 +# set this variable to the network you want the dashboard to listen on. (Default to public_network) +dashboard_network: "{{ public_network }}" dashboard_admin_user: admin dashboard_admin_user_ro: false # This variable must be set with a strong custom password when dashboard_enabled is True -- 2.39.5