Implement kubevirt loadbalancer service with unit tests
Change-Id: I1c29e75aa5196b497f8f12f1d182788e3d173244
(cherry picked from commit 870abf8c7a7904c5953e20807ee7c681d8b5cd0b)
diff --git a/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtLoadBalancers.json b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtLoadBalancers.json
new file mode 100644
index 0000000..f06aedf
--- /dev/null
+++ b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtLoadBalancers.json
@@ -0,0 +1,94 @@
+{
+ "type": "object",
+ "title": "loadBalancers",
+ "required": [
+ "loadBalancers"
+ ],
+ "properties": {
+ "loadBalancers": {
+ "type": "array",
+ "xml": {
+ "name": "loadBalancers",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "description": "A load balancer object.",
+ "required": [
+ "name",
+ "description",
+ "networkId",
+ "vip",
+ "members",
+ "rules"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "example": "lb-1",
+ "description": "The name of load balancer."
+ },
+ "description": {
+ "type": "string",
+ "example": "Example load balancer",
+ "description": "The description of load balancer."
+ },
+ "networkId": {
+ "type": "string",
+ "example": "net-1",
+ "description": "The name of network where the load balancer is attached to."
+ },
+ "vip": {
+ "type": "string",
+ "example": "10.10.10.10",
+ "description": "The virtual IP address of the load balancer."
+ },
+ "members": {
+ "type": "array",
+ "xml": {
+ "name": "members",
+ "wrapped": true
+ },
+ "items": {
+ "type": "string",
+ "example": "10.10.10.11",
+ "description": "IP address of member instance."
+ }
+ },
+ "rules": {
+ "type": "array",
+ "description": "A list of load balancer rule objects.",
+ "items": {
+ "type": "object",
+ "description": "A load balancer rule object.",
+ "required": [
+ "portRangeMax",
+ "portRangeMin",
+ "protocol"
+ ],
+ "properties": {
+ "portRangeMax": {
+ "type": "integer",
+ "format": "int32",
+ "example": 80,
+ "description": "The maximum port number in the range that is matched by the rule."
+ },
+ "portRangeMin": {
+ "type": "integer",
+ "format": "int32",
+ "example": 80,
+ "description": "The minimum port number in the range that is matched by the rule."
+ },
+ "protocol": {
+ "type": "string",
+ "example": "tcp",
+ "description": "The IP protocol can be represented by a string, an integer, or null."
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file