.. _envoy_api_file_envoy/api/v2/core/config_source.proto: Configuration sources ===================== .. _envoy_api_msg_core.ApiConfigSource: core.ApiConfigSource -------------------- `[core.ApiConfigSource proto] `_ API configuration source. This identifies the API type and cluster that Envoy will use to fetch an xDS API. .. code-block:: json { "api_type": "...", "cluster_names": [], "grpc_services": [], "refresh_delay": "{...}", "request_timeout": "{...}" } .. _envoy_api_field_core.ApiConfigSource.api_type: api_type (:ref:`core.ApiConfigSource.ApiType `) .. _envoy_api_field_core.ApiConfigSource.cluster_names: cluster_names (`string `_) Cluster names should be used only with REST_LEGACY/REST. If > 1 cluster is defined, clusters will be cycled through if any kind of failure occurs. .. note:: The cluster with name ``cluster_name`` must be statically defined and its type must not be ``EDS``. .. _envoy_api_field_core.ApiConfigSource.grpc_services: grpc_services (:ref:`core.GrpcService `) Multiple gRPC services be provided for GRPC. If > 1 cluster is defined, services will be cycled through if any kind of failure occurs. .. _envoy_api_field_core.ApiConfigSource.refresh_delay: refresh_delay (`Duration `_) For REST APIs, the delay between successive polls. .. _envoy_api_field_core.ApiConfigSource.request_timeout: request_timeout (`Duration `_) For REST APIs, the request timeout. If not set, a default value of 1s will be used. .. _envoy_api_enum_core.ApiConfigSource.ApiType: Enum core.ApiConfigSource.ApiType --------------------------------- `[core.ApiConfigSource.ApiType proto] `_ APIs may be fetched via either REST or gRPC. .. _envoy_api_enum_value_core.ApiConfigSource.ApiType.REST_LEGACY: REST_LEGACY *(DEFAULT)* ⁣REST-JSON legacy corresponds to the v1 API. .. _envoy_api_enum_value_core.ApiConfigSource.ApiType.REST: REST ⁣REST-JSON v2 API. The `canonical JSON encoding `_ for the v2 protos is used. .. _envoy_api_enum_value_core.ApiConfigSource.ApiType.GRPC: GRPC ⁣gRPC v2 API. .. _envoy_api_msg_core.AggregatedConfigSource: core.AggregatedConfigSource --------------------------- `[core.AggregatedConfigSource proto] `_ Aggregated Discovery Service (ADS) options. This is currently empty, but when set in :ref:`ConfigSource ` can be used to specify that ADS is to be used. .. code-block:: json {} .. _envoy_api_msg_core.ConfigSource: core.ConfigSource ----------------- `[core.ConfigSource proto] `_ Configuration for :ref:`listeners `, :ref:`clusters `, :ref:`routes `, :ref:`endpoints ` etc. may either be sourced from the filesystem or from an xDS API source. Filesystem configs are watched with inotify for updates. .. code-block:: json { "path": "...", "api_config_source": "{...}", "ads": "{...}" } .. _envoy_api_field_core.ConfigSource.path: path (`string `_) Path on the filesystem to source and watch for configuration updates. .. note:: The path to the source must exist at config load time. .. note:: Envoy will only watch the file path for *moves.* This is because in general only moves are atomic. The same method of swapping files as is demonstrated in the :ref:`runtime documentation ` can be used here also. Precisely one of :ref:`path `, :ref:`api_config_source `, :ref:`ads ` must be set. .. _envoy_api_field_core.ConfigSource.api_config_source: api_config_source (:ref:`core.ApiConfigSource `) API configuration source. Precisely one of :ref:`path `, :ref:`api_config_source `, :ref:`ads ` must be set. .. _envoy_api_field_core.ConfigSource.ads: ads (:ref:`core.AggregatedConfigSource `) When set, ADS will be used to fetch resources. The ADS API configuration source in the bootstrap configuration is used. Precisely one of :ref:`path `, :ref:`api_config_source `, :ref:`ads ` must be set.