...

Text file src/github.com/datawire/ambassador/v2/api/envoy/config/bootstrap/v3/bootstrap.proto

Documentation: github.com/datawire/ambassador/v2/api/envoy/config/bootstrap/v3

     1syntax = "proto3";
     2
     3package envoy.config.bootstrap.v3;
     4
     5import "envoy/config/cluster/v3/cluster.proto";
     6import "envoy/config/core/v3/address.proto";
     7import "envoy/config/core/v3/base.proto";
     8import "envoy/config/core/v3/config_source.proto";
     9import "envoy/config/core/v3/event_service_config.proto";
    10import "envoy/config/core/v3/extension.proto";
    11import "envoy/config/core/v3/socket_option.proto";
    12import "envoy/config/listener/v3/listener.proto";
    13import "envoy/config/metrics/v3/stats.proto";
    14import "envoy/config/overload/v3/overload.proto";
    15import "envoy/config/trace/v3/http_tracer.proto";
    16import "envoy/extensions/transport_sockets/tls/v3/secret.proto";
    17import "envoy/type/v3/percent.proto";
    18
    19import "google/protobuf/duration.proto";
    20import "google/protobuf/struct.proto";
    21import "google/protobuf/wrappers.proto";
    22
    23import "envoy/annotations/deprecation.proto";
    24import "udpa/annotations/migrate.proto";
    25import "udpa/annotations/security.proto";
    26import "udpa/annotations/status.proto";
    27import "udpa/annotations/versioning.proto";
    28import "validate/validate.proto";
    29
    30option java_package = "io.envoyproxy.envoy.config.bootstrap.v3";
    31option java_outer_classname = "BootstrapProto";
    32option java_multiple_files = true;
    33option (udpa.annotations.file_status).package_version_status = ACTIVE;
    34
    35// [#protodoc-title: Bootstrap]
    36// This proto is supplied via the :option:`-c` CLI flag and acts as the root
    37// of the Envoy v2 configuration. See the :ref:`v2 configuration overview
    38// <config_overview_bootstrap>` for more detail.
    39
    40// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
    41// [#next-free-field: 30]
    42message Bootstrap {
    43  option (udpa.annotations.versioning).previous_message_type =
    44      "envoy.config.bootstrap.v2.Bootstrap";
    45
    46  message StaticResources {
    47    option (udpa.annotations.versioning).previous_message_type =
    48        "envoy.config.bootstrap.v2.Bootstrap.StaticResources";
    49
    50    // Static :ref:`Listeners <envoy_api_msg_config.listener.v3.Listener>`. These listeners are
    51    // available regardless of LDS configuration.
    52    repeated listener.v3.Listener listeners = 1;
    53
    54    // If a network based configuration source is specified for :ref:`cds_config
    55    // <envoy_api_field_config.bootstrap.v3.Bootstrap.DynamicResources.cds_config>`, it's necessary
    56    // to have some initial cluster definitions available to allow Envoy to know
    57    // how to speak to the management server. These cluster definitions may not
    58    // use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
    59    // IP or DNS-based).
    60    repeated cluster.v3.Cluster clusters = 2;
    61
    62    // These static secrets can be used by :ref:`SdsSecretConfig
    63    // <envoy_api_msg_extensions.transport_sockets.tls.v3.SdsSecretConfig>`
    64    repeated envoy.extensions.transport_sockets.tls.v3.Secret secrets = 3;
    65  }
    66
    67  // [#next-free-field: 7]
    68  message DynamicResources {
    69    option (udpa.annotations.versioning).previous_message_type =
    70        "envoy.config.bootstrap.v2.Bootstrap.DynamicResources";
    71
    72    reserved 4;
    73
    74    // All :ref:`Listeners <envoy_api_msg_config.listener.v3.Listener>` are provided by a single
    75    // :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
    76    core.v3.ConfigSource lds_config = 1;
    77
    78    // xdstp:// resource locator for listener collection.
    79    // [#not-implemented-hide:]
    80    string lds_resources_locator = 5;
    81
    82    // All post-bootstrap :ref:`Cluster <envoy_api_msg_config.cluster.v3.Cluster>` definitions are
    83    // provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
    84    // configuration source.
    85    core.v3.ConfigSource cds_config = 2;
    86
    87    // xdstp:// resource locator for cluster collection.
    88    // [#not-implemented-hide:]
    89    string cds_resources_locator = 6;
    90
    91    // A single :ref:`ADS <config_overview_ads>` source may be optionally
    92    // specified. This must have :ref:`api_type
    93    // <envoy_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
    94    // <envoy_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`. Only
    95    // :ref:`ConfigSources <envoy_api_msg_config.core.v3.ConfigSource>` that have
    96    // the :ref:`ads <envoy_api_field_config.core.v3.ConfigSource.ads>` field set will be
    97    // streamed on the ADS channel.
    98    core.v3.ApiConfigSource ads_config = 3;
    99  }
   100
   101  reserved 10, 11;
   102
   103  reserved "runtime";
   104
   105  // Node identity to present to the management server and for instance
   106  // identification purposes (e.g. in generated headers).
   107  core.v3.Node node = 1;
   108
   109  // A list of :ref:`Node <envoy_v3_api_msg_config.core.v3.Node>` field names
   110  // that will be included in the context parameters of the effective
   111  // xdstp:// URL that is sent in a discovery request when resource
   112  // locators are used for LDS/CDS. Any non-string field will have its JSON
   113  // encoding set as the context parameter value, with the exception of
   114  // metadata, which will be flattened (see example below). The supported field
   115  // names are:
   116  // - "cluster"
   117  // - "id"
   118  // - "locality.region"
   119  // - "locality.sub_zone"
   120  // - "locality.zone"
   121  // - "metadata"
   122  // - "user_agent_build_version.metadata"
   123  // - "user_agent_build_version.version"
   124  // - "user_agent_name"
   125  // - "user_agent_version"
   126  //
   127  // The node context parameters act as a base layer dictionary for the context
   128  // parameters (i.e. more specific resource specific context parameters will
   129  // override). Field names will be prefixed with “udpa.node.” when included in
   130  // context parameters.
   131  //
   132  // For example, if node_context_params is ``["user_agent_name", "metadata"]``,
   133  // the implied context parameters might be::
   134  //
   135  //   node.user_agent_name: "envoy"
   136  //   node.metadata.foo: "{\"bar\": \"baz\"}"
   137  //   node.metadata.some: "42"
   138  //   node.metadata.thing: "\"thing\""
   139  //
   140  // [#not-implemented-hide:]
   141  repeated string node_context_params = 26;
   142
   143  // Statically specified resources.
   144  StaticResources static_resources = 2;
   145
   146  // xDS configuration sources.
   147  DynamicResources dynamic_resources = 3;
   148
   149  // Configuration for the cluster manager which owns all upstream clusters
   150  // within the server.
   151  ClusterManager cluster_manager = 4;
   152
   153  // Health discovery service config option.
   154  // (:ref:`core.ApiConfigSource <envoy_api_msg_config.core.v3.ApiConfigSource>`)
   155  core.v3.ApiConfigSource hds_config = 14;
   156
   157  // Optional file system path to search for startup flag files.
   158  string flags_path = 5;
   159
   160  // Optional set of stats sinks.
   161  repeated metrics.v3.StatsSink stats_sinks = 6;
   162
   163  // Configuration for internal processing of stats.
   164  metrics.v3.StatsConfig stats_config = 13;
   165
   166  // Optional duration between flushes to configured stats sinks. For
   167  // performance reasons Envoy latches counters and only flushes counters and
   168  // gauges at a periodic interval. If not specified the default is 5000ms (5
   169  // seconds). Only one of `stats_flush_interval` or `stats_flush_on_admin`
   170  // can be set.
   171  // Duration must be at least 1ms and at most 5 min.
   172  google.protobuf.Duration stats_flush_interval = 7 [
   173    (validate.rules).duration = {
   174      lt {seconds: 300}
   175      gte {nanos: 1000000}
   176    },
   177    (udpa.annotations.field_migrate).oneof_promotion = "stats_flush"
   178  ];
   179
   180  oneof stats_flush {
   181    // Flush stats to sinks only when queried for on the admin interface. If set,
   182    // a flush timer is not created. Only one of `stats_flush_on_admin` or
   183    // `stats_flush_interval` can be set.
   184    bool stats_flush_on_admin = 29 [(validate.rules).bool = {const: true}];
   185  }
   186
   187  // Optional watchdog configuration.
   188  // This is for a single watchdog configuration for the entire system.
   189  // Deprecated in favor of *watchdogs* which has finer granularity.
   190  Watchdog watchdog = 8 [deprecated = true];
   191
   192  // Optional watchdogs configuration.
   193  // This is used for specifying different watchdogs for the different subsystems.
   194  Watchdogs watchdogs = 27;
   195
   196  // Configuration for an external tracing provider.
   197  //
   198  // .. attention::
   199  //  This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
   200  //  <envoy_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>`.
   201  trace.v3.Tracing tracing = 9 [deprecated = true];
   202
   203  // Configuration for the runtime configuration provider. If not
   204  // specified, a “null” provider will be used which will result in all defaults
   205  // being used.
   206  LayeredRuntime layered_runtime = 17;
   207
   208  // Configuration for the local administration HTTP server.
   209  Admin admin = 12;
   210
   211  // Optional overload manager configuration.
   212  overload.v3.OverloadManager overload_manager = 15 [
   213    (udpa.annotations.security).configure_for_untrusted_downstream = true,
   214    (udpa.annotations.security).configure_for_untrusted_upstream = true
   215  ];
   216
   217  // Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false.
   218  // Note that this records a value for each iteration of the event loop on every thread. This
   219  // should normally be minimal overhead, but when using
   220  // :ref:`statsd <envoy_api_msg_config.metrics.v3.StatsdSink>`, it will send each observed value
   221  // over the wire individually because the statsd protocol doesn't have any way to represent a
   222  // histogram summary. Be aware that this can be a very large volume of data.
   223  bool enable_dispatcher_stats = 16;
   224
   225  // Optional string which will be used in lieu of x-envoy in prefixing headers.
   226  //
   227  // For example, if this string is present and set to X-Foo, then x-envoy-retry-on will be
   228  // transformed into x-foo-retry-on etc.
   229  //
   230  // Note this applies to the headers Envoy will generate, the headers Envoy will sanitize, and the
   231  // headers Envoy will trust for core code and core extensions only. Be VERY careful making
   232  // changes to this string, especially in multi-layer Envoy deployments or deployments using
   233  // extensions which are not upstream.
   234  string header_prefix = 18;
   235
   236  // Optional proxy version which will be used to set the value of :ref:`server.version statistic
   237  // <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
   238  // :ref:`stats sinks <envoy_api_msg_config.metrics.v3.StatsSink>`.
   239  google.protobuf.UInt64Value stats_server_version_override = 19;
   240
   241  // Always use TCP queries instead of UDP queries for DNS lookups.
   242  // This may be overridden on a per-cluster basis in cds_config,
   243  // when :ref:`dns_resolvers <envoy_api_field_config.cluster.v3.Cluster.dns_resolvers>` and
   244  // :ref:`use_tcp_for_dns_lookups <envoy_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>` are
   245  // specified.
   246  // Setting this value causes failure if the
   247  // ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
   248  // server startup. Apple' API only uses UDP for DNS resolution.
   249  bool use_tcp_for_dns_lookups = 20;
   250
   251  // Specifies optional bootstrap extensions to be instantiated at startup time.
   252  // Each item contains extension specific configuration.
   253  repeated core.v3.TypedExtensionConfig bootstrap_extensions = 21;
   254
   255  // Specifies optional extensions instantiated at startup time and
   256  // invoked during crash time on the request that caused the crash.
   257  repeated FatalAction fatal_actions = 28;
   258
   259  // Configuration sources that will participate in
   260  // xdstp:// URL authority resolution. The algorithm is as
   261  // follows:
   262  // 1. The authority field is taken from the xdstp:// URL, call
   263  //    this *resource_authority*.
   264  // 2. *resource_authority* is compared against the authorities in any peer
   265  //    *ConfigSource*. The peer *ConfigSource* is the configuration source
   266  //    message which would have been used unconditionally for resolution
   267  //    with opaque resource names. If there is a match with an authority, the
   268  //    peer *ConfigSource* message is used.
   269  // 3. *resource_authority* is compared sequentially with the authorities in
   270  //    each configuration source in *config_sources*. The first *ConfigSource*
   271  //    to match wins.
   272  // 4. As a fallback, if no configuration source matches, then
   273  //    *default_config_source* is used.
   274  // 5. If *default_config_source* is not specified, resolution fails.
   275  // [#not-implemented-hide:]
   276  repeated core.v3.ConfigSource config_sources = 22;
   277
   278  // Default configuration source for xdstp:// URLs if all
   279  // other resolution fails.
   280  // [#not-implemented-hide:]
   281  core.v3.ConfigSource default_config_source = 23;
   282
   283  // Optional overriding of default socket interface. The value must be the name of one of the
   284  // socket interface factories initialized through a bootstrap extension
   285  string default_socket_interface = 24;
   286
   287  // Global map of CertificateProvider instances. These instances are referred to by name in the
   288  // :ref:`CommonTlsContext.CertificateProviderInstance.instance_name
   289  // <envoy_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>`
   290  // field.
   291  // [#not-implemented-hide:]
   292  map<string, core.v3.TypedExtensionConfig> certificate_provider_instances = 25;
   293}
   294
   295// Administration interface :ref:`operations documentation
   296// <operations_admin_interface>`.
   297message Admin {
   298  option (udpa.annotations.versioning).previous_message_type = "envoy.config.bootstrap.v2.Admin";
   299
   300  // The path to write the access log for the administration server. If no
   301  // access log is desired specify ‘/dev/null’. This is only required if
   302  // :ref:`address <envoy_api_field_config.bootstrap.v3.Admin.address>` is set.
   303  string access_log_path = 1;
   304
   305  // The cpu profiler output path for the administration server. If no profile
   306  // path is specified, the default is ‘/var/log/envoy/envoy.prof’.
   307  string profile_path = 2;
   308
   309  // The TCP address that the administration server will listen on.
   310  // If not specified, Envoy will not start an administration server.
   311  core.v3.Address address = 3;
   312
   313  // Additional socket options that may not be present in Envoy source code or
   314  // precompiled binaries.
   315  repeated core.v3.SocketOption socket_options = 4;
   316}
   317
   318// Cluster manager :ref:`architecture overview <arch_overview_cluster_manager>`.
   319message ClusterManager {
   320  option (udpa.annotations.versioning).previous_message_type =
   321      "envoy.config.bootstrap.v2.ClusterManager";
   322
   323  message OutlierDetection {
   324    option (udpa.annotations.versioning).previous_message_type =
   325        "envoy.config.bootstrap.v2.ClusterManager.OutlierDetection";
   326
   327    // Specifies the path to the outlier event log.
   328    string event_log_path = 1;
   329
   330    // [#not-implemented-hide:]
   331    // The gRPC service for the outlier detection event service.
   332    // If empty, outlier detection events won't be sent to a remote endpoint.
   333    core.v3.EventServiceConfig event_service = 2;
   334  }
   335
   336  // Name of the local cluster (i.e., the cluster that owns the Envoy running
   337  // this configuration). In order to enable :ref:`zone aware routing
   338  // <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
   339  // If *local_cluster_name* is defined then :ref:`clusters
   340  // <envoy_api_msg_config.cluster.v3.Cluster>` must be defined in the :ref:`Bootstrap
   341  // static cluster resources
   342  // <envoy_api_field_config.bootstrap.v3.Bootstrap.StaticResources.clusters>`. This is unrelated to
   343  // the :option:`--service-cluster` option which does not `affect zone aware
   344  // routing <https://github.com/envoyproxy/envoy/issues/774>`_.
   345  string local_cluster_name = 1;
   346
   347  // Optional global configuration for outlier detection.
   348  OutlierDetection outlier_detection = 2;
   349
   350  // Optional configuration used to bind newly established upstream connections.
   351  // This may be overridden on a per-cluster basis by upstream_bind_config in the cds_config.
   352  core.v3.BindConfig upstream_bind_config = 3;
   353
   354  // A management server endpoint to stream load stats to via
   355  // *StreamLoadStats*. This must have :ref:`api_type
   356  // <envoy_api_field_config.core.v3.ApiConfigSource.api_type>` :ref:`GRPC
   357  // <envoy_api_enum_value_config.core.v3.ApiConfigSource.ApiType.GRPC>`.
   358  core.v3.ApiConfigSource load_stats_config = 4;
   359}
   360
   361// Allows you to specify different watchdog configs for different subsystems.
   362// This allows finer tuned policies for the watchdog. If a subsystem is omitted
   363// the default values for that system will be used.
   364message Watchdogs {
   365  // Watchdog for the main thread.
   366  Watchdog main_thread_watchdog = 1;
   367
   368  // Watchdog for the worker threads.
   369  Watchdog worker_watchdog = 2;
   370}
   371
   372// Envoy process watchdog configuration. When configured, this monitors for
   373// nonresponsive threads and kills the process after the configured thresholds.
   374// See the :ref:`watchdog documentation <operations_performance_watchdog>` for more information.
   375// [#next-free-field: 8]
   376message Watchdog {
   377  option (udpa.annotations.versioning).previous_message_type = "envoy.config.bootstrap.v2.Watchdog";
   378
   379  message WatchdogAction {
   380    // The events are fired in this order: KILL, MULTIKILL, MEGAMISS, MISS.
   381    // Within an event type, actions execute in the order they are configured.
   382    // For KILL/MULTIKILL there is a default PANIC that will run after the
   383    // registered actions and kills the process if it wasn't already killed.
   384    // It might be useful to specify several debug actions, and possibly an
   385    // alternate FATAL action.
   386    enum WatchdogEvent {
   387      UNKNOWN = 0;
   388      KILL = 1;
   389      MULTIKILL = 2;
   390      MEGAMISS = 3;
   391      MISS = 4;
   392    }
   393
   394    // Extension specific configuration for the action.
   395    core.v3.TypedExtensionConfig config = 1;
   396
   397    WatchdogEvent event = 2 [(validate.rules).enum = {defined_only: true}];
   398  }
   399
   400  // Register actions that will fire on given WatchDog events.
   401  // See *WatchDogAction* for priority of events.
   402  repeated WatchdogAction actions = 7;
   403
   404  // The duration after which Envoy counts a nonresponsive thread in the
   405  // *watchdog_miss* statistic. If not specified the default is 200ms.
   406  google.protobuf.Duration miss_timeout = 1;
   407
   408  // The duration after which Envoy counts a nonresponsive thread in the
   409  // *watchdog_mega_miss* statistic. If not specified the default is
   410  // 1000ms.
   411  google.protobuf.Duration megamiss_timeout = 2;
   412
   413  // If a watched thread has been nonresponsive for this duration, assume a
   414  // programming error and kill the entire Envoy process. Set to 0 to disable
   415  // kill behavior. If not specified the default is 0 (disabled).
   416  google.protobuf.Duration kill_timeout = 3;
   417
   418  // Defines the maximum jitter used to adjust the *kill_timeout* if *kill_timeout* is
   419  // enabled. Enabling this feature would help to reduce risk of synchronized
   420  // watchdog kill events across proxies due to external triggers. Set to 0 to
   421  // disable. If not specified the default is 0 (disabled).
   422  google.protobuf.Duration max_kill_timeout_jitter = 6 [(validate.rules).duration = {gte {}}];
   423
   424  // If max(2, ceil(registered_threads * Fraction(*multikill_threshold*)))
   425  // threads have been nonresponsive for at least this duration kill the entire
   426  // Envoy process. Set to 0 to disable this behavior. If not specified the
   427  // default is 0 (disabled).
   428  google.protobuf.Duration multikill_timeout = 4;
   429
   430  // Sets the threshold for *multikill_timeout* in terms of the percentage of
   431  // nonresponsive threads required for the *multikill_timeout*.
   432  // If not specified the default is 0.
   433  type.v3.Percent multikill_threshold = 5;
   434}
   435
   436// Fatal actions to run while crashing. Actions can be safe (meaning they are
   437// async-signal safe) or unsafe. We run all safe actions before we run unsafe actions.
   438// If using an unsafe action that could get stuck or deadlock, it important to
   439// have an out of band system to terminate the process.
   440//
   441// The interface for the extension is ``Envoy::Server::Configuration::FatalAction``.
   442// *FatalAction* extensions live in the ``envoy.extensions.fatal_actions`` API
   443// namespace.
   444message FatalAction {
   445  // Extension specific configuration for the action. It's expected to conform
   446  // to the ``Envoy::Server::Configuration::FatalAction`` interface.
   447  core.v3.TypedExtensionConfig config = 1;
   448}
   449
   450// Runtime :ref:`configuration overview <config_runtime>` (deprecated).
   451message Runtime {
   452  option (udpa.annotations.versioning).previous_message_type = "envoy.config.bootstrap.v2.Runtime";
   453
   454  // The implementation assumes that the file system tree is accessed via a
   455  // symbolic link. An atomic link swap is used when a new tree should be
   456  // switched to. This parameter specifies the path to the symbolic link. Envoy
   457  // will watch the location for changes and reload the file system tree when
   458  // they happen. If this parameter is not set, there will be no disk based
   459  // runtime.
   460  string symlink_root = 1;
   461
   462  // Specifies the subdirectory to load within the root directory. This is
   463  // useful if multiple systems share the same delivery mechanism. Envoy
   464  // configuration elements can be contained in a dedicated subdirectory.
   465  string subdirectory = 2;
   466
   467  // Specifies an optional subdirectory to load within the root directory. If
   468  // specified and the directory exists, configuration values within this
   469  // directory will override those found in the primary subdirectory. This is
   470  // useful when Envoy is deployed across many different types of servers.
   471  // Sometimes it is useful to have a per service cluster directory for runtime
   472  // configuration. See below for exactly how the override directory is used.
   473  string override_subdirectory = 3;
   474
   475  // Static base runtime. This will be :ref:`overridden
   476  // <config_runtime_layering>` by other runtime layers, e.g.
   477  // disk or admin. This follows the :ref:`runtime protobuf JSON representation
   478  // encoding <config_runtime_proto_json>`.
   479  google.protobuf.Struct base = 4;
   480}
   481
   482// [#next-free-field: 6]
   483message RuntimeLayer {
   484  option (udpa.annotations.versioning).previous_message_type =
   485      "envoy.config.bootstrap.v2.RuntimeLayer";
   486
   487  // :ref:`Disk runtime <config_runtime_local_disk>` layer.
   488  message DiskLayer {
   489    option (udpa.annotations.versioning).previous_message_type =
   490        "envoy.config.bootstrap.v2.RuntimeLayer.DiskLayer";
   491
   492    // The implementation assumes that the file system tree is accessed via a
   493    // symbolic link. An atomic link swap is used when a new tree should be
   494    // switched to. This parameter specifies the path to the symbolic link.
   495    // Envoy will watch the location for changes and reload the file system tree
   496    // when they happen. See documentation on runtime :ref:`atomicity
   497    // <config_runtime_atomicity>` for further details on how reloads are
   498    // treated.
   499    string symlink_root = 1;
   500
   501    // Specifies the subdirectory to load within the root directory. This is
   502    // useful if multiple systems share the same delivery mechanism. Envoy
   503    // configuration elements can be contained in a dedicated subdirectory.
   504    string subdirectory = 3;
   505
   506    // :ref:`Append <config_runtime_local_disk_service_cluster_subdirs>` the
   507    // service cluster to the path under symlink root.
   508    bool append_service_cluster = 2;
   509  }
   510
   511  // :ref:`Admin console runtime <config_runtime_admin>` layer.
   512  message AdminLayer {
   513    option (udpa.annotations.versioning).previous_message_type =
   514        "envoy.config.bootstrap.v2.RuntimeLayer.AdminLayer";
   515  }
   516
   517  // :ref:`Runtime Discovery Service (RTDS) <config_runtime_rtds>` layer.
   518  message RtdsLayer {
   519    option (udpa.annotations.versioning).previous_message_type =
   520        "envoy.config.bootstrap.v2.RuntimeLayer.RtdsLayer";
   521
   522    // Resource to subscribe to at *rtds_config* for the RTDS layer.
   523    string name = 1;
   524
   525    // RTDS configuration source.
   526    core.v3.ConfigSource rtds_config = 2;
   527  }
   528
   529  // Descriptive name for the runtime layer. This is only used for the runtime
   530  // :http:get:`/runtime` output.
   531  string name = 1 [(validate.rules).string = {min_len: 1}];
   532
   533  oneof layer_specifier {
   534    option (validate.required) = true;
   535
   536    // :ref:`Static runtime <config_runtime_bootstrap>` layer.
   537    // This follows the :ref:`runtime protobuf JSON representation encoding
   538    // <config_runtime_proto_json>`. Unlike static xDS resources, this static
   539    // layer is overridable by later layers in the runtime virtual filesystem.
   540    google.protobuf.Struct static_layer = 2;
   541
   542    DiskLayer disk_layer = 3;
   543
   544    AdminLayer admin_layer = 4;
   545
   546    RtdsLayer rtds_layer = 5;
   547  }
   548}
   549
   550// Runtime :ref:`configuration overview <config_runtime>`.
   551message LayeredRuntime {
   552  option (udpa.annotations.versioning).previous_message_type =
   553      "envoy.config.bootstrap.v2.LayeredRuntime";
   554
   555  // The :ref:`layers <config_runtime_layering>` of the runtime. This is ordered
   556  // such that later layers in the list overlay earlier entries.
   557  repeated RuntimeLayer layers = 1;
   558}

View as plain text