105 lines
3.5 KiB
Protocol Buffer
105 lines
3.5 KiB
Protocol Buffer
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
syntax = "proto3";
|
|
|
|
package hashicorp.consul.mesh.v1alpha1;
|
|
|
|
import "google/protobuf/struct.proto";
|
|
import "pbcatalog/v1alpha1/selector.proto";
|
|
import "pbmesh/v1alpha1/connection.proto";
|
|
import "pbmesh/v1alpha1/expose.proto";
|
|
import "pbmesh/v1alpha1/routing.proto";
|
|
|
|
message ProxyConfiguration {
|
|
// Selection of workloads this proxy configuration should apply to.
|
|
// These can be prefixes or specific workload names.
|
|
hashicorp.consul.catalog.v1alpha1.WorkloadSelector workloads = 1;
|
|
|
|
// dynamic_config is the configuration that could be changed
|
|
// dynamically (i.e. without needing restart).
|
|
DynamicConfig dynamic_config = 2;
|
|
|
|
// bootstrap_config is the configuration that requires proxies
|
|
// to be restarted to be applied.
|
|
BootstrapConfig bootstrap_config = 3;
|
|
|
|
// deprecated: prevent usage when using v2 APIs directly.
|
|
// needed for backwards compatibility
|
|
google.protobuf.Struct opaque_config = 4 [deprecated = true];
|
|
}
|
|
|
|
message DynamicConfig {
|
|
// mode indicates the proxy's mode. This will default to 'transparent'.
|
|
ProxyMode mode = 1;
|
|
|
|
TransparentProxy transparent_proxy = 2;
|
|
|
|
// local_connection is the configuration that should be used
|
|
// to connect to the local application provided per-port.
|
|
// The map keys should correspond to port names on the workload.
|
|
map<string, ConnectionConfig> local_connection = 3;
|
|
|
|
// inbound_connections configures inbound connections to the proxy.
|
|
InboundConnectionsConfig inbound_connections = 4;
|
|
|
|
MeshGatewayMode mesh_gateway_mode = 5;
|
|
|
|
ExposeConfig expose_config = 6;
|
|
|
|
string public_listener_json = 7;
|
|
string listener_tracing_json = 8;
|
|
string local_cluster_json = 9;
|
|
|
|
// deprecated:
|
|
// local_workload_address, local_workload_port, and local_workload_socket_path
|
|
// are deprecated and are only needed for migration of existing resources.
|
|
string local_workload_address = 10 [deprecated = true];
|
|
uint32 local_workload_port = 11 [deprecated = true];
|
|
string local_workload_socket_path = 12 [deprecated = true];
|
|
}
|
|
|
|
message TransparentProxy {
|
|
// outbound_listener_port is the port for the proxy's outbound listener.
|
|
// This defaults to 15001.
|
|
uint32 outbound_listener_port = 1;
|
|
|
|
// dialed_directly indicates whether this proxy should be dialed using original destination IP
|
|
// in the connection rather than load balance between all endpoints.
|
|
bool dialed_directly = 2;
|
|
}
|
|
|
|
// BootstrapConfig is equivalent to configuration defined
|
|
// in our docs.
|
|
message BootstrapConfig {
|
|
string statsd_url = 1;
|
|
string dogstatsd_url = 2;
|
|
repeated string stats_tags = 3;
|
|
string prometheus_bind_addr = 4;
|
|
string stats_bind_addr = 5;
|
|
string ready_bind_addr = 6;
|
|
string override_json_tpl = 7;
|
|
string static_clusters_json = 8;
|
|
string static_listeners_json = 9;
|
|
string stats_sinks_json = 10;
|
|
string stats_config_json = 11;
|
|
string stats_flush_interval = 12;
|
|
string tracing_config_json = 13;
|
|
}
|
|
|
|
enum ProxyMode {
|
|
// ProxyModeDefault represents no specific mode and should
|
|
// be used to indicate that a different layer of the configuration
|
|
// chain should take precedence
|
|
// buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
|
|
PROXY_MODE_DEFAULT = 0;
|
|
|
|
// ProxyModeTransparent represents that inbound and outbound application
|
|
// traffic is being captured and redirected through the proxy.
|
|
PROXY_MODE_TRANSPARENT = 1;
|
|
|
|
// ProxyModeDirect represents that the proxy's listeners must be dialed directly
|
|
// by the local application and other proxies.
|
|
PROXY_MODE_DIRECT = 2;
|
|
}
|