-
Notifications
You must be signed in to change notification settings - Fork 50
Description
There is an issue with the host topology configuration where assigning a service role that is limited to a single host to multiple hosts does not generate an error. The deployment module completes successfully, but it only assigns the role to the first host defined in the configuration. All subsequent assignments for that role on other hosts are silently ignored.
Current Behavior
The deployment finishes with a success status. However, the NIFI_REGISTRY_SERVER role is only installed and configured on host1. The assignment for host2 is ignored without any notification.
Expected Behavior
The deployment module should fail during the validation phase with a clear error message. The error should state that a this role which can only be set at one host at the cluster like NIFI_REGISTRY_SERVER cannot be assigned to more than one host within the same cluster.
- name: Establish Worker1 host templates
tags:
- host_template
cloudera.cluster.host_template:
cluster: hol-refinery
name: Worker1
role_config_groups:
- service: "{{ __impala.service.name }}"
type: IMPALAD
- service: "{{ __nifiregistry.service.name }}"
type: GATEWAY
- service: "{{ __nifiregistry.service.name }}"
type: NIFI_REGISTRY_SERVER
- service: "{{ __kudu.service.name }}"
type: KUDU_TSERVER
- service: "{{ __smm.service.name }}"
type: STREAMS_MESSAGING_MANAGER_SERVER
- service: "{{ __smm.service.name }}"
type: STREAMS_MESSAGING_MANAGER_UI
notify: Services updated
- name: Establish Worker host templates
tags:
- host_template
cloudera.cluster.host_template:
cluster: hol-refinery
name: "{{ item }}"
role_config_groups:
- service: "{{ __impala.service.name }}"
type: IMPALAD
- service: "{{ __hdfs.service.name }}"
type: DATANODE
- service: "{{ __nifiregistry.service.name }}"
type: NIFI_REGISTRY_SERVER
- service: "{{ __smm.service.name }}"
type: STREAMS_MESSAGING_MANAGER_UI
loop:
- Worker2
- Worker3
- Worker4
notify: Services updated
This will not fail but it will not assign roles to all hosts only host1 because for example, these 2 roles can only be assigned to 1 host, other hosts will have no roles assigned at all.
- service: "{{ __nifiregistry.service.name }}"
type: NIFI_REGISTRY_SERVER
- service: "{{ __smm.service.name }}"
type: STREAMS_MESSAGING_MANAGER_UI