...

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

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

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

View as plain text