add composable services for Contrail
authormichaelhenkel <mhenkel@juniper.net>
Mon, 25 Jul 2016 13:01:31 +0000 (15:01 +0200)
committermichaelhenkel <mhenkel@juniper.net>
Mon, 5 Sep 2016 18:44:30 +0000 (20:44 +0200)
- Config
- Control
- Analytics
- Database
- Webui

For puppet modules see https://review.openstack.org/#/c/348905

Implements: blueprint contrail-services

Depends-On: I8de63b6e21f8fdf3c2fd13bf5475cce4a85311d6

Change-Id: I7325b4268c4bec5eb7b777ea2a0639d7a8553e93

puppet/services/network/contrail-analytics.yaml [new file with mode: 0644]
puppet/services/network/contrail-base.yaml [new file with mode: 0644]
puppet/services/network/contrail-config.yaml [new file with mode: 0644]
puppet/services/network/contrail-control.yaml [new file with mode: 0644]
puppet/services/network/contrail-database.yaml [new file with mode: 0644]
puppet/services/network/contrail-webui.yaml [new file with mode: 0644]

diff --git a/puppet/services/network/contrail-analytics.yaml b/puppet/services/network/contrail-analytics.yaml
new file mode 100644 (file)
index 0000000..1c2331f
--- /dev/null
@@ -0,0 +1,90 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Contrail Analytics service deployment using puppet, this YAML file
+  creates the interface between the HOT template
+  and the puppet manifest that actually installs
+  and configures Contrail Analytics.
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  ContrailAnalyticsHostIP:
+    description: host IP address of Analytics
+    type: string
+  ContrailAnalyticsRedisServerIp:
+    description: Redis server ip address
+    type: string
+  ContrailAnalyticsCollectorServerHttpPort:
+    description: Collector http port
+    type: number
+    default: 8089
+  ContrailAnalyticsCollectorSandeshPort:
+    description: Collector sandesh port
+    type: number
+    default: 8086
+  ContrailAnalyticsHttpServerPort:
+    description: Analytics http port
+    type: number
+    default: 8090
+  ContrailAnalyticsListenAddress:
+    default: '0.0.0.0'
+    description: IP address Config API is listening on
+    type: string
+  ContrailAnalyticsListenPort:
+    default: 8082
+    description: Port Config API is listening on
+    type: number
+  ContrailAnalyticsRedisServerPort:
+    description: Redis server port
+    type: number
+    default: 6379
+  ContrailAnalyticsRestApiIp:
+    description: IP address Analytics rest interface listens on
+    type: string
+    default: '0.0.0.0'
+  ContrailAnalyticsRestApiPort:
+    description: Analytics rest port
+    type: number
+    default: 8081
+
+resources:
+  ContrailBase:
+    type: ./contrail-base.yaml
+    properties:
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+
+outputs:
+  role_data:
+    description: Role Contrail Analytics using composable services.
+    value:
+      service_name: contrail_analytics
+      config_settings:
+        map_merge:
+          - get_attr: [ContrailBase, role_data, config_settings]
+          - contrail::analytics::collector_http_server_port: {get_param: ContrailAnalyticsCollectorServerHttpPort}
+            contrail::analytics::collector_sandesh_port: {get_param: ContrailAnalyticsCollectorSandeshPort}
+            contrail::analytics::host_ip: {get_param: ContrailAnalyticsHostIP}
+            contrail::analytics::http_server_port: {get_param: ContrailAnalyticsHttpServerPort}
+            contrail::analytics::listen_ip_address: {get_param: ContrailAnalyticsListenAddress}
+            contrail::analytics::listen_port: {get_param: ContrailAnalyticsListenPort}
+            contrail::analytics::redis_server: {get_param: ContrailAnalyticsRedisServerIp}
+            contrail::analytics::redis_server_port: {get_param: ContrailAnalyticsRedisServerPort}
+            contrail::analytics::rest_api_ip: {get_param: ContrailAnalyticsRestApiIp}
+            contrail::analytics::rest_api_port: {get_param: ContrailAnalyticsRestApiPort}
+      step_config: |
+        include ::tripleo::network::contrail::analytics
diff --git a/puppet/services/network/contrail-base.yaml b/puppet/services/network/contrail-base.yaml
new file mode 100644 (file)
index 0000000..03dbea5
--- /dev/null
@@ -0,0 +1,100 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Base parameters for all Contrail Services.
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  AdminPassword:
+    description: Keystone admin user password
+    type: string
+  AdminTenantName:
+    description: Keystone admin tenant name
+    type: string
+  AdminToken:
+    description: Keystone admin token
+    type: string
+  AdminUser:
+    description: Keystone admin user name
+    type: string
+  AuthHost:
+    description: Keystone host IP address
+    type: string
+  AuthPort:
+    default: 35357
+    description: Keystone port
+    type: number
+  AuthProtocol:
+    default: 'http'
+    description: Keystone authentication protocol
+    type: string
+  ContrailDiscoveryServerIp:
+    description: Discovery server ip address
+    type: string
+  ContrailKafkaBrokerList:
+    description: List of kafka servers
+    type: comma_delimited_list
+  ContrailAuth:
+    default: 'keystone'
+    description: Keystone authentication method
+    type: string
+  ContrailCassandraServerList:
+    default: []
+    description: List of cassandra servers
+    type: comma_delimited_list
+  ContrailDiscoveryServerPort:
+    description: Discovery server port
+    type: number
+    default: 5998
+  ContrailInsecure:
+    default: false
+    description: Keystone insecure mode
+    type: boolean
+  ContrailMemcachedServer:
+    default: '127.0.0.1:12111'
+    description: Memcached server
+    type: string
+  ContrailMultiTenancy:
+    default: true
+    description: Turn on/off multi-tenancy
+    type: boolean
+  ContrailZkServerIp:
+    default: []
+    description: List of zookeeper servers
+    type: comma_delimited_list
+
+outputs:
+  role_data:
+    description: Shared role data for the Contrail services.
+    value:
+      service_name: contrail_base
+      config_settings:
+        contrail::admin_password: {get_param: AdminPassword}
+        contrail::admin_tenant_name: {get_param: AdminTenantName}
+        contrail::admin_token: {get_param: AdminToken}
+        contrail::admin_user: {get_param: AdminUser}
+        contrail::auth_host: {get_param: [EndpointMap, KeystoneInternal, host] }
+        contrail::auth_port: {get_param: [EndpointMap, KeystoneInternal, port] }
+        contrail::auth_protocol: {get_param: [EndpointMap, KeystoneInternal, protocol] }
+        contrail::disc_server_ip: {get_param: ContrailDiscoveryServerIp}
+        contrail::kafka_broker_list: {get_param: ContrailKafkaBrokerList}
+        contrail::auth: {get_param: ContrailAuth}
+        contrail::cassandra_server_list: {get_param: ContrailCassandraServerList}
+        contrail::disc_server_port: {get_param: ContrailDiscoveryServerPort}
+        contrail::insecure: {get_param: ContrailInsecure}
+        contrail::memcached_server: {get_param: ContrailMemcachedServer}
+        contrail::multi_tenancy: {get_param: ContrailMultiTenancy}
+        contrail::zk_server_ip: {get_param: ContrailZkServerIp}
diff --git a/puppet/services/network/contrail-config.yaml b/puppet/services/network/contrail-config.yaml
new file mode 100644 (file)
index 0000000..0987fc7
--- /dev/null
@@ -0,0 +1,72 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Contrail Config service deployment using puppet, this YAML file
+  creates the interface between the HOT template
+  and the puppet manifest that actually installs
+  and configures Contrail Config.
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  ContrailConfigIfmapServerIp:
+    description: Ifmap server ip address
+    type: string
+  ContrailConfigIfmapUserName:
+    description: Ifmap user name
+    type: string
+  ContrailConfigIfmapUserPassword:
+    description: Ifmap user password
+    type: string
+  ContrailConfigRabbitServerIp:
+    description: RabbitMq server ip address
+    type: string
+  ContrailConfigRedisServerIp:
+    description: Redis server ip address
+    type: string
+  ContrailConfigListenAddress:
+    default: '0.0.0.0'
+    description: IP address Config API is listening on
+    type: string
+  ContrailConfigListenPort:
+    default: 8082
+    description: Port Config API is listening on
+    type: number
+
+resources:
+  ContrailBase:
+    type: ./contrail-base.yaml
+    properties:
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+
+outputs:
+  role_data:
+    description: Role Contrail Config using composable services.
+    value:
+      service_name: contrail_config
+      config_settings:
+        map_merge:
+          - get_attr: [ContrailBase, role_data, config_settings]
+          - contrail::config::ifmap_password: {get_param: ContrailConfigIfmapUserPassword}
+            contrail::config::ifmap_server_ip: {get_param: ContrailConfigIfmapServerIp}
+            contrail::config::ifmap_username: {get_param: ContrailConfigIfmapUserName}
+            contrail::config::listen_ip_address: {get_param: ContrailConfigListenAddress}
+            contrail::config::listen_port: {get_param: ContrailConfigListenPort}
+            contrail::config::rabbit_server: {get_param: ContrailConfigRabbitServerIp}
+            contrail::config::redis_server: {get_param: ContrailConfigRedisServerIp}
+      step_config: |
+        include ::tripleo::network::contrail::config
diff --git a/puppet/services/network/contrail-control.yaml b/puppet/services/network/contrail-control.yaml
new file mode 100644 (file)
index 0000000..9356e9e
--- /dev/null
@@ -0,0 +1,54 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Contrail Control service deployment using puppet, this YAML file
+  creates the interface between the HOT template
+  and the puppet manifest that actually installs
+  and configures Contrail Control.
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  ContrailControlHostIP:
+    description: host IP address of Analytics
+    type: string
+  ContrailControlIfmapUserName:
+    description: Ifmap user name
+    type: string
+  ContrailControlIfmapUserPassword:
+    description: Ifmap user password
+    type: string
+
+resources:
+  ContrailBase:
+    type: ./contrail-base.yaml
+    properties:
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+
+outputs:
+  role_data:
+    description: Role Contrail Control using composable services.
+    value:
+      service_name: contrail_control
+      config_settings:
+        map_merge:
+          - get_attr: [ContrailBase, role_data, config_settings]
+          - contrail::control::host_ip: {get_param: ContrailControlHostIP}
+            contrail::control::ifmap_username: {get_param: ContrailControlIfmapUserName}
+            contrail::control::ifmap_password: {get_param: ContrailControlIfmapUserPassword}
+      step_config: |
+        include ::tripleo::network::contrail::control
diff --git a/puppet/services/network/contrail-database.yaml b/puppet/services/network/contrail-database.yaml
new file mode 100644 (file)
index 0000000..e571261
--- /dev/null
@@ -0,0 +1,51 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Contrail Database service deployment using puppet, this YAML file
+  creates the interface between the HOT template
+  and the puppet manifest that actually installs
+  and configures Contrail Database.
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  ContrailDatabaseHostIP:
+    description: host IP address of Database node
+    type: string
+  ContrailDatabaseMinDisk:
+    description: Minimum disk size for database
+    type: number
+    default: 64
+
+resources:
+  ContrailBase:
+    type: ./contrail-base.yaml
+    properties:
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+
+outputs:
+  role_data:
+    description: Role Contrail Database using composable services.
+    value:
+      service_name: contrail_database
+      config_settings:
+        map_merge:
+          - get_attr: [ContrailBase, role_data, config_settings]
+          - contrail::database::host_ip: {get_param: ContrailDatabaseHostIP}
+            contrail::database::minimum_diskGB: {get_param: ContrailDatabaseMinDisk}
+      step_config: |
+        include ::tripleo::profile::contrail::database
diff --git a/puppet/services/network/contrail-webui.yaml b/puppet/services/network/contrail-webui.yaml
new file mode 100644 (file)
index 0000000..72b9e1c
--- /dev/null
@@ -0,0 +1,69 @@
+heat_template_version: 2016-04-08
+
+description: >
+  Contrail WebUI service deployment using puppet, this YAML file
+  creates the interface between the HOT template
+  and the puppet manifest that actually installs
+  and configures Contrail WebUI.
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  ContrailWebUiAnalyticsVip:
+    description: Contrail Analytics VIP
+    type: string
+  ContrailWebUiConfigVip:
+    description: Contrail Config VIP
+    type: string
+  ContrailWebUiNeutronVip:
+    description: Neutron VIP
+    type: string
+  ContrailWebuiHttpPort:
+    default: 8080
+    description: HTTP Port of Webui
+    type: number
+  ContrailWebuiHttpsPort:
+    default: 8143
+    description: HTTPS Port of Webui
+    type: number
+  ContrailWebUiRedisIp:
+    description: Redis IP
+    type: string
+    default: '127.0.0.1'
+
+resources:
+  ContrailBase:
+    type: ./contrail-base.yaml
+    properties:
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+
+outputs:
+  role_data:
+    description: Role Contrail WebUI using composable services.
+    value:
+      service_name: contrail_webui
+      config_settings:
+        map_merge:
+          - get_attr: [ContrailBase, role_data, config_settings]
+          - contrail::webui::contrail_analytics_vip: {get_param: ContrailWebUiAnalyticsVip}
+            contrail::webui::contrail_config_vip: {get_param: ContrailWebUiConfigVip}
+            contrail::webui::contrail_webui_http_port: {get_param: ContrailWebuiHttpPort}
+            contrail::webui::contrail_webui_https_port: {get_param: ContrailWebuiHttpsPort}
+            contrail::webui::neutron_vip: {get_param: ContrailWebUiNeutronVip}
+            contrail::webui::redis_ip: {get_param: ContrailWebUiRedisIp}
+      step_config: |
+        include ::tripleo::network::contrail::webui