xmidt-org/heimdall

View on GitHub
heimdall.yaml

Summary

Maintainability
Test Coverage
---

# The unique fully-qualified-domain-name of the server.  It is provided to
# the X-Heimdall-Server header for showing what server fulfilled the request
# sent.
# (Optional)
server: "heimdall-instance-123.example.com"

########################################
#   Labeling/Tracing via HTTP Headers Configuration
########################################

# Provides this build number to the X-heimdall-Build header for
# showing machine version information.  The build number SHOULD
# match the scheme `version-build` but there is not a strict requirement.
# (Optional)
build: "0.1.3-434"

# Provides the region information to the X-heimdall-Region header
# for showing what region this machine is located in.  The region
# is arbitrary and optional.
# (Optional)
region: "east"

# Provides the flavor information to the X-heimdall-Flavor header
# for showing what flavor this machine is associated with.  The flavor
# is arbitrary and optional.
# (Optional)
flavor: "mint"

########################################
#   Health Endpoint Configuration
########################################

# health defines the details needed for the health check endpoint.  The
# health check endpoint is generally used by services (like AWS Route53
# or consul) to determine if this particular machine is healthy or not.
health:
  # port provides the port number for the endpoint to bind to.
  # ":80" is ideal, but may require some special handling due to it being
  # a reserved (by the kernel) port.
  port: ":7201"
  # endpoint provides the endpoint that will provide the health check
  # information.
  endpoint: "/health"

########################################
#   Debugging/Pprof Configuration
########################################

# pprof defines the details needed for the pprof debug endpoint.
# (Optional)
pprof:
  # address provides the port number for the endpoint to bind to.
  address: ":7202"

########################################
#   Metrics Configuration
########################################

# metric defines the details needed for the prometheus metrics endpoint
# (Optional)
metric:
  # address provides the port number for the endpoint to bind to.  Port 9389
  # was chosen because it does not conflict with any of the other prometheus
  # metrics or other machines in the xmidt cluster.  You may use any port you
  # wish.
  address: ":7203"

  # metricsOptions provides the details needed to configure the prometheus
  # metric data.  Metrics generally have the form:
  #
  # {namespace}_{subsystem}_{metric}
  #
  # so if you use the suggested value below, your metrics are prefixed like
  # this:
  #
  # codex_heimdall_{metric}
  #
  # (Optional)
  metricsOptions:
    # namespace is the namespace of the metrics provided
    # (Optional)
    namespace: "codex"
    # subsystem is the subsystem of the metrics provided
    # (Optional)
    subsystem: "heimdall"

########################################
#   Logging Related Configuration
########################################

# log configures the logging subsystem details
log:
  # file is the name of the most recent log file.  If set to "stdout" this
  # will log to os.Stdout.
  # (Optional) defaults to os.TempDir()
  #file: "/var/log/heimdall/heimdall.log"
  file: "stdout"

  # level is the logging level to use - INFO, DEBUG, WARN, ERROR
  # (Optional) defaults to ERROR
  level: "DEBUG"

  # maxsize is the maximum file size in MB
  # (Optional) defaults to max 100MB
  maxsize: 50

  # maxage is the maximum number of days to retain old log files
  # (Optional) defaults to ignore age limit (0)
  maxage: 30

  # maxbackups is the maximum number of old log files to retain
  # (Optional) defaults to retain all (0)
  maxbackups: 10

  # json is a flag indicating whether JSON logging output should be used.
  # (Optional) defaults to false
  json: true


# maxPoolSize is for limiting the number of device ids to store in memory.
maxPoolSize: 1000000

# tick is the unit of time for rate.
# The value of tick may be anything parseable by the golang standard library (see ParseDuration).
# (optional) default 1s
tick: 1s
# rate is the number of requests per unit time (tick) to send.
# (optional) default 5
rate: 5

# window, how long to look in the past to retrieve device ids.
# The value of tick may be anything parseable by the golang standard library (see ParseDuration).
# (optional) default 24h
window: 168h

# windowLimit is the max number of devices to get from the databse.
# (optional) default 1024
windowLimit: 1024


gungnirAddress: "https://codex.example.net"
gungnirSAT:
  requestHeaders:
    X-Client-Id: ""
    X-Client-Secret: ""
  authURL: ""
  timeout: "1m"
  buffer: "1m"
xmidtAddress: "https://api.webpa.example.net"
xmidtSAT:
  requestHeaders:
    X-Client-Id: ""
    X-Client-Secret: ""
  authURL: ""
  timeout: "1m"
  buffer: "1m"

########################################
#   Database Related Configuration
########################################

# db provides the configuration for connecting to the database and database
# calls.
db:
  # hosts is and array of address and port used to connect to the cluster.
  hosts:
    - "db"
  # database is the name of the database being connected to.
  database: "devices"
  # opTimeout is the timeout for database calls after svalinn is connected.
  # If the opTimeout is set to 0, it defaults to 10s.
  # (Optional) defaults to 10s
  opTimeout: 100ms

#  # username is the username to use when connecting to the database.
#  # (Optional)
#  username: "cassandra"
#
#  # password is the password to use when connecting to the database.
#  # (Optional)
#  password: "cassandra"
#
#  # SSLRootCert is the root cert to use when connecting to the database.
#  # The SSLKey and SSLCert must also be provided in order to connect securely.
#  # (Optional)
#  #sslRootCert: "/etc/svalinn/ca.crt"
#
#  # SSLKey is the SSL key to use when connecting to the database.  The
#  # SSLRootCert and SSLCert must also be provided in order to connect securely.
#  # (Optional)
#  #sslKey: "/etc/svalinn/node.0.0.0.0.key"
#
#  # SSLCert is the SSL cert to use when connecting to the database.  The SSLKey
#  # and SSLRootCert must also be provided in order to connect securely.
#  # (Optional)
#  #sslCert: "/etc/svalinn/node.0.0.0.0.crt"
#
#  # If you want to verify the hostname and server cert (like a wildcard for cass cluster) then you should turn this on
#  # This option is basically the inverse of InSecureSkipVerify
#  # See InSecureSkipVerify in http://golang.org/pkg/crypto/tls/ for more info
#  # (Optional) defaults to false
#  #enableHostVerification: false