hybrid_platforms_conductor 32.12.0 → 32.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1103 -0
  3. data/LICENSE.md +31 -0
  4. data/README.md +395 -0
  5. data/bin/setup +1 -1
  6. data/docs/api.md +349 -0
  7. data/docs/config_dsl.md +315 -0
  8. data/docs/executables.md +226 -0
  9. data/docs/executables/check-node.md +155 -0
  10. data/docs/executables/deploy.md +198 -0
  11. data/docs/executables/dump_nodes_json.md +110 -0
  12. data/docs/executables/free_ips.md +93 -0
  13. data/docs/executables/free_veids.md +73 -0
  14. data/docs/executables/get_impacted_nodes.md +94 -0
  15. data/docs/executables/last_deploys.md +114 -0
  16. data/docs/executables/nodes_to_deploy.md +139 -0
  17. data/docs/executables/report.md +159 -0
  18. data/docs/executables/run.md +126 -0
  19. data/docs/executables/setup.md +92 -0
  20. data/docs/executables/ssh_config.md +151 -0
  21. data/docs/executables/test.md +213 -0
  22. data/docs/executables/topograph.md +139 -0
  23. data/docs/gen/mermaid/README.md-0.png +0 -0
  24. data/docs/gen/mermaid/docs/executables/check-node.md-0.png +0 -0
  25. data/docs/gen/mermaid/docs/executables/deploy.md-0.png +0 -0
  26. data/docs/gen/mermaid/docs/executables/free_ips.md-0.png +0 -0
  27. data/docs/gen/mermaid/docs/executables/free_veids.md-0.png +0 -0
  28. data/docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png +0 -0
  29. data/docs/gen/mermaid/docs/executables/last_deploys.md-0.png +0 -0
  30. data/docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png +0 -0
  31. data/docs/gen/mermaid/docs/executables/report.md-0.png +0 -0
  32. data/docs/gen/mermaid/docs/executables/run.md-0.png +0 -0
  33. data/docs/gen/mermaid/docs/executables/setup.md-0.png +0 -0
  34. data/docs/gen/mermaid/docs/executables/ssh_config.md-0.png +0 -0
  35. data/docs/gen/mermaid/docs/executables/test.md-0.png +0 -0
  36. data/docs/install.md +161 -0
  37. data/docs/plugins.md +215 -0
  38. data/docs/plugins/action/bash.md +37 -0
  39. data/docs/plugins/action/interactive.md +37 -0
  40. data/docs/plugins/action/remote_bash.md +67 -0
  41. data/docs/plugins/action/ruby.md +69 -0
  42. data/docs/plugins/action/scp.md +61 -0
  43. data/docs/plugins/cmdb/config.md +46 -0
  44. data/docs/plugins/cmdb/host_ip.md +33 -0
  45. data/docs/plugins/cmdb/host_keys.md +33 -0
  46. data/docs/plugins/cmdb/platform_handlers.md +33 -0
  47. data/docs/plugins/connector/local.md +28 -0
  48. data/docs/plugins/connector/ssh.md +95 -0
  49. data/docs/plugins/platform_handler/yaml_inventory.md +105 -0
  50. data/docs/plugins/provisioner/docker.md +27 -0
  51. data/docs/plugins/provisioner/podman.md +27 -0
  52. data/docs/plugins/provisioner/proxmox.md +115 -0
  53. data/docs/plugins/report/confluence.md +49 -0
  54. data/docs/plugins/report/mediawiki.md +28 -0
  55. data/docs/plugins/report/stdout.md +32 -0
  56. data/docs/plugins/test/bitbucket_conf.md +97 -0
  57. data/docs/plugins/test/can_be_checked.md +27 -0
  58. data/docs/plugins/test/check_deploy_and_idempotence.md +61 -0
  59. data/docs/plugins/test/check_from_scratch.md +28 -0
  60. data/docs/plugins/test/connection.md +27 -0
  61. data/docs/plugins/test/deploy_freshness.md +27 -0
  62. data/docs/plugins/test/deploy_from_scratch.md +28 -0
  63. data/docs/plugins/test/deploy_removes_root_access.md +29 -0
  64. data/docs/plugins/test/divergence.md +41 -0
  65. data/docs/plugins/test/executables.md +26 -0
  66. data/docs/plugins/test/file_system.md +49 -0
  67. data/docs/plugins/test/file_system_hdfs.md +65 -0
  68. data/docs/plugins/test/hostname.md +27 -0
  69. data/docs/plugins/test/idempotence.md +56 -0
  70. data/docs/plugins/test/ip.md +28 -0
  71. data/docs/plugins/test/jenkins_ci_conf.md +54 -0
  72. data/docs/plugins/test/jenkins_ci_masters_ok.md +54 -0
  73. data/docs/plugins/test/linear_strategy.md +26 -0
  74. data/docs/plugins/test/local_users.md +48 -0
  75. data/docs/plugins/test/mounts.md +55 -0
  76. data/docs/plugins/test/orphan_files.md +38 -0
  77. data/docs/plugins/test/ports.md +50 -0
  78. data/docs/plugins/test/private_ips.md +27 -0
  79. data/docs/plugins/test/public_ips.md +27 -0
  80. data/docs/plugins/test/spectre.md +26 -0
  81. data/docs/plugins/test/veids.md +27 -0
  82. data/docs/plugins/test/vulnerabilities.md +65 -0
  83. data/docs/plugins/test_report/confluence.md +43 -0
  84. data/docs/plugins/test_report/stdout.md +26 -0
  85. data/docs/plugins_create.md +135 -0
  86. data/docs/tutorial.md +57 -0
  87. data/docs/tutorial/01_installation.md +129 -0
  88. data/docs/tutorial/02_first_node.md +466 -0
  89. data/docs/tutorial/03_scale.md +876 -0
  90. data/docs/tutorial/04_test.md +965 -0
  91. data/docs/tutorial/05_extend_with_plugins.md +1132 -0
  92. data/examples/bare/Gemfile +4 -0
  93. data/examples/bare/hpc_config.rb +2 -0
  94. data/examples/localhost/Gemfile +4 -0
  95. data/examples/localhost/hpc_config.rb +2 -0
  96. data/examples/localhost/inventory.yaml +4 -0
  97. data/lib/hybrid_platforms_conductor/actions_executor.rb +1 -0
  98. data/lib/hybrid_platforms_conductor/deployer.rb +3 -2
  99. data/lib/hybrid_platforms_conductor/hpc_plugins/action/remote_bash.rb +29 -13
  100. data/lib/hybrid_platforms_conductor/hpc_plugins/action/scp.rb +1 -1
  101. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/local.rb +98 -0
  102. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/my_connector.rb.sample +2 -2
  103. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +7 -3
  104. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/platform_handler_plugin.rb.sample +5 -5
  105. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/yaml_inventory.rb +140 -0
  106. data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb +5 -2
  107. data/lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb +4 -4
  108. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +1 -1
  109. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +19 -17
  110. data/lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb +3 -0
  111. data/lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb +2 -1
  112. data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +2 -1
  113. data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +2 -1
  114. data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +4 -3
  115. data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +2 -1
  116. data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +1 -1
  117. data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +8 -7
  118. data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb +1 -1
  119. data/lib/hybrid_platforms_conductor/json_dumper.rb +1 -1
  120. data/lib/hybrid_platforms_conductor/platform_handler.rb +1 -1
  121. data/lib/hybrid_platforms_conductor/services_handler.rb +18 -16
  122. data/lib/hybrid_platforms_conductor/tests_runner.rb +0 -1
  123. data/lib/hybrid_platforms_conductor/topographer.rb +0 -1
  124. data/lib/hybrid_platforms_conductor/version.rb +1 -1
  125. data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +16 -0
  126. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/connectable_nodes_spec.rb +30 -0
  127. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/remote_actions_spec.rb +113 -0
  128. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb +6 -2
  129. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb +38 -1
  130. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb +8 -8
  131. data/spec/hybrid_platforms_conductor_test/docs_spec.rb +10 -0
  132. data/tools/check_md +89 -0
  133. data/tools/generate_mermaid +75 -0
  134. metadata +207 -12
@@ -0,0 +1,49 @@
1
+ # Report plugin: `confluence`
2
+
3
+ The `confluence` report plugin is publishing inventory information in a Confluence page.
4
+
5
+ ## Config DSL extension
6
+
7
+ ### `confluence`
8
+
9
+ Define a Confluence installation to be targeted.
10
+
11
+ It takes the following parameters:
12
+ * **url** (`String`): URL to the Confluence server
13
+ * **inventory_report_page_id** (`String` or `nil`): Confluence page id used for inventory reports, or nil if none [default: nil]
14
+
15
+ Example:
16
+ ```ruby
17
+ # Confluence configuration
18
+ confluence(
19
+ url: 'https://my_confluence.my_domain.com/confluence',
20
+ # Inventory report page ID
21
+ inventory_report_page_id: '12345678'
22
+ )
23
+ ```
24
+
25
+ ## Used credentials
26
+
27
+ | Credential | Usage
28
+ | --- | --- |
29
+ | `confluence` | Used to connect to the Confluence API |
30
+
31
+ ## Used Metadata
32
+
33
+ | Metadata | Type | Usage
34
+ | --- | --- | --- |
35
+ | `hostname` | `String` | The node's hostname |
36
+ | `host_ip` | `String` | The node's IP |
37
+ | `physical` | `Boolean` | Is the node a physical host? |
38
+ | `image` | `String` | OS image name associated to the node |
39
+ | `description` | `String` | Node's description |
40
+ | `services` | `Array<String>` | List of services present on the node |
41
+
42
+ ## Used environment variables
43
+
44
+ | Variable | Usage
45
+ | --- | --- |
46
+
47
+ ## External tools dependencies
48
+
49
+ None
@@ -0,0 +1,28 @@
1
+ # Report plugin: `mediawiki`
2
+
3
+ The `mediawiki` report plugin is generating inventory information in the format of a Mediawiki page.
4
+ It outputs the page on stdout. It is then meant to be copy/pasted in a Mediawiki page.
5
+
6
+ ## Config DSL extension
7
+
8
+ None
9
+
10
+ ## Used credentials
11
+
12
+ | Credential | Usage
13
+ | --- | --- |
14
+
15
+ ## Used Metadata
16
+
17
+ | Metadata | Type | Usage
18
+ | --- | --- | --- |
19
+ | * | Any | A lot of metadata is being used in this report. Check [the plugin's code](../../../lib/hybrid_platforms_conductor/hpc_plugins/report/mediawiki.rb) defining the metadata to be displayed. |
20
+
21
+ ## Used environment variables
22
+
23
+ | Variable | Usage
24
+ | --- | --- |
25
+
26
+ ## External tools dependencies
27
+
28
+ None
@@ -0,0 +1,32 @@
1
+ # Report plugin: `stdout`
2
+
3
+ The `stdout` report plugin is outputing inventory information on stdout.
4
+
5
+ ## Config DSL extension
6
+
7
+ None
8
+
9
+ ## Used credentials
10
+
11
+ | Credential | Usage
12
+ | --- | --- |
13
+
14
+ ## Used Metadata
15
+
16
+ | Metadata | Type | Usage
17
+ | --- | --- | --- |
18
+ | `hostname` | `String` | The node's hostname |
19
+ | `host_ip` | `String` | The node's IP |
20
+ | `physical` | `Boolean` | Is the node a physical host? |
21
+ | `image` | `String` | OS image name associated to the node |
22
+ | `description` | `String` | Node's description |
23
+ | `services` | `Array<String>` | List of services present on the node |
24
+
25
+ ## Used environment variables
26
+
27
+ | Variable | Usage
28
+ | --- | --- |
29
+
30
+ ## External tools dependencies
31
+
32
+ None
@@ -0,0 +1,97 @@
1
+ # Test plugin: `bitbucket_conf`
2
+
3
+ The `bitbucket_conf` test plugin is checking development workflow's configuration on Bitbucket instances.
4
+ It checks branch permissions, reviewers, branch strategies... are set correctly on repositories.
5
+
6
+ ## Config DSL extension
7
+
8
+ ### `bitbucket_repos`
9
+
10
+ Define a Bitbucket installation to be targeted.
11
+
12
+ It takes the following parameters:
13
+ * **url** (`String`): URL to the Bitbucket server
14
+ * **project** (`String`): Project name from the Bitbucket server, storing repositories
15
+ * **repos** (`Array<String>` or `Symbol`): List of repository names from this project, or :all for all [default: :all]
16
+ * **checks** (`Hash<Symbol, Object>`): Checks definition to be perform on those repositories [default: {}]
17
+ * **branch_permissions** (`Array< Hash<Symbol, Object> >`): List of branch permissions to check [optional]
18
+ * **type** (`String`): Type of branch permissions to check. Examples of values are 'fast-forward-only', 'no-deletes', 'pull-request-only'.
19
+ * **branch** (`String`): Branch on which those permissions apply.
20
+ * **exempted_users** (`Array<String>`): List of exempted users for this permission [default: []]
21
+ * **exempted_groups** (`Array<String>`): List of exempted groups for this permission [default: []]
22
+ * **exempted_keys** (`Array<String>`): List of exempted access keys for this permission [default: []]
23
+ * **pr_settings** (`Hash<Symbol, Object>`): PR specific settings to check [optional]
24
+ * **required_approvers** (`Integer`): Number of required approvers [optional]
25
+ * **required_builds** (`Integer`): Number of required successful builds [optional]
26
+ * **default_merge_strategy** (`String`): Name of the default merge strategy. Example: 'rebase-no-ff' [optional]
27
+ * **mandatory_default_reviewers** (`Array<String>`): List of mandatory reviewers to check [default: []]
28
+
29
+ Example:
30
+ ```ruby
31
+ bitbucket_repos(
32
+ # Bitbucket root URL
33
+ url: 'https://my_bitbucket.my_domain.com/git',
34
+ # Bitbucket's project containing repositories
35
+ project: 'PRJ',
36
+ # List of repositories to check
37
+ repos: [
38
+ 'my-platform-repo',
39
+ 'my-chef-repo',
40
+ 'my-hpc-plugins'
41
+ ],
42
+ checks: {
43
+ # master should be protected expect for the ci-adm user
44
+ branch_permissions: [
45
+ {
46
+ type: 'fast-forward-only',
47
+ branch: 'master',
48
+ exempted_users: ['ci-adm']
49
+ },
50
+ {
51
+ type: 'no-deletes',
52
+ branch: 'master'
53
+ },
54
+ {
55
+ type: 'pull-request-only',
56
+ branch: 'master',
57
+ exempted_users: ['ci-adm']
58
+ }
59
+ ],
60
+ # Pull requests settings
61
+ pr_settings: {
62
+ # Need 2 min approvers and 1 successful build before merge
63
+ required_approvers: 2,
64
+ required_builds: 1,
65
+ # We rebase and merge explicitely
66
+ default_merge_strategy: 'rebase-no-ff',
67
+ # List of reviewers
68
+ mandatory_default_reviewers: %w[
69
+ johndoe
70
+ mariavega
71
+ janedid
72
+ martinsmith
73
+ ]
74
+ }
75
+ }
76
+ )
77
+ ```
78
+
79
+ ## Used credentials
80
+
81
+ | Credential | Usage
82
+ | --- | --- |
83
+ | `bitbucket` | Used to connect to the Bitbucket API |
84
+
85
+ ## Used Metadata
86
+
87
+ | Metadata | Type | Usage
88
+ | --- | --- | --- |
89
+
90
+ ## Used environment variables
91
+
92
+ | Variable | Usage
93
+ | --- | --- |
94
+
95
+ ## External tools dependencies
96
+
97
+ None
@@ -0,0 +1,27 @@
1
+ # Test plugin: `can_be_checked`
2
+
3
+ The `can_be_checked` test plugin makes sure a node can be checked.
4
+ This means that the services can be deployed in check mode (or dry run) without error.
5
+
6
+ ## Config DSL extension
7
+
8
+ None
9
+
10
+ ## Used credentials
11
+
12
+ | Credential | Usage
13
+ | --- | --- |
14
+
15
+ ## Used Metadata
16
+
17
+ | Metadata | Type | Usage
18
+ | --- | --- | --- |
19
+
20
+ ## Used environment variables
21
+
22
+ | Variable | Usage
23
+ | --- | --- |
24
+
25
+ ## External tools dependencies
26
+
27
+ None
@@ -0,0 +1,61 @@
1
+ # Test plugin: `check_deploy_and_idempotence`
2
+
3
+ The `check_deploy_and_idempotence` test plugin groups several checks on test-provisioned nodes:
4
+ * It checks that a node can be checked when provisioned from scratch.
5
+ * It checks that a node can be deployed when provisioned from scratch.
6
+ * It checks that `root` account has no more access after deployment.
7
+ * It checks that a node can be checked successfully after being deployed, and that tasks are not reporting any divergence (idempotence testing).
8
+
9
+ Only 1 node per combination of services will be tested by this test plugin, as the goal is to validate the configuration recipes/playbooks by deploying on newly-provisioned nodes for test, and not on the real nodes.
10
+
11
+ ## Config DSL extension
12
+
13
+ ### `ignore_idempotence_tasks`
14
+
15
+ `ignore_idempotence_tasks` defines a list of tasks that may not be idempotent during tests (meaning that checking after deploying return differences for those tasks). In such cases, those tasks will not be reported as errors by the idempotence tests.
16
+
17
+ It takes a `Hash<String, String>` as a parameter, as a set of `<task_name>` => `<descriptive_reason_for_ignore>`.
18
+
19
+ Example:
20
+ ```ruby
21
+ ignore_idempotence_tasks({
22
+ 'DNS - Create config' => '/etc/resolv.conf can\'t be changed in Docker test nodes, so checking always report it as different'
23
+ })
24
+
25
+ ```
26
+
27
+ ### `ignore_divergent_tasks`
28
+
29
+ `ignore_divergent_tasks` defines a list of tasks that may be divergent (meaning that checking nodes can return differences for those tasks). In such cases, those tasks will not be reported as errors by the idempotence or divergence tests.
30
+
31
+ It takes a `Hash<String, String>` as a parameter, as a set of `<task_name>` => `<descriptive_reason_for_ignore>`.
32
+
33
+ Example:
34
+ ```ruby
35
+ for_nodes('scheduler_node') do
36
+ ignore_divergent_tasks({
37
+ 'Jenkins - Create config' => 'Config file is reindented by Jenkins, so always appears different',
38
+ 'Jenkins - Restart' => 'Jenkins is always restarted as config file is different when deploying'
39
+ })
40
+ end
41
+ ```
42
+
43
+ ## Used credentials
44
+
45
+ | Credential | Usage
46
+ | --- | --- |
47
+
48
+ ## Used Metadata
49
+
50
+ | Metadata | Type | Usage
51
+ | --- | --- | --- |
52
+ | `root_access_allowed` | `String` | If set to `true`, then skip the test for `root` access being disabled after deployment |
53
+
54
+ ## Used environment variables
55
+
56
+ | Variable | Usage
57
+ | --- | --- |
58
+
59
+ ## External tools dependencies
60
+
61
+ None
@@ -0,0 +1,28 @@
1
+ # Test plugin: `check_from_scratch`
2
+
3
+ The `check_from_scratch` test plugin checks that a node can be checked when provisioned from scratch.
4
+
5
+ Only 1 node per combination of services will be tested by this test plugin, as the goal is to validate the configuration recipes/playbooks by deploying on newly-provisioned nodes for test, and not on the real nodes.
6
+
7
+ ## Config DSL extension
8
+
9
+ None
10
+
11
+ ## Used credentials
12
+
13
+ | Credential | Usage
14
+ | --- | --- |
15
+
16
+ ## Used Metadata
17
+
18
+ | Metadata | Type | Usage
19
+ | --- | --- | --- |
20
+
21
+ ## Used environment variables
22
+
23
+ | Variable | Usage
24
+ | --- | --- |
25
+
26
+ ## External tools dependencies
27
+
28
+ None
@@ -0,0 +1,27 @@
1
+ # Test plugin: `connection`
2
+
3
+ The `connection` test plugin checks that a node is connectable.
4
+ It does so by running a [`remote_bash`](../action/remote_bash.md) action on the node.
5
+
6
+ ## Config DSL extension
7
+
8
+ None
9
+
10
+ ## Used credentials
11
+
12
+ | Credential | Usage
13
+ | --- | --- |
14
+
15
+ ## Used Metadata
16
+
17
+ | Metadata | Type | Usage
18
+ | --- | --- | --- |
19
+
20
+ ## Used environment variables
21
+
22
+ | Variable | Usage
23
+ | --- | --- |
24
+
25
+ ## External tools dependencies
26
+
27
+ None
@@ -0,0 +1,27 @@
1
+ # Test plugin: `deploy_freshness`
2
+
3
+ The `deploy_freshness` test plugin checks that a node has been deployed recently.
4
+ This test can detect issues in your CD or infra-provisioning processes: a node that has not be deployed/updated/refreshed after 3 months will be reported in error.
5
+
6
+ ## Config DSL extension
7
+
8
+ None
9
+
10
+ ## Used credentials
11
+
12
+ | Credential | Usage
13
+ | --- | --- |
14
+
15
+ ## Used Metadata
16
+
17
+ | Metadata | Type | Usage
18
+ | --- | --- | --- |
19
+
20
+ ## Used environment variables
21
+
22
+ | Variable | Usage
23
+ | --- | --- |
24
+
25
+ ## External tools dependencies
26
+
27
+ None
@@ -0,0 +1,28 @@
1
+ # Test plugin: `deploy_from_scratch`
2
+
3
+ The `deploy_from_scratch` test plugin checks that a node can be deployed when provisioned from scratch.
4
+
5
+ Only 1 node per combination of services will be tested by this test plugin, as the goal is to validate the configuration recipes/playbooks by deploying on newly-provisioned nodes for test, and not on the real nodes.
6
+
7
+ ## Config DSL extension
8
+
9
+ None
10
+
11
+ ## Used credentials
12
+
13
+ | Credential | Usage
14
+ | --- | --- |
15
+
16
+ ## Used Metadata
17
+
18
+ | Metadata | Type | Usage
19
+ | --- | --- | --- |
20
+
21
+ ## Used environment variables
22
+
23
+ | Variable | Usage
24
+ | --- | --- |
25
+
26
+ ## External tools dependencies
27
+
28
+ None
@@ -0,0 +1,29 @@
1
+ # Test plugin: `deploy_removes_root_access`
2
+
3
+ The `deploy_removes_root_access` test plugin checks that a node that has been deployed from scratch does not have `root` access anymore.
4
+
5
+ Only 1 node per combination of services will be tested by this test plugin, as the goal is to validate the configuration recipes/playbooks by deploying on newly-provisioned nodes for test, and not on the real nodes.
6
+
7
+ ## Config DSL extension
8
+
9
+ None
10
+
11
+ ## Used credentials
12
+
13
+ | Credential | Usage
14
+ | --- | --- |
15
+
16
+ ## Used Metadata
17
+
18
+ | Metadata | Type | Usage
19
+ | --- | --- | --- |
20
+ | `root_access_allowed` | `String` | If set to `true`, then skip this test |
21
+
22
+ ## Used environment variables
23
+
24
+ | Variable | Usage
25
+ | --- | --- |
26
+
27
+ ## External tools dependencies
28
+
29
+ None