node

addr

required:    false
scopable:    true
default:     The ipaddr resolved for the nodename.

Example:

addr = 1.2.3.4

The addr to use to connect a peer. Use scoping to define each non-default address.

allowed_networks

required:    false
scopable:    false
default:     10.0.0.0/8 172.16.0.0/24 192.168.0.0/16
convert:     list

The list of cidr blocks the agents allows creation of backend network into.

Should be restricted to match your site constraints.

asset_env

required:    false
scopable:    false

Example:

asset_env = Production

An asset information to push to the collector on pushasset, overriding the currently stored value.

bios_version

required:    false
scopable:    false

Example:

bios_version = 1.025

Override for the corresponding pushasset discovery probe.

branch

required:    false
scopable:    false

Example:

branch = 1.9

Set the targeted opensvc agent branch.

The downloaded upgrades will honor that branch.

If not set, the repopkg imposes the target branch via the current link.

It is recommended to set branch when repopkg points to a repository you are not responsible for.

connect_to

required:    false
scopable:    false

Example:

connect_to = 1.2.3.4

An asset information pushed to the collector on pushasset.

If not set, the collector picks one of the node ip addresses inventoried on pushasset too.

On GCE instances, defaults to the instance ip address.

cpu_cores

required:    false
scopable:    false
convert:     int

Example:

cpu_cores = 2

Override for the corresponding pushasset discovery probe.

cpu_dies

required:    false
scopable:    false
convert:     int

Example:

cpu_dies = 1

Override for the corresponding pushasset discovery probe.

cpu_freq

required:    false
scopable:    false

Example:

cpu_freq = 3.2 Ghz

Override for the corresponding pushasset discovery probe.

cpu_model

required:    false
scopable:    false

Example:

cpu_model = Alpha EV5

Override for the corresponding pushasset discovery probe.

cpu_threads

required:    false
scopable:    false
convert:     int

Example:

cpu_threads = 4

Override for the corresponding pushasset discovery probe.

dbcompliance

required:    false
scopable:    false
default:     Same protocol, server and port as `dbopensvc`, but with a different path.

Example:

dbcompliance = https://collector.opensvc.com

Set the uri of the collector's main rpc server.

The path part of the uri can be left unspecified.

dbinsecure

required:    false
scopable:    false
convert:     bool

Set to true to disable the collector x509 certificate verification.

This should only be used for testing.

dblog

required:    false
scopable:    false
default:     true
convert:     bool

If true and dbopensvc is set, the objects action logs are reported to the collector.

Set to false to disable log reporting to the collector, even if dbopensvc is set.

dbopensvc

required:    false
scopable:    false

Example:

dbopensvc = https://collector.opensvc.com

Set the uri of the collector's feed rpc server.

The path part of the uri can be left unspecified.

If dbopensvc is not set, the agent does not try to communicate with a collector.

enclosure

required:    false
scopable:    false

Example:

enclosure = 1

Override for the corresponding pushasset discovery probe.

env

required:    false
scopable:    false
default:     TST

A code like PRD, DEV, etc... the agent can use to enforce data protection policies:

  • A non-PRD object instance can not be started on a PRD node
  • A PRD object instance can be started on a non-PRD node (typically in a DRP situation)

loc_addr

required:    false
scopable:    false

Example:

loc_addr = 7 rue blanche

An asset information to push to the collector on pushasset, overriding the currently stored value.

loc_building

required:    false
scopable:    false

Example:

loc_building = Crystal

An asset information to push to the collector on pushasset, overriding the currently stored value.

loc_city

required:    false
scopable:    false

Example:

loc_city = Paris

An asset information to push to the collector on pushasset, overriding the currently stored value.

loc_country

required:    false
scopable:    false

Example:

loc_country = fr

An asset information to push to the collector on pushasset, overriding the currently stored value.

loc_floor

required:    false
scopable:    false

Example:

loc_floor = 21

An asset information to push to the collector on pushasset, overriding the currently stored value.

loc_rack

required:    false
scopable:    false

Example:

loc_rack = R42

An asset information to push to the collector on pushasset, overriding the currently stored value.

loc_room

required:    false
scopable:    false

Example:

loc_room = 102

An asset information to push to the collector on pushasset, overriding the currently stored value.

loc_zip

required:    false
scopable:    false

Example:

loc_zip = 75017

An asset information to push to the collector on pushasset, overriding the currently stored value.

maintenance_grace_period

required:    false
scopable:    false
default:     60
convert:     duration

A duration expression, like 1m30s, defining how long the daemon keeps remote node data while it is known to be in maintenance.

The maintenance state is announced to peers at the beginning of a daemon stop and daemon restart, but not on daemon shutdown.

As long as the remote node data is kept, the local daemon won't takeover the instances running on the node in maintenance.

This parameter should be adjusted to span the daemon restart time.

manufacturer

required:    false
scopable:    false

Example:

manufacturer = Digital

Override for the corresponding pushasset discovery probe.

max_parallel

required:    false
scopable:    false
default:     10
convert:     int

Allow a maximum of max_parallel CRM commands to run simultaneously.

Applies to both:

  • om <selector> <action> commands.
  • commands executed by the daemon for orchestrations

mem_banks

required:    false
scopable:    false
convert:     int

Example:

mem_banks = 4

Override for the corresponding pushasset discovery probe.

mem_bytes

required:    false
scopable:    false
convert:     size

Example:

mem_bytes = 256mb

Override for the corresponding pushasset discovery probe.

mem_slots

required:    false
scopable:    false
convert:     int

Example:

mem_slots = 4

Override for the corresponding pushasset discovery probe.

min_avail_mem

required:    false
scopable:    false
default:     2%
convert:     size

The minimum required available memory to allow orchestration.

min_avail_swap

required:    false
scopable:    false
default:     10%
convert:     size

The minimum required available swap to allow orchestration.

model

required:    false
scopable:    false

Example:

model = ds20e

Override for the corresponding pushasset discovery probe.

oci

required:    false
scopable:    false

The default micro-container driver.

If not set, prefer podman if installed, else fallback to docker.

os_arch

required:    false
scopable:    false

Example:

os_arch = 5.1234

Override for the corresponding pushasset discovery probe.

os_kernel

required:    false
scopable:    false

Example:

os_kernel = 5.1234

Override for the corresponding pushasset discovery probe.

os_release

required:    false
scopable:    false

Example:

os_release = 5

Override for the corresponding pushasset discovery probe.

os_vendor

required:    false
scopable:    false

Example:

os_vendor = Digital

Override for the corresponding pushasset discovery probe.

prkey

required:    false
scopable:    false
default:     Autogenerated on first use.

The scsi3 persistent reservation key used by the pr resources.

ready_period

required:    false
scopable:    false
default:     5s
convert:     duration

A duration expression, like 10s, defining how long the daemon waits before starting a service instance in ready state.

A peer node can preempt the start during this period.

Usually set to allow at least a couple of heartbeats to be received.

rejoin_grace_period

required:    false
scopable:    false
default:     90s
convert:     duration

A duration expression, like 1m30s, defining how long a starting daemon waits in rejoin state.

The daemon normally exits the rejoin state when it has received a heartbeat from all its peer nodes.

During this phase, the orchestration is not allowed, to give a chance to place the services optimally when multiple daemon were restarted at the same time.

But if a peer stays down, the other daemons have to stop waiting at some point to let the service start, even if not on their natural placement leader.

This should be adjusted to:

2s + <longest reboot duration>

The worse case of multiple nodes reboot is when the longest reboot node is rebooted near the end of the reboot of the second longest rebooting node.

|==========>
    n1 reboot
                |--------------------|
                n1 rejoin_grace_period
                |================>
                n1 in rejoin state
                                  |=====================
                                  n1 in idle state
              |==================>
              n2 reboot
                                  |--------------------|
                                  n2 rejoin_grace_period
                                  |=====================
                                  n2 in idle state

As a consequence, to minimize the rejoin_grace_period, prefer fast boot nodes.

repo

required:    false
scopable:    false

Example:

repo = http://opensvc.repo.corp

Set the uri of the opensvc agent package repository and compliance modules gzipped tarball repository.

This parameter is used by the om node updatepkg and om node updatecomp commands.

Expected repository structure:

ROOT +- compliance |+- compliance-100.tar.gz |+- compliance-101.tar.gz |- current -> compliance-101.tar.gz +- packages +- deb +- depot +- pkg +- sunos-pkg +- rpms |+- current -> 2.0/current |+- 1.9 | +- current -> opensvc-1.9-50.rpm | +- opensvc-1.9-49.rpm | - opensvc-1.9-50.rpm |+- 2.0 | +- current -> opensvc-2.0-90.rpm | - opensvc-2.0-90.rpm - tbz

repocomp

required:    false
scopable:    false

Example:

repocomp = http://compliance.repo.corp

Set the uri of the opensvc compliance modules repository.

A gzipped tarball is expected to be found there by the om node updatecomp command.

Expected repository structure:

ROOT
+- compliance-100.tar.gz
+- compliance-101.tar.gz
`- current -> compliance-101.tar.gz

repopkg

required:    false
scopable:    false

Example:

repopkg = http://repo.opensvc.com

Set the uri of the opensvc agent package repository.

This parameter is used by the om node updatepkg command.

Expected repository structure:

ROOT +- deb +- depot +- pkg +- sunos-pkg +- rpms |+- current -> 2.0/current |+- 1.9 | +- current -> opensvc-1.9-50.rpm | +- opensvc-1.9-49.rpm | - opensvc-1.9-50.rpm |+- 2.0 | +- current -> opensvc-2.0-90.rpm | - opensvc-2.0-90.rpm `- tbz

ruser

required:    false
scopable:    false
default:     root

Example:

ruser = root opensvc@node1

Set the remote user to use to login to a remote node with ssh and rsync.

The remote user must have the privileges to run as root the following commands on the remote node:

  • om
  • rsync

The default ruser is root for all nodes.

ruser accepts a list of user[@node]. If @node is omitted, user is considered the new default user.

sec_zone

required:    false
scopable:    false

Example:

sec_zone = dmz1

An asset information to push to the collector on pushasset, overriding the currently stored value.

secure_fetch

required:    false
scopable:    false
default:     true
convert:     bool

If set to false, disable ssl authentication checks on all uri fetches.

serial

required:    false
scopable:    false

Example:

serial = abcdef0123456

Override for the corresponding pushasset discovery probe.

sp_version

required:    false
scopable:    false

Example:

sp_version = 1.026

Override for the corresponding pushasset discovery probe.

split_action

required:    false
scopable:    true
candidates:  crash, reboot, disabled
default:     crash

The node suicide method to use when a cluster split occurs and the node does not have the quorum.

This opting-out is meant to avoid double-start situations when the cluster is split.

Possible values are:

  • crash

    Default.

  • reboot

    May be preferred when the node power-on is not easy. No remote access via IPMI or equivalent for example.

  • disabled

    May be used for test or training only (it does nothing).

sshkey

required:    false
scopable:    false
default:     opensvc

The basename of the ssh public key served by the GET /node/name/:nodename/ssh/key. For example, the opensvc default value serves ~/.ssh/opensvc.pub.

team_integ

required:    false
scopable:    false

Example:

team_integ = TINT

An asset information to push to the collector on pushasset, overriding the currently stored value.

team_support

required:    false
scopable:    false

Example:

team_support = TSUP

An asset information to push to the collector on pushasset, overriding the currently stored value.

tz

required:    false
scopable:    false

Example:

tz = +0200

Override for the corresponding pushasset discovery probe.

uuid

required:    false
scopable:    false

The authentication token provided by the collector on om node register.