hybrid_platforms_conductor 32.12.0 → 32.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1133 -0
- data/LICENSE.md +31 -0
- data/README.md +402 -0
- data/bin/setup +1 -1
- data/docs/api.md +349 -0
- data/docs/config_dsl.md +315 -0
- data/docs/executables.md +226 -0
- data/docs/executables/check-node.md +155 -0
- data/docs/executables/deploy.md +198 -0
- data/docs/executables/dump_nodes_json.md +110 -0
- data/docs/executables/free_ips.md +93 -0
- data/docs/executables/free_veids.md +73 -0
- data/docs/executables/get_impacted_nodes.md +94 -0
- data/docs/executables/last_deploys.md +114 -0
- data/docs/executables/nodes_to_deploy.md +139 -0
- data/docs/executables/report.md +159 -0
- data/docs/executables/run.md +126 -0
- data/docs/executables/setup.md +92 -0
- data/docs/executables/ssh_config.md +151 -0
- data/docs/executables/test.md +213 -0
- data/docs/executables/topograph.md +139 -0
- data/docs/gen/mermaid/README.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/check-node.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/deploy.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/free_ips.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/free_veids.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/last_deploys.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/report.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/run.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/setup.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/ssh_config.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/test.md-0.png +0 -0
- data/docs/install.md +161 -0
- data/docs/plugins.md +215 -0
- data/docs/plugins/action/bash.md +37 -0
- data/docs/plugins/action/interactive.md +37 -0
- data/docs/plugins/action/remote_bash.md +67 -0
- data/docs/plugins/action/ruby.md +69 -0
- data/docs/plugins/action/scp.md +61 -0
- data/docs/plugins/cmdb/config.md +46 -0
- data/docs/plugins/cmdb/host_ip.md +33 -0
- data/docs/plugins/cmdb/host_keys.md +33 -0
- data/docs/plugins/cmdb/platform_handlers.md +33 -0
- data/docs/plugins/connector/local.md +28 -0
- data/docs/plugins/connector/ssh.md +95 -0
- data/docs/plugins/platform_handler/yaml_inventory.md +105 -0
- data/docs/plugins/provisioner/docker.md +27 -0
- data/docs/plugins/provisioner/podman.md +27 -0
- data/docs/plugins/provisioner/proxmox.md +115 -0
- data/docs/plugins/report/confluence.md +49 -0
- data/docs/plugins/report/mediawiki.md +28 -0
- data/docs/plugins/report/stdout.md +32 -0
- data/docs/plugins/test/bitbucket_conf.md +97 -0
- data/docs/plugins/test/can_be_checked.md +27 -0
- data/docs/plugins/test/check_deploy_and_idempotence.md +61 -0
- data/docs/plugins/test/check_from_scratch.md +28 -0
- data/docs/plugins/test/connection.md +27 -0
- data/docs/plugins/test/deploy_freshness.md +27 -0
- data/docs/plugins/test/deploy_from_scratch.md +28 -0
- data/docs/plugins/test/deploy_removes_root_access.md +29 -0
- data/docs/plugins/test/divergence.md +41 -0
- data/docs/plugins/test/executables.md +26 -0
- data/docs/plugins/test/file_system.md +49 -0
- data/docs/plugins/test/file_system_hdfs.md +65 -0
- data/docs/plugins/test/hostname.md +27 -0
- data/docs/plugins/test/idempotence.md +56 -0
- data/docs/plugins/test/ip.md +28 -0
- data/docs/plugins/test/jenkins_ci_conf.md +54 -0
- data/docs/plugins/test/jenkins_ci_masters_ok.md +54 -0
- data/docs/plugins/test/linear_strategy.md +26 -0
- data/docs/plugins/test/local_users.md +48 -0
- data/docs/plugins/test/mounts.md +55 -0
- data/docs/plugins/test/orphan_files.md +38 -0
- data/docs/plugins/test/ports.md +50 -0
- data/docs/plugins/test/private_ips.md +27 -0
- data/docs/plugins/test/public_ips.md +27 -0
- data/docs/plugins/test/spectre.md +26 -0
- data/docs/plugins/test/veids.md +27 -0
- data/docs/plugins/test/vulnerabilities.md +65 -0
- data/docs/plugins/test_report/confluence.md +43 -0
- data/docs/plugins/test_report/stdout.md +26 -0
- data/docs/plugins_create.md +135 -0
- data/docs/tutorial.md +61 -0
- data/docs/tutorial/01_installation.md +131 -0
- data/docs/tutorial/02_first_node.md +468 -0
- data/docs/tutorial/03_scale.md +878 -0
- data/docs/tutorial/04_test.md +977 -0
- data/docs/tutorial/05_extend_with_plugins.md +1132 -0
- data/examples/bare/Gemfile +4 -0
- data/examples/bare/hpc_config.rb +2 -0
- data/examples/localhost/Gemfile +4 -0
- data/examples/localhost/hpc_config.rb +2 -0
- data/examples/localhost/inventory.yaml +4 -0
- data/examples/tutorial/01_installation/my-platforms/Gemfile +3 -0
- data/examples/tutorial/01_installation/my-platforms/hpc_config.rb +0 -0
- data/examples/tutorial/02_first_node/my-platforms/Gemfile +3 -0
- data/examples/tutorial/02_first_node/my-platforms/hpc_config.rb +1 -0
- data/examples/tutorial/02_first_node/my-service-conf-repo/inventory.yaml +13 -0
- data/examples/tutorial/02_first_node/my-service-conf-repo/my-service.conf.erb +3 -0
- data/examples/tutorial/02_first_node/my-service-conf-repo/service_my-service.rb +58 -0
- data/examples/tutorial/02_first_node/node/my-service.conf +4 -0
- data/examples/tutorial/03_scale/my-platforms/Gemfile +3 -0
- data/examples/tutorial/03_scale/my-platforms/hpc_config.rb +1 -0
- data/examples/tutorial/03_scale/my-platforms/my_commands.bash +2 -0
- data/examples/tutorial/03_scale/my-service-conf-repo/inventory.yaml +90 -0
- data/examples/tutorial/03_scale/my-service-conf-repo/my-service.conf.erb +3 -0
- data/examples/tutorial/03_scale/my-service-conf-repo/service_my-service.rb +58 -0
- data/examples/tutorial/03_scale/my-service-conf-repo/service_web-hello.rb +43 -0
- data/examples/tutorial/03_scale/node/my-service.conf +4 -0
- data/examples/tutorial/03_scale/web_docker_image/Dockerfile +33 -0
- data/examples/tutorial/03_scale/web_docker_image/hello_world.txt +1 -0
- data/examples/tutorial/03_scale/web_docker_image/hpc_root.key +27 -0
- data/examples/tutorial/03_scale/web_docker_image/hpc_root.key.pub +1 -0
- data/examples/tutorial/03_scale/web_docker_image/main.go +43 -0
- data/examples/tutorial/03_scale/web_docker_image/start.sh +7 -0
- data/examples/tutorial/03_scale/web_docker_image/test.bash +6 -0
- data/examples/tutorial/04_test/my-platforms/Gemfile +3 -0
- data/examples/tutorial/04_test/my-platforms/hpc_config.rb +12 -0
- data/examples/tutorial/04_test/my-platforms/images/debian_10/Dockerfile +13 -0
- data/examples/tutorial/04_test/my-platforms/my_commands.bash +2 -0
- data/examples/tutorial/04_test/my-service-conf-repo/inventory.yaml +100 -0
- data/examples/tutorial/04_test/my-service-conf-repo/my-service.conf.erb +3 -0
- data/examples/tutorial/04_test/my-service-conf-repo/service_my-service.rb +58 -0
- data/examples/tutorial/04_test/my-service-conf-repo/service_web-hello.rb +43 -0
- data/examples/tutorial/04_test/node/my-service.conf +4 -0
- data/examples/tutorial/04_test/web_docker_image/Dockerfile +33 -0
- data/examples/tutorial/04_test/web_docker_image/hello_world.txt +1 -0
- data/examples/tutorial/04_test/web_docker_image/hpc_root.key +27 -0
- data/examples/tutorial/04_test/web_docker_image/hpc_root.key.pub +1 -0
- data/examples/tutorial/04_test/web_docker_image/main.go +43 -0
- data/examples/tutorial/04_test/web_docker_image/start.sh +7 -0
- data/examples/tutorial/04_test/web_docker_image/test.bash +6 -0
- data/examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/hosts.json +12 -0
- data/examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-gcc.bash +14 -0
- data/examples/tutorial/05_extend_with_plugins/dev-servers-conf-repo/install-python.bash +14 -0
- data/examples/tutorial/05_extend_with_plugins/dev_docker_image/Dockerfile +20 -0
- data/examples/tutorial/05_extend_with_plugins/dev_docker_image/hpc_root.key +27 -0
- data/examples/tutorial/05_extend_with_plugins/dev_docker_image/hpc_root.key.pub +1 -0
- data/examples/tutorial/05_extend_with_plugins/my-platforms/Gemfile +4 -0
- data/examples/tutorial/05_extend_with_plugins/my-platforms/hpc_config.rb +13 -0
- data/examples/tutorial/05_extend_with_plugins/my-platforms/images/debian_10/Dockerfile +13 -0
- data/examples/tutorial/05_extend_with_plugins/my-platforms/my_commands.bash +2 -0
- data/examples/tutorial/05_extend_with_plugins/my-service-conf-repo/inventory.yaml +100 -0
- data/examples/tutorial/05_extend_with_plugins/my-service-conf-repo/my-service.conf.erb +3 -0
- data/examples/tutorial/05_extend_with_plugins/my-service-conf-repo/service_my-service.rb +58 -0
- data/examples/tutorial/05_extend_with_plugins/my-service-conf-repo/service_web-hello.rb +43 -0
- data/examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/platform_handler/json_bash.rb +115 -0
- data/examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/report/web_report.rb +52 -0
- data/examples/tutorial/05_extend_with_plugins/my_hpc_plugins/lib/my_hpc_plugins/hpc_plugins/test/root_space.rb +44 -0
- data/examples/tutorial/05_extend_with_plugins/my_hpc_plugins/my_hpc_plugins.gemspec +15 -0
- data/examples/tutorial/05_extend_with_plugins/node/my-service.conf +4 -0
- data/examples/tutorial/05_extend_with_plugins/web_docker_image/Dockerfile +33 -0
- data/examples/tutorial/05_extend_with_plugins/web_docker_image/hello_world.txt +1 -0
- data/examples/tutorial/05_extend_with_plugins/web_docker_image/hpc_root.key +27 -0
- data/examples/tutorial/05_extend_with_plugins/web_docker_image/hpc_root.key.pub +1 -0
- data/examples/tutorial/05_extend_with_plugins/web_docker_image/main.go +43 -0
- data/examples/tutorial/05_extend_with_plugins/web_docker_image/start.sh +7 -0
- data/examples/tutorial/05_extend_with_plugins/web_docker_image/test.bash +6 -0
- data/lib/hybrid_platforms_conductor/actions_executor.rb +1 -0
- data/lib/hybrid_platforms_conductor/deployer.rb +3 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/action/remote_bash.rb +29 -13
- data/lib/hybrid_platforms_conductor/hpc_plugins/action/scp.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/local.rb +98 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/my_connector.rb.sample +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +7 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/platform_handler_plugin.rb.sample +5 -5
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/yaml_inventory.rb +140 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb +5 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb +4 -4
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +19 -17
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb +3 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +4 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +9 -7
- data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb +1 -1
- data/lib/hybrid_platforms_conductor/json_dumper.rb +1 -1
- data/lib/hybrid_platforms_conductor/platform_handler.rb +1 -1
- data/lib/hybrid_platforms_conductor/services_handler.rb +18 -16
- data/lib/hybrid_platforms_conductor/tests_runner.rb +0 -1
- data/lib/hybrid_platforms_conductor/topographer.rb +0 -1
- data/lib/hybrid_platforms_conductor/version.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +16 -0
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/connectable_nodes_spec.rb +30 -0
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/remote_actions_spec.rb +113 -0
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb +6 -2
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb +38 -1
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb +8 -8
- data/spec/hybrid_platforms_conductor_test/docs_spec.rb +10 -0
- data/tools/check_md +89 -0
- data/tools/generate_mermaid +75 -0
- metadata +337 -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
|