http_observer
HTTP-based service discovery provides a more generic way to configure endpoints as an interface to plug in custom service discovery mechanisms.
This extension fetches endpoints from an HTTP endpoint containing a list of zero or more endpoints.
There are a few basic requirements for HTTP service discovery:
- Response should be in JSON with the correct HTTP Content-Type header.
- The content must be in UTF-8.
- Authentication if required can be Basic, using the Authorization header, or OAuth 2.0. You would typically not need authentication if the endpoint is in your internal network, or part of your applications.
- If there are no endpoints, the endpoint should return an empty list.
Example
# HTTP endpoint to fetch endpoints
endpoint: http://example.com/some/resource
# Configures the TLS options for incoming/outgoing connections.
#
# Optional
tls:
# Absolute path to an additional CA certificate file, in DER or PEM
# format(X.509), or an inline CA certificate in PEM format.
#
# Optional
ca: null
# Absolute path to a certificate file used to identify this connection,
# in DER or PEM format (X.509) or PKCS#12, or an inline certificate in
# PEM format. If this is set and is not a PKCS#12 archive, "key_file"
# must also be set.
#
# Optional
cert: null
# Absolute path to a private key file used to identify this connection,
# in DER or PEM format (PKCS#8), or an inline private key in PEM format.
# If this is set, "crt_file" must also be set.
#
# Optional
key: null
# Pass phrase used to unlock the encrypted key file. This has no effect
# unless "key" is set.
#
# Optional
key_pass: null
# Enables certificate verification.
# If enabled, certificates must not be expired and must be issued by a trusted issuer.
# This verification operates in a hierarchical manner, checking that the leaf certificate
# (the certificate presented by the client/server) is not only valid, but that the issuer
# of that certificate is also valid, and so on until the verification process reaches a
# root certificate.
#
# Relevant for both incoming and outgoing connections.
#
# Do NOT set this to false unless you understand the risks of not verifying the
# validity of certificates.
#
# Optional
verify_certificate: true
# Enables hostname verification. If enabled, the hostname used to connect to the remote
# host must be present in the TLS certificate presented by the remote host, either as the
# Common Name or as an entry in the Subject Alternative Name extension.
#
# Only relevant for outgoing connections.
#
# Do NOT set this to false unless you understand the risks of not verifying the remote hostname.
#
# Optional
verify_hostname: true
# The authentication strategy for http request/response
#
# Optional
auth:
strategy: basic
# The basic authentication username.
#
# Required
user: ""
# The basic authentication password.
#
# Required
password: ""
headers: {}
# Refresh interval
#
# Optional
interval: 15s