| 1 | ## Setup |
| 2 | |
| 3 | You can configure the `[[ entry.meta.kind ]]` secretstore in two ways: |
| 4 | |
| 5 | | Method | Best for | How to | |
| 6 | |:--|:--|:--| |
| 7 | | [**UI**](#via-ui) | Fast setup without editing files | Go to `Collectors -> go.d -> SecretStores -> [[ entry.meta.kind ]]`, then add a secretstore. | |
| 8 | | [**File**](#via-file) | File-based configuration or automation | Edit `/etc/netdata/[[ entry.setup.configuration.file.name ]]` and add a `jobs` entry. | |
| 9 | |
| 10 | ### Prerequisites |
| 11 | [% if entry.setup.prerequisites.list %] |
| 12 | |
| 13 | [% for prereq in entry.setup.prerequisites.list %] |
| 14 | #### [[ prereq.title ]] |
| 15 | |
| 16 | [[ prereq.description ]] |
| 17 | |
| 18 | [% endfor %] |
| 19 | [% else %] |
| 20 | |
| 21 | No action required. |
| 22 | |
| 23 | [% endif %] |
| 24 | ### Configuration |
| 25 | |
| 26 | #### Options |
| 27 | |
| 28 | [[ entry.setup.configuration.options.description ]] |
| 29 | |
| 30 | [% if entry.setup.configuration.options.list %] |
| 31 | [% if entry.setup.configuration.options.folding.enabled and not clean %] |
| 32 | {% details open=true summary="[[ entry.setup.configuration.options.folding.title or 'Config options' ]]" %} |
| 33 | [% endif %] |
| 34 | |
| 35 | [% set has_groups = entry.setup.configuration.options.list | selectattr("group","defined") | list | length > 0 %] |
| 36 | |
| 37 | [% if has_groups %] |
| 38 | | Group | Option | Description | Default | Required | |
| 39 | |:------|:-----|:------------|:--------|:---------:| |
| 40 | [% set ns = namespace(last_group=None) %] |
| 41 | [% for item in entry.setup.configuration.options.list %] |
| 42 | [% set anchor_source = (item.group ~ "-" ~ item.name) if (item.group is defined and item.group) else item.name %] |
| 43 | [% set item_anchor = "option-" ~ anchorfy(anchor_source) %] |
| 44 | | [[ ("**" ~ item.group ~ "**") if (item.group is defined and item.group != ns.last_group) else "" ]] | [[ ("[" ~ strfy(item.name) ~ "](#" ~ item_anchor ~ ")") if ('detailed_description' in item) else strfy(item.name) ]] | [[ strfy(item.description) ]] | [[ strfy(item.default_value) ]] | [[ strfy(item.required) ]] | |
| 45 | [% set ns.last_group = item.group if item.group is defined else ns.last_group %] |
| 46 | [% endfor %] |
| 47 | [% else %] |
| 48 | | Option | Description | Default | Required | |
| 49 | |:-----|:------------|:--------|:---------:| |
| 50 | [% for item in entry.setup.configuration.options.list %] |
| 51 | [% set anchor_source = (item.group ~ "-" ~ item.name) if (item.group is defined and item.group) else item.name %] |
| 52 | [% set item_anchor = "option-" ~ anchorfy(anchor_source) %] |
| 53 | | [[ ("[" ~ strfy(item.name) ~ "](#" ~ item_anchor ~ ")") if ('detailed_description' in item) else strfy(item.name) ]] | [[ strfy(item.description) ]] | [[ strfy(item.default_value) ]] | [[ strfy(item.required) ]] | |
| 54 | [% endfor %] |
| 55 | [% endif %] |
| 56 | |
| 57 | [% for item in entry.setup.configuration.options.list %] |
| 58 | [% if 'detailed_description' in item %] |
| 59 | [% set anchor_source = (item.group ~ "-" ~ item.name) if (item.group is defined and item.group) else item.name %] |
| 60 | <a id="[[ "option-" ~ anchorfy(anchor_source) ]]"></a> |
| 61 | ##### [[ item.name ]] |
| 62 | |
| 63 | [[ item.detailed_description ]] |
| 64 | |
| 65 | [% endif %] |
| 66 | [% endfor %] |
| 67 | |
| 68 | [% if entry.setup.configuration.options.folding.enabled and not clean %] |
| 69 | {% /details %} |
| 70 | [% endif %] |
| 71 | [% else %] |
| 72 | There are no configuration options. |
| 73 | |
| 74 | [% endif %] |
| 75 | |
| 76 | #### via UI |
| 77 | |
| 78 | 1. Open the Netdata Dynamic Configuration UI. |
| 79 | 2. Go to `Collectors -> go.d -> SecretStores -> [[ entry.meta.kind ]]`. |
| 80 | 3. Add a new secretstore and give it a store name. |
| 81 | 4. Fill in the backend-specific settings. |
| 82 | 5. Save the secretstore. |
| 83 | |
| 84 | #### via File |
| 85 | |
| 86 | Define the secretstore in `/etc/netdata/[[ entry.setup.configuration.file.name ]]`. |
| 87 | |
| 88 | Each file contains a `jobs` array, and the secretstore kind is determined by the filename. |
| 89 | |
| 90 | After editing the file, restart the Netdata Agent to load the updated secretstore definition. |
| 91 | |
| 92 | ##### Examples |
| 93 | [% if entry.setup.configuration.examples.list %] |
| 94 | |
| 95 | [% for example in entry.setup.configuration.examples.list %] |
| 96 | ###### [[ example.name ]] |
| 97 | |
| 98 | [[ example.description ]] |
| 99 | |
| 100 | [% if example.folding is defined and example.folding.enabled and not clean %] |
| 101 | {% details open=true summary="[[ entry.setup.configuration.examples.folding.title or 'Example configuration' ]]" %} |
| 102 | [% endif %] |
| 103 | ```yaml |
| 104 | [[ example.config ]] |
| 105 | ``` |
| 106 | [% if example.folding is defined and example.folding.enabled and not clean %] |
| 107 | {% /details %} |
| 108 | [% endif %] |
| 109 | [% endfor %] |
| 110 | [% else %] |
| 111 | There are no configuration examples. |
| 112 | |
| 113 | [% endif %] |