Skip to main content

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:

  1. 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.

  2. 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"

  3. 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"

  4. 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"
        }
    }
    
  5. 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>
    
  6. 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:

More information

Thank you for your feedback!

×