mirror of
https://github.com/status-im/consul.git
synced 2025-01-15 00:04:47 +00:00
c328ba85bd
Configuration that previously was inlined into the Upstreams resource applies to both explicit and implicit upstreams and so it makes sense to split it out into its own resource. It also has other minor changes: - Renames `proxy.proto` proxy_configuration.proto` - Changes the type of `Upstream.destination_ref` from `pbresource.ID` to `pbresource.Reference` - Adds comments to fields that didn't have them
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;
|
|
}
|