summaryrefslogtreecommitdiffstats
path: root/network/service_net_map.j2.yaml
blob: 61c97f1399050d7ee5f485573636755e6c69e780 (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
heat_template_version: 2016-10-14

description: >
  Mapping of service_name_network -> network name

parameters:
  ServiceNetMap:
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
                 Note that the key in this map must match the service_name
                 in the service template, e.g if the service_name is heat_api
                 the key must be either heat_api_network, or optionally
                 HeatApiNetwork (which will be internally converted to
                 transform captalization to underscores).
    default: {}
    type: json

  # Note that the key in this map must match the service_name
  # see the description above about conversion from CamelCase to
  # snake_case - the names must still match when converted
  ServiceNetMapDefaults:
    default:
      ApacheNetwork: internal_api
      NeutronTenantNetwork: tenant
      CeilometerApiNetwork: internal_api
      AodhApiNetwork: internal_api
      BarbicanApiNetwork: internal_api
      GnocchiApiNetwork: internal_api
      MongodbNetwork: internal_api
      CinderApiNetwork: internal_api
      CinderIscsiNetwork: storage
      GlanceApiNetwork: storage
      GlanceRegistryNetwork: internal_api
      IronicApiNetwork: ctlplane
      IronicNetwork: ctlplane
      KeystoneAdminApiNetwork: ctlplane # allows undercloud to config endpoints
      KeystonePublicApiNetwork: internal_api
      ManilaApiNetwork: internal_api
      NeutronApiNetwork: internal_api
      HeatApiNetwork: internal_api
      HeatApiCfnNetwork: internal_api
      HeatApiCloudwatchNetwork: internal_api
      NovaApiNetwork: internal_api
      NovaMetadataNetwork: internal_api
      NovaVncProxyNetwork: internal_api
      SwiftStorageNetwork: storage_mgmt
      SwiftProxyNetwork: storage
      SaharaApiNetwork: internal_api
      HorizonNetwork: internal_api
      MemcachedNetwork: internal_api
      RabbitmqNetwork: internal_api
      RedisNetwork: internal_api
      MysqlNetwork: internal_api
      CephClusterNetwork: storage_mgmt
      CephMonNetwork: storage
      CephRgwNetwork: storage
      PublicNetwork: external
      OpendaylightApiNetwork: internal_api
      MistralApiNetwork: internal_api
      # We special-case the default ResolveNetwork for the CephStorage role
      # for backwards compatibility, all other roles default to internal_api
      CephStorageHostnameResolveNetwork: storage
{% for role in roles if role.name != 'CephStorage' %}
      {{role.name}}HostnameResolveNetwork: internal_api
{% endfor %}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.
    type: json

  # We define mappings to work around names that break when doing the
  # CamelCase to snake_case conversion to align with service_names
  ServiceNetMapDeprecatedMapping:
    default:
      MongoDbNetwork: MongodbNetwork
      RabbitMqNetwork: RabbitmqNetwork
      CephPublicNetwork: CephMonNetwork
      SwiftMgmtNetwork: SwiftStorageNetwork
    description: Mapping older deprecated service names, intended for
                 internal use only, this will be removed in future.
    type: json

parameter_groups:
- label: deprecated
  description: Do not use deprecated params, they will be removed.
  parameters:
  - ServiceNetMapDeprecatedMapping

outputs:
  service_net_map:
    value:
      map_merge:
        - {get_param: ServiceNetMapDefaults}
        - map_replace:
           - {get_param: ServiceNetMap}
           - keys: {get_param: ServiceNetMapDeprecatedMapping}

  service_net_map_lower:
    value:
      # This does a conversion from CamelCase to snake_case,
      # e.g HeatApiNetwork becomes heat_api_network so it
      # matches the service names.
      yaql:
        expression: dict($.data.map.items().select([ regex(`([a-z0-9])([A-Z])`).replace($[0], '\\1_\\2').toLower(), $[1]]))
        data:
          map:
            map_merge:
              - {get_param: ServiceNetMapDefaults}
              - map_replace:
                 - {get_param: ServiceNetMap}
                 - keys: {get_param: ServiceNetMapDeprecatedMapping}