Manage skill override settings
A skill’s settings are defined by either a skill’s global default settings or its override settings.
The Courier Runner and Gohai skill definitions have a content
key with a base64-encoded TOML string as its value.
The TOML string is a skill settings template with Handlebars expressions for each setting value.
When the Node Management agent runs, it assigns values for each setting from the skill’s global default settings or its override settings.
- global default settings
- Apply to all nodes. You can override them with override settings.
- override settings
- Apply to all nodes in a node cohort and take precedence over global default settings.
Role requirements
To create or modify skill override settings, you must use a profile with the node-manager
role.
Default override settings
When you create an organization with default node management settings, Chef 360 Platform includes the following override settings for the Courier Runner and Gohai skills:
{
"name":"sample-node-setting",
"skills":[
{
"skillName":"chef-gohai",
"settings":[
{
"name":"log_level",
"value":"info"
},
{
"name":"log_file_path",
"value":"/hab/svc/chef-gohai/logs/logs.log"
},
{
"name":"log_to_file",
"value": true
},
{
"name":"log_to_stdout",
"value": false
},
{
"name":"poll_interval",
"value":"3600s"
},
{
"name":"max_size",
"value":"100MB"
},
{
"name":"retention_days",
"value":"7"
},
{
"name":"is_log_retention",
"value":"true"
}
]
},
{
"skillName":"courier-runner",
"settings":[
{
"name":"credentials_api_key",
"value":""
},
{
"name":"credentials_api_secret",
"value":""
},
{
"name":"shell_interpreter",
"value":"chef-platform/shell-interpreter"
},
{
"name":"restart_interpreter",
"value":"chef-platform/restart-interpreter"
},
{
"name":"inspec_interpreter",
"value":"chef-platform/inspec-interpreter"
},
{
"name":"chef_client_interpreter",
"value":"chef-platform/chef-client-interpreter"
},
{
"name":"log_dir",
"value":"/hab/svc/courier-runner/logs"
},
{
"name":"log_format",
"value":"json"
},
{
"name":"log_level",
"value":"debug"
},
{
"name":"log_output",
"value":"file"
},
{
"name":"max_size",
"value":"100MB"
},
{
"name":"retention_days",
"value":"7"
},
{
"name":"is_log_retention",
"value":"true"
},
{
"name":"queue_provider",
"value":"0"
},
{
"name":"reporter_authentication_type",
"value":"basic"
},
{
"name":"reporter_dir",
"value":"/hab/svc/courier-runner/data"
},
{
"name":"reporter_host_url",
"value":""
},
{
"name":"reporter_interval_in_sec",
"value":"3"
},
{
"name":"reporter_name",
"value":"server"
},
{
"name":"reporter_retry_interval_in_sec",
"value":"4"
},
{
"name":"reporter_total_retry_duration_in_min",
"value":"2"
}
]
}
]
}
Create override settings
To create a set of override settings, follow these steps:
Create a JSON file that defines the skill settings:
{ "name":"sample-node-setting", "skills":[ { "skillName":"chef-gohai", "settings":[ { "name":"log_level", "value":"info" }, { "name":"log_file_path", "value":"/hab/svc/chef-gohai/logs/logs.log" }, { "name":"log_to_file", "value": true }, { "name":"log_to_stdout", "value": false }, { "name":"poll_interval", "value":"3600s" }, { "name":"max_size", "value":"100MB" }, { "name":"retention_days", "value":"7" }, { "name":"is_log_retention", "value":"true" } ] }, { "skillName":"courier-runner", "settings":[ { "name":"credentials_api_key", "value":"" }, { "name":"credentials_api_secret", "value":"" }, { "name":"shell_interpreter", "value":"chef-platform/shell-interpreter" }, { "name":"restart_interpreter", "value":"chef-platform/restart-interpreter" }, { "name":"inspec_interpreter", "value":"chef-platform/inspec-interpreter" }, { "name":"chef_client_interpreter", "value":"chef-platform/chef-client-interpreter" }, { "name":"log_dir", "value":"/hab/svc/courier-runner/logs" }, { "name":"log_format", "value":"json" }, { "name":"log_level", "value":"debug" }, { "name":"log_output", "value":"file" }, { "name":"max_size", "value":"100MB" }, { "name":"retention_days", "value":"7" }, { "name":"is_log_retention", "value":"true" }, { "name":"queue_provider", "value":"0" }, { "name":"reporter_authentication_type", "value":"basic" }, { "name":"reporter_dir", "value":"/hab/svc/courier-runner/data" }, { "name":"reporter_host_url", "value":"" }, { "name":"reporter_interval_in_sec", "value":"3" }, { "name":"reporter_name", "value":"server" }, { "name":"reporter_retry_interval_in_sec", "value":"4" }, { "name":"reporter_total_retry_duration_in_min", "value":"2" } ] } ] }
This file defines settings for the Gohai and Courier Runner skills and defines interpreters that the Courier Runner can invoke when running Courier jobs.
Update the JSON file using the following Gohai skill property descriptions:
log_level
- Sets the logging verbosity level.
Default:
"info"
Valid values:
"debug"
,"info"
,"warn"
,"error"
log_file_path
- Specifies the file path where Gohai writes logs when
"log_to_file"
is enabled.Default:
"/hab/svc/chef-gohai/logs/logs.log"
log_to_file
- Controls whether Gohai writes log messages to a log file.
Default:
true
log_to_stdout
- Controls whether Gohai writes log messages to standard output (console).
Default:
false
poll_interval
- Specifies how frequently Gohai collects and sends system data to Chef 360 Platform.
Default:
"1800s"
(30 minutes)Supported units:
s
(seconds),m
(minutes),h
(hours)Examples:
"1s"
- Send data every 1 second"5m"
- Send data every 5 minutes"1h"
- Send data every 1 hour
max_size
- Maximum size limit for individual log files before rotation.
Default:
"100MB"
retention_days
- Number of days to retain log files before deletion.
Default:
"7"
is_log_retention
- Enables or disables automatic log file retention and cleanup.
Default:
"true"
Update the JSON file using the following Courier Runner property descriptions:
The default Courier Runner override settings includes the following interpreters:
- Shell Interpreter
- Restart Interpreter
- InSpec Interpreter
- Chef Infra Client Interpreter
To add more interpreters, use the following format:
{ "name":"<SKILL_NAME>", "value":"<HABITAT_ORIGIN>/<HABITAT_PACKAGE>" },
log_dir
- Directory where log files are stored.
Default value:
"/hab/svc/courier-runner/logs"
log_format
- Log format
Default value:
"json"
log_level
- Logging level (
"debug"
,"info"
,"warn"
,"error"
)Default value:
"info"
log_output
- Where logs are written (
"std"
for standard output, or"file"
for file paths).Default value:
"file"
queue_provider
- Queue identifier.
Default value:
"0"
reporter_authentication_type
- Reporter authentication method.
Default value:
"basic"
reporter_dir
- Working directory for reporter operations.
Default value:
"/hab/svc/courier-runner/data"
reporter_interval_in_sec
- How often (in seconds) to send reports.
Default value:
"5"
reporter_name
- The name of the reporter that logs are sent to.
Default value:
"server"
for Chef 360 Platform reporter_retry_interval_in_sec
- Wait time between retry attempts.
Default value:
"4"
reporter_total_retry_duration_in_min
- Maximum time to keep retrying failed reports in minutes.
Default value:
"2"
max_size
- Maximum size limit for individual log files before rotation.
Default:
"100MB"
retention_days
- Number of days to retain log files before deletion.
Default:
"7"
is_log_retention
- Enables or disables automatic log file retention and cleanup.
Default:
"true"
Create the override settings:
chef-node-management-cli management setting create-setting \ --body-file <PATH_TO_JSON_FILE> \ --profile <NODE_MANAGER_PROFILE_NAME>
The response is similar to the following:
{ "item": { "settingId": "31e1b6f2-3044-49f9-96b9-335672c140b7" } }
Optional: Verify that Chef 360 Platform created the setting with the
find-one-setting
command:chef-node-management-cli management setting find-one-setting \ --settingId <SETTING_ID> \ --profile <NODE_MANAGER_PROFILE_NAME>
Optional: After you’ve created the override settings, you have to assign them to a node cohort before the settings are added to nodes in a cohort. To add these settings to a cohort, use the
cohort assign-setting
command:chef-node-management-cli management cohort assign-setting \ --settingId <settingId> \ --cohortId <COHORT_ID> \ --profile <NODE_MANAGER_PROFILE_NAME>
Update override settings
If you want to update your override settings, do so by updating one skill at a time. To update these settings, see the following skill settings documentation: