Skip to content

route_registrar job from cf/243

Used for registering routes

Github source: ee7d0088 or master branch

Properties

nats

machines

IPs of each NATS cluster member

Example
|+
  - 192.168.50.123
  - 192.168.52.123

password

Password for NATS authentication

Example
natSpa55w0rd

port

TCP port of NATS servers

Example
4222

user

User name for NATS authentication

Example
nats

route_registrar

routes

  • Array of hashes determining which routes will be registered.
  • Each hash should have ‘port’, ‘uris’, ‘registration_interval’ and ‘name’ keys.
  • ‘registration_interval’ is the delay between routing updates. It must be a time duration represented as a string (e.g. “10s”). It must parse to a positive time duration i.e. “-5s” is not permitted.
  • Additionally, the ‘tags’ and ‘health_check’ keys are optional.
  • ‘uris’ is an array of URIs to register for the ‘port’.
  • ‘tags’ are included in metrics that gorouter emits to support filtering.
  • ‘health_check’ is a hash which should have ‘name’ and ‘script_path’.
  • ‘health_check.timeout’ is optional. If the health_check timeout is not provided, it defaults to half of the value of registration_interval. If it is provided it must be a time duration represented as a string (e.g. “10s”), and less than the value of registration_interval. It must parse to a positive time duration i.e. “-5s” is not permitted.
  • if the healthcheck is not configured, the route is continually registered.
  • if the healthcheck script exits with success, the route is registered.
  • if the healthcheck script exits with error, the route is unregistered.
  • if a timeout is configured, the healthcheck script must exit within the timeout, otherwise it is terminated (with SIGKILL) and the route is unregistered.
Example
|+
  - name: my-service
    registration_interval: 20s
    port: 12345
    tags:
      component: my-service
      env: production
    uris:
      - my-service.system-domain.com
      - *.my-service.system-domain.com
    health_check:
      name: my-service-health_check
      script_path: /path/to/script
      timeout: 5s
  - name: my-debug-endpoint
    port: 12346
    uris:
      - my-service.system-domain.com/debug

Templates

Templates are rendered and placed onto corresponding instances during the deployment process. This job's templates will be placed into /var/vcap/jobs/route_registrar/ directory (learn more).

  • bin/pre-start (from pre-start)
  • bin/route_registrar_ctl (from route_registrar_ctl.erb)
  • config/registrar_settings.yml (from registrar_settings.yml.erb)

Packages

Packages are compiled and placed onto corresponding instances during the deployment process. Packages will be placed into /var/vcap/packages/ directory.