syntax = "proto3"; package envoy.admin.v4alpha; import "envoy/config/bootstrap/v4alpha/bootstrap.proto"; import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; import "udpa/annotations/status.proto"; import "udpa/annotations/versioning.proto"; option java_package = "io.envoyproxy.envoy.admin.v4alpha"; option java_outer_classname = "ConfigDumpProto"; option java_multiple_files = true; option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; // [#protodoc-title: ConfigDump] // The :ref:`/config_dump ` admin endpoint uses this wrapper // message to maintain and serve arbitrary configuration information from any component in Envoy. message ConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ConfigDump"; // This list is serialized and dumped in its entirety at the // :ref:`/config_dump ` endpoint. // // The following configurations are currently supported and will be dumped in the order given // below: // // * *bootstrap*: :ref:`BootstrapConfigDump ` // * *clusters*: :ref:`ClustersConfigDump ` // * *listeners*: :ref:`ListenersConfigDump ` // * *routes*: :ref:`RoutesConfigDump ` // [#not-implemented-hide:] * *endpoints*: :ref:`EndpointsConfigDump ` // // You can filter output with the resource and mask query parameters. // See :ref:`/config_dump?resource={} `, // :ref:`/config_dump?mask={} `, // or :ref:`/config_dump?resource={},mask={} // ` for more information. repeated google.protobuf.Any configs = 1; } message UpdateFailureState { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.UpdateFailureState"; // What the component configuration would have been if the update had succeeded. google.protobuf.Any failed_configuration = 1; // Time of the latest failed update attempt. google.protobuf.Timestamp last_update_attempt = 2; // Details about the last failed update attempt. string details = 3; } // This message describes the bootstrap configuration that Envoy was started with. This includes // any CLI overrides that were merged. Bootstrap configuration information can be used to recreate // the static portions of an Envoy configuration by reusing the output as the bootstrap // configuration for another Envoy. message BootstrapConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.BootstrapConfigDump"; config.bootstrap.v4alpha.Bootstrap bootstrap = 1; // The timestamp when the BootstrapConfig was last updated. google.protobuf.Timestamp last_updated = 2; } // Envoy's listener manager fills this message with all currently known listeners. Listener // configuration information can be used to recreate an Envoy configuration by populating all // listeners as static listeners or by returning them in a LDS response. message ListenersConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ListenersConfigDump"; // Describes a statically loaded listener. message StaticListener { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ListenersConfigDump.StaticListener"; // The listener config. google.protobuf.Any listener = 1; // The timestamp when the Listener was last successfully updated. google.protobuf.Timestamp last_updated = 2; } message DynamicListenerState { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ListenersConfigDump.DynamicListenerState"; // This is the per-resource version information. This version is currently taken from the // :ref:`version_info ` field at the time // that the listener was loaded. In the future, discrete per-listener versions may be supported // by the API. string version_info = 1; // The listener config. google.protobuf.Any listener = 2; // The timestamp when the Listener was last successfully updated. google.protobuf.Timestamp last_updated = 3; } // Describes a dynamically loaded listener via the LDS API. // [#next-free-field: 6] message DynamicListener { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ListenersConfigDump.DynamicListener"; // The name or unique id of this listener, pulled from the DynamicListenerState config. string name = 1; // The listener state for any active listener by this name. // These are listeners that are available to service data plane traffic. DynamicListenerState active_state = 2; // The listener state for any warming listener by this name. // These are listeners that are currently undergoing warming in preparation to service data // plane traffic. Note that if attempting to recreate an Envoy configuration from a // configuration dump, the warming listeners should generally be discarded. DynamicListenerState warming_state = 3; // The listener state for any draining listener by this name. // These are listeners that are currently undergoing draining in preparation to stop servicing // data plane traffic. Note that if attempting to recreate an Envoy configuration from a // configuration dump, the draining listeners should generally be discarded. DynamicListenerState draining_state = 4; // Set if the last update failed, cleared after the next successful update. UpdateFailureState error_state = 5; } // This is the :ref:`version_info ` in the // last processed LDS discovery response. If there are only static bootstrap listeners, this field // will be "". string version_info = 1; // The statically loaded listener configs. repeated StaticListener static_listeners = 2; // State for any warming, active, or draining listeners. repeated DynamicListener dynamic_listeners = 3; } // Envoy's cluster manager fills this message with all currently known clusters. Cluster // configuration information can be used to recreate an Envoy configuration by populating all // clusters as static clusters or by returning them in a CDS response. message ClustersConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ClustersConfigDump"; // Describes a statically loaded cluster. message StaticCluster { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ClustersConfigDump.StaticCluster"; // The cluster config. google.protobuf.Any cluster = 1; // The timestamp when the Cluster was last updated. google.protobuf.Timestamp last_updated = 2; } // Describes a dynamically loaded cluster via the CDS API. message DynamicCluster { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ClustersConfigDump.DynamicCluster"; // This is the per-resource version information. This version is currently taken from the // :ref:`version_info ` field at the time // that the cluster was loaded. In the future, discrete per-cluster versions may be supported by // the API. string version_info = 1; // The cluster config. google.protobuf.Any cluster = 2; // The timestamp when the Cluster was last updated. google.protobuf.Timestamp last_updated = 3; } // This is the :ref:`version_info ` in the // last processed CDS discovery response. If there are only static bootstrap clusters, this field // will be "". string version_info = 1; // The statically loaded cluster configs. repeated StaticCluster static_clusters = 2; // The dynamically loaded active clusters. These are clusters that are available to service // data plane traffic. repeated DynamicCluster dynamic_active_clusters = 3; // The dynamically loaded warming clusters. These are clusters that are currently undergoing // warming in preparation to service data plane traffic. Note that if attempting to recreate an // Envoy configuration from a configuration dump, the warming clusters should generally be // discarded. repeated DynamicCluster dynamic_warming_clusters = 4; } // Envoy's RDS implementation fills this message with all currently loaded routes, as described by // their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration // or defined inline while configuring listeners are separated from those configured dynamically via RDS. // Route configuration information can be used to recreate an Envoy configuration by populating all routes // as static routes or by returning them in RDS responses. message RoutesConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.RoutesConfigDump"; message StaticRouteConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.RoutesConfigDump.StaticRouteConfig"; // The route config. google.protobuf.Any route_config = 1; // The timestamp when the Route was last updated. google.protobuf.Timestamp last_updated = 2; } message DynamicRouteConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.RoutesConfigDump.DynamicRouteConfig"; // This is the per-resource version information. This version is currently taken from the // :ref:`version_info ` field at the time that // the route configuration was loaded. string version_info = 1; // The route config. google.protobuf.Any route_config = 2; // The timestamp when the Route was last updated. google.protobuf.Timestamp last_updated = 3; } // The statically loaded route configs. repeated StaticRouteConfig static_route_configs = 2; // The dynamically loaded route configs. repeated DynamicRouteConfig dynamic_route_configs = 3; } // Envoy's scoped RDS implementation fills this message with all currently loaded route // configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both // the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the // dynamically obtained scopes via the SRDS API. message ScopedRoutesConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ScopedRoutesConfigDump"; message InlineScopedRouteConfigs { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ScopedRoutesConfigDump.InlineScopedRouteConfigs"; // The name assigned to the scoped route configurations. string name = 1; // The scoped route configurations. repeated google.protobuf.Any scoped_route_configs = 2; // The timestamp when the scoped route config set was last updated. google.protobuf.Timestamp last_updated = 3; } message DynamicScopedRouteConfigs { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.ScopedRoutesConfigDump.DynamicScopedRouteConfigs"; // The name assigned to the scoped route configurations. string name = 1; // This is the per-resource version information. This version is currently taken from the // :ref:`version_info ` field at the time that // the scoped routes configuration was loaded. string version_info = 2; // The scoped route configurations. repeated google.protobuf.Any scoped_route_configs = 3; // The timestamp when the scoped route config set was last updated. google.protobuf.Timestamp last_updated = 4; } // The statically loaded scoped route configs. repeated InlineScopedRouteConfigs inline_scoped_route_configs = 1; // The dynamically loaded scoped route configs. repeated DynamicScopedRouteConfigs dynamic_scoped_route_configs = 2; } // Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS. message SecretsConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.SecretsConfigDump"; // DynamicSecret contains secret information fetched via SDS. message DynamicSecret { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.SecretsConfigDump.DynamicSecret"; // The name assigned to the secret. string name = 1; // This is the per-resource version information. string version_info = 2; // The timestamp when the secret was last updated. google.protobuf.Timestamp last_updated = 3; // The actual secret information. // Security sensitive information is redacted (replaced with "[redacted]") for // private keys and passwords in TLS certificates. google.protobuf.Any secret = 4; } // StaticSecret specifies statically loaded secret in bootstrap. message StaticSecret { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.SecretsConfigDump.StaticSecret"; // The name assigned to the secret. string name = 1; // The timestamp when the secret was last updated. google.protobuf.Timestamp last_updated = 2; // The actual secret information. // Security sensitive information is redacted (replaced with "[redacted]") for // private keys and passwords in TLS certificates. google.protobuf.Any secret = 3; } // The statically loaded secrets. repeated StaticSecret static_secrets = 1; // The dynamically loaded active secrets. These are secrets that are available to service // clusters or listeners. repeated DynamicSecret dynamic_active_secrets = 2; // The dynamically loaded warming secrets. These are secrets that are currently undergoing // warming in preparation to service clusters or listeners. repeated DynamicSecret dynamic_warming_secrets = 3; } // [#not-implemented-hide:] // Envoy's EDS implementation *will* fill this message with all currently known endpoints. Endpoint // configuration information can be used to recreate an Envoy configuration by populating all // endpoints as static endpoints or by returning them in an EDS response. message EndpointsConfigDump { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.EndpointsConfigDump"; message StaticEndpointConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.EndpointsConfigDump.StaticEndpointConfig"; // The endpoint config. google.protobuf.Any endpoint_config = 1; // The timestamp when the Endpoint was last updated. google.protobuf.Timestamp last_updated = 2; } message DynamicEndpointConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.EndpointsConfigDump.DynamicEndpointConfig"; // This is the per-resource version information. This version is currently taken from the // :ref:`version_info ` field at the time that // the endpoint configuration was loaded. string version_info = 1; // The endpoint config. google.protobuf.Any endpoint_config = 2; // The timestamp when the Endpoint was last updated. google.protobuf.Timestamp last_updated = 3; } // The statically loaded endpoint configs. repeated StaticEndpointConfig static_endpoint_configs = 2; // The dynamically loaded endpoint configs. repeated DynamicEndpointConfig dynamic_endpoint_configs = 3; }