github.com/pwn-term/docker@v0.0.0-20210616085119-6e977cce2565/libnetwork/agent.proto (about) 1 syntax = "proto3"; 2 3 import "gogoproto/gogo.proto"; 4 5 package libnetwork; 6 7 option (gogoproto.marshaler_all) = true; 8 option (gogoproto.unmarshaler_all) = true; 9 option (gogoproto.stringer_all) = true; 10 option (gogoproto.gostring_all) = true; 11 option (gogoproto.sizer_all) = true; 12 option (gogoproto.goproto_stringer_all) = false; 13 14 // EndpointRecord specifies all the endpoint specific information that 15 // needs to gossiped to nodes participating in the network. 16 message EndpointRecord { 17 // Name of the container 18 string name = 1; 19 20 // Service name of the service to which this endpoint belongs. 21 string service_name = 2; 22 23 // Service ID of the service to which this endpoint belongs. 24 string service_id = 3 [(gogoproto.customname) = "ServiceID"]; 25 26 // Virtual IP of the service to which this endpoint belongs. 27 string virtual_ip = 4 [(gogoproto.customname) = "VirtualIP"]; 28 29 // IP assigned to this endpoint. 30 string endpoint_ip = 5 [(gogoproto.customname) = "EndpointIP"]; 31 32 // IngressPorts exposed by the service to which this endpoint belongs. 33 repeated PortConfig ingress_ports = 6; 34 35 // A list of aliases which are alternate names for the service 36 repeated string aliases = 7; 37 38 // List of aliases task specific aliases 39 repeated string task_aliases = 8; 40 41 // Whether this enpoint's service has been disabled 42 bool service_disabled = 9; 43 } 44 45 // PortConfig specifies an exposed port which can be 46 // addressed using the given name. This can be later queried 47 // using a service discovery api or a DNS SRV query. The node 48 // port specifies a port that can be used to address this 49 // service external to the cluster by sending a connection 50 // request to this port to any node on the cluster. 51 message PortConfig { 52 enum Protocol { 53 option (gogoproto.goproto_enum_prefix) = false; 54 55 TCP = 0 [(gogoproto.enumvalue_customname) = "ProtocolTCP"]; 56 UDP = 1 [(gogoproto.enumvalue_customname) = "ProtocolUDP"]; 57 SCTP = 2 [(gogoproto.enumvalue_customname) = "ProtocolSCTP"]; 58 } 59 60 // Name for the port. If provided the port information can 61 // be queried using the name as in a DNS SRV query. 62 string name = 1; 63 64 // Protocol for the port which is exposed. 65 Protocol protocol = 2; 66 67 // The port which the application is exposing and is bound to. 68 uint32 target_port = 3; 69 70 // PublishedPort specifies the port on which the service is 71 // exposed on all nodes on the cluster. If not specified an 72 // arbitrary port in the node port range is allocated by the 73 // system. If specified it should be within the node port 74 // range and it should be available. 75 uint32 published_port = 4; 76 }