consul/proto-public/pbmesh/v2beta1/destinations.proto

80 lines
2.5 KiB
Protocol Buffer

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
syntax = "proto3";
package hashicorp.consul.mesh.v2beta1;
import "pbcatalog/v2beta1/selector.proto";
import "pbmesh/v2beta1/destinations_configuration.proto";
import "pbresource/annotations.proto";
import "pbresource/resource.proto";
message Destinations {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
// Selection of workloads these destinations should apply to.
// These can be prefixes or specific workload names.
hashicorp.consul.catalog.v2beta1.WorkloadSelector workloads = 1;
// destinations is the list of explicit destinations to define for the selected workloads.
repeated Destination destinations = 2;
// pq_destinations is the list of prepared query destinations. This field is not supported directly in v2
// and should only be used for migration reasons.
repeated PreparedQueryDestination pq_destinations = 3;
}
message Destination {
// destination_ref is the reference to an destination service. This has to be pbcatalog.Service type.
hashicorp.consul.resource.Reference destination_ref = 1;
// destination_port is the port name of the destination service. This should be the name
// of the service's target port.
string destination_port = 2;
// datacenter is the datacenter for where this destination service lives.
string datacenter = 3;
// listen_addr is the address where Envoy will listen for requests to this destination.
// It can provided either as an ip:port or as a Unix domain socket.
oneof listen_addr {
IPPortAddress ip_port = 4;
UnixSocketAddress unix = 5;
}
}
message IPPortAddress {
// ip is an IPv4 or an IPv6 address.
string ip = 1;
// port is the port number.
uint32 port = 2;
}
message UnixSocketAddress {
// path is the file system path at which to bind a Unix domain socket listener.
string path = 1;
// mode is the Unix file mode for the socket file. It should be provided
// in the numeric notation, for example, "0600".
string mode = 2;
}
message PreparedQueryDestination {
// name is the name of the prepared query to use as an destination.
string name = 1;
// datacenter is the datacenter for where this destination service lives.
string datacenter = 2;
// listen_addr is the address where Envoy will listen for requests to this destination.
// It can provided either as an ip:port or as a Unix domain socket.
oneof listen_addr {
IPPortAddress tcp = 4;
UnixSocketAddress unix = 5;
}
DestinationConfiguration destination_config = 6;
}