Node agent for enforcing node configurations and forwarding events
There is currently no prepared SystemD service file or anything, it is in development stage.
You can build cc-node-controller
with make
.
A fundamental part of cc-node-controller
is its connection to LIKWID's sysfeatures component. The
component allows changing CPU frequencies, setting powercaps and other manipulation of system features.
The sysfeatures component is still in experimental stage in LIKWID, so LIKWID needs to be compiled
with special build options to include the sysfeatures component.
$ git clone <likwid repo>
$ cd likwid
$ vi config.mk
# - change PREFIX if needed
# - enable sysfeatures component by setting BUILD_SYSFEATURES=true
$ make
$ sudo make install
The main configuration file is config.json
.
{
"hostname" : "<listen_ip>",
"port" : <listen_port, commonly 4222>,
"input_subject_prefix" : "<input prefix>",
"input_subject": "<input subject>",
"output_subject_prefix" : "<output prefix>",
"output_subject": "<input subject>"
}
You can either use the input_subject
/output_subject
options to set the acutal subject or use the input_subject_prefix
/output_subject_prefix
options which will be extended by the hostname of the local node: <output_subject_prefix>/<hostname>
The cc-node-controller
itself does not do anything on its own, it waits for control messages
to perform any manipulation. The control messages are received through NATS, so a NATS server
should be running somewhere.
Make sure the LIKWID library with sysfeatures component is in LD_LIBRARY_PATH
.
Make also sure, that it is the only LIKWID library that can be used.
$ ./cc-node-controller (-config <configfile>) (-debug) (-log <logfile>)
Default configuration file is ./config.json
.