hybrid_platforms_conductor 32.16.2 → 32.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +48 -0
  3. data/README.md +3 -0
  4. data/bin/last_deploys +4 -1
  5. data/bin/nodes_to_deploy +5 -5
  6. data/docs/config_dsl.md +22 -0
  7. data/docs/gen/mermaid/README.md-0.png +0 -0
  8. data/docs/gen/mermaid/docs/executables/check-node.md-0.png +0 -0
  9. data/docs/gen/mermaid/docs/executables/deploy.md-0.png +0 -0
  10. data/docs/gen/mermaid/docs/executables/free_ips.md-0.png +0 -0
  11. data/docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png +0 -0
  12. data/docs/gen/mermaid/docs/executables/last_deploys.md-0.png +0 -0
  13. data/docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png +0 -0
  14. data/docs/gen/mermaid/docs/executables/report.md-0.png +0 -0
  15. data/docs/gen/mermaid/docs/executables/run.md-0.png +0 -0
  16. data/docs/gen/mermaid/docs/executables/ssh_config.md-0.png +0 -0
  17. data/docs/gen/mermaid/docs/executables/test.md-0.png +0 -0
  18. data/docs/plugins.md +26 -0
  19. data/docs/plugins/connector/ssh.md +1 -1
  20. data/docs/plugins/log/remote_fs.md +26 -0
  21. data/docs/plugins/test/bitbucket_conf.md +1 -1
  22. data/docs/plugins/test/check_deploy_and_idempotence.md +1 -1
  23. data/docs/plugins/test/connection.md +1 -0
  24. data/docs/plugins/test/deploy_removes_root_access.md +1 -1
  25. data/docs/plugins/test/file_system.md +1 -0
  26. data/docs/plugins/test/github_ci.md +48 -0
  27. data/docs/plugins/test/hostname.md +1 -0
  28. data/docs/plugins/test/ip.md +1 -0
  29. data/docs/plugins/test/jenkins_ci_conf.md +1 -1
  30. data/docs/plugins/test/jenkins_ci_masters_ok.md +1 -1
  31. data/docs/plugins/test/local_users.md +1 -0
  32. data/docs/plugins/test/mounts.md +1 -0
  33. data/docs/plugins/test/orphan_files.md +1 -0
  34. data/docs/plugins/test/ports.md +1 -0
  35. data/docs/plugins/test/spectre.md +1 -0
  36. data/docs/plugins/test/vulnerabilities.md +1 -0
  37. data/lib/hybrid_platforms_conductor/actions_executor.rb +8 -1
  38. data/lib/hybrid_platforms_conductor/common_config_dsl/github.rb +62 -0
  39. data/lib/hybrid_platforms_conductor/deployer.rb +97 -105
  40. data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +3 -3
  41. data/lib/hybrid_platforms_conductor/hpc_plugins/log/my_log_plugin.rb.sample +100 -0
  42. data/lib/hybrid_platforms_conductor/hpc_plugins/log/remote_fs.rb +179 -0
  43. data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef.rb +2 -2
  44. data/lib/hybrid_platforms_conductor/hpc_plugins/test/check_deploy_and_idempotence.rb +1 -1
  45. data/lib/hybrid_platforms_conductor/hpc_plugins/test/connection.rb +3 -1
  46. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +7 -20
  47. data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +1 -1
  48. data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system.rb +2 -1
  49. data/lib/hybrid_platforms_conductor/hpc_plugins/test/github_ci.rb +32 -0
  50. data/lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb +3 -1
  51. data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +3 -1
  52. data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +3 -1
  53. data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +3 -1
  54. data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +3 -1
  55. data/lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb +3 -1
  56. data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +3 -1
  57. data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +2 -1
  58. data/lib/hybrid_platforms_conductor/log.rb +31 -0
  59. data/lib/hybrid_platforms_conductor/test_only_remote_node.rb +18 -0
  60. data/lib/hybrid_platforms_conductor/version.rb +1 -1
  61. data/spec/hybrid_platforms_conductor_test.rb +22 -6
  62. data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb +3 -3
  63. data/spec/hybrid_platforms_conductor_test/api/deployer/config_dsl_spec.rb +24 -4
  64. data/spec/hybrid_platforms_conductor_test/api/deployer/deploy_spec.rb +187 -212
  65. data/spec/hybrid_platforms_conductor_test/api/deployer/log_plugins/remote_fs_spec.rb +223 -0
  66. data/spec/hybrid_platforms_conductor_test/api/deployer/provisioner_spec.rb +4 -4
  67. data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/packaging_spec.rb +2 -2
  68. data/spec/hybrid_platforms_conductor_test/api/tests_runner/global_spec.rb +1 -1
  69. data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/github_ci_spec.rb +72 -0
  70. data/spec/hybrid_platforms_conductor_test/executables/last_deploys_spec.rb +146 -98
  71. data/spec/hybrid_platforms_conductor_test/executables/nodes_to_deploy_spec.rb +240 -83
  72. data/spec/hybrid_platforms_conductor_test/executables/options/common_spec.rb +2 -1
  73. data/spec/hybrid_platforms_conductor_test/helpers/connector_ssh_helpers.rb +1 -1
  74. data/spec/hybrid_platforms_conductor_test/helpers/deployer_helpers.rb +40 -53
  75. data/spec/hybrid_platforms_conductor_test/helpers/deployer_test_helpers.rb +2 -2
  76. data/spec/hybrid_platforms_conductor_test/test_log_no_read_plugin.rb +82 -0
  77. data/spec/hybrid_platforms_conductor_test/test_log_plugin.rb +103 -0
  78. metadata +30 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f78c78a80235a940f793af89344e6a972609f92d79ddce8acc6735b0e6b54ceb
4
- data.tar.gz: 9c0bfef24e47646c61dd79899af40f33f063f90e73a626ed9c2617c7f7933593
3
+ metadata.gz: b724f6cb69633133e800d381ee1d0bfdd1a1107d7fc388fe1dcbcf423480ca9d
4
+ data.tar.gz: 3252bc11e083295c2694df60a9af790d8b01cbe851baebbe1d8e75b656e0acd3
5
5
  SHA512:
6
- metadata.gz: 60a24969416d8d674cad078642e575c1b22e3b4457dcabb5a436bf62a597d13388bf042851008d5a3b01a7de82ee6003c6856b90821adddc1436bf2a0ecbfdd1
7
- data.tar.gz: 83cdf6e30fefad4d1d97cb1e1af84278e71aff6eadac4fe5d27232f70d6537a35a48d0e30494213a616796177fd1e6aa36f26bc6ac86d313b651ca2023ade1a0
6
+ metadata.gz: 43793a4b3f8ec9a1353b4c075289dfcd77574b64a481754db68e1affa1c599500a3c29d8fa12b31c13dd69b47c5a2840f52aef80045fbec8be7a363ca4eb90b7
7
+ data.tar.gz: 0451da97325093d7a59684de1ffc77856f4baf5c3a4c76853e6df4492c7cfb1d52cbf9405c0d44b1d8af643e61f64569fc305ed61204be26f081591bdccb6d43
data/CHANGELOG.md CHANGED
@@ -1,3 +1,51 @@
1
+ # [v32.18.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.17.1...v32.18.0) (2021-06-14 15:01:02)
2
+
3
+ ## Global changes
4
+ ### Patches
5
+
6
+ * [[Feature(log_remote_fs)] [#60] Add new plugins type log with a first log plugin remote_fs to extend deployment logs save functionality](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/20187c6da577c932b5205204187af883140995fe)
7
+
8
+ ## Changes for log_remote_fs
9
+ ### Features
10
+
11
+ * [[Feature(log_remote_fs)] [#60] Add new plugins type log with a first log plugin remote_fs to extend deployment logs save functionality](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/20187c6da577c932b5205204187af883140995fe)
12
+
13
+ # [v32.17.1](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.17.0...v32.17.1) (2021-06-03 16:20:09)
14
+
15
+ ### Patches
16
+
17
+ * [[Hotfix] Don't run remote nodes tests on local nodes](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/fe8e34a4d74f21d4903c14b1e156b9730f4b5fee)
18
+
19
+ # [v32.17.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.16.4...v32.17.0) (2021-06-02 12:57:44)
20
+
21
+ ## Global changes
22
+ ### Patches
23
+
24
+ * [[Feature(test_github_ci)] [#61] Add the github_ci test plugin to check for CI/CD of projects on Github](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/a0082efe5c138ca88ca91a3c10f777f47fca5034)
25
+
26
+ ## Changes for test_github_ci
27
+ ### Features
28
+
29
+ * [[Feature(test_github_ci)] [#61] Add the github_ci test plugin to check for CI/CD of projects on Github](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/a0082efe5c138ca88ca91a3c10f777f47fca5034)
30
+
31
+ # [v32.16.4](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.16.3...v32.16.4) (2021-06-01 13:25:19)
32
+
33
+ ### Patches
34
+
35
+ * [[Hotfix] Fixed boolean values incorrectly used as strings](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/a107f3e0fe4c1512ce7607a303fdf0753d92ddac)
36
+
37
+ # [v32.16.3](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.16.2...v32.16.3) (2021-06-01 11:19:50)
38
+
39
+ ## Global changes
40
+ ### Patches
41
+
42
+ * [[Hotfix(platform_handler_serverless_chef)] Fix Chef packaging missing licenses accept](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/69eafc1b23f77de65ba0dd68e5adb7fafb58157e)
43
+
44
+ ## Changes for platform_handler_serverless_chef
45
+ ### Patches
46
+
47
+ * [[Hotfix(platform_handler_serverless_chef)] Fix Chef packaging missing licenses accept](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/69eafc1b23f77de65ba0dd68e5adb7fafb58157e)
48
+
1
49
  # [v32.16.2](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.16.1...v32.16.2) (2021-06-01 09:52:22)
2
50
 
3
51
  ## Global changes
data/README.md CHANGED
@@ -263,6 +263,7 @@ participant PlatformHandler as Platform Handler
263
263
  participant PlatformRepo as Platform repository (ie Chef)
264
264
  participant Connector as Connector (ie SSH)
265
265
  participant Node as Provisioned node (my_node)
266
+ participant Log as Log
266
267
 
267
268
  Deploy->>+CMDB: Get services to be deployed on my_node
268
269
  CMDB->>+PlatformHandler: Get my_node metadata from the platform
@@ -276,6 +277,8 @@ Deploy->>+Connector: Connect to my_node to execute actions
276
277
  Connector->>+Node: Execute actions through SSH to deploy my_web_app on my_node
277
278
  Node-->>-Connector: my_web_app is deployed successfully
278
279
  Connector-->>-Deploy: Close connection
280
+ Deploy->>+Log: Save deployment logs
281
+ Log-->>-Deploy: Deployment logs saved
279
282
  ```
280
283
  </details>
281
284
  <!-- Mermaid generator - Section end -->
data/bin/last_deploys CHANGED
@@ -36,7 +36,10 @@ sorted_deploy_info = Hash[
36
36
  deployer.deployment_info_from(nodes_handler.select_nodes(executable.selected_nodes.empty? ? [{ all: true }] : executable.selected_nodes)).
37
37
  map do |node, deploy_info|
38
38
  decorated_deploy_info = deploy_info.merge(node: node)
39
- decorated_deploy_info[:date] = deploy_info[:date].strftime('%F %T') if deploy_info.key?(:date)
39
+ if deploy_info.key?(:deployment_info)
40
+ decorated_deploy_info.merge!(deploy_info[:deployment_info])
41
+ decorated_deploy_info[:date] = deploy_info[:date].strftime('%F %T') if deploy_info.key?(:date)
42
+ end
40
43
  decorated_deploy_info[:services] = deploy_info[:services].join(', ') if deploy_info.key?(:services)
41
44
  [node, decorated_deploy_info]
42
45
  end
data/bin/nodes_to_deploy CHANGED
@@ -60,16 +60,16 @@ unless ignore_deploy_info
60
60
  if node_deploy_info.key?(:error)
61
61
  executable.log_warn "[ #{node} ] - Deployment in error: #{node_deploy_info[:error]}"
62
62
  true
63
- elsif !node_deploy_info.key?(:exit_status) || node_deploy_info[:exit_status] != '0'
63
+ elsif !node_deploy_info.key?(:exit_status) || node_deploy_info[:exit_status] != 0
64
64
  executable.log_warn "[ #{node} ] - Last deployment did not end successfully: #{node_deploy_info[:exit_status]}"
65
65
  true
66
- elsif node_deploy_info.key?(:repo_name_0)
66
+ elsif node_deploy_info[:deployment_info].key?(:repo_name_0)
67
67
  node_impacted = false
68
68
  # Loop over all possible repositories concerned by this deployment
69
69
  repo_idx = 0
70
- while node_deploy_info.key?("repo_name_#{repo_idx}".to_sym) do
71
- repo_name = node_deploy_info["repo_name_#{repo_idx}".to_sym]
72
- commit_id = node_deploy_info["commit_id_#{repo_idx}".to_sym]
70
+ while node_deploy_info[:deployment_info].key?("repo_name_#{repo_idx}".to_sym) do
71
+ repo_name = node_deploy_info[:deployment_info]["repo_name_#{repo_idx}".to_sym]
72
+ commit_id = node_deploy_info[:deployment_info]["commit_id_#{repo_idx}".to_sym]
73
73
  impacted_nodes = cache_impacted_nodes.dig(repo_name, commit_id)
74
74
  if impacted_nodes.nil?
75
75
  begin
data/docs/config_dsl.md CHANGED
@@ -13,6 +13,7 @@ This DSL can also be completed by plugins. Check [the plugins documentations](pl
13
13
  * [`hybrid_platforms_dir`](#hybrid_platforms_dir)
14
14
  * [`tests_provisioner`](#tests_provisioner)
15
15
  * [`expect_tests_to_fail`](#expect_tests_to_fail)
16
+ * [`send_logs_to`](#send_logs_to)
16
17
  * [`retry_deploy_for_errors_on_stdout`](#retry_deploy_for_errors_on_stdout)
17
18
  * [`retry_deploy_for_errors_on_stderr`](#retry_deploy_for_errors_on_stderr)
18
19
  * [`packaging_timeout`](#packaging_timeout)
@@ -200,6 +201,27 @@ for_nodes('/tst/') do
200
201
  end
201
202
  ```
202
203
 
204
+ <a name="send_logs_to"></a>
205
+ ## `send_logs_to`
206
+
207
+ Set the list of [log plugins](plugins.md#log) to use to save logs.
208
+ By default (if no plugins is specifically set) the [log plugin `remote_fs`](plugins/log/remote_fs.md) is being used.
209
+
210
+ Takes the list of log plugin names, as symbols, as a parameter.
211
+
212
+ Can be applied to subset of nodes using the [`for_nodes` DSL method](#for_nodes).
213
+
214
+ Examples:
215
+ ```ruby
216
+ # By default, everything gets logged on the nodes
217
+ send_logs_to :remote_fs
218
+
219
+ # All our production nodes also have their logs uploaded on our logs servers
220
+ for_nodes('/prd/') do
221
+ send_logs_to :datadog_log_server, :loggly
222
+ end
223
+ ```
224
+
203
225
  <a name="retry_deploy_for_errors_on_stdout"></a>
204
226
  ## `retry_deploy_for_errors_on_stdout`
205
227
 
Binary file
data/docs/plugins.md CHANGED
@@ -10,6 +10,7 @@ Following are all possible plugin types and the plugins shipped by default with
10
10
  * [`action`](#action)
11
11
  * [`cmdb`](#cmdb)
12
12
  * [`connector`](#connector)
13
+ * [`log`](#log)
13
14
  * [`platform_handler`](#platform_handler)
14
15
  * [`provisioner`](#provisioner)
15
16
  * [`report`](#report)
@@ -79,6 +80,30 @@ Plugins shipped by default:
79
80
  * [`local`](plugins/connector/local.md)
80
81
  * [`ssh`](plugins/connector/ssh.md)
81
82
 
83
+ <a name="log"></a>
84
+ ## Logs
85
+
86
+ Save deployment logs to a given medium (files, log servers...).
87
+
88
+ Corresponding plugin type: `log`.
89
+
90
+ These plugins give ways for the [`Deployer`](../lib/hybrid_platforms_conductor/deployer.rb) to save logs output from services deployments on nodes.
91
+ Information that can be saved is:
92
+ * The deployment stdout.
93
+ * The deployment stderr.
94
+ * The deployment exit status.
95
+ * The list of services that have been deployed.
96
+ * Some deployment metadata (like git commits information that have been deployed).
97
+
98
+ Examples of log plugins are:
99
+ * Remote file system: Save logs on the node's remote file system (useful for local debugging).
100
+ * Log servers: Send logs to log servers.
101
+
102
+ Check the [sample plugin file](../lib/hybrid_platforms_conductor/hpc_plugins/log/my_log_plugin.rb.sample) to know more about the API that needs to be implemented by such plugins.
103
+
104
+ Plugins shipped by default:
105
+ * [`remote_fs`](plugins/log/remote_fs.md)
106
+
82
107
  <a name="platform_handler"></a>
83
108
  ## Platform Handlers
84
109
 
@@ -182,6 +207,7 @@ Plugins shipped by default:
182
207
  * [`executables`](plugins/test/executables.md)
183
208
  * [`file_system_hdfs`](plugins/test/file_system_hdfs.md)
184
209
  * [`file_system`](plugins/test/file_system.md)
210
+ * [`github_ci`](plugins/test/github_ci.md)
185
211
  * [`hostname`](plugins/test/hostname.md)
186
212
  * [`idempotence`](plugins/test/idempotence.md)
187
213
  * [`ip`](plugins/test/ip.md)
@@ -70,7 +70,7 @@ end
70
70
  | `host_keys` | `Array<String>` | The node's host keys used to generate a `known_hosts` file with those to avoid user confirmations when connecting. |
71
71
  | `hostname` | `String` | Host name used to connect in case no IP address can be found in metadata. |
72
72
  | `private_ips` | `Array<String>` | IP list to connect in case `host_ip` is not defined in metadata. |
73
- | `ssh_session_exec` | `String` | If set to the string `false`, then consider that the node does not have any SSH SessionExec capabilities. This will make sure that remote command executions is done using stdin piping on interactive sessions instead of SSH commands execution. |
73
+ | `ssh_session_exec` | `Boolean` | If set to `false`, then consider that the node does not have any SSH SessionExec capabilities. This will make sure that remote command executions is done using stdin piping on interactive sessions instead of SSH commands execution. |
74
74
 
75
75
  ## Used environment variables
76
76
 
@@ -0,0 +1,26 @@
1
+ # Log plugin: `remote_fs`
2
+
3
+ The `remote_fs` log plugin saves deployment logs in each remote node that has been deployed, in the `/var/log/deployments` directory.
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
+
19
+ ## Used environment variables
20
+
21
+ | Variable | Usage
22
+ | --- | --- |
23
+
24
+ ## External tools dependencies
25
+
26
+ None
@@ -12,7 +12,7 @@ Define a Bitbucket installation to be targeted.
12
12
  It takes the following parameters:
13
13
  * **url** (`String`): URL to the Bitbucket server
14
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]
15
+ * **repos** (`Array<String>` or `Symbol`): List of repository names from this project, or `:all` for all [default: `:all`]
16
16
  * **checks** (`Hash<Symbol, Object>`): Checks definition to be perform on those repositories [default: {}]
17
17
  * **branch_permissions** (`Array< Hash<Symbol, Object> >`): List of branch permissions to check [optional]
18
18
  * **type** (`String`): Type of branch permissions to check. Examples of values are 'fast-forward-only', 'no-deletes', 'pull-request-only'.
@@ -49,7 +49,7 @@ end
49
49
 
50
50
  | Metadata | Type | Usage
51
51
  | --- | --- | --- |
52
- | `root_access_allowed` | `String` | If set to `true`, then skip the test for `root` access being disabled after deployment |
52
+ | `root_access_allowed` | `Boolean` | If set to `true`, then skip the test for `root` access being disabled after deployment |
53
53
 
54
54
  ## Used environment variables
55
55
 
@@ -16,6 +16,7 @@ None
16
16
 
17
17
  | Metadata | Type | Usage
18
18
  | --- | --- | --- |
19
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
19
20
 
20
21
  ## Used environment variables
21
22
 
@@ -17,7 +17,7 @@ None
17
17
 
18
18
  | Metadata | Type | Usage
19
19
  | --- | --- | --- |
20
- | `root_access_allowed` | `String` | If set to `true`, then skip this test |
20
+ | `root_access_allowed` | `Boolean` | If set to `true`, then skip this test |
21
21
 
22
22
  ## Used environment variables
23
23
 
@@ -38,6 +38,7 @@ end
38
38
 
39
39
  | Metadata | Type | Usage
40
40
  | --- | --- | --- |
41
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
41
42
 
42
43
  ## Used environment variables
43
44
 
@@ -0,0 +1,48 @@
1
+ # Test plugin: `github_ci`
2
+
3
+ The `github_ci` test plugin checks that the `master` branch of Github repositories has a successful CI result from its [Github Actions](https://github.com/features/actions).
4
+
5
+ ## Config DSL extension
6
+
7
+ ### `github_repos`
8
+
9
+ Define Github repositories to be targeted.
10
+
11
+ It takes the following parameters:
12
+ * **url** (`String`): URL to the Github API [default: `'https://api.github.com'`]
13
+ * **user** (`String`): User or organization name, storing repositories
14
+ * **repos** (`Array<String>` or `Symbol`): List of repository names from this project, or `:all` for all [default: `:all`]
15
+
16
+ Example:
17
+ ```ruby
18
+ github_repos(
19
+ # Github's user containing repositories
20
+ user: 'My-Github-User',
21
+ # List of repositories to check
22
+ repos: [
23
+ 'my-platform-repo',
24
+ 'my-chef-repo',
25
+ 'my-hpc-plugins'
26
+ ]
27
+ )
28
+ ```
29
+
30
+ ## Used credentials
31
+
32
+ | Credential | Usage
33
+ | --- | --- |
34
+ | `github` | Used to connect to the Github API. Password should be the Github API token. |
35
+
36
+ ## Used Metadata
37
+
38
+ | Metadata | Type | Usage
39
+ | --- | --- | --- |
40
+
41
+ ## Used environment variables
42
+
43
+ | Variable | Usage
44
+ | --- | --- |
45
+
46
+ ## External tools dependencies
47
+
48
+ None
@@ -16,6 +16,7 @@ None
16
16
 
17
17
  | Metadata | Type | Usage
18
18
  | --- | --- | --- |
19
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
19
20
 
20
21
  ## Used environment variables
21
22
 
@@ -16,6 +16,7 @@ None
16
16
 
17
17
  | Metadata | Type | Usage
18
18
  | --- | --- | --- |
19
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
19
20
  | `private_ips` | `Array<String>` | List of possible private IPs the node should have |
20
21
 
21
22
  ## Used environment variables
@@ -12,7 +12,7 @@ It takes the following parameters:
12
12
  * **url** (`String`): URL to the Bitbucket server
13
13
  * **project** (`String`): Project name from the Bitbucket server, storing repositories
14
14
  * **jenkins_ci_url** (`String` or `nil`): Corresponding Jenkins CI URL, or nil if none.
15
- * **repos** (`Array<String>` or `Symbol`): List of repository names from this project, or :all for all [default: :all]
15
+ * **repos** (`Array<String>` or `Symbol`): List of repository names from this project, or `:all` for all [default: `:all`]
16
16
 
17
17
  Example:
18
18
  ```ruby
@@ -12,7 +12,7 @@ It takes the following parameters:
12
12
  * **url** (`String`): URL to the Bitbucket server
13
13
  * **project** (`String`): Project name from the Bitbucket server, storing repositories
14
14
  * **jenkins_ci_url** (`String` or `nil`): Corresponding Jenkins CI URL, or nil if none.
15
- * **repos** (`Array<String>` or `Symbol`): List of repository names from this project, or :all for all [default: :all]
15
+ * **repos** (`Array<String>` or `Symbol`): List of repository names from this project, or `:all` for all [default: `:all`]
16
16
 
17
17
  Example:
18
18
  ```ruby
@@ -37,6 +37,7 @@ check_local_users_do_not_exist %w[olduser1 olduser2]
37
37
 
38
38
  | Metadata | Type | Usage
39
39
  | --- | --- | --- |
40
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
40
41
 
41
42
  ## Used environment variables
42
43
 
@@ -44,6 +44,7 @@ end
44
44
 
45
45
  | Metadata | Type | Usage
46
46
  | --- | --- | --- |
47
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
47
48
 
48
49
  ## Used environment variables
49
50
 
@@ -27,6 +27,7 @@ end
27
27
 
28
28
  | Metadata | Type | Usage
29
29
  | --- | --- | --- |
30
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
30
31
 
31
32
  ## Used environment variables
32
33
 
@@ -39,6 +39,7 @@ check_closed_ports 25, 110
39
39
  | Metadata | Type | Usage
40
40
  | --- | --- | --- |
41
41
  | `host_ip` | `String` | Host IP address to be tested for port listening |
42
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
42
43
 
43
44
  ## Used environment variables
44
45
 
@@ -15,6 +15,7 @@ None
15
15
 
16
16
  | Metadata | Type | Usage
17
17
  | --- | --- | --- |
18
+ | `local_node` | `Boolean` | Skip this test for nodes having this metadata set to `true` |
18
19
 
19
20
  ## Used environment variables
20
21