| syntax = "proto3"; |
| |
| import "github.com/gogo/protobuf/gogoproto/gogo.proto"; |
| |
| package libnetwork; |
| |
| option (gogoproto.marshaler_all) = true; |
| option (gogoproto.unmarshaler_all) = true; |
| option (gogoproto.stringer_all) = true; |
| option (gogoproto.gostring_all) = true; |
| option (gogoproto.sizer_all) = true; |
| option (gogoproto.goproto_stringer_all) = false; |
| |
| // EndpointRecord specifies all the endpoint specific information that |
| // needs to gossiped to nodes participating in the network. |
| message EndpointRecord { |
| // Name of the container |
| string name = 1; |
| |
| // Service name of the service to which this endpoint belongs. |
| string service_name = 2; |
| |
| // Service ID of the service to which this endpoint belongs. |
| string service_id = 3 [(gogoproto.customname) = "ServiceID"]; |
| |
| // Virtual IP of the service to which this endpoint belongs. |
| string virtual_ip = 4 [(gogoproto.customname) = "VirtualIP"]; |
| |
| // IP assigned to this endpoint. |
| string endpoint_ip = 5 [(gogoproto.customname) = "EndpointIP"]; |
| |
| // IngressPorts exposed by the service to which this endpoint belongs. |
| repeated PortConfig ingress_ports = 6; |
| |
| // A list of aliases which are alternate names for the service |
| repeated string aliases = 7; |
| |
| // List of aliases task specific aliases |
| repeated string task_aliases = 8; |
| |
| // Whether this enpoint's service has been disabled |
| bool service_disabled = 9; |
| } |
| |
| // PortConfig specifies an exposed port which can be |
| // addressed using the given name. This can be later queried |
| // using a service discovery api or a DNS SRV query. The node |
| // port specifies a port that can be used to address this |
| // service external to the cluster by sending a connection |
| // request to this port to any node on the cluster. |
| message PortConfig { |
| enum Protocol { |
| option (gogoproto.goproto_enum_prefix) = false; |
| |
| TCP = 0 [(gogoproto.enumvalue_customname) = "ProtocolTCP"]; |
| UDP = 1 [(gogoproto.enumvalue_customname) = "ProtocolUDP"]; |
| SCTP = 2 [(gogoproto.enumvalue_customname) = "ProtocolSCTP"]; |
| } |
| |
| // Name for the port. If provided the port information can |
| // be queried using the name as in a DNS SRV query. |
| string name = 1; |
| |
| // Protocol for the port which is exposed. |
| Protocol protocol = 2; |
| |
| // The port which the application is exposing and is bound to. |
| uint32 target_port = 3; |
| |
| // PublishedPort specifies the port on which the service is |
| // exposed on all nodes on the cluster. If not specified an |
| // arbitrary port in the node port range is allocated by the |
| // system. If specified it should be within the node port |
| // range and it should be available. |
| uint32 published_port = 4; |
| } |