Cloud Docs Home > F5 Application Services Proxy Index

Configuration Parameters

Important

All ASP configurations must be valid JSON.

The ASP has four top-level configuration sections:

Global

You can use the global configuration parameters in all supported environments.

Note

Beginning with ASP v1.1.0, you must deploy the ephemeral store before installing the ASP.

Table 1 ASP global configuration parameters
Parameter Type Required Default Description Allowed Values
console-log-level string Optional info Logging level
  • critical
  • error
  • warning
  • info
  • debug
ephemeral-store JSON object Required   A JSON blob defining ephemeral store configurations See below.
  components JSON object Required   A JSON blob to configure components of the ASP that require ephemeral data See below.
  <component-name> JSON object Required   A JSON blob to configure a particular component “health” [1]
    nodes JSON array Required   Unique identifiers of nodes sharing the ephemeral data for the particular component  
    replication-count integer Optional 2 Number of nodes to generate a particular subset of the ephemeral data > 0 [2]
host


string Required   IP address or DNS name of the ephemeral store service

“10.x.x.x”,

“ephemeral-store.marathon.l4lb.thisdcos.directory”

  port integer Required   Exposed service port  
  root-ca string Optional; required if “users” is present   Root CA certificate in PEM format  
users



JSON object Optional; required if “root-ca” is present  

A JSON blob of configured ephemeral store users.

Must contain at least one user.

See below.
    <user-name> JSON object Required   A JSON blob with key and cert for user <user-name> See below.
      key String Required   User private key in PEM format  
      cert String Required   User certificate in PEM format  

[1]The health component feature allows the sharing of active health information among ASP instances in a cluster (see Health Monitors). This results in a reduction on the number of probes that each ASP must send and the total number of probes received by a backend server. For example, in Kubernetes the nodes field could represent the IP addresses/Node ID of each worker host that deploys an ASP. When using this feature, each ASP must also have the environment variable ASP_HEALTH_NODE_ID set to its own node identifier.
[2]If the replication-count is higher than the number of nodes, then the ASP will use the number of nodes as the replication-count.

Orchestration

Orchestration configuration parameters define the required information for a specific environment(s).

Table 2 ASP orchestration configuration parameters
Parameter Type Required Default Description Allowed Values
kubernetes JSON object Optional   A JSON blob defining Kubernetes configurations. See below.
  config-file string Required   Path to file in which f5-kube-proxy writes ASP configurations. “/var/run/kubernetes/proxy-plugins/service-ports.json”
  poll-interval integer Optional 1000 Polling time, in milliseconds  
marathon JSON object Optional   A JSON blob defining Marathon configurations. See below.
  uri string Required   Marathon Service URL  
  poll-interval integer Optional 1000 Polling time, in milliseconds  

Stats

Stats configuration parameters pertain to statistics gathering and reporting. The ASP logs stats internally if you don’t provide a backend URL.

Table 3 ASP stats configuration parameters
Parameter Type Required Default Description Allowed Values
url string Optional  

URL of the backend stats server.

Required when using an external analytics provider.

 
token string Optional  

Authentication token for the stats server.

Required when using an external analytics provider.

 
flush-interval integer Optional 10000 Frequency, in milliseconds, at which to flush stats.  
backend string Optional  

Backend stats analytics provider.

Required when using an external analytics provider.

“splunk”
rejectUnauthorized [3] boolean Optional true If true, ASP verifies the server certificate against the specified ca and rejects traffic if the cert doesn’t match.  
ca [3] string Optional  

A string (or array of strings) of trusted certificates in PEM format.

If omitted, ASP uses the default list of publicly-trusted CAs built into Node.js.

 
metadata JSON object Optional   See below.  
  facility string Optional   Sets facility for reported stats. Accepts template strings. [4]  
  devicegroup string Optional   Sets devicegroup for reported stats. Accepts template strings. [4]  

[3](1, 2) Only applies when sending stats to an HTTPS server.
[4](1, 2) Template strings are substitutable. Allowed substitutions include {APP} and {PORT}, which the ASP replaces with the service-name and destination port from the virtual-server config, respectively.

Virtual Server

Virtual server configuration parameters list virtual server objects, which represent service endpoints (also called pool members). The orchestration environment provides part, or all, of this section.

Table 4 ASP virtual server configuration parameters
Parameter Type Required Default Description Allowed Values
bind-port integer Optional destination.port The container port on which the ASP accepts connections. [5] N/A
destination JSON object Required   Assigns an address and port to the ASP virtual server.  
address
string Required   Virtual IP address assigned by the orchestration environment.  
port
integer Required   Port number assigned by the orchestration environment.  
event-handlers Array of JSON objects Optional   Defines Event Handlers to inject into the ASP data path. Cannot be empty
flags JSON object Optional   See below.  
  x-forwarded-for boolean Optional “false” Sets ‘x-forwarded-for’ header in request to backend server.  
  x-served-by boolean Optional “false” Sets ‘x-served-by’ header in response to client.  
health-monitor JSON object Optional   Defines Health Monitors for the virtual server endpoints.  
ip-protocol string Optional “http” Virtual server’s service type. “http”, “tcp”
keep-alive-msecs integer Optional 1000 Time (in milliseconds) between TCP keep-alive packets on socket to back-end server.  
load-balancing-mode string Optional “round-robin” Load balancing algorithm for the virtual server. “round-robin”
service-name string Required   Name of the application you want to proxy.  
shared-listen boolean Optional “false” Allows virtual servers to share a bind-port. [5] N/A

[5](1, 2) You do not need to configure the bind-port and shared-listen parameters. The ASP populates these using information from the orchestration environment.
Table 5 ASP health check configuration parameters
Parameter Type Required Default Description Allowed Values
health-checks JSON object Optional   A list of health check objects  
  [name] JSON object Optional   The name of a health check object  
  default-state string Optional “unknown” the initial health status reported by the health check
  • “unhealthy”
  • “unknown”
  • “healthy”
  active JSON object Optional   The type of health check  
  down-count integer Optional 3 Number of consecutive failed health probes required to mark an endpoint unhealthy > 0
  up-count integer Optional 2 Number of consecutive successful health probes required to mark an endpoint healthy > 0
  interval integer Optional 10 Number of seconds between issuing health probes > 0
  timeout integer Optional 10 Number of seconds to wait for a response before considering the probe as having failed > 0, <= interval
  http JSON object Required   Use HTTP protocol used for issuing health probes  
  path string Optional “/” URL path for probe  
  request-method string Optional “GET” HTTP request type
  • “GET”,
  • “HEAD”
  response-status integer Optional 200 Expected good HTTP response status 100 - 599
  passive JSON object Required   The type of health check  
  down-count integer Optional 3 Number of consecutive failed requests required to mark an endpoint unhealthy > 0
  inactivity-timeout integer Optional 30 Number of seconds to keep the the endpoint in an unhealthy state > 0
  invalid-http JSON array Optional
[{ ‘min’: 500,
‘max’: 599 }]
Specifies HTTP status ranges that should cause a health check failure [6] See below.
  min integer Optional 500 HTTP response status 100 - 599
  max integer Optional 599 HTTP response status 100 - 599

[6]If you set your virtual server’s ip-protocol type to “tcp”, the ASP ignores the invalid-http range.

Example

Create a separate JSON blob for each health check you want the ASP to perform. For example:

{
   "health-monitor": [
      {
         "health-checks": {
            "active-check": {
               "default-state": "unknown",
               "active": {
                  "timeout": 10,
                  "interval": 10,
                  "up-count": 2,
                  "down-count": 3,
                  "http": {
                     "path": "/healthz"
                  }
               }
            }
         }
      },
      {
         "health-checks": {
            "passive-check": {
               "default-state": "unknown",
               "passive": {
                  "down-count": 3,
                  "inactivity-timeout": 30,
                  "invalid-http ": {
                     "min": "500",
                     "max": "599"
                  }
               }
            }
         }
      }
   ]
}

Example Configuration Files