コード例 #1
0
        public static ClusterLoadAssignment CreateEndpoint(String clusterName, uint port)
        {
            var clusterLoadAssignment = new ClusterLoadAssignment {
                ClusterName = clusterName
            };

            var localityLbEndpoints = new LocalityLbEndpoints();

            localityLbEndpoints.LbEndpoints.Add(new LbEndpoint
            {
                Endpoint = new Endpoint
                {
                    Address = new Address
                    {
                        SocketAddress = new SocketAddress
                        {
                            Address   = LOCALHOST,
                            PortValue = port,
                            Protocol  = Protocol.Tcp,
                        }
                    }
                }
            });

            clusterLoadAssignment.Endpoints.Add(localityLbEndpoints);

            return(clusterLoadAssignment);
        }
        public static ClusterLoadAssignment ToEnvoyEgressClusterLoadAssignment(this List <EndpointInstance> endpoints, Dictionary <string, string> nodeAdresses)
        {
            var assignment = new ClusterLoadAssignment()
            {
                ClusterName = endpoints.First().Type.EgressId,
            };

            var envoyEndpoint = new LocalityLbEndpoints();

            envoyEndpoint.LbEndpoints.AddRange(endpoints.Select(e =>
                                                                new LbEndpoint
            {
                Endpoint = new Endpoint
                {
                    Address = new Address
                    {
                        SocketAddress =
                            new SocketAddress {
                            Address = nodeAdresses[e.NodeName], PortValue = IngressPort
                        }
                    }
                }
            }));

            assignment.Endpoints.Add(envoyEndpoint);
            return(assignment);
        }