Merge "Use merge strategy for EndpointMap"
This commit is contained in:
commit
e9d053b46d
@ -12,85 +12,3 @@ parameter_defaults:
|
|||||||
# Whether to enable TLS on the public interface or not.
|
# Whether to enable TLS on the public interface or not.
|
||||||
# Type: boolean
|
# Type: boolean
|
||||||
EnablePublicTLS: False
|
EnablePublicTLS: False
|
||||||
|
|
||||||
# Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry.
|
|
||||||
# Type: json
|
|
||||||
EndpointMap:
|
|
||||||
AodhAdmin: {protocol: http, port: '8042', host: IP_ADDRESS}
|
|
||||||
AodhInternal: {protocol: http, port: '8042', host: IP_ADDRESS}
|
|
||||||
AodhPublic: {protocol: http, port: '8042', host: IP_ADDRESS}
|
|
||||||
BarbicanAdmin: {protocol: http, port: '9311', host: IP_ADDRESS}
|
|
||||||
BarbicanInternal: {protocol: http, port: '9311', host: IP_ADDRESS}
|
|
||||||
BarbicanPublic: {protocol: http, port: '9311', host: IP_ADDRESS}
|
|
||||||
CephDashboardInternal: {protocol: http, port: '8444', host: IP_ADDRESS}
|
|
||||||
CephGrafanaInternal: {protocol: http, port: '3100', host: IP_ADDRESS}
|
|
||||||
CephRgwAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
CephRgwInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
CephRgwPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
CinderAdmin: {protocol: http, port: '8776', host: IP_ADDRESS}
|
|
||||||
CinderInternal: {protocol: http, port: '8776', host: IP_ADDRESS}
|
|
||||||
CinderPublic: {protocol: http, port: '8776', host: IP_ADDRESS}
|
|
||||||
DesignateAdmin: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
|
||||||
DesignateInternal: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
|
||||||
DesignatePublic: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
|
||||||
DockerRegistryInternal: {protocol: http, port: '8787', host: IP_ADDRESS}
|
|
||||||
GaneshaInternal: {protocol: nfs, port: '2049', host: IP_ADDRESS}
|
|
||||||
GlanceAdmin: {protocol: http, port: '9292', host: IP_ADDRESS}
|
|
||||||
GlanceInternal: {protocol: http, port: '9292', host: IP_ADDRESS}
|
|
||||||
GlancePublic: {protocol: http, port: '9292', host: IP_ADDRESS}
|
|
||||||
GnocchiAdmin: {protocol: http, port: '8041', host: IP_ADDRESS}
|
|
||||||
GnocchiInternal: {protocol: http, port: '8041', host: IP_ADDRESS}
|
|
||||||
GnocchiPublic: {protocol: http, port: '8041', host: IP_ADDRESS}
|
|
||||||
HeatAdmin: {protocol: http, port: '8004', host: IP_ADDRESS}
|
|
||||||
HeatInternal: {protocol: http, port: '8004', host: IP_ADDRESS}
|
|
||||||
HeatPublic: {protocol: http, port: '8004', host: IP_ADDRESS}
|
|
||||||
HeatCfnAdmin: {protocol: http, port: '8000', host: IP_ADDRESS}
|
|
||||||
HeatCfnInternal: {protocol: http, port: '8000', host: IP_ADDRESS}
|
|
||||||
HeatCfnPublic: {protocol: http, port: '8000', host: IP_ADDRESS}
|
|
||||||
HorizonPublic: {protocol: http, port: '80', host: IP_ADDRESS}
|
|
||||||
IronicAdmin: {protocol: http, port: '6385', host: IP_ADDRESS}
|
|
||||||
IronicInternal: {protocol: http, port: '6385', host: IP_ADDRESS}
|
|
||||||
IronicPublic: {protocol: http, port: '6385', host: IP_ADDRESS}
|
|
||||||
IronicInspectorAdmin: {protocol: http, port: '5050', host: IP_ADDRESS}
|
|
||||||
IronicInspectorInternal: {protocol: http, port: '5050', host: IP_ADDRESS}
|
|
||||||
IronicInspectorPublic: {protocol: http, port: '5050', host: IP_ADDRESS}
|
|
||||||
KeystoneAdmin: {protocol: http, port: '35357', host: IP_ADDRESS}
|
|
||||||
KeystoneInternal: {protocol: http, port: '5000', host: IP_ADDRESS}
|
|
||||||
KeystonePublic: {protocol: http, port: '5000', host: IP_ADDRESS}
|
|
||||||
ManilaAdmin: {protocol: http, port: '8786', host: IP_ADDRESS}
|
|
||||||
ManilaInternal: {protocol: http, port: '8786', host: IP_ADDRESS}
|
|
||||||
ManilaPublic: {protocol: http, port: '8786', host: IP_ADDRESS}
|
|
||||||
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: IP_ADDRESS}
|
|
||||||
MistralAdmin: {protocol: http, port: '8989', host: IP_ADDRESS}
|
|
||||||
MistralInternal: {protocol: http, port: '8989', host: IP_ADDRESS}
|
|
||||||
MistralPublic: {protocol: http, port: '8989', host: IP_ADDRESS}
|
|
||||||
MysqlInternal: {protocol: mysql+pymysql, port: '3306', host: IP_ADDRESS}
|
|
||||||
NeutronAdmin: {protocol: http, port: '9696', host: IP_ADDRESS}
|
|
||||||
NeutronInternal: {protocol: http, port: '9696', host: IP_ADDRESS}
|
|
||||||
NeutronPublic: {protocol: http, port: '9696', host: IP_ADDRESS}
|
|
||||||
NovaAdmin: {protocol: http, port: '8774', host: IP_ADDRESS}
|
|
||||||
NovaInternal: {protocol: http, port: '8774', host: IP_ADDRESS}
|
|
||||||
NovaPublic: {protocol: http, port: '8774', host: IP_ADDRESS}
|
|
||||||
NovajoinAdmin: {protocol: http, port: '9090', host: IP_ADDRESS}
|
|
||||||
NovajoinInternal: {protocol: http, port: '9090', host: IP_ADDRESS}
|
|
||||||
NovajoinPublic: {protocol: http, port: '9090', host: IP_ADDRESS}
|
|
||||||
NovaMetadataInternal: {protocol: http, port: '8775', host: IP_ADDRESS}
|
|
||||||
PlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS}
|
|
||||||
PlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS}
|
|
||||||
PlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS}
|
|
||||||
NovaVNCProxyAdmin: {protocol: http, port: '6080', host: IP_ADDRESS}
|
|
||||||
NovaVNCProxyInternal: {protocol: http, port: '6080', host: IP_ADDRESS}
|
|
||||||
NovaVNCProxyPublic: {protocol: http, port: '6080', host: IP_ADDRESS}
|
|
||||||
OctaviaAdmin: {protocol: http, port: '9876', host: IP_ADDRESS}
|
|
||||||
OctaviaInternal: {protocol: http, port: '9876', host: IP_ADDRESS}
|
|
||||||
OctaviaPublic: {protocol: http, port: '9876', host: IP_ADDRESS}
|
|
||||||
SwiftAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
SwiftInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
SwiftPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
ZaqarAdmin: {protocol: http, port: '8888', host: IP_ADDRESS}
|
|
||||||
ZaqarInternal: {protocol: http, port: '8888', host: IP_ADDRESS}
|
|
||||||
ZaqarPublic: {protocol: http, port: '8888', host: IP_ADDRESS}
|
|
||||||
ZaqarWebSocketAdmin: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
|
||||||
ZaqarWebSocketInternal: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
|
||||||
ZaqarWebSocketPublic: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
|
||||||
|
|
||||||
|
@ -8,85 +8,38 @@
|
|||||||
# description: |
|
# description: |
|
||||||
# Use this environment when deploying an SSL-enabled overcloud where the public
|
# Use this environment when deploying an SSL-enabled overcloud where the public
|
||||||
# endpoint is a DNS name.
|
# endpoint is a DNS name.
|
||||||
|
parameter_merge_strategies:
|
||||||
|
EndpointMap: merge
|
||||||
|
|
||||||
parameter_defaults:
|
parameter_defaults:
|
||||||
# Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry.
|
# Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry.
|
||||||
# Type: json
|
# Type: json
|
||||||
EndpointMap:
|
EndpointMap:
|
||||||
AodhAdmin: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhInternal: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhPublic: {protocol: 'https', port: '13042', host: 'CLOUDNAME'}
|
AodhPublic: {protocol: 'https', port: '13042', host: 'CLOUDNAME'}
|
||||||
BarbicanAdmin: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanInternal: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanPublic: {protocol: 'https', port: '13311', host: 'CLOUDNAME'}
|
BarbicanPublic: {protocol: 'https', port: '13311', host: 'CLOUDNAME'}
|
||||||
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'CLOUDNAME'}
|
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'CLOUDNAME'}
|
||||||
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'CLOUDNAME'}
|
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'CLOUDNAME'}
|
||||||
CephRgwAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
CephRgwPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
||||||
CinderAdmin: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderInternal: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderPublic: {protocol: 'https', port: '13776', host: 'CLOUDNAME'}
|
CinderPublic: {protocol: 'https', port: '13776', host: 'CLOUDNAME'}
|
||||||
DesignateAdmin: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignateInternal: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignatePublic: {protocol: 'https', port: '13001', host: 'CLOUDNAME'}
|
DesignatePublic: {protocol: 'https', port: '13001', host: 'CLOUDNAME'}
|
||||||
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'CLOUDNAME'}
|
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'CLOUDNAME'}
|
||||||
GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'}
|
|
||||||
GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}
|
GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}
|
||||||
GnocchiAdmin: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiInternal: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiPublic: {protocol: 'https', port: '13041', host: 'CLOUDNAME'}
|
GnocchiPublic: {protocol: 'https', port: '13041', host: 'CLOUDNAME'}
|
||||||
HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatPublic: {protocol: 'https', port: '13004', host: 'CLOUDNAME'}
|
HeatPublic: {protocol: 'https', port: '13004', host: 'CLOUDNAME'}
|
||||||
HeatCfnAdmin: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnInternal: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'CLOUDNAME'}
|
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'CLOUDNAME'}
|
||||||
HorizonPublic: {protocol: 'https', port: '443', host: 'CLOUDNAME'}
|
HorizonPublic: {protocol: 'https', port: '443', host: 'CLOUDNAME'}
|
||||||
IronicAdmin: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicInternal: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicPublic: {protocol: 'https', port: '13385', host: 'CLOUDNAME'}
|
IronicPublic: {protocol: 'https', port: '13385', host: 'CLOUDNAME'}
|
||||||
IronicInspectorAdmin: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorInternal: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'CLOUDNAME'}
|
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'CLOUDNAME'}
|
||||||
KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
|
|
||||||
KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
|
|
||||||
KeystonePublic: {protocol: 'https', port: '13000', host: 'CLOUDNAME'}
|
KeystonePublic: {protocol: 'https', port: '13000', host: 'CLOUDNAME'}
|
||||||
ManilaAdmin: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaInternal: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaPublic: {protocol: 'https', port: '13786', host: 'CLOUDNAME'}
|
ManilaPublic: {protocol: 'https', port: '13786', host: 'CLOUDNAME'}
|
||||||
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: 'CLOUDNAME'}
|
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: 'CLOUDNAME'}
|
||||||
MistralAdmin: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralInternal: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralPublic: {protocol: 'https', port: '13989', host: 'CLOUDNAME'}
|
MistralPublic: {protocol: 'https', port: '13989', host: 'CLOUDNAME'}
|
||||||
MysqlInternal: {protocol: 'mysql+pymysql', port: '3306', host: 'IP_ADDRESS'}
|
|
||||||
NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronPublic: {protocol: 'https', port: '13696', host: 'CLOUDNAME'}
|
NeutronPublic: {protocol: 'https', port: '13696', host: 'CLOUDNAME'}
|
||||||
NovaAdmin: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaInternal: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaPublic: {protocol: 'https', port: '13774', host: 'CLOUDNAME'}
|
NovaPublic: {protocol: 'https', port: '13774', host: 'CLOUDNAME'}
|
||||||
NovajoinAdmin: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinInternal: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinPublic: {protocol: 'https', port: '13090', host: 'CLOUDNAME'}
|
NovajoinPublic: {protocol: 'https', port: '13090', host: 'CLOUDNAME'}
|
||||||
NovaMetadataInternal: {protocol: 'https', port: '8775', host: 'IP_ADDRESS'}
|
|
||||||
PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'}
|
PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'}
|
||||||
NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'}
|
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'}
|
||||||
OctaviaAdmin: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaInternal: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'}
|
OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'}
|
||||||
SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
SwiftPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
||||||
ZaqarAdmin: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarInternal: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarPublic: {protocol: 'https', port: '13888', host: 'CLOUDNAME'}
|
ZaqarPublic: {protocol: 'https', port: '13888', host: 'CLOUDNAME'}
|
||||||
ZaqarWebSocketAdmin: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketInternal: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'CLOUDNAME'}
|
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'CLOUDNAME'}
|
||||||
|
|
||||||
|
@ -8,85 +8,38 @@
|
|||||||
# description: |
|
# description: |
|
||||||
# Use this environment when deploying an SSL-enabled overcloud where the public
|
# Use this environment when deploying an SSL-enabled overcloud where the public
|
||||||
# endpoint is an IP address.
|
# endpoint is an IP address.
|
||||||
|
parameter_merge_strategies:
|
||||||
|
EndpointMap: merge
|
||||||
|
|
||||||
parameter_defaults:
|
parameter_defaults:
|
||||||
# Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry.
|
# Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry.
|
||||||
# Type: json
|
# Type: json
|
||||||
EndpointMap:
|
EndpointMap:
|
||||||
AodhAdmin: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhInternal: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhPublic: {protocol: 'https', port: '13042', host: 'IP_ADDRESS'}
|
AodhPublic: {protocol: 'https', port: '13042', host: 'IP_ADDRESS'}
|
||||||
BarbicanAdmin: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanInternal: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanPublic: {protocol: 'https', port: '13311', host: 'IP_ADDRESS'}
|
BarbicanPublic: {protocol: 'https', port: '13311', host: 'IP_ADDRESS'}
|
||||||
|
CephRgwPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
||||||
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'IP_ADDRESS'}
|
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'IP_ADDRESS'}
|
||||||
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'IP_ADDRESS'}
|
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'IP_ADDRESS'}
|
||||||
CephRgwAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
|
||||||
CinderAdmin: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderInternal: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderPublic: {protocol: 'https', port: '13776', host: 'IP_ADDRESS'}
|
CinderPublic: {protocol: 'https', port: '13776', host: 'IP_ADDRESS'}
|
||||||
DesignateAdmin: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignateInternal: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignatePublic: {protocol: 'https', port: '13001', host: 'IP_ADDRESS'}
|
DesignatePublic: {protocol: 'https', port: '13001', host: 'IP_ADDRESS'}
|
||||||
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'IP_ADDRESS'}
|
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'IP_ADDRESS'}
|
||||||
GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'}
|
|
||||||
GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'}
|
GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'}
|
||||||
GnocchiAdmin: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiInternal: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiPublic: {protocol: 'https', port: '13041', host: 'IP_ADDRESS'}
|
GnocchiPublic: {protocol: 'https', port: '13041', host: 'IP_ADDRESS'}
|
||||||
HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatPublic: {protocol: 'https', port: '13004', host: 'IP_ADDRESS'}
|
HeatPublic: {protocol: 'https', port: '13004', host: 'IP_ADDRESS'}
|
||||||
HeatCfnAdmin: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnInternal: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'IP_ADDRESS'}
|
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'IP_ADDRESS'}
|
||||||
HorizonPublic: {protocol: 'https', port: '443', host: 'IP_ADDRESS'}
|
HorizonPublic: {protocol: 'https', port: '443', host: 'IP_ADDRESS'}
|
||||||
IronicAdmin: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicInternal: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicPublic: {protocol: 'https', port: '13385', host: 'IP_ADDRESS'}
|
IronicPublic: {protocol: 'https', port: '13385', host: 'IP_ADDRESS'}
|
||||||
IronicInspectorAdmin: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorInternal: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'IP_ADDRESS'}
|
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'IP_ADDRESS'}
|
||||||
KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
|
|
||||||
KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
|
|
||||||
KeystonePublic: {protocol: 'https', port: '13000', host: 'IP_ADDRESS'}
|
KeystonePublic: {protocol: 'https', port: '13000', host: 'IP_ADDRESS'}
|
||||||
ManilaAdmin: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaInternal: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaPublic: {protocol: 'https', port: '13786', host: 'IP_ADDRESS'}
|
ManilaPublic: {protocol: 'https', port: '13786', host: 'IP_ADDRESS'}
|
||||||
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: 'IP_ADDRESS'}
|
|
||||||
MistralAdmin: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralInternal: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralPublic: {protocol: 'https', port: '13989', host: 'IP_ADDRESS'}
|
MistralPublic: {protocol: 'https', port: '13989', host: 'IP_ADDRESS'}
|
||||||
MysqlInternal: {protocol: 'mysql+pymysql', port: '3306', host: 'IP_ADDRESS'}
|
|
||||||
NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronPublic: {protocol: 'https', port: '13696', host: 'IP_ADDRESS'}
|
NeutronPublic: {protocol: 'https', port: '13696', host: 'IP_ADDRESS'}
|
||||||
NovaAdmin: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaInternal: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaPublic: {protocol: 'https', port: '13774', host: 'IP_ADDRESS'}
|
NovaPublic: {protocol: 'https', port: '13774', host: 'IP_ADDRESS'}
|
||||||
NovajoinAdmin: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinInternal: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinPublic: {protocol: 'https', port: '13090', host: 'IP_ADDRESS'}
|
NovajoinPublic: {protocol: 'https', port: '13090', host: 'IP_ADDRESS'}
|
||||||
NovaMetadataInternal: {protocol: 'https', port: '8775', host: 'IP_ADDRESS'}
|
NovaMetadataInternal: {protocol: 'https', port: '8775', host: 'IP_ADDRESS'}
|
||||||
PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'}
|
PlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'}
|
||||||
NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'IP_ADDRESS'}
|
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'IP_ADDRESS'}
|
||||||
OctaviaAdmin: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaInternal: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaPublic: {protocol: 'https', port: '13876', host: 'IP_ADDRESS'}
|
OctaviaPublic: {protocol: 'https', port: '13876', host: 'IP_ADDRESS'}
|
||||||
SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
SwiftPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
||||||
ZaqarAdmin: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarInternal: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarPublic: {protocol: 'https', port: '13888', host: 'IP_ADDRESS'}
|
ZaqarPublic: {protocol: 'https', port: '13888', host: 'IP_ADDRESS'}
|
||||||
ZaqarWebSocketAdmin: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketInternal: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'IP_ADDRESS'}
|
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'IP_ADDRESS'}
|
||||||
|
|
||||||
|
@ -8,6 +8,9 @@
|
|||||||
# description: |
|
# description: |
|
||||||
# Use this environment when deploying an overcloud where all the endpoints are
|
# Use this environment when deploying an overcloud where all the endpoints are
|
||||||
# DNS names and there's TLS in all endpoint types.
|
# DNS names and there's TLS in all endpoint types.
|
||||||
|
parameter_merge_strategies:
|
||||||
|
EndpointMap: merge
|
||||||
|
|
||||||
parameter_defaults:
|
parameter_defaults:
|
||||||
# Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry.
|
# Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry.
|
||||||
# Type: json
|
# Type: json
|
||||||
|
@ -1,308 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
"""
|
|
||||||
Generate the endpoint_map.yaml template from data in the endpoint_data.yaml
|
|
||||||
file.
|
|
||||||
|
|
||||||
By default the files in the same directory as this script are operated on, but
|
|
||||||
different files can be optionally specified on the command line.
|
|
||||||
|
|
||||||
The --check option verifies that the current output file is up-to-date with the
|
|
||||||
latest data in the input file. The script exits with status code 2 if a
|
|
||||||
mismatch is detected.
|
|
||||||
"""
|
|
||||||
import collections
|
|
||||||
import copy
|
|
||||||
import itertools
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = ['load_endpoint_data', 'generate_endpoint_map_template',
|
|
||||||
'write_template', 'build_endpoint_map', 'check_up_to_date']
|
|
||||||
|
|
||||||
(IN_FILE, OUT_FILE) = ('endpoint_data.yaml', 'endpoint_map.yaml')
|
|
||||||
|
|
||||||
SUBST = (SUBST_IP_ADDRESS, SUBST_CLOUDNAME) = ('IP_ADDRESS', 'CLOUDNAME')
|
|
||||||
PARAMS = (PARAM_CLOUD_ENDPOINTS, PARAM_ENDPOINTMAP, PARAM_NETIPMAP,
|
|
||||||
PARAM_SERVICENETMAP) = (
|
|
||||||
'CloudEndpoints', 'EndpointMap', 'NetIpMap', 'ServiceNetMap')
|
|
||||||
FIELDS = (F_PORT, F_PROTOCOL, F_HOST) = ('port', 'protocol', 'host')
|
|
||||||
|
|
||||||
ENDPOINT_TYPES = frozenset(['Internal', 'Public', 'Admin'])
|
|
||||||
|
|
||||||
|
|
||||||
def get_file(default_fn, override=None, writable=False):
|
|
||||||
if override == '-':
|
|
||||||
if writable:
|
|
||||||
return sys.stdout
|
|
||||||
else:
|
|
||||||
return sys.stdin
|
|
||||||
|
|
||||||
if override is not None:
|
|
||||||
filename = override
|
|
||||||
else:
|
|
||||||
filename = os.path.join(os.path.dirname(__file__), default_fn)
|
|
||||||
|
|
||||||
return open(filename, 'w' if writable else 'r')
|
|
||||||
|
|
||||||
|
|
||||||
def load_endpoint_data(infile=None):
|
|
||||||
with get_file(IN_FILE, infile) as f:
|
|
||||||
return yaml.safe_load(f)
|
|
||||||
|
|
||||||
|
|
||||||
def net_param_name(endpoint_type_defn):
|
|
||||||
return endpoint_type_defn['net_param'] + 'Network'
|
|
||||||
|
|
||||||
|
|
||||||
def endpoint_map_default(config):
|
|
||||||
def map_item(ep_name, ep_type, svc):
|
|
||||||
values = collections.OrderedDict([
|
|
||||||
(F_PROTOCOL, str(svc[ep_type].get(F_PROTOCOL,
|
|
||||||
svc.get(F_PROTOCOL, 'http')))),
|
|
||||||
(F_PORT, str(svc[ep_type].get(F_PORT, svc[F_PORT]))),
|
|
||||||
(F_HOST, SUBST_IP_ADDRESS),
|
|
||||||
])
|
|
||||||
return ep_name + ep_type, values
|
|
||||||
|
|
||||||
return collections.OrderedDict(map_item(ep_name, ep_type, svc)
|
|
||||||
for ep_name, svc in sorted(config.items())
|
|
||||||
for ep_type in sorted(set(svc) &
|
|
||||||
ENDPOINT_TYPES))
|
|
||||||
|
|
||||||
|
|
||||||
def make_parameter(ptype, default, description=None):
|
|
||||||
param = collections.OrderedDict([('type', ptype), ('default', default)])
|
|
||||||
if description is not None:
|
|
||||||
param['description'] = description
|
|
||||||
return param
|
|
||||||
|
|
||||||
|
|
||||||
def template_parameters(config):
|
|
||||||
params = collections.OrderedDict()
|
|
||||||
params[PARAM_NETIPMAP] = make_parameter('json', {}, 'The Net IP map')
|
|
||||||
params[PARAM_SERVICENETMAP] = make_parameter('json', {},
|
|
||||||
'The Service Net map')
|
|
||||||
params[PARAM_ENDPOINTMAP] = make_parameter('json',
|
|
||||||
endpoint_map_default(config),
|
|
||||||
'Mapping of service endpoint '
|
|
||||||
'-> protocol. Typically set '
|
|
||||||
'via parameter_defaults in the '
|
|
||||||
'resource registry.')
|
|
||||||
|
|
||||||
params[PARAM_CLOUD_ENDPOINTS] = make_parameter(
|
|
||||||
'json',
|
|
||||||
{},
|
|
||||||
('A map containing the DNS names for the different endpoints '
|
|
||||||
'(external, internal_api, etc.)'))
|
|
||||||
return params
|
|
||||||
|
|
||||||
|
|
||||||
def template_output_definition(endpoint_name,
|
|
||||||
endpoint_variant,
|
|
||||||
endpoint_type,
|
|
||||||
net_param,
|
|
||||||
uri_suffix=None,
|
|
||||||
name_override=None):
|
|
||||||
def extract_field(field):
|
|
||||||
assert field in FIELDS
|
|
||||||
return {'get_param': ['EndpointMap',
|
|
||||||
endpoint_name + endpoint_type,
|
|
||||||
copy.copy(field)]}
|
|
||||||
|
|
||||||
port = extract_field(F_PORT)
|
|
||||||
protocol = extract_field(F_PROTOCOL)
|
|
||||||
host_nobrackets = {
|
|
||||||
'str_replace': collections.OrderedDict([
|
|
||||||
('template', extract_field(F_HOST)),
|
|
||||||
('params', {
|
|
||||||
SUBST_IP_ADDRESS: {'get_param':
|
|
||||||
['NetIpMap',
|
|
||||||
{'get_param': ['ServiceNetMap',
|
|
||||||
net_param]}]},
|
|
||||||
SUBST_CLOUDNAME: {'get_param':
|
|
||||||
[PARAM_CLOUD_ENDPOINTS,
|
|
||||||
{'get_param': ['ServiceNetMap',
|
|
||||||
net_param]}]},
|
|
||||||
})
|
|
||||||
])
|
|
||||||
}
|
|
||||||
host = {
|
|
||||||
'str_replace': collections.OrderedDict([
|
|
||||||
('template', extract_field(F_HOST)),
|
|
||||||
('params', {
|
|
||||||
SUBST_IP_ADDRESS: {'get_param':
|
|
||||||
['NetIpMap',
|
|
||||||
{'str_replace':
|
|
||||||
{'template': 'NETWORK_uri',
|
|
||||||
'params': {'NETWORK':
|
|
||||||
{'get_param': ['ServiceNetMap',
|
|
||||||
net_param]}}}}]},
|
|
||||||
SUBST_CLOUDNAME: {'get_param':
|
|
||||||
[PARAM_CLOUD_ENDPOINTS,
|
|
||||||
{'get_param': ['ServiceNetMap',
|
|
||||||
net_param]}]},
|
|
||||||
})
|
|
||||||
])
|
|
||||||
}
|
|
||||||
uri_no_path = {
|
|
||||||
'make_url': collections.OrderedDict([
|
|
||||||
('scheme', protocol),
|
|
||||||
('host', copy.deepcopy(host)),
|
|
||||||
('port', port)
|
|
||||||
])
|
|
||||||
}
|
|
||||||
uri_with_path = copy.deepcopy(uri_no_path)
|
|
||||||
if uri_suffix is not None:
|
|
||||||
path, pc, suffix = uri_suffix.partition('%')
|
|
||||||
uri_with_path['make_url']['path'] = path
|
|
||||||
if pc:
|
|
||||||
uri_with_path = {'list_join': ['', [uri_with_path, pc + suffix]]}
|
|
||||||
|
|
||||||
name = name_override if name_override is not None else (endpoint_name +
|
|
||||||
endpoint_variant +
|
|
||||||
endpoint_type)
|
|
||||||
|
|
||||||
return name, {
|
|
||||||
'host_nobrackets': host_nobrackets,
|
|
||||||
'host': host,
|
|
||||||
'port': extract_field('port'),
|
|
||||||
'protocol': extract_field('protocol'),
|
|
||||||
'uri': uri_with_path,
|
|
||||||
'uri_no_suffix': uri_no_path,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def template_endpoint_items(config):
|
|
||||||
def get_svc_endpoints(ep_name, svc):
|
|
||||||
for ep_type in set(svc) & ENDPOINT_TYPES:
|
|
||||||
defn = svc[ep_type]
|
|
||||||
for variant, suffix in defn.get('uri_suffixes',
|
|
||||||
{'': None}).items():
|
|
||||||
name_override = defn.get('names', {}).get(variant)
|
|
||||||
yield template_output_definition(ep_name, variant, ep_type,
|
|
||||||
net_param_name(defn),
|
|
||||||
suffix,
|
|
||||||
name_override)
|
|
||||||
return itertools.chain.from_iterable(sorted(get_svc_endpoints(ep_name,
|
|
||||||
svc))
|
|
||||||
for (ep_name,
|
|
||||||
svc) in sorted(config.items()))
|
|
||||||
|
|
||||||
|
|
||||||
def generate_endpoint_map_template(config):
|
|
||||||
return collections.OrderedDict([
|
|
||||||
('heat_template_version', 'wallaby'),
|
|
||||||
('description', 'A map of OpenStack endpoints. Since the endpoints '
|
|
||||||
'are URLs, we need to have brackets around IPv6 IP addresses. The '
|
|
||||||
'inputs to these parameters come from net_ip_uri_map, which will '
|
|
||||||
'include these brackets in IPv6 addresses.'),
|
|
||||||
('parameters', template_parameters(config)),
|
|
||||||
('outputs', {
|
|
||||||
'endpoint_map': {
|
|
||||||
'value':
|
|
||||||
collections.OrderedDict(template_endpoint_items(config))
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
autogen_warning = """### DO NOT MODIFY THIS FILE
|
|
||||||
### This file is automatically generated from endpoint_data.yaml
|
|
||||||
### by the script build_endpoint_map.py
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
class TemplateDumper(yaml.SafeDumper):
|
|
||||||
def represent_ordered_dict(self, data):
|
|
||||||
return self.represent_dict(data.items())
|
|
||||||
|
|
||||||
|
|
||||||
TemplateDumper.add_representer(collections.OrderedDict,
|
|
||||||
TemplateDumper.represent_ordered_dict)
|
|
||||||
|
|
||||||
|
|
||||||
def write_template(template, filename=None):
|
|
||||||
with get_file(OUT_FILE, filename, writable=True) as f:
|
|
||||||
f.write(autogen_warning)
|
|
||||||
yaml.dump(template, f, TemplateDumper, width=68)
|
|
||||||
|
|
||||||
|
|
||||||
def read_template(template, filename=None):
|
|
||||||
with get_file(OUT_FILE, filename) as f:
|
|
||||||
return yaml.safe_load(f)
|
|
||||||
|
|
||||||
|
|
||||||
def build_endpoint_map(output_filename=None, input_filename=None):
|
|
||||||
if output_filename is not None and output_filename == input_filename:
|
|
||||||
raise Exception('Cannot read from and write to the same file')
|
|
||||||
config = load_endpoint_data(input_filename)
|
|
||||||
template = generate_endpoint_map_template(config)
|
|
||||||
write_template(template, output_filename)
|
|
||||||
|
|
||||||
|
|
||||||
def check_up_to_date(output_filename=None, input_filename=None):
|
|
||||||
if output_filename is not None and output_filename == input_filename:
|
|
||||||
raise Exception('Input and output filenames must be different')
|
|
||||||
config = load_endpoint_data(input_filename)
|
|
||||||
template = generate_endpoint_map_template(config)
|
|
||||||
existing_template = read_template(output_filename)
|
|
||||||
return existing_template == template
|
|
||||||
|
|
||||||
|
|
||||||
def get_options():
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
|
||||||
usage="%(prog)s [-i INPUT_FILE] [-o OUTPUT_FILE] [--check]",
|
|
||||||
description=__doc__)
|
|
||||||
parser.add_argument('-i', '--input', dest='input_file', action='store',
|
|
||||||
default=None,
|
|
||||||
help='Specify a different endpoint data file')
|
|
||||||
parser.add_argument('-o', '--output', dest='output_file', action='store',
|
|
||||||
default=None,
|
|
||||||
help='Specify a different endpoint map template file')
|
|
||||||
parser.add_argument('-c', '--check', dest='check', action='store_true',
|
|
||||||
default=False, help='Check that the output file is '
|
|
||||||
'up to date with the data')
|
|
||||||
parser.add_argument('-d', '--debug', dest='debug', action='store_true',
|
|
||||||
default=False, help='Print stack traces on error')
|
|
||||||
|
|
||||||
return parser.parse_args()
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
args = get_options()
|
|
||||||
|
|
||||||
try:
|
|
||||||
if args.check:
|
|
||||||
if not check_up_to_date(args.output_file, args.input_file):
|
|
||||||
print('EndpointMap template does not match input data. Please '
|
|
||||||
'run the build_endpoint_map.py tool to update the '
|
|
||||||
'template.', file=sys.stderr)
|
|
||||||
sys.exit(2)
|
|
||||||
else:
|
|
||||||
build_endpoint_map(args.output_file, args.input_file)
|
|
||||||
except Exception as exc:
|
|
||||||
if args.debug:
|
|
||||||
raise
|
|
||||||
print('%s: %s' % (type(exc).__name__, str(exc)), file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
@ -1,353 +0,0 @@
|
|||||||
# Data in this file is used to generate the endpoint_map.yaml template.
|
|
||||||
# Run the script build_endpoint_map.py to regenerate the file.
|
|
||||||
|
|
||||||
Aodh:
|
|
||||||
Internal:
|
|
||||||
net_param: AodhApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: AodhApi
|
|
||||||
port: 8042
|
|
||||||
|
|
||||||
Barbican:
|
|
||||||
Internal:
|
|
||||||
net_param: BarbicanApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: BarbicanApi
|
|
||||||
port: 9311
|
|
||||||
|
|
||||||
Designate:
|
|
||||||
Internal:
|
|
||||||
net_param: DesignateApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2
|
|
||||||
Admin:
|
|
||||||
net_param: DesignateApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2
|
|
||||||
port: 9001
|
|
||||||
|
|
||||||
Gnocchi:
|
|
||||||
Internal:
|
|
||||||
net_param: GnocchiApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: GnocchiApi
|
|
||||||
port: 8041
|
|
||||||
|
|
||||||
Cinder:
|
|
||||||
Internal:
|
|
||||||
net_param: CinderApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/%(tenant_id)s
|
|
||||||
V2: /v2/%(tenant_id)s
|
|
||||||
V3: /v3/%(tenant_id)s
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/%(tenant_id)s
|
|
||||||
V2: /v2/%(tenant_id)s
|
|
||||||
V3: /v3/%(tenant_id)s
|
|
||||||
Admin:
|
|
||||||
net_param: CinderApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/%(tenant_id)s
|
|
||||||
V2: /v2/%(tenant_id)s
|
|
||||||
V3: /v3/%(tenant_id)s
|
|
||||||
port: 8776
|
|
||||||
|
|
||||||
Glance:
|
|
||||||
Internal:
|
|
||||||
net_param: GlanceApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: GlanceApi
|
|
||||||
port: 9292
|
|
||||||
|
|
||||||
Mysql:
|
|
||||||
Internal:
|
|
||||||
net_param: Mysql
|
|
||||||
protocol: mysql+pymysql
|
|
||||||
port: 3306
|
|
||||||
|
|
||||||
Heat:
|
|
||||||
Internal:
|
|
||||||
net_param: HeatApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/%(tenant_id)s
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/%(tenant_id)s
|
|
||||||
Admin:
|
|
||||||
net_param: HeatApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/%(tenant_id)s
|
|
||||||
port: 8004
|
|
||||||
|
|
||||||
HeatCfn:
|
|
||||||
Internal:
|
|
||||||
net_param: HeatApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
Admin:
|
|
||||||
net_param: HeatApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
port: 8000
|
|
||||||
|
|
||||||
Horizon:
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /dashboard
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
# TODO(ayoung): V3 is a temporary fix. Endpoints should be versionless.
|
|
||||||
# Required for https://bugs.launchpad.net/puppet-nova/+bug/1542486
|
|
||||||
Keystone:
|
|
||||||
Internal:
|
|
||||||
net_param: KeystonePublicApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /
|
|
||||||
V3: /v3
|
|
||||||
names:
|
|
||||||
EC2: KeystoneEC2
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /
|
|
||||||
V3: /v3
|
|
||||||
Admin:
|
|
||||||
net_param: KeystoneAdminApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /
|
|
||||||
V3: /v3
|
|
||||||
port: 35357
|
|
||||||
port: 5000
|
|
||||||
|
|
||||||
Manila:
|
|
||||||
Internal:
|
|
||||||
net_param: ManilaApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2/%(tenant_id)s
|
|
||||||
V1: /v1/%(tenant_id)s
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2/%(tenant_id)s
|
|
||||||
V1: /v1/%(tenant_id)s
|
|
||||||
Admin:
|
|
||||||
net_param: ManilaApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2/%(tenant_id)s
|
|
||||||
V1: /v1/%(tenant_id)s
|
|
||||||
port: 8786
|
|
||||||
|
|
||||||
MetricsQdr:
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
port: 5666
|
|
||||||
protocol: amqp
|
|
||||||
|
|
||||||
Mistral:
|
|
||||||
Internal:
|
|
||||||
net_param: MistralApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2
|
|
||||||
Admin:
|
|
||||||
net_param: MistralApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2
|
|
||||||
port: 8989
|
|
||||||
|
|
||||||
Neutron:
|
|
||||||
Internal:
|
|
||||||
net_param: NeutronApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: NeutronApi
|
|
||||||
port: 9696
|
|
||||||
|
|
||||||
Nova:
|
|
||||||
Internal:
|
|
||||||
net_param: NovaApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2.1
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2.1
|
|
||||||
Admin:
|
|
||||||
net_param: NovaApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v2.1
|
|
||||||
port: 8774
|
|
||||||
|
|
||||||
Placement:
|
|
||||||
Internal:
|
|
||||||
net_param: Placement
|
|
||||||
uri_suffixes:
|
|
||||||
'': /placement
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /placement
|
|
||||||
Admin:
|
|
||||||
net_param: Placement
|
|
||||||
uri_suffixes:
|
|
||||||
'': /placement
|
|
||||||
port: 8778
|
|
||||||
|
|
||||||
NovaVNCProxy:
|
|
||||||
Internal:
|
|
||||||
net_param: NovaApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: NovaApi
|
|
||||||
port: 6080
|
|
||||||
|
|
||||||
Swift:
|
|
||||||
Internal:
|
|
||||||
net_param: SwiftProxy
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/AUTH_%(tenant_id)s
|
|
||||||
S3:
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1/AUTH_%(tenant_id)s
|
|
||||||
S3:
|
|
||||||
Admin:
|
|
||||||
net_param: SwiftProxy
|
|
||||||
uri_suffixes:
|
|
||||||
'':
|
|
||||||
S3:
|
|
||||||
port: 8080
|
|
||||||
|
|
||||||
CephDashboard:
|
|
||||||
Internal:
|
|
||||||
net_param: CephDashboard
|
|
||||||
port: 8444
|
|
||||||
|
|
||||||
CephGrafana:
|
|
||||||
Internal:
|
|
||||||
net_param: CephGrafana
|
|
||||||
port: 3100
|
|
||||||
|
|
||||||
CephRgw:
|
|
||||||
Internal:
|
|
||||||
net_param: CephRgw
|
|
||||||
uri_suffixes:
|
|
||||||
'': /swift/v1/AUTH_%(project_id)s
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /swift/v1/AUTH_%(project_id)s
|
|
||||||
Admin:
|
|
||||||
net_param: CephRgw
|
|
||||||
uri_suffixes:
|
|
||||||
'': /swift/v1/AUTH_%(project_id)s
|
|
||||||
port: 8080
|
|
||||||
|
|
||||||
Ironic:
|
|
||||||
Internal:
|
|
||||||
net_param: IronicApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
Admin:
|
|
||||||
net_param: IronicApi
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
port: 6385
|
|
||||||
|
|
||||||
IronicInspector:
|
|
||||||
Internal:
|
|
||||||
net_param: IronicInspector
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: IronicInspector
|
|
||||||
port: 5050
|
|
||||||
|
|
||||||
Zaqar:
|
|
||||||
Internal:
|
|
||||||
net_param: ZaqarApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ZaqarApi
|
|
||||||
port: 8888
|
|
||||||
|
|
||||||
ZaqarWebSocket:
|
|
||||||
Internal:
|
|
||||||
net_param: ZaqarApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: ZaqarApi
|
|
||||||
port: 9000
|
|
||||||
protocol: ws
|
|
||||||
|
|
||||||
Octavia:
|
|
||||||
Internal:
|
|
||||||
net_param: OctaviaApi
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
Admin:
|
|
||||||
net_param: OctaviaApi
|
|
||||||
port: 9876
|
|
||||||
|
|
||||||
Ganesha:
|
|
||||||
Internal:
|
|
||||||
net_param: Ganesha
|
|
||||||
protocol: nfs
|
|
||||||
port: 2049
|
|
||||||
|
|
||||||
DockerRegistry:
|
|
||||||
Internal:
|
|
||||||
net_param: DockerRegistry
|
|
||||||
port: 8787
|
|
||||||
|
|
||||||
NovaMetadata:
|
|
||||||
Internal:
|
|
||||||
net_param: NovaMetadata
|
|
||||||
port: 8775
|
|
||||||
|
|
||||||
Novajoin:
|
|
||||||
Internal:
|
|
||||||
net_param: Novajoin
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
Public:
|
|
||||||
net_param: Public
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
Admin:
|
|
||||||
net_param: Novajoin
|
|
||||||
uri_suffixes:
|
|
||||||
'': /v1
|
|
||||||
port: 9090
|
|
@ -1,7 +1,3 @@
|
|||||||
### DO NOT MODIFY THIS FILE
|
|
||||||
### This file is automatically generated from endpoint_data.yaml
|
|
||||||
### by the script build_endpoint_map.py
|
|
||||||
|
|
||||||
heat_template_version: wallaby
|
heat_template_version: wallaby
|
||||||
description: A map of OpenStack endpoints. Since the endpoints are URLs,
|
description: A map of OpenStack endpoints. Since the endpoints are URLs,
|
||||||
we need to have brackets around IPv6 IP addresses. The inputs to these
|
we need to have brackets around IPv6 IP addresses. The inputs to these
|
||||||
@ -18,315 +14,7 @@ parameters:
|
|||||||
description: The Service Net map
|
description: The Service Net map
|
||||||
EndpointMap:
|
EndpointMap:
|
||||||
type: json
|
type: json
|
||||||
default:
|
default: {}
|
||||||
AodhAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8042'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
AodhInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8042'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
AodhPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8042'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
BarbicanAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '9311'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
BarbicanInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '9311'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
BarbicanPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '9311'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CephDashboardInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8444'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CephGrafanaInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '3100'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CephRgwAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CephRgwInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CephRgwPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CinderAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8776'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CinderInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8776'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
CinderPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8776'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
DesignateAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '9001'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
DesignateInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '9001'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
DesignatePublic:
|
|
||||||
protocol: http
|
|
||||||
port: '9001'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
DockerRegistryInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8787'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
GaneshaInternal:
|
|
||||||
protocol: nfs
|
|
||||||
port: '2049'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
GlanceAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '9292'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
GlanceInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '9292'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
GlancePublic:
|
|
||||||
protocol: http
|
|
||||||
port: '9292'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
GnocchiAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8041'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
GnocchiInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8041'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
GnocchiPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8041'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
HeatAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8004'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
HeatInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8004'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
HeatPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8004'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
HeatCfnAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
HeatCfnInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
HeatCfnPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
HorizonPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '80'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
IronicAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '6385'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
IronicInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '6385'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
IronicPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '6385'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
IronicInspectorAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '5050'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
IronicInspectorInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '5050'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
IronicInspectorPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '5050'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
KeystoneAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '35357'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
KeystoneInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '5000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
KeystonePublic:
|
|
||||||
protocol: http
|
|
||||||
port: '5000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ManilaAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8786'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ManilaInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8786'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ManilaPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8786'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
MetricsQdrPublic:
|
|
||||||
protocol: amqp
|
|
||||||
port: '5666'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
MistralAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8989'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
MistralInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8989'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
MistralPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8989'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
MysqlInternal:
|
|
||||||
protocol: mysql+pymysql
|
|
||||||
port: '3306'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NeutronAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '9696'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NeutronInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '9696'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NeutronPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '9696'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovaAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8774'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovaInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8774'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovaPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8774'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovaMetadataInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8775'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovaVNCProxyAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '6080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovaVNCProxyInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '6080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovaVNCProxyPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '6080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovajoinAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '9090'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovajoinInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '9090'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
NovajoinPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '9090'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
OctaviaAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '9876'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
OctaviaInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '9876'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
OctaviaPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '9876'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
PlacementAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8778'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
PlacementInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8778'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
PlacementPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8778'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
SwiftAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
SwiftInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
SwiftPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8080'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ZaqarAdmin:
|
|
||||||
protocol: http
|
|
||||||
port: '8888'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ZaqarInternal:
|
|
||||||
protocol: http
|
|
||||||
port: '8888'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ZaqarPublic:
|
|
||||||
protocol: http
|
|
||||||
port: '8888'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ZaqarWebSocketAdmin:
|
|
||||||
protocol: ws
|
|
||||||
port: '9000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ZaqarWebSocketInternal:
|
|
||||||
protocol: ws
|
|
||||||
port: '9000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
ZaqarWebSocketPublic:
|
|
||||||
protocol: ws
|
|
||||||
port: '9000'
|
|
||||||
host: IP_ADDRESS
|
|
||||||
description: Mapping of service endpoint -> protocol. Typically set
|
description: Mapping of service endpoint -> protocol. Typically set
|
||||||
via parameter_defaults in the resource registry.
|
via parameter_defaults in the resource registry.
|
||||||
CloudEndpoints:
|
CloudEndpoints:
|
||||||
|
@ -355,6 +355,7 @@ resource_registry:
|
|||||||
parameter_merge_strategies:
|
parameter_merge_strategies:
|
||||||
ServiceNetMap: merge
|
ServiceNetMap: merge
|
||||||
VipSubnetMap: merge
|
VipSubnetMap: merge
|
||||||
|
EndpointMap: merge
|
||||||
{% for role in roles %}
|
{% for role in roles %}
|
||||||
{{role.name}}Parameters: merge
|
{{role.name}}Parameters: merge
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -462,3 +463,82 @@ parameter_defaults:
|
|||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
redis: internal_api_subnet
|
redis: internal_api_subnet
|
||||||
ovn_dbs: internal_api_subnet
|
ovn_dbs: internal_api_subnet
|
||||||
|
|
||||||
|
EndpointMap:
|
||||||
|
AodhAdmin: {protocol: http, port: '8042', host: IP_ADDRESS}
|
||||||
|
AodhInternal: {protocol: http, port: '8042', host: IP_ADDRESS}
|
||||||
|
AodhPublic: {protocol: http, port: '8042', host: IP_ADDRESS}
|
||||||
|
BarbicanAdmin: {protocol: http, port: '9311', host: IP_ADDRESS}
|
||||||
|
BarbicanInternal: {protocol: http, port: '9311', host: IP_ADDRESS}
|
||||||
|
BarbicanPublic: {protocol: http, port: '9311', host: IP_ADDRESS}
|
||||||
|
CephDashboardInternal: {protocol: http, port: '8444', host: IP_ADDRESS}
|
||||||
|
CephGrafanaInternal: {protocol: http, port: '3100', host: IP_ADDRESS}
|
||||||
|
CephRgwAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
|
||||||
|
CephRgwInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
|
||||||
|
CephRgwPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
|
||||||
|
CinderAdmin: {protocol: http, port: '8776', host: IP_ADDRESS}
|
||||||
|
CinderInternal: {protocol: http, port: '8776', host: IP_ADDRESS}
|
||||||
|
CinderPublic: {protocol: http, port: '8776', host: IP_ADDRESS}
|
||||||
|
DesignateAdmin: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
||||||
|
DesignateInternal: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
||||||
|
DesignatePublic: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
||||||
|
DockerRegistryInternal: {protocol: http, port: '8787', host: IP_ADDRESS}
|
||||||
|
GaneshaInternal: {protocol: nfs, port: '2049', host: IP_ADDRESS}
|
||||||
|
GlanceAdmin: {protocol: http, port: '9292', host: IP_ADDRESS}
|
||||||
|
GlanceInternal: {protocol: http, port: '9292', host: IP_ADDRESS}
|
||||||
|
GlancePublic: {protocol: http, port: '9292', host: IP_ADDRESS}
|
||||||
|
GnocchiAdmin: {protocol: http, port: '8041', host: IP_ADDRESS}
|
||||||
|
GnocchiInternal: {protocol: http, port: '8041', host: IP_ADDRESS}
|
||||||
|
GnocchiPublic: {protocol: http, port: '8041', host: IP_ADDRESS}
|
||||||
|
HeatAdmin: {protocol: http, port: '8004', host: IP_ADDRESS}
|
||||||
|
HeatInternal: {protocol: http, port: '8004', host: IP_ADDRESS}
|
||||||
|
HeatPublic: {protocol: http, port: '8004', host: IP_ADDRESS}
|
||||||
|
HeatCfnAdmin: {protocol: http, port: '8000', host: IP_ADDRESS}
|
||||||
|
HeatCfnInternal: {protocol: http, port: '8000', host: IP_ADDRESS}
|
||||||
|
HeatCfnPublic: {protocol: http, port: '8000', host: IP_ADDRESS}
|
||||||
|
HorizonPublic: {protocol: http, port: '80', host: IP_ADDRESS}
|
||||||
|
IronicAdmin: {protocol: http, port: '6385', host: IP_ADDRESS}
|
||||||
|
IronicInternal: {protocol: http, port: '6385', host: IP_ADDRESS}
|
||||||
|
IronicPublic: {protocol: http, port: '6385', host: IP_ADDRESS}
|
||||||
|
IronicInspectorAdmin: {protocol: http, port: '5050', host: IP_ADDRESS}
|
||||||
|
IronicInspectorInternal: {protocol: http, port: '5050', host: IP_ADDRESS}
|
||||||
|
IronicInspectorPublic: {protocol: http, port: '5050', host: IP_ADDRESS}
|
||||||
|
KeystoneAdmin: {protocol: http, port: '35357', host: IP_ADDRESS}
|
||||||
|
KeystoneInternal: {protocol: http, port: '5000', host: IP_ADDRESS}
|
||||||
|
KeystonePublic: {protocol: http, port: '5000', host: IP_ADDRESS}
|
||||||
|
ManilaAdmin: {protocol: http, port: '8786', host: IP_ADDRESS}
|
||||||
|
ManilaInternal: {protocol: http, port: '8786', host: IP_ADDRESS}
|
||||||
|
ManilaPublic: {protocol: http, port: '8786', host: IP_ADDRESS}
|
||||||
|
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: IP_ADDRESS}
|
||||||
|
MistralAdmin: {protocol: http, port: '8989', host: IP_ADDRESS}
|
||||||
|
MistralInternal: {protocol: http, port: '8989', host: IP_ADDRESS}
|
||||||
|
MistralPublic: {protocol: http, port: '8989', host: IP_ADDRESS}
|
||||||
|
MysqlInternal: {protocol: mysql+pymysql, port: '3306', host: IP_ADDRESS}
|
||||||
|
NeutronAdmin: {protocol: http, port: '9696', host: IP_ADDRESS}
|
||||||
|
NeutronInternal: {protocol: http, port: '9696', host: IP_ADDRESS}
|
||||||
|
NeutronPublic: {protocol: http, port: '9696', host: IP_ADDRESS}
|
||||||
|
NovaAdmin: {protocol: http, port: '8774', host: IP_ADDRESS}
|
||||||
|
NovaInternal: {protocol: http, port: '8774', host: IP_ADDRESS}
|
||||||
|
NovaPublic: {protocol: http, port: '8774', host: IP_ADDRESS}
|
||||||
|
NovajoinAdmin: {protocol: http, port: '9090', host: IP_ADDRESS}
|
||||||
|
NovajoinInternal: {protocol: http, port: '9090', host: IP_ADDRESS}
|
||||||
|
NovajoinPublic: {protocol: http, port: '9090', host: IP_ADDRESS}
|
||||||
|
NovaMetadataInternal: {protocol: http, port: '8775', host: IP_ADDRESS}
|
||||||
|
PlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS}
|
||||||
|
PlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS}
|
||||||
|
PlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS}
|
||||||
|
NovaVNCProxyAdmin: {protocol: http, port: '6080', host: IP_ADDRESS}
|
||||||
|
NovaVNCProxyInternal: {protocol: http, port: '6080', host: IP_ADDRESS}
|
||||||
|
NovaVNCProxyPublic: {protocol: http, port: '6080', host: IP_ADDRESS}
|
||||||
|
OctaviaAdmin: {protocol: http, port: '9876', host: IP_ADDRESS}
|
||||||
|
OctaviaInternal: {protocol: http, port: '9876', host: IP_ADDRESS}
|
||||||
|
OctaviaPublic: {protocol: http, port: '9876', host: IP_ADDRESS}
|
||||||
|
SwiftAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
|
||||||
|
SwiftInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
|
||||||
|
SwiftPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
|
||||||
|
ZaqarAdmin: {protocol: http, port: '8888', host: IP_ADDRESS}
|
||||||
|
ZaqarInternal: {protocol: http, port: '8888', host: IP_ADDRESS}
|
||||||
|
ZaqarPublic: {protocol: http, port: '8888', host: IP_ADDRESS}
|
||||||
|
ZaqarWebSocketAdmin: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
||||||
|
ZaqarWebSocketInternal: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
||||||
|
ZaqarWebSocketPublic: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Users can now override or add individual entries to EndpointMap without
|
||||||
|
having to specify complete EndpointMap in parameter_defaults section
|
||||||
|
of an environment file.
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
With the change to EndpointMap interface, existing environments where
|
||||||
|
it has been overridden have to specify 'merge' strategy in a new
|
||||||
|
'parameter_merge_strategies' section.
|
@ -111,6 +111,8 @@ environments:
|
|||||||
description: |
|
description: |
|
||||||
Use this environment when deploying an SSL-enabled overcloud where the public
|
Use this environment when deploying an SSL-enabled overcloud where the public
|
||||||
endpoint is an IP address.
|
endpoint is an IP address.
|
||||||
|
parameter_merge_strategies:
|
||||||
|
EndpointMap: merge
|
||||||
files:
|
files:
|
||||||
network/endpoints/endpoint_map.yaml:
|
network/endpoints/endpoint_map.yaml:
|
||||||
parameters:
|
parameters:
|
||||||
@ -123,82 +125,33 @@ environments:
|
|||||||
# two seemed like the most sane option.
|
# two seemed like the most sane option.
|
||||||
EndpointMap: |-2
|
EndpointMap: |-2
|
||||||
|
|
||||||
AodhAdmin: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhInternal: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhPublic: {protocol: 'https', port: '13042', host: 'IP_ADDRESS'}
|
AodhPublic: {protocol: 'https', port: '13042', host: 'IP_ADDRESS'}
|
||||||
BarbicanAdmin: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanInternal: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanPublic: {protocol: 'https', port: '13311', host: 'IP_ADDRESS'}
|
BarbicanPublic: {protocol: 'https', port: '13311', host: 'IP_ADDRESS'}
|
||||||
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'IP_ADDRESS'}
|
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'IP_ADDRESS'}
|
||||||
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'IP_ADDRESS'}
|
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'IP_ADDRESS'}
|
||||||
CephRgwAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
CephRgwPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
||||||
CinderAdmin: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderInternal: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderPublic: {protocol: 'https', port: '13776', host: 'IP_ADDRESS'}
|
CinderPublic: {protocol: 'https', port: '13776', host: 'IP_ADDRESS'}
|
||||||
DesignateAdmin: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignateInternal: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignatePublic: {protocol: 'https', port: '13001', host: 'IP_ADDRESS'}
|
DesignatePublic: {protocol: 'https', port: '13001', host: 'IP_ADDRESS'}
|
||||||
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'IP_ADDRESS'}
|
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'IP_ADDRESS'}
|
||||||
GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'}
|
|
||||||
GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'}
|
GlancePublic: {protocol: 'https', port: '13292', host: 'IP_ADDRESS'}
|
||||||
GnocchiAdmin: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiInternal: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiPublic: {protocol: 'https', port: '13041', host: 'IP_ADDRESS'}
|
GnocchiPublic: {protocol: 'https', port: '13041', host: 'IP_ADDRESS'}
|
||||||
HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatPublic: {protocol: 'https', port: '13004', host: 'IP_ADDRESS'}
|
HeatPublic: {protocol: 'https', port: '13004', host: 'IP_ADDRESS'}
|
||||||
HeatCfnAdmin: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnInternal: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'IP_ADDRESS'}
|
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'IP_ADDRESS'}
|
||||||
HorizonPublic: {protocol: 'https', port: '443', host: 'IP_ADDRESS'}
|
HorizonPublic: {protocol: 'https', port: '443', host: 'IP_ADDRESS'}
|
||||||
IronicAdmin: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicInternal: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicPublic: {protocol: 'https', port: '13385', host: 'IP_ADDRESS'}
|
IronicPublic: {protocol: 'https', port: '13385', host: 'IP_ADDRESS'}
|
||||||
IronicInspectorAdmin: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorInternal: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'IP_ADDRESS'}
|
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'IP_ADDRESS'}
|
||||||
KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
|
|
||||||
KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
|
|
||||||
KeystonePublic: {protocol: 'https', port: '13000', host: 'IP_ADDRESS'}
|
KeystonePublic: {protocol: 'https', port: '13000', host: 'IP_ADDRESS'}
|
||||||
ManilaAdmin: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaInternal: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaPublic: {protocol: 'https', port: '13786', host: 'IP_ADDRESS'}
|
ManilaPublic: {protocol: 'https', port: '13786', host: 'IP_ADDRESS'}
|
||||||
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: 'IP_ADDRESS'}
|
|
||||||
MistralAdmin: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralInternal: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralPublic: {protocol: 'https', port: '13989', host: 'IP_ADDRESS'}
|
MistralPublic: {protocol: 'https', port: '13989', host: 'IP_ADDRESS'}
|
||||||
MysqlInternal: {protocol: 'mysql+pymysql', port: '3306', host: 'IP_ADDRESS'}
|
|
||||||
NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronPublic: {protocol: 'https', port: '13696', host: 'IP_ADDRESS'}
|
NeutronPublic: {protocol: 'https', port: '13696', host: 'IP_ADDRESS'}
|
||||||
NovaAdmin: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaInternal: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaPublic: {protocol: 'https', port: '13774', host: 'IP_ADDRESS'}
|
NovaPublic: {protocol: 'https', port: '13774', host: 'IP_ADDRESS'}
|
||||||
NovajoinAdmin: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinInternal: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinPublic: {protocol: 'https', port: '13090', host: 'IP_ADDRESS'}
|
NovajoinPublic: {protocol: 'https', port: '13090', host: 'IP_ADDRESS'}
|
||||||
NovaMetadataInternal: {protocol: 'https', port: '8775', host: 'IP_ADDRESS'}
|
NovaMetadataInternal: {protocol: 'https', port: '8775', host: 'IP_ADDRESS'}
|
||||||
PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'}
|
PlacementPublic: {protocol: 'https', port: '13778', host: 'IP_ADDRESS'}
|
||||||
NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'IP_ADDRESS'}
|
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'IP_ADDRESS'}
|
||||||
OctaviaAdmin: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaInternal: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaPublic: {protocol: 'https', port: '13876', host: 'IP_ADDRESS'}
|
OctaviaPublic: {protocol: 'https', port: '13876', host: 'IP_ADDRESS'}
|
||||||
SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
SwiftPublic: {protocol: 'https', port: '13808', host: 'IP_ADDRESS'}
|
||||||
ZaqarAdmin: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarInternal: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarPublic: {protocol: 'https', port: '13888', host: 'IP_ADDRESS'}
|
ZaqarPublic: {protocol: 'https', port: '13888', host: 'IP_ADDRESS'}
|
||||||
ZaqarWebSocketAdmin: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketInternal: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'IP_ADDRESS'}
|
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'IP_ADDRESS'}
|
||||||
-
|
-
|
||||||
name: ssl/tls-endpoints-public-dns
|
name: ssl/tls-endpoints-public-dns
|
||||||
@ -206,6 +159,8 @@ environments:
|
|||||||
description: |
|
description: |
|
||||||
Use this environment when deploying an SSL-enabled overcloud where the public
|
Use this environment when deploying an SSL-enabled overcloud where the public
|
||||||
endpoint is a DNS name.
|
endpoint is a DNS name.
|
||||||
|
parameter_merge_strategies:
|
||||||
|
EndpointMap: merge
|
||||||
files:
|
files:
|
||||||
network/endpoints/endpoint_map.yaml:
|
network/endpoints/endpoint_map.yaml:
|
||||||
parameters:
|
parameters:
|
||||||
@ -218,82 +173,33 @@ environments:
|
|||||||
# two seemed like the most sane option.
|
# two seemed like the most sane option.
|
||||||
EndpointMap: |-2
|
EndpointMap: |-2
|
||||||
|
|
||||||
AodhAdmin: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhInternal: {protocol: 'http', port: '8042', host: 'IP_ADDRESS'}
|
|
||||||
AodhPublic: {protocol: 'https', port: '13042', host: 'CLOUDNAME'}
|
AodhPublic: {protocol: 'https', port: '13042', host: 'CLOUDNAME'}
|
||||||
BarbicanAdmin: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanInternal: {protocol: 'http', port: '9311', host: 'IP_ADDRESS'}
|
|
||||||
BarbicanPublic: {protocol: 'https', port: '13311', host: 'CLOUDNAME'}
|
BarbicanPublic: {protocol: 'https', port: '13311', host: 'CLOUDNAME'}
|
||||||
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'CLOUDNAME'}
|
CephDashboardInternal: {protocol: 'https', port: '8444', host: 'CLOUDNAME'}
|
||||||
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'CLOUDNAME'}
|
CephGrafanaInternal: {protocol: 'https', port: '3100', host: 'CLOUDNAME'}
|
||||||
CephRgwAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
CephRgwPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
CephRgwPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
||||||
CinderAdmin: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderInternal: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
|
|
||||||
CinderPublic: {protocol: 'https', port: '13776', host: 'CLOUDNAME'}
|
CinderPublic: {protocol: 'https', port: '13776', host: 'CLOUDNAME'}
|
||||||
DesignateAdmin: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignateInternal: {protocol: 'http', port: '9001', host: 'IP_ADDRESS'}
|
|
||||||
DesignatePublic: {protocol: 'https', port: '13001', host: 'CLOUDNAME'}
|
DesignatePublic: {protocol: 'https', port: '13001', host: 'CLOUDNAME'}
|
||||||
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'CLOUDNAME'}
|
DockerRegistryInternal: {protocol: 'https', port: '8787', host: 'CLOUDNAME'}
|
||||||
GaneshaInternal: {protocol: 'nfs', port: '2049', host: 'IP_ADDRESS'}
|
|
||||||
GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
|
|
||||||
GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}
|
GlancePublic: {protocol: 'https', port: '13292', host: 'CLOUDNAME'}
|
||||||
GnocchiAdmin: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiInternal: {protocol: 'http', port: '8041', host: 'IP_ADDRESS'}
|
|
||||||
GnocchiPublic: {protocol: 'https', port: '13041', host: 'CLOUDNAME'}
|
GnocchiPublic: {protocol: 'https', port: '13041', host: 'CLOUDNAME'}
|
||||||
HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
|
|
||||||
HeatPublic: {protocol: 'https', port: '13004', host: 'CLOUDNAME'}
|
HeatPublic: {protocol: 'https', port: '13004', host: 'CLOUDNAME'}
|
||||||
HeatCfnAdmin: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnInternal: {protocol: 'http', port: '8000', host: 'IP_ADDRESS'}
|
|
||||||
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'CLOUDNAME'}
|
HeatCfnPublic: {protocol: 'https', port: '13005', host: 'CLOUDNAME'}
|
||||||
HorizonPublic: {protocol: 'https', port: '443', host: 'CLOUDNAME'}
|
HorizonPublic: {protocol: 'https', port: '443', host: 'CLOUDNAME'}
|
||||||
IronicAdmin: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicInternal: {protocol: 'http', port: '6385', host: 'IP_ADDRESS'}
|
|
||||||
IronicPublic: {protocol: 'https', port: '13385', host: 'CLOUDNAME'}
|
IronicPublic: {protocol: 'https', port: '13385', host: 'CLOUDNAME'}
|
||||||
IronicInspectorAdmin: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorInternal: {protocol: 'http', port: '5050', host: 'IP_ADDRESS'}
|
|
||||||
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'CLOUDNAME'}
|
IronicInspectorPublic: {protocol: 'https', port: '13050', host: 'CLOUDNAME'}
|
||||||
KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
|
|
||||||
KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
|
|
||||||
KeystonePublic: {protocol: 'https', port: '13000', host: 'CLOUDNAME'}
|
KeystonePublic: {protocol: 'https', port: '13000', host: 'CLOUDNAME'}
|
||||||
ManilaAdmin: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaInternal: {protocol: 'http', port: '8786', host: 'IP_ADDRESS'}
|
|
||||||
ManilaPublic: {protocol: 'https', port: '13786', host: 'CLOUDNAME'}
|
ManilaPublic: {protocol: 'https', port: '13786', host: 'CLOUDNAME'}
|
||||||
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: 'CLOUDNAME'}
|
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: 'CLOUDNAME'}
|
||||||
MistralAdmin: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralInternal: {protocol: 'http', port: '8989', host: 'IP_ADDRESS'}
|
|
||||||
MistralPublic: {protocol: 'https', port: '13989', host: 'CLOUDNAME'}
|
MistralPublic: {protocol: 'https', port: '13989', host: 'CLOUDNAME'}
|
||||||
MysqlInternal: {protocol: 'mysql+pymysql', port: '3306', host: 'IP_ADDRESS'}
|
|
||||||
NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
|
|
||||||
NeutronPublic: {protocol: 'https', port: '13696', host: 'CLOUDNAME'}
|
NeutronPublic: {protocol: 'https', port: '13696', host: 'CLOUDNAME'}
|
||||||
NovaAdmin: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaInternal: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
|
|
||||||
NovaPublic: {protocol: 'https', port: '13774', host: 'CLOUDNAME'}
|
NovaPublic: {protocol: 'https', port: '13774', host: 'CLOUDNAME'}
|
||||||
NovajoinAdmin: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinInternal: {protocol: 'http', port: '9090', host: 'IP_ADDRESS'}
|
|
||||||
NovajoinPublic: {protocol: 'https', port: '13090', host: 'CLOUDNAME'}
|
NovajoinPublic: {protocol: 'https', port: '13090', host: 'CLOUDNAME'}
|
||||||
NovaMetadataInternal: {protocol: 'https', port: '8775', host: 'IP_ADDRESS'}
|
|
||||||
PlacementAdmin: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementInternal: {protocol: 'http', port: '8778', host: 'IP_ADDRESS'}
|
|
||||||
PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'}
|
PlacementPublic: {protocol: 'https', port: '13778', host: 'CLOUDNAME'}
|
||||||
NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
|
|
||||||
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'}
|
NovaVNCProxyPublic: {protocol: 'https', port: '13080', host: 'CLOUDNAME'}
|
||||||
OctaviaAdmin: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaInternal: {protocol: 'http', port: '9876', host: 'IP_ADDRESS'}
|
|
||||||
OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'}
|
OctaviaPublic: {protocol: 'https', port: '13876', host: 'CLOUDNAME'}
|
||||||
SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
|
|
||||||
SwiftPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
SwiftPublic: {protocol: 'https', port: '13808', host: 'CLOUDNAME'}
|
||||||
ZaqarAdmin: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarInternal: {protocol: 'http', port: '8888', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarPublic: {protocol: 'https', port: '13888', host: 'CLOUDNAME'}
|
ZaqarPublic: {protocol: 'https', port: '13888', host: 'CLOUDNAME'}
|
||||||
ZaqarWebSocketAdmin: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketInternal: {protocol: 'ws', port: '9000', host: 'IP_ADDRESS'}
|
|
||||||
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'CLOUDNAME'}
|
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'CLOUDNAME'}
|
||||||
-
|
-
|
||||||
name: ssl/tls-everywhere-endpoints-dns
|
name: ssl/tls-everywhere-endpoints-dns
|
||||||
@ -301,6 +207,8 @@ environments:
|
|||||||
description: |
|
description: |
|
||||||
Use this environment when deploying an overcloud where all the endpoints are
|
Use this environment when deploying an overcloud where all the endpoints are
|
||||||
DNS names and there's TLS in all endpoint types.
|
DNS names and there's TLS in all endpoint types.
|
||||||
|
parameter_merge_strategies:
|
||||||
|
EndpointMap: merge
|
||||||
files:
|
files:
|
||||||
network/endpoints/endpoint_map.yaml:
|
network/endpoints/endpoint_map.yaml:
|
||||||
parameters:
|
parameters:
|
||||||
@ -390,105 +298,3 @@ environments:
|
|||||||
ZaqarWebSocketAdmin: {protocol: 'wss', port: '9000', host: 'CLOUDNAME'}
|
ZaqarWebSocketAdmin: {protocol: 'wss', port: '9000', host: 'CLOUDNAME'}
|
||||||
ZaqarWebSocketInternal: {protocol: 'wss', port: '9000', host: 'CLOUDNAME'}
|
ZaqarWebSocketInternal: {protocol: 'wss', port: '9000', host: 'CLOUDNAME'}
|
||||||
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'CLOUDNAME'}
|
ZaqarWebSocketPublic: {protocol: 'wss', port: '3000', host: 'CLOUDNAME'}
|
||||||
-
|
|
||||||
name: ssl/no-tls-endpoints-public-ip
|
|
||||||
title: Deploy All Endpoints without TLS and with IP addresses
|
|
||||||
description: |
|
|
||||||
Use this environment when deploying an overcloud where all the endpoints not
|
|
||||||
using TLS and are using IP addresses.
|
|
||||||
files:
|
|
||||||
network/endpoints/endpoint_map.yaml:
|
|
||||||
parameters:
|
|
||||||
- EndpointMap
|
|
||||||
deployment/haproxy/haproxy-container-puppet.yaml:
|
|
||||||
parameters:
|
|
||||||
- EnablePublicTLS
|
|
||||||
deployment/haproxy/haproxy-pacemaker-puppet.yaml:
|
|
||||||
parameters:
|
|
||||||
- EnablePublicTLS
|
|
||||||
sample_values:
|
|
||||||
EnablePublicTLS: false
|
|
||||||
# NOTE(bnemec): This is a bit odd, but it's the only way I've found that
|
|
||||||
# works. The |-2 tells YAML to strip two spaces off the indentation of
|
|
||||||
# the value, which because it's indented six spaces gets us to the four
|
|
||||||
# that we actually want. Note that zero is not a valid value here, so
|
|
||||||
# two seemed like the most sane option.
|
|
||||||
EndpointMap: |-2
|
|
||||||
|
|
||||||
AodhAdmin: {protocol: http, port: '8042', host: IP_ADDRESS}
|
|
||||||
AodhInternal: {protocol: http, port: '8042', host: IP_ADDRESS}
|
|
||||||
AodhPublic: {protocol: http, port: '8042', host: IP_ADDRESS}
|
|
||||||
BarbicanAdmin: {protocol: http, port: '9311', host: IP_ADDRESS}
|
|
||||||
BarbicanInternal: {protocol: http, port: '9311', host: IP_ADDRESS}
|
|
||||||
BarbicanPublic: {protocol: http, port: '9311', host: IP_ADDRESS}
|
|
||||||
CephDashboardInternal: {protocol: http, port: '8444', host: IP_ADDRESS}
|
|
||||||
CephGrafanaInternal: {protocol: http, port: '3100', host: IP_ADDRESS}
|
|
||||||
CephRgwAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
CephRgwInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
CephRgwPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
CinderAdmin: {protocol: http, port: '8776', host: IP_ADDRESS}
|
|
||||||
CinderInternal: {protocol: http, port: '8776', host: IP_ADDRESS}
|
|
||||||
CinderPublic: {protocol: http, port: '8776', host: IP_ADDRESS}
|
|
||||||
DesignateAdmin: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
|
||||||
DesignateInternal: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
|
||||||
DesignatePublic: {protocol: 'http', port: '9001', host: IP_ADDRESS}
|
|
||||||
DockerRegistryInternal: {protocol: http, port: '8787', host: IP_ADDRESS}
|
|
||||||
GaneshaInternal: {protocol: nfs, port: '2049', host: IP_ADDRESS}
|
|
||||||
GlanceAdmin: {protocol: http, port: '9292', host: IP_ADDRESS}
|
|
||||||
GlanceInternal: {protocol: http, port: '9292', host: IP_ADDRESS}
|
|
||||||
GlancePublic: {protocol: http, port: '9292', host: IP_ADDRESS}
|
|
||||||
GnocchiAdmin: {protocol: http, port: '8041', host: IP_ADDRESS}
|
|
||||||
GnocchiInternal: {protocol: http, port: '8041', host: IP_ADDRESS}
|
|
||||||
GnocchiPublic: {protocol: http, port: '8041', host: IP_ADDRESS}
|
|
||||||
HeatAdmin: {protocol: http, port: '8004', host: IP_ADDRESS}
|
|
||||||
HeatInternal: {protocol: http, port: '8004', host: IP_ADDRESS}
|
|
||||||
HeatPublic: {protocol: http, port: '8004', host: IP_ADDRESS}
|
|
||||||
HeatCfnAdmin: {protocol: http, port: '8000', host: IP_ADDRESS}
|
|
||||||
HeatCfnInternal: {protocol: http, port: '8000', host: IP_ADDRESS}
|
|
||||||
HeatCfnPublic: {protocol: http, port: '8000', host: IP_ADDRESS}
|
|
||||||
HorizonPublic: {protocol: http, port: '80', host: IP_ADDRESS}
|
|
||||||
IronicAdmin: {protocol: http, port: '6385', host: IP_ADDRESS}
|
|
||||||
IronicInternal: {protocol: http, port: '6385', host: IP_ADDRESS}
|
|
||||||
IronicPublic: {protocol: http, port: '6385', host: IP_ADDRESS}
|
|
||||||
IronicInspectorAdmin: {protocol: http, port: '5050', host: IP_ADDRESS}
|
|
||||||
IronicInspectorInternal: {protocol: http, port: '5050', host: IP_ADDRESS}
|
|
||||||
IronicInspectorPublic: {protocol: http, port: '5050', host: IP_ADDRESS}
|
|
||||||
KeystoneAdmin: {protocol: http, port: '35357', host: IP_ADDRESS}
|
|
||||||
KeystoneInternal: {protocol: http, port: '5000', host: IP_ADDRESS}
|
|
||||||
KeystonePublic: {protocol: http, port: '5000', host: IP_ADDRESS}
|
|
||||||
ManilaAdmin: {protocol: http, port: '8786', host: IP_ADDRESS}
|
|
||||||
ManilaInternal: {protocol: http, port: '8786', host: IP_ADDRESS}
|
|
||||||
ManilaPublic: {protocol: http, port: '8786', host: IP_ADDRESS}
|
|
||||||
MetricsQdrPublic: {protocol: 'amqp', port: '5666', host: IP_ADDRESS}
|
|
||||||
MistralAdmin: {protocol: http, port: '8989', host: IP_ADDRESS}
|
|
||||||
MistralInternal: {protocol: http, port: '8989', host: IP_ADDRESS}
|
|
||||||
MistralPublic: {protocol: http, port: '8989', host: IP_ADDRESS}
|
|
||||||
MysqlInternal: {protocol: mysql+pymysql, port: '3306', host: IP_ADDRESS}
|
|
||||||
NeutronAdmin: {protocol: http, port: '9696', host: IP_ADDRESS}
|
|
||||||
NeutronInternal: {protocol: http, port: '9696', host: IP_ADDRESS}
|
|
||||||
NeutronPublic: {protocol: http, port: '9696', host: IP_ADDRESS}
|
|
||||||
NovaAdmin: {protocol: http, port: '8774', host: IP_ADDRESS}
|
|
||||||
NovaInternal: {protocol: http, port: '8774', host: IP_ADDRESS}
|
|
||||||
NovaPublic: {protocol: http, port: '8774', host: IP_ADDRESS}
|
|
||||||
NovajoinAdmin: {protocol: http, port: '9090', host: IP_ADDRESS}
|
|
||||||
NovajoinInternal: {protocol: http, port: '9090', host: IP_ADDRESS}
|
|
||||||
NovajoinPublic: {protocol: http, port: '9090', host: IP_ADDRESS}
|
|
||||||
NovaMetadataInternal: {protocol: http, port: '8775', host: IP_ADDRESS}
|
|
||||||
PlacementAdmin: {protocol: http, port: '8778', host: IP_ADDRESS}
|
|
||||||
PlacementInternal: {protocol: http, port: '8778', host: IP_ADDRESS}
|
|
||||||
PlacementPublic: {protocol: http, port: '8778', host: IP_ADDRESS}
|
|
||||||
NovaVNCProxyAdmin: {protocol: http, port: '6080', host: IP_ADDRESS}
|
|
||||||
NovaVNCProxyInternal: {protocol: http, port: '6080', host: IP_ADDRESS}
|
|
||||||
NovaVNCProxyPublic: {protocol: http, port: '6080', host: IP_ADDRESS}
|
|
||||||
OctaviaAdmin: {protocol: http, port: '9876', host: IP_ADDRESS}
|
|
||||||
OctaviaInternal: {protocol: http, port: '9876', host: IP_ADDRESS}
|
|
||||||
OctaviaPublic: {protocol: http, port: '9876', host: IP_ADDRESS}
|
|
||||||
SwiftAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
SwiftInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
SwiftPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
|
|
||||||
ZaqarAdmin: {protocol: http, port: '8888', host: IP_ADDRESS}
|
|
||||||
ZaqarInternal: {protocol: http, port: '8888', host: IP_ADDRESS}
|
|
||||||
ZaqarPublic: {protocol: http, port: '8888', host: IP_ADDRESS}
|
|
||||||
ZaqarWebSocketAdmin: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
|
||||||
ZaqarWebSocketInternal: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
|
||||||
ZaqarWebSocketPublic: {protocol: ws, port: '9000', host: IP_ADDRESS}
|
|
||||||
|
@ -148,8 +148,6 @@ def to_normal_yaml(filename):
|
|||||||
return out_str
|
return out_str
|
||||||
|
|
||||||
|
|
||||||
# FIXME: Some of this duplicates code from build_endpoint_map.py, we should
|
|
||||||
# refactor to share the common code
|
|
||||||
class TemplateDumper(yaml.SafeDumper):
|
class TemplateDumper(yaml.SafeDumper):
|
||||||
def represent_ordered_dict(self, data):
|
def represent_ordered_dict(self, data):
|
||||||
return self.represent_dict(data.items())
|
return self.represent_dict(data.items())
|
||||||
|
@ -41,15 +41,6 @@ current_heat_template_version = valid_heat_template_versions[-1]
|
|||||||
required_params = ['EndpointMap', 'ServiceNetMap', 'RoleName',
|
required_params = ['EndpointMap', 'ServiceNetMap', 'RoleName',
|
||||||
'RoleParameters', 'ServiceData']
|
'RoleParameters', 'ServiceData']
|
||||||
|
|
||||||
# NOTE(bnemec): The duplication in this list is intentional. For the
|
|
||||||
# transition to generated environments we have two copies of these files,
|
|
||||||
# so they need to be listed twice. Once the deprecated version can be removed
|
|
||||||
# the duplicate entries can be as well.
|
|
||||||
envs_containing_endpoint_map = ['no-tls-endpoints-public-ip.yaml',
|
|
||||||
'tls-endpoints-public-dns.yaml',
|
|
||||||
'tls-endpoints-public-ip.yaml',
|
|
||||||
'tls-everywhere-endpoints-dns.yaml']
|
|
||||||
ENDPOINT_MAP_FILE = 'endpoint_map.yaml'
|
|
||||||
OPTIONAL_SECTIONS = ['ansible_group_vars',
|
OPTIONAL_SECTIONS = ['ansible_group_vars',
|
||||||
'cellv2_discovery',
|
'cellv2_discovery',
|
||||||
'firewall_rules',
|
'firewall_rules',
|
||||||
@ -305,29 +296,6 @@ def to_camel_case(string):
|
|||||||
s in string.split('_')))
|
s in string.split('_')))
|
||||||
|
|
||||||
|
|
||||||
def get_base_endpoint_map(filename):
|
|
||||||
try:
|
|
||||||
with open(filename, 'r') as f:
|
|
||||||
tpl = yaml.load(f.read(), Loader=yaml.SafeLoader)
|
|
||||||
return tpl['parameters']['EndpointMap']['default']
|
|
||||||
except Exception:
|
|
||||||
print(traceback.format_exc())
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def get_endpoint_map_from_env(filename):
|
|
||||||
try:
|
|
||||||
with open(filename, 'r') as f:
|
|
||||||
tpl = yaml.load(f.read(), Loader=yaml.SafeLoader)
|
|
||||||
return {
|
|
||||||
'file': filename,
|
|
||||||
'map': tpl['parameter_defaults']['EndpointMap']
|
|
||||||
}
|
|
||||||
except Exception:
|
|
||||||
print(traceback.format_exc())
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def compare_parameters(old_impl_path, new_impl_path):
|
def compare_parameters(old_impl_path, new_impl_path):
|
||||||
old_impl_params = []
|
old_impl_params = []
|
||||||
new_impl_params = []
|
new_impl_params = []
|
||||||
@ -354,10 +322,6 @@ def compare_ceph_parameters(path):
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
def validate_endpoint_map(base_map, env_map):
|
|
||||||
return sorted(base_map.keys()) == sorted(env_map.keys())
|
|
||||||
|
|
||||||
|
|
||||||
def validate_role_name(filename):
|
def validate_role_name(filename):
|
||||||
with open(filename, 'r') as f:
|
with open(filename, 'r') as f:
|
||||||
tpl = yaml.load(f.read(), Loader=yaml.SafeLoader)
|
tpl = yaml.load(f.read(), Loader=yaml.SafeLoader)
|
||||||
@ -1415,12 +1379,6 @@ for base_path in path_args:
|
|||||||
if failed:
|
if failed:
|
||||||
failed_files.append(file_path)
|
failed_files.append(file_path)
|
||||||
exit_val |= failed
|
exit_val |= failed
|
||||||
if f == ENDPOINT_MAP_FILE:
|
|
||||||
base_endpoint_map = get_base_endpoint_map(file_path)
|
|
||||||
if f in envs_containing_endpoint_map:
|
|
||||||
env_endpoint_map = get_endpoint_map_from_env(file_path)
|
|
||||||
if env_endpoint_map:
|
|
||||||
env_endpoint_maps.append(env_endpoint_map)
|
|
||||||
elif os.path.isfile(base_path) and base_path.endswith('.yaml'):
|
elif os.path.isfile(base_path) and base_path.endswith('.yaml'):
|
||||||
failed = validate(base_path, param_map)
|
failed = validate(base_path, param_map)
|
||||||
if failed:
|
if failed:
|
||||||
@ -1430,30 +1388,6 @@ for base_path in path_args:
|
|||||||
print('Unexpected argument %s' % base_path)
|
print('Unexpected argument %s' % base_path)
|
||||||
exit_usage()
|
exit_usage()
|
||||||
|
|
||||||
if base_endpoint_map and \
|
|
||||||
len(env_endpoint_maps) == len(envs_containing_endpoint_map):
|
|
||||||
for env_endpoint_map in env_endpoint_maps:
|
|
||||||
matches = validate_endpoint_map(base_endpoint_map,
|
|
||||||
env_endpoint_map['map'])
|
|
||||||
if not matches:
|
|
||||||
print("ERROR: %s needs to be updated to match changes in base "
|
|
||||||
"endpoint map" % env_endpoint_map['file'])
|
|
||||||
failed_files.append(env_endpoint_map['file'])
|
|
||||||
exit_val |= 1
|
|
||||||
elif args.quiet < 1:
|
|
||||||
print("%s matches base endpoint map" % env_endpoint_map['file'])
|
|
||||||
else:
|
|
||||||
print("ERROR: Did not find expected number of environments containing the "
|
|
||||||
"EndpointMap parameter. If you meant to add or remove one of these "
|
|
||||||
"environments then you also need to update this tool.")
|
|
||||||
if not base_endpoint_map:
|
|
||||||
failed_files.append(ENDPOINT_MAP_FILE)
|
|
||||||
if len(env_endpoint_maps) != len(envs_containing_endpoint_map):
|
|
||||||
matched_files = set(os.path.basename(matched_env_file['file'])
|
|
||||||
for matched_env_file in env_endpoint_maps)
|
|
||||||
failed_files.extend(set(envs_containing_endpoint_map) - matched_files)
|
|
||||||
exit_val |= 1
|
|
||||||
|
|
||||||
# Validate that duplicate parameters defined in multiple files all have the
|
# Validate that duplicate parameters defined in multiple files all have the
|
||||||
# same definition.
|
# same definition.
|
||||||
mismatch_count = 0
|
mismatch_count = 0
|
||||||
|
1
tox.ini
1
tox.ini
@ -23,7 +23,6 @@ whitelist_externals =
|
|||||||
bash
|
bash
|
||||||
commands =
|
commands =
|
||||||
python ./tools/process-templates.py
|
python ./tools/process-templates.py
|
||||||
python ./network/endpoints/build_endpoint_map.py --check
|
|
||||||
python ./tools/yaml-validate.py .
|
python ./tools/yaml-validate.py .
|
||||||
bash -c ./tools/roles-data-validation.sh
|
bash -c ./tools/roles-data-validation.sh
|
||||||
bash -c ./tools/check-up-to-date.sh
|
bash -c ./tools/check-up-to-date.sh
|
||||||
|
@ -198,6 +198,10 @@ def _generate_environment(input_env, output_path, parent_env=None):
|
|||||||
env_file.write(u'resource_registry:\n')
|
env_file.write(u'resource_registry:\n')
|
||||||
for res, value in sorted(env.get('resource_registry', {}).items()):
|
for res, value in sorted(env.get('resource_registry', {}).items()):
|
||||||
env_file.write(u' %s: %s\n' % (res, value))
|
env_file.write(u' %s: %s\n' % (res, value))
|
||||||
|
if env.get('parameter_merge_strategies'):
|
||||||
|
env_file.write(u'parameter_merge_strategies:\n')
|
||||||
|
for res, value in sorted(env.get('parameter_merge_strategies', {}).items()):
|
||||||
|
env_file.write(u' %s: %s\n' % (res, value))
|
||||||
print('Wrote sample environment "%s"' % target_file)
|
print('Wrote sample environment "%s"' % target_file)
|
||||||
|
|
||||||
for e in env.get('children', []):
|
for e in env.get('children', []):
|
||||||
|
Loading…
Reference in New Issue
Block a user