Skip to content

Commit

Permalink
Functional Spec for Deprecating Discovery for 4.0
Browse files Browse the repository at this point in the history
Change-Id: I8473796e4c7d49008cc6f9a953b582369319520a
Closes-Bug:1641835
  • Loading branch information
nipak committed Nov 16, 2016
1 parent 98aed56 commit 7ba303f
Showing 1 changed file with 243 additions and 31 deletions.
274 changes: 243 additions & 31 deletions specs/deprecating-discovery-4.0.md
@@ -1,7 +1,6 @@
Contrail 4.0 Removal of Discovery Service
===

#1. Introduction
#1. Introduction

Contrail Discovery Service is a centralized resource allocation module with high
availability that was primarily developed to
Expand All @@ -19,19 +18,19 @@ The above necessitated the use of a database
services.


#2. Problem Statement
#2. Problem Statement

In the current deployment most issues seen are due to the periodic health
updates of services with the database nodes and not the services themselves.
This would result in services being falsely marked DOWN resulting in
reallocation of healthy services causing unnecessary churn in the system.

Hence the motivation to move away from a Centralized Resource Allocation Manager
and bringing up each module with a list of pare-defined service
and bringing up each module with a list of pre-defined service
providers(=publishers).


#3. Proposed Solution
#3. Proposed Solution

Details of Implementation of Distributed Resource Allocation

Expand All @@ -45,70 +44,284 @@ Details of Implementation of Distributed Resource Allocation
of new set of services).
* When service nodes are added or deleted, ADMIN will need to update the
configuration file of all daemons using the service-type of the service node
and send a SIGH UP to the respective daemons.
and send a SIGHUP to the respective daemons.
* Each daemon will randomize the service list independently and re-allocate the
resources.

##3.1 Alternatives Considered
##3.1 Alternatives Considered
None

##3.2 API schema changes
##3.2 API schema changes
None

###3.2.1 Provisioning Changes for contrail-vrouter-agent (contrail-vrouter-agent.conf)
###3.2.1 Provisioning Changes for contrail-vrouter-agent(contrail-vrouter-agent.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[CONTROL-NODE].servers Provision list of control-node service providers
in ip-address:port format
Eg: 10.1.1.1:5269 10.1.1.12:5269
[DNS].servers Provision list of DNS service providers in
ip-address:port format
Eg: 0.1.1.1:53 10.1.1.2:53
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.2 Provisioning Changes for contrail-control (contrail-control.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
[IFMAP].servers Provision list of IFMap service providers in
ip-address:port format
Eg: 10.1.1.1:8443 10.1.1.2:8443
```

###3.2.3 Provisioning Changes for contrail-dns (contrail-control.conf)

###3.2.2 Provisioning Changes for contrail-control (contrail-control.conf)
```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
###3.2.3 Provisioning Changes for contrail-dns (contrail-control.conf)
[IFMAP].servers Provision list of IFMap service providers in
ip-address:port format
Eg: 10.1.1.1:8443 10.1.1.2:8443
```

###3.2.4 Provisioning Changes for contrail-alarm-gen (contrail-alarm-gen.conf)

###3.2.4 Provisioning Changes for contrail-alarm-gen (contrail-alarm-gen.conf)
```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.5 Provisioning Changes for contrail-analytics-api(contrail-analytics-api.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].disc_server_ip Deprecate Discovery Server Parameter
[DISCOVERY].disc_server_port
###3.2.6 Provisioning Changes for contrail-api (contrail-api.conf)
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.6 Provisioning Changes for contrail-api (contrail-api.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].disc_server_ip Deprecate Discovery Server Parameter
[DISCOVERY].disc_server_port
[DEFAULTS].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.7 Provisioning Changes for contrail-api (contrail-schema.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].disc_server_ip Deprecate Discovery Server Parameter
[DISCOVERY].disc_server_port
[DEFAULTS].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.8 Provisioning Changes for contrail-svc-monitor(contrail-svc-monitor.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].disc_server_ip Deprecate Discovery Server Parameter
[DISCOVERY].disc_server_port
[DEFAULTS].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.8 Provisioning Changes for contrail-svc-monitor (contrail-svc-monitor.conf)
###3.2.9 Provisioning Changes for contrail-analytics-nodemgr(contrail-analytics-nodemgr.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DISCOVERY].port
###3.2.9 Provisioning Changes for contrail-analytics-nodemgr (contrail-analytics-nodemgr.conf)
[COLLECTOR].server_list Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
````


###3.2.10 Provisioning Changes for contrail-config-nodemgr(contrail-config-nodemgr.conf)
###3.2.10 Provisioning Changes for contrail-config-nodemgr(contrail-config-nodemgr.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DISCOVERY].port
[COLLECTOR].server_list Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.11 Provisioning Changes for contrail-control-nodemgr(contrail-control-nodemgr.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DISCOVERY].port
[COLLECTOR].server_list Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.12 Provisioning Changes for contrail-database-nodemgr(contrail-database-nodemgr.conf)
###3.2.12 Provisioning Changes for contrail-database-nodemgr(contrail-database-nodemgr.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DISCOVERY].port
[COLLECTOR].server_list Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.13 Provisioning Changes for contrail-vrouter-nodemgr(contrail-vrouter-nodemgr.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DISCOVERY].port
[COLLECTOR].server_list Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.14 Provisioning Changes for contrail-query-engine(contrail-query-engine.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].server Deprecate Discovery Server Parameter
[DISCOVERY].port
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.15 Provisioning Changes for contrail-snmp-collector(contrail-snmp-collector.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].disc_server_ip Deprecate Discovery Server Parameter
[DISCOVERY].disc_server_port
###3.2.16 Provisioning Changes for contrail-topology(contrail-topology.conf)
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.17 Provisioning Changes for ContrailWebUI
###3.2.16 Provisioning Changes for contrail-topology (contrail-topology.conf)

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[DISCOVERY].disc_server_ip Deprecate Discovery Server Parameter
[DISCOVERY].disc_server_port
##3.3 User workflow impact
[DEFAULT].collectors Provision list of Collector service providers in
ip-address:port format
Eg: 10.1.1.1:8086 10.1.1.2:8086
```

###3.2.17 Provisioning Changes for ContrailWebUI

```
================================================================================
CONFIG PARAMETER CHANGES
================================================================================
[CONFIG].discovery.server Deprecate Discovery Server Parameter
[CONFIG].discovery.port
[CONFIG].analytics.servers Provision list of Analytics service providers
in ip-address:port format
Eg: 10.1.1.1:8089 10.1.1.2:8089
[CONFIG].apiserver.servers Provision list of ApiServer service providers in
ip-address:port format
[CONFIG].dns.servers Provision list of DnsServer service providers in
ip-address:port format
```

##3.3 User workflow impact

* Provisioning will need to take care of adding the published service list.
* Discovery Server parameter will be deprecated.

##3.4 UI Changes
##3.4 UI Changes
None


Expand All @@ -118,38 +331,37 @@ Each daemon will randomize the published service list that is configured
statically and use the resources. In addition each daemon will provide SIGHUP
handler to handle addition/deletion of publishers.

##4.1 Assignee(s)
##4.1 Assignee(s)

* Nipa Kumar – All C++ Discovery Server Clients
* Santosh G – All python Discovery Server Clients

#5 Performance and Scaling Impact
None

##5.1 API and control plane Performance Impact
##5.1 API and control plane Performance Impact
None

##5.2 Forwarding Plan Performance
##5.2 Forwarding Plan Performance
None

#6 Upgrade
#6 Upgrade
Discovery Server will need be deprecated from the configuration files.

#7 Deprecation's
#7 Deprecations
Discovery Server will be deprecated.

#8 Dependencies
#8 Dependencies
None

#9 Testing
#9 Testing

* Individual daemons will need to brought up via provisioning and ensure a fairly
load balanced allocation.
* SIGHUP will also need to be sent when service nodes are added/deleted.

#10 Documentation Impact
#10 Documentation Impact
None

#11 References
#11 References
None

0 comments on commit 7ba303f

Please sign in to comment.