Skip to content

cloudera.cluster.host_template issue with #350

@rsuplina

Description

@rsuplina

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

Example picture
Image

Metadata

Metadata

Assignees

Labels

bugPOINT - Bugfix entry in the CHANGELOG

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions