summaryrefslogtreecommitdiffstats
path: root/puppet/services/rabbitmq.yaml
blob: 190487e024ad398deebe8d08d3fea3ad93ff01c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
heat_template_version: 2016-10-14

description: >
  RabbitMQ service configured with Puppet

parameters:
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  DefaultPasswords:
    default: {}
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  RabbitUserName:
    default: guest
    description: The username for RabbitMQ
    type: string
  RabbitPassword:
    description: The password for RabbitMQ
    type: string
    hidden: true
  RabbitFDLimit:
    default: 65536
    description: Configures RabbitMQ FD limit
    type: string
  RabbitIPv6:
    default: false
    description: Enable IPv6 in RabbitMQ
    type: boolean
  RabbitCookie:
    type: string
    default: ''
    hidden: true
  RabbitHAQueues:
    description:
      The number of HA queues to be configured in rabbit. The default is 0 which will
      be automatically overridden to CEIL(N/2) where N is the number of nodes running
      rabbitmq.
    default: 0
    type: number
  MonitoringSubscriptionRabbitmq:
    default: 'overcloud-rabbitmq'
    type: string

outputs:
  role_data:
    description: Role data for the RabbitMQ role.
    value:
      service_name: rabbitmq
      monitoring_subscription: {get_param: MonitoringSubscriptionRabbitmq}
      config_settings:
        rabbitmq::file_limit: {get_param: RabbitFDLimit}
        rabbitmq::default_user: {get_param: RabbitUserName}
        rabbitmq::default_pass: {get_param: RabbitPassword}
        rabbit_ipv6: {get_param: RabbitIPv6}
        tripleo.rabbitmq.firewall_rules:
          '109 rabbitmq':
            dport:
              - 4369
              - 5672
              - 25672
        rabbitmq::delete_guest_user: false
        rabbitmq::wipe_db_on_cookie_change: true
        rabbitmq::port: '5672'
        rabbitmq::package_source: undef
        rabbitmq::repos_ensure: false
        rabbitmq::tcp_keepalive: true
        rabbitmq_environment:
          RABBITMQ_NODENAME:
            str_replace:
              template:
                "rabbit@%{hiera('fqdn_$NETWORK')}"
              params:
                $NETWORK: {get_param: [ServiceNetMap, RabbitmqNetwork]}
          RABBITMQ_USE_LONGNAME: true
          RABBITMQ_SERVER_ERL_ARGS: '"+K true +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"'
        rabbitmq_kernel_variables:
          inet_dist_listen_min: '25672'
          inet_dist_listen_max: '25672'
        rabbitmq_config_variables:
          cluster_partition_handling: 'pause_minority'
          queue_master_locator: '<<"min-masters">>'
          loopback_users: '[]'
        rabbitmq::erlang_cookie:
          yaql:
            expression: $.data.passwords.where($ != '').first()
            data:
              passwords:
                - {get_param: RabbitCookie}
                - {get_param: [DefaultPasswords, rabbit_cookie]}
        # NOTE: bind IP is found in Heat replacing the network name with the
        # local node IP for the given network; replacement examples
        # (eg. for internal_api):
        # internal_api -> IP
        # internal_api_uri -> [IP]
        # internal_api_subnet - > IP/CIDR
        rabbitmq::node_ip_address: {get_param: [ServiceNetMap, RabbitmqNetwork]}
        rabbitmq::nr_ha_queues: {get_param: RabbitHAQueues}
      step_config: |
        include ::tripleo::profile::base::rabbitmq
      upgrade_tasks:
        - name: Stop rabbitmq service
          tags: step2
          service: name=rabbitmq-server state=stopped
        - name: Start rabbitmq service
          tags: step6
          service: name=rabbitmq-server state=started