Service health check

Registered by Rudra Rugge

Add support for service chaining health check

This blueprint describes support for checking the health of a service chain or
a service VM. A new resource has been added to configure service health check
support.

Resources
--------------
Service Health Check
    - enabled: Health check enabled (default: False)
    - health-check-type: Health check type [link-local | end-to-end] (default: link-local)
    - monitor-type: [PING | HTTP]
    - delay: Delay in seconds to repeat check
    - timeout: Timeout in seconds to wait for response
    - max-retries: Number of retries before marking health down
    - http-method: In case monitor protocol is HTTP, type of http method used like GET, PUT, POST etc
    - url-path: In case monitor protocol is HTTP, URL to be used. In case of ICMP, ip address
    - expected-codes: In case monitor protocol is HTTP, expected return code for HTTP operations

Health Check Instance Ip
    - Additional flag in instance service-health-check-ip

Implementation
---------------------
Currently only two modes are supported for service health check:

1. link-local
This is a local check for the service VM on the vrouter where the VM is running.
Source IP of the packet can just be the service chain IP in this case.

2. end-to-end
In this case the user can configure a remote address/URL for service health
check through a chain of services. There are a few restrictions for the check
in this release:
- This check is applicable for a chain where the services are not scaled out
- When this mode is configured a new health check IP will be allocated so that it
   can be used as the source IP of the packet.
- The health check IP will be allocated per virtual-machine-interface of the service
   VM where the health check is attached.
- Agent will rely on the service-health-check-ip flag to use as the source IP.

Blueprint information

Status:
Started
Approver:
Ashish Ranjan
Priority:
High
Drafter:
Rudra Rugge
Direction:
Needs approval
Assignee:
Rudra Rugge
Definition:
Drafting
Series goal:
Accepted for trunk
Implementation:
Started
Milestone target:
None
Started by
Rudra Rugge

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.