Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Driver listener

Supported keywords:

  • acme_port
  • addr
  • comment
  • crl
  • dns_sock_gid
  • dns_sock_uid
  • openid_client_id
  • openid_issuer
  • port
  • throttle_burst
  • throttle_expires
  • throttle_rate
  • tls_secs
  • ux_owner_group

Keyword acme_port

required:    false
scopable:    false
since:       v3.0.0-rc44
convert:     int
rbac:        This driver group requires the root grant.

Example:

acme_port=80

Description:

The port of the node the listener answers http-01 ACME challenges on, in plain http, usually 80: the port an ACME directory reads them from. No challenge is answered when empty.

The listener answers only /.well-known/acme-challenge/<token>, from the tokens a renewal of a sec of listener.tls_secs stores in that sec, and every node answers them, so the names of the certificate may resolve to any node of the cluster.

Keyword addr

required:    false
scopable:    true
aliases:     tls_addr
rbac:        This driver group requires the root grant.

Example:

addr=1.2.3.4

Description:

The ip addr the daemon tls listener must listen on.

Keyword comment

required:    false
scopable:    false
rbac:        This driver group requires the root grant.

Description:

A free form text describing the role of the object, of the node, or of the section it is set in.

The keyword is accepted in any section, so the DEFAULT section can document a configuration as a whole, and a resource, pool, heartbeat, array or network section can document itself.

The agent does not interpret the value.

Keyword crl

required:    false
scopable:    false
default:     /var/lib/opensvc/certs/ca_crl
rbac:        This driver group requires the root grant.

Example:

crl=https://crl.opensvc.com

Description:

The URL serving the certificate revocation list.

The default points to the path of the cluster CA CRL in {var}/certs/ca_crl.

Keyword dns_sock_gid

required:    false
scopable:    false
default:     953
rbac:        This driver group requires the root grant.

Description:

The gid owning the unix socket serving the remote backend to the pdns authoritative server.

Keyword dns_sock_uid

required:    false
scopable:    false
default:     953
rbac:        This driver group requires the root grant.

Description:

The uid owning the unix socket serving the remote backend to the pdns authoritative server.

Keyword openid_client_id

required:    false
scopable:    false
default:     om3
rbac:        This driver group requires the root grant.

Description:

The openid client id used by om3-webapp.

Keyword openid_issuer

required:    false
scopable:    false
aliases:     openid_authority
rbac:        This driver group requires the root grant.

Example:

openid_issuer=https://keycloak.opensvc.com/auth/realms/clusters

Description:

The base URL of the identity issuer aka provider. It is used to detect the metadata location: openid_issuer/.well-known/openid-configuration.

If set, the http listener will try to validate the Bearer token provided in the requests headers.

If the token is valid,

  • the user name is fetched from the preferred_username claim (fallback on name)

  • the user grant list is obtained by joining the multiple entitlements claims.

The keyword was named openid_authority, and that name is still accepted.

It replaced openid_well_known, which is not accepted anymore. openid_well_known was the metadata endpoint itself, where openid_issuer is the base URL that endpoint is derived from.

Keyword port

required:    false
scopable:    true
aliases:     tls_port
default:     1215
convert:     int
rbac:        This driver group requires the root grant.

Description:

The port the daemon tls listener must listen on.

In pull action mode, the collector post request to notify there are actions to unqueue. The opensvc daemon executes the dequeue actions node action upon receive.

The listener.port value is sent to the collector on om node push asset.

Keyword throttle_burst

required:    false
scopable:    true
aliases:     rate_limiter_burst
default:     100
convert:     int
rbac:        This driver group requires the root grant.

Description:

The maximum number of inet listener requests to pass at the same moment. It additionally allows a number of requests to pass when rate limit is reached.

Keyword throttle_expires

required:    false
scopable:    true
aliases:     rate_limiter_expires
default:     60s
convert:     duration
rbac:        This driver group requires the root grant.

Description:

The duration after that a inet listener rate limiter is cleaned up.

Keyword throttle_rate

required:    false
scopable:    true
aliases:     rate_limiter_rate
default:     20
convert:     int
rbac:        This driver group requires the root grant.

Description:

The rate of inet listener requests allowed to pass per seconds.

Keyword tls_secs

required:    false
scopable:    false
since:       v3.0.0-rc44
convert:     list
rbac:        This driver group requires the root grant.

Example:

tls_secs=system/sec/public

Description:

The secs whose certificates the listener presents, besides the certificate of system/sec/cert, to the clients asking one of their names: a name of the cluster published on the internet, as the name of its virtual address, can have a certificate browsers trust, from an ACME directory, while the nodes keep reaching each other by their names, which only the cluster ca certifies.

A sec is named by its path, as system/sec/public, or by its name in the system namespace. A client asking a name no listed certificate has gets the certificate of system/sec/cert.

A certificate renewed is presented from the next connection, on every node. om <sec> certificate renew obtains the certificate of a listed sec through the listener, which serves the http-01 challenge on listener.acme_port.

Keyword ux_owner_group

required:    false
scopable:    false
default:     opensvc
rbac:        This driver group requires the root grant.

Example:

ux_owner_group=osvc-users

Description:

The group owning the user socket, /run/opensvc-ux/http.sock, which its members connect to the api through as themselves, with no token: the daemon reads who they are from the connection, and grants them what the [uxgroup#<group>] sections and the uxuser keyword of the usr objects say.

The socket is mode 0660 and its directory 0750, both owned by root and this group. A group the node does not know serves no socket, and the daemon logs why. Set it empty to serve none: a socket served is closed at once, with the connections open through it, as it is when set to a group the node does not know. Changed to another group, the socket is given to it and the connections open through it are closed, so the members of the former group lose the api at once. A group set on a node serving no socket is served from the next daemon start.

The root user of the node is not root through this socket: it uses the root socket.