ansible-middleware / amq

A collection to manage AMQ brokers
Apache License 2.0
16 stars 12 forks source link

Federated addressing #137

Closed herbertkb closed 3 months ago

herbertkb commented 3 months ago

reference: https://github.com/ansible-middleware/amq/issues/134

activemq_federations:
  - name: us-east-1
    user: foo
    password: bar
    protocol: CORE
    upstreams:
      - name: foo-upstream
        static_connectors:
          - node_foo
          - node_bar
        policies:
          - policy_set_foo
        parameters:
          ha: "true"
          circuit-breaker-timeout: 100000
      - name: bar-upstream
        discovery_group: disco
        policies:
          - policy_set_bar
    downstreams:
      - name: downstream_baz
        upstream_connector_ref: up-con
        static_connectors:
          - node_baz1
          - node_baz2
        parameters:
          connection_ttl: 50000
        policies:
          - policy_set_foo
          - policy_set_bar
      - name: secured_foo
        user: foo-club
        password: dontsayit
        upstream_connector_ref: up-con-sec
        discovery_group: foo
        parameters:
          connection_ttl: 50000
        policies:
          - policy_set_foo
          - policy_set_bar
    policy_sets:
      - name: policy_set_foo
        policies:
          - address-federation
          - queue-federation
      - name: policy_set_bar
        policies:
          - address-federation_2
          - queue-federation_2
    address_policies:
      - name: address_policy_foo
        includes:
          - bar.#
          - foo.#
        excludes:
          - "#"
        parameters:
          transformer_ref: my-transformer
          max_hops: 1
          auto_delete: 'true'   # must use quotes, otherwise templated as 'True' which is invalid xml boolean
      - name: address_policy_bar
        address_matches:
          - address_match: bar.#
            type: include
          - address_match: "#"
            type: exclude
    queue_policies:
      - name: queue_policy_foo
        parameters:
          transformer_ref: my-other-transformer
        includes:
          - queue_match: bar.queue.#
            address_match: bar.#
        excludes:
          - queue_match: "#"
            address_match: "#"
    transformers:
      - name: my-transformer
        class_name: net.example.MyTransformer
        properties:
          - key: k1
            value: v1
          - key: k2
            value: v2
      - name: my-other-transformer
        class_name: net.example.MyOtherTransformer