hybrid_platforms_conductor 32.13.0 → 32.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +42 -0
- data/README.md +10 -3
- data/bin/get_impacted_nodes +1 -1
- data/bin/setup +6 -1
- data/docs/executables/check-node.md +1 -1
- data/docs/executables/deploy.md +1 -1
- data/docs/executables/free_ips.md +1 -1
- data/docs/executables/free_veids.md +1 -1
- data/docs/executables/get_impacted_nodes.md +1 -1
- data/docs/executables/last_deploys.md +1 -1
- data/docs/executables/nodes_to_deploy.md +1 -1
- data/docs/executables/report.md +1 -1
- data/docs/executables/run.md +1 -1
- data/docs/executables/setup.md +1 -1
- data/docs/executables/ssh_config.md +1 -1
- data/docs/executables/test.md +1 -1
- data/docs/plugins.md +1 -0
- data/docs/plugins/platform_handler/serverless_chef.md +105 -0
- data/docs/tutorial.md +10 -6
- data/docs/tutorial/01_installation.md +14 -12
- data/docs/tutorial/02_first_node.md +14 -12
- data/docs/tutorial/03_scale.md +14 -12
- data/docs/tutorial/04_test.md +26 -14
- data/docs/tutorial/05_extend_with_plugins.md +17 -17
- 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/deployer.rb +2 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef.rb +440 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/dsl_parser.rb +51 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/recipes_tree_builder.rb +271 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +1 -0
- data/lib/hybrid_platforms_conductor/nodes_handler.rb +9 -5
- data/lib/hybrid_platforms_conductor/version.rb +1 -1
- data/spec/hybrid_platforms_conductor_test.rb +3 -0
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioner_spec.rb +23 -0
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs_plugins_api_spec.rb +11 -0
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/config_dsl_spec.rb +17 -0
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/deploy_output_parsing_spec.rb +94 -0
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/diff_impacts_spec.rb +317 -0
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/inventory_spec.rb +65 -0
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/packaging_spec.rb +213 -0
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/services_deployment_spec.rb +268 -0
- data/spec/hybrid_platforms_conductor_test/helpers/serverless_chef_helpers.rb +53 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/chef_versions.yml +3 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/nodes/node.json +14 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/policyfiles/test_policy.rb +3 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/data_bags/chef_versions.yml +3 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/data_bags/data_bags/my_bag/my_item.json +4 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/data_bags/nodes/node.json +14 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/data_bags/policyfiles/test_policy.rb +3 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_1/recipes/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_2/libraries/default.rb +4 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_2/recipes/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_2/recipes/other_recipe.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_2/resources/my_resource.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/nodes/node1.json +10 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/nodes/node2.json +10 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/policyfiles/test_policy_1.rb +4 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/policyfiles/test_policy_2.rb +4 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/config.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/cookbooks/test_cookbook_1/recipes/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/nodes/node1.json +10 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/nodes/node2.json +10 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/other_cookbooks/test_cookbook_2/libraries/default.rb +4 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/other_cookbooks/test_cookbook_2/recipes/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/other_cookbooks/test_cookbook_2/recipes/other_recipe.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/other_cookbooks/test_cookbook_2/resources/my_resource.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/policyfiles/test_policy_1.rb +4 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/policyfiles/test_policy_2.rb +4 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/chef_versions.yml +3 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/nodes/local.json +10 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/nodes/node1.json +10 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/nodes/node2.json +10 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/policyfiles/test_policy_1.rb +3 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_nodes/policyfiles/test_policy_2.rb +3 -0
- data/tools/generate_mermaid +1 -1
- metadata +260 -86
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99c918a62cd924ceaca95073e944df866b9b1ecce771dcb710122ec501cadf95
|
4
|
+
data.tar.gz: 959326a99c32ac8eb120af28c8b3c34304e2efa61df64f43a99545d0d33f88e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e6c3a54a5c04f21aaeeba1a047366a7f427680077712742c0b2a7977cecfe14c4058fdd1e1c6c66842b603a7f7590bfea6eae0d975240e19a4ffa8214043c17
|
7
|
+
data.tar.gz: e8dd3ef50cec1a0dd7e94161159a30f359fca736bd6e7ab14ab916e2d743d48889bf891c3ca2bf626d3f087e1472ff43eb1abc0370e3fe63226cb0a8595950ad
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,45 @@
|
|
1
|
+
# [v32.14.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.13.4...v32.14.0) (2021-05-31 09:05:45)
|
2
|
+
|
3
|
+
## Global changes
|
4
|
+
### Patches
|
5
|
+
|
6
|
+
* [[Feature(platform_handler_serverless_chef)] [#58] Add the serverless_chef platform handler](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/6f84757096a802c79a18a6c9c1440b27e73decd1)
|
7
|
+
|
8
|
+
## Changes for platform_handler_serverless_chef
|
9
|
+
### Features
|
10
|
+
|
11
|
+
* [[Feature(platform_handler_serverless_chef)] [#58] Add the serverless_chef platform handler](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/6f84757096a802c79a18a6c9c1440b27e73decd1)
|
12
|
+
|
13
|
+
# [v32.13.4](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.13.3...v32.13.4) (2021-05-11 14:00:47)
|
14
|
+
|
15
|
+
## Global changes
|
16
|
+
### Patches
|
17
|
+
|
18
|
+
* [[fix(test_vulnerabilities)] [#56] Make sure vulnerabilities test catch errors during setup](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/e058853c6794ccacec33c9ae4d740068a70dcf5f)
|
19
|
+
|
20
|
+
## Changes for test_vulnerabilities
|
21
|
+
### Patches
|
22
|
+
|
23
|
+
* [[fix(test_vulnerabilities)] [#56] Make sure vulnerabilities test catch errors during setup](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/e058853c6794ccacec33c9ae4d740068a70dcf5f)
|
24
|
+
|
25
|
+
# [v32.13.3](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.13.2...v32.13.3) (2021-05-07 10:09:33)
|
26
|
+
|
27
|
+
### Patches
|
28
|
+
|
29
|
+
* [Add section about benefits in doc](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/23cd2b22244526e3b6705db0165f8a03e4dd88d8)
|
30
|
+
|
31
|
+
# [v32.13.2](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.13.1...v32.13.2) (2021-05-06 15:47:14)
|
32
|
+
|
33
|
+
### Patches
|
34
|
+
|
35
|
+
* [Better tutorial navigation](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/b4454f99b0611ec8591ca83894e152a22a61e731)
|
36
|
+
|
37
|
+
# [v32.13.1](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.13.0...v32.13.1) (2021-05-06 14:03:16)
|
38
|
+
|
39
|
+
### Patches
|
40
|
+
|
41
|
+
* [Add tutorial files in examples](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/dfb456f031d48ba1ed6922a5f84ed659fe587ab8)
|
42
|
+
|
1
43
|
# [v32.13.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.12.0...v32.13.0) (2021-05-06 11:20:57)
|
2
44
|
|
3
45
|
### Features
|
data/README.md
CHANGED
@@ -35,7 +35,14 @@ Now being able to keep DevOps processes agile and robust is really difficult aro
|
|
35
35
|
**This is where Hybrid Platforms Conductor can help: it helps DevOps define simple, robust and scalable processes that can adapt easily to ever-changing platforms and technologies in your development and operations environments.**
|
36
36
|
|
37
37
|
In other words, Hybrid Platforms Conductor lets you **map your DevOps processes in a platform and technology independent way on simple interfaces** (CLI executables, APIs...).
|
38
|
-
|
38
|
+
|
39
|
+
**Benefits** are multiple in terms of team organization and agility:
|
40
|
+
* **Move the technical complexity** of your processes from scattered, duplicated and **diverging documentation to code that is effectively used**, maintained and tracked in a single place.
|
41
|
+
* **Facilitate the adoption of new technologies and frameworks** in your team, without migrating previous ones, and keeping the same level of quality, robustness and agility of your DevOps processes.
|
42
|
+
* **Scale easily whatever DevOps process** you have put in place for bigger platforms, bigger teams or more technologies.
|
43
|
+
* **Decrease the learning curve** for newcomers in your team by having simple interfaces to be operated, whatever underlying tools and frameworks you are using behind.
|
44
|
+
* Make sure **your DevOps processes apply easily to all the platforms** and organizations you want them to apply to.
|
45
|
+
* Guarantee that you can **configure** each component of your platforms **in a deterministic and independent way**.
|
39
46
|
|
40
47
|
## How?
|
41
48
|
|
@@ -66,7 +73,7 @@ The way it works is by having a **configuration file using an extensive DSL to d
|
|
66
73
|
|
67
74
|
### Technology plugins
|
68
75
|
|
69
|
-
It is built around
|
76
|
+
It is built around plugins that allow each DevOps team to **adapt its processes to its own specific environments**:
|
70
77
|
* Any kind of **platform** (on-premise, in the cloud, PaaS, SaaS...).
|
71
78
|
* Any **configuration tool** (Chef, Puppet, Ansible...).
|
72
79
|
* Any kind of **test** (network-level, applicative-level, using external testing services...).
|
@@ -246,7 +253,7 @@ So with the concepts described above, the process described as deploying **servi
|
|
246
253
|
<!-- Mermaid generator - Section start -->
|
247
254
|
![Mermaid diagram](/docs/gen/mermaid/README.md-0.png)
|
248
255
|
<details>
|
249
|
-
<summary>
|
256
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
250
257
|
|
251
258
|
```mermaid
|
252
259
|
sequenceDiagram
|
data/bin/get_impacted_nodes
CHANGED
@@ -10,7 +10,7 @@ executable = HybridPlatformsConductor::Executable.new(nodes_selection_options: f
|
|
10
10
|
opts.on('-f', '--from-commit COMMIT_ID', "Specify the GIT commit from which we look for diffs. Defaults to #{git_from}.") do |commit_id|
|
11
11
|
git_from = commit_id
|
12
12
|
end
|
13
|
-
opts.on('-p', '--platform PLATFORM_NAME', "Specify the repository on which to perform the diff. Possible values are #{platforms_handler.known_platforms.join(', ')}") do |platform_name|
|
13
|
+
opts.on('-p', '--platform PLATFORM_NAME', "Specify the repository on which to perform the diff. Possible values are #{platforms_handler.known_platforms.map(&:name).join(', ')}") do |platform_name|
|
14
14
|
platform = platform_name
|
15
15
|
end
|
16
16
|
opts.on('-s', '--smallest-test-sample', 'Display the minimal set of nodes to check that would validate all modifications.') do
|
data/bin/setup
CHANGED
@@ -7,5 +7,10 @@ platforms_handler = executable.platforms_handler
|
|
7
7
|
executable.parse_options!
|
8
8
|
|
9
9
|
platforms_handler.known_platforms.each do |platform|
|
10
|
-
|
10
|
+
if platform.respond_to?(:setup)
|
11
|
+
executable.out "===== Setup platform #{platform.name}..."
|
12
|
+
platform.setup
|
13
|
+
executable.out "===== Platform #{platform.name} setup successfully."
|
14
|
+
executable.out ''
|
15
|
+
end
|
11
16
|
end
|
@@ -12,7 +12,7 @@ It will:
|
|
12
12
|
<!-- Mermaid generator - Section start -->
|
13
13
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/check-node.md-0.png)
|
14
14
|
<details>
|
15
|
-
<summary>
|
15
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
16
16
|
|
17
17
|
```mermaid
|
18
18
|
sequenceDiagram
|
data/docs/executables/deploy.md
CHANGED
@@ -12,7 +12,7 @@ It will:
|
|
12
12
|
<!-- Mermaid generator - Section start -->
|
13
13
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/deploy.md-0.png)
|
14
14
|
<details>
|
15
|
-
<summary>
|
15
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
16
16
|
|
17
17
|
```mermaid
|
18
18
|
sequenceDiagram
|
@@ -10,7 +10,7 @@ Useful to assign new IPs.
|
|
10
10
|
<!-- Mermaid generator - Section start -->
|
11
11
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/free_ips.md-0.png)
|
12
12
|
<details>
|
13
|
-
<summary>
|
13
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
14
14
|
|
15
15
|
```mermaid
|
16
16
|
sequenceDiagram
|
@@ -10,7 +10,7 @@ Useful to assign unused VEIDs to new VMs to be created.
|
|
10
10
|
<!-- Mermaid generator - Section start -->
|
11
11
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/free_veids.md-0.png)
|
12
12
|
<details>
|
13
|
-
<summary>
|
13
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
14
14
|
|
15
15
|
```mermaid
|
16
16
|
sequenceDiagram
|
@@ -8,7 +8,7 @@ This is especially useful to know which nodes have to be tested against a given
|
|
8
8
|
<!-- Mermaid generator - Section start -->
|
9
9
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/get_impacted_nodes.md-0.png)
|
10
10
|
<details>
|
11
|
-
<summary>
|
11
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
12
12
|
|
13
13
|
```mermaid
|
14
14
|
sequenceDiagram
|
@@ -7,7 +7,7 @@ The `last_deploys` executable will fetch the last deployments information for a
|
|
7
7
|
<!-- Mermaid generator - Section start -->
|
8
8
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/last_deploys.md-0.png)
|
9
9
|
<details>
|
10
|
-
<summary>
|
10
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
11
11
|
|
12
12
|
```mermaid
|
13
13
|
sequenceDiagram
|
@@ -11,7 +11,7 @@ The list of nodes is given in standard output.
|
|
11
11
|
<!-- Mermaid generator - Section start -->
|
12
12
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/nodes_to_deploy.md-0.png)
|
13
13
|
<details>
|
14
|
-
<summary>
|
14
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
15
15
|
|
16
16
|
```mermaid
|
17
17
|
sequenceDiagram
|
data/docs/executables/report.md
CHANGED
@@ -8,7 +8,7 @@ This executable is using [report plugins](../plugins.md#report) so that the tool
|
|
8
8
|
<!-- Mermaid generator - Section start -->
|
9
9
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/report.md-0.png)
|
10
10
|
<details>
|
11
|
-
<summary>
|
11
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
12
12
|
|
13
13
|
```mermaid
|
14
14
|
sequenceDiagram
|
data/docs/executables/run.md
CHANGED
@@ -8,7 +8,7 @@ It will use connectors (SSH...) to do so.
|
|
8
8
|
<!-- Mermaid generator - Section start -->
|
9
9
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/run.md-0.png)
|
10
10
|
<details>
|
11
|
-
<summary>
|
11
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
12
12
|
|
13
13
|
```mermaid
|
14
14
|
sequenceDiagram
|
data/docs/executables/setup.md
CHANGED
@@ -10,7 +10,7 @@ It is intended to be run only for the initial setup or when such dependencies ch
|
|
10
10
|
<!-- Mermaid generator - Section start -->
|
11
11
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/setup.md-0.png)
|
12
12
|
<details>
|
13
|
-
<summary>
|
13
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
14
14
|
|
15
15
|
```mermaid
|
16
16
|
sequenceDiagram
|
@@ -11,7 +11,7 @@ This executable is also used internally by other tools of Hybrid Platforms Condu
|
|
11
11
|
<!-- Mermaid generator - Section start -->
|
12
12
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/ssh_config.md-0.png)
|
13
13
|
<details>
|
14
|
-
<summary>
|
14
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
15
15
|
|
16
16
|
```mermaid
|
17
17
|
sequenceDiagram
|
data/docs/executables/test.md
CHANGED
@@ -12,7 +12,7 @@ This executable is perfectly suited to be integrated in a continuous integration
|
|
12
12
|
<!-- Mermaid generator - Section start -->
|
13
13
|
![Mermaid diagram](/docs/gen/mermaid/docs/executables/test.md-0.png)
|
14
14
|
<details>
|
15
|
-
<summary>
|
15
|
+
<summary><sub><sup>Diagram code</sup></sub></summary>
|
16
16
|
|
17
17
|
```mermaid
|
18
18
|
sequenceDiagram
|
data/docs/plugins.md
CHANGED
@@ -107,6 +107,7 @@ Examples of platform handlers are:
|
|
107
107
|
Check the [sample plugin file](../lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/platform_handler_plugin.rb.sample) to know more about the API that needs to be implemented by such plugins.
|
108
108
|
|
109
109
|
Plugins shipped by default:
|
110
|
+
* [`serverless_chef`](plugins/platform_handler/serverless_chef.md)
|
110
111
|
* [`yaml_inventory`](plugins/platform_handler/yaml_inventory.md)
|
111
112
|
|
112
113
|
<a name="provisioner"></a>
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# PlatformHandler plugin: `serverless_chef`
|
2
|
+
|
3
|
+
The `serverless_chef` platform handler is supporting a [Chef repository](https://docs.chef.io/chef_repo/), and deploying services from this repository with using a Chef Infra Server. It uses a client-only deployment process.
|
4
|
+
|
5
|
+
The Chef repository concepts supported by this plugin are:
|
6
|
+
* nodes,
|
7
|
+
* policies,
|
8
|
+
* data bags,
|
9
|
+
* cookbooks,
|
10
|
+
* knife configuration,
|
11
|
+
* node attributes,
|
12
|
+
* policy attributes.
|
13
|
+
|
14
|
+
The Chef repository concepts not supported by this plugin are:
|
15
|
+
* roles,
|
16
|
+
* environments.
|
17
|
+
|
18
|
+
## Requirements
|
19
|
+
|
20
|
+
The platform repository has to contain a file named `chef_versions.yml` that will define the required Chef components' versions fro this Chef repository.
|
21
|
+
|
22
|
+
Here is the structure of this Yaml file:
|
23
|
+
* **`workstation`** (*String*): Version of the [Chef Workstation](https://downloads.chef.io/tools/workstation) to be installed locally during the [setup](/docs/executables/setup.md) phase.
|
24
|
+
* **`client`** (*String*): Version of the [Chef Infra Client](https://docs.chef.io/chef_client_overview/) to be installed on nodes that will be deployed.
|
25
|
+
|
26
|
+
Versions can be of the form `major.minor.patch` or only `major.minor` to benefit automatically from latest patch versions.
|
27
|
+
|
28
|
+
Example of `chef_versions.yml`:
|
29
|
+
```yaml
|
30
|
+
---
|
31
|
+
workstation: '21.5'
|
32
|
+
client: '17.0'
|
33
|
+
```
|
34
|
+
|
35
|
+
## Inventory
|
36
|
+
|
37
|
+
Inventory is read directly from the `nodes/*.json` files that are present in a Chef repository.
|
38
|
+
|
39
|
+
Nodes are expected to use [policies](https://docs.chef.io/policy/) to know which service is to be deployed on a node.
|
40
|
+
|
41
|
+
Metadata is taken from the normal attributes defined in the node's json file.
|
42
|
+
|
43
|
+
Example of node json:
|
44
|
+
```json
|
45
|
+
{
|
46
|
+
"name": "test-node",
|
47
|
+
"normal": {
|
48
|
+
"description": "Single test node",
|
49
|
+
"image": "debian_9",
|
50
|
+
"private_ips": ["172.16.0.1"],
|
51
|
+
"metadata_property": "metadata_value"
|
52
|
+
},
|
53
|
+
"policy_name": "service_name",
|
54
|
+
"policy_group": "test_group"
|
55
|
+
}
|
56
|
+
```
|
57
|
+
|
58
|
+
## Services
|
59
|
+
|
60
|
+
Services available from a Chef repository are parsed from the [policy files](https://docs.chef.io/policyfile/) stored in `policyfiles/*.rb`.
|
61
|
+
1 policy file is 1 service.
|
62
|
+
|
63
|
+
Services are being deployed by packaging the policy using [`chef install`](https://docs.chef.io/workstation/ctl_chef/#chef-install), [`chef export`](https://docs.chef.io/workstation/ctl_chef/#chef-export), which ensures packaging processes optimal and independent from 1 policy to another.
|
64
|
+
|
65
|
+
Then packaged services are uploaded on the node to configured and deployment is done remotely using [Chef Infra Client in local mode](https://docs.chef.io/ctl_chef_client/#run-in-local-mode) on the remote node.
|
66
|
+
|
67
|
+
## Config DSL extension
|
68
|
+
|
69
|
+
### `helpers_including_recipes`
|
70
|
+
|
71
|
+
The `helpers_including_recipes` DSL helps understanding dependencies between cookbooks in your Chef repository.
|
72
|
+
This is used only by the Hybrid Platform Conductor processes that compute which services are being impacted by some git diffs. For example the [`get_impacted_nodes` executable](/docs/executables/get_impacted_nodes.md), and is completely optional.
|
73
|
+
|
74
|
+
This helper defines which recipes are being used by a given library helper.
|
75
|
+
For example if you define a helper named `my_configs` in a library that will use internally a recipe named `my_cookbook::configs` you will need to declare this dependency using the `helpers_including_recipes` for Hybrid Platforms Conductor to know about this dependency.
|
76
|
+
This way, if another recipe (let's say `my_cookbook::production`) uses this helper and a git diff reports a modification in the `my_cookbook::configs` recipe, every node using `my_cookbook::production` will be marked as impacted by such a git diff.
|
77
|
+
|
78
|
+
The helper takes a Hash as parameters: for each helper name, it gives a list of used recipes.
|
79
|
+
|
80
|
+
For example:
|
81
|
+
```ruby
|
82
|
+
helpers_including_recipes(
|
83
|
+
my_configs: %w[my_cookbook::configs]
|
84
|
+
)
|
85
|
+
```
|
86
|
+
|
87
|
+
## Used credentials
|
88
|
+
|
89
|
+
| Credential | Usage
|
90
|
+
| --- | --- |
|
91
|
+
|
92
|
+
## Used Metadata
|
93
|
+
|
94
|
+
| Metadata | Type | Usage
|
95
|
+
| --- | --- | --- |
|
96
|
+
| `use_local_chef` | `Boolean` | If set to true, then run chef-client locally instead of deploying on a remote node |
|
97
|
+
|
98
|
+
## Used environment variables
|
99
|
+
|
100
|
+
| Variable | Usage
|
101
|
+
| --- | --- |
|
102
|
+
|
103
|
+
## External tools dependencies
|
104
|
+
|
105
|
+
* `curl`: Used to install Chef Workstation.
|
data/docs/tutorial.md
CHANGED
@@ -43,15 +43,19 @@ The tutorial assumes that all of the Hybrid Platforms Conductor commands will be
|
|
43
43
|
All steps, command lines and files creations are explicitly detailed in the tutorial steps.
|
44
44
|
No previous knowledge of Ruby is required to get through this tutorial.
|
45
45
|
|
46
|
+
If in doubt, you can always refer to the [tutorial example folder](../examples/tutorial) to check files content.
|
47
|
+
Please note however that the content of this example tutorial folder maps the content of the files at the end of each section of the tutorial (numberd from 01 to 05), and intermediate steps in the tutorial can modify such files.
|
48
|
+
So the tutorial example folders may not reflect the expected content at an intermediate tutorial step.
|
49
|
+
|
46
50
|
**[Next >> Let's start by the first step: installation of your Hybrid Platforms Conductor's environment](tutorial/01_installation.md)**
|
47
51
|
|
48
52
|
---
|
49
53
|
**<p style="text-align: center;">Tutorial navigation</p>**
|
50
54
|
|
51
|
-
| <nobr><sub><
|
55
|
+
| <nobr><sub><sup>👇You are here👇</sup></sub></nobr><br><sub>[Introduction](/docs/tutorial.md)</sub> | <sub>[1. Installation and first-time setup](/docs/tutorial/01_installation.md)</sub> | <sub>[2. Deploy and check a first node](/docs/tutorial/02_first_node.md)</sub> | <sub>[3. Scale your processes](/docs/tutorial/03_scale.md)</sub> | <sub>[4. Testing your processes and platforms](/docs/tutorial/04_test.md)</sub> | <sub>[5. Extend Hybrid Platforms Conductor with your own requirements](/docs/tutorial/05_extend_with_plugins.md)</sub> |
|
52
56
|
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
53
|
-
| <sub><
|
54
|
-
| <sub><
|
55
|
-
| <sub><
|
56
|
-
| | | | | <sub><
|
57
|
-
| | | | | | <sub><
|
57
|
+
| <sub><sup>**[Use-case](/docs/tutorial.md#use-case)**</sup></sub> | <sub><sup>**[Dependencies installation](/docs/tutorial/01_installation.md#hpc-dependencies)**</sup></sub> | <sub><sup>**[Add your first node and its platform repository](/docs/tutorial/02_first_node.md#add-first-node)**</sup></sub> | <sub><sup>**[Provision our web services platform](/docs/tutorial/03_scale.md#provision)**</sup></sub> | <sub><sup>**[Hello test framework](/docs/tutorial/04_test.md#framework)**</sup></sub> | <sub><sup>**[Create your plugins' repository](/docs/tutorial/05_extend_with_plugins.md#plugins-repo)**</sup></sub> |
|
58
|
+
| <sub><sup>**[Prerequisites](/docs/tutorial.md#prerequisites)**</sup></sub> | <sub><sup>**[Our platforms' main repository](/docs/tutorial/01_installation.md#main-repo)**</sup></sub> | <sub><sup>**[Check and deploy services on this node](/docs/tutorial/02_first_node.md#check-deploy)**</sup></sub> | <sub><sup>**[Run commands on our new web services](/docs/tutorial/03_scale.md#run)**</sup></sub> | <sub><sup>**[Testing your nodes](/docs/tutorial/04_test.md#nodes-tests)**</sup></sub> | <sub><sup>**[Your own platform handler](/docs/tutorial/05_extend_with_plugins.md#platform-handler)**</sup></sub> |
|
59
|
+
| <sub><sup>**[Tutorial setup](/docs/tutorial.md#tutorial-setup)**</sup></sub> | | <sub><sup>**[Updating the configuration](/docs/tutorial/02_first_node.md#update)**</sup></sub> | <sub><sup>**[Check and deploy our web services on several nodes at once](/docs/tutorial/03_scale.md#check-deploy)**</sup></sub> | <sub><sup>**[Testing your platforms' configuration](/docs/tutorial/04_test.md#platforms-tests)**</sup></sub> | <sub><sup>**[Write your own tests](/docs/tutorial/05_extend_with_plugins.md#test)**</sup></sub> |
|
60
|
+
| | | | | <sub><sup>**[Other kinds of tests](/docs/tutorial/04_test.md#other-tests)**</sup></sub> | <sub><sup>**[Enough of stdout, we want to report to other tools](/docs/tutorial/05_extend_with_plugins.md#report)**</sup></sub> |
|
61
|
+
| | | | | | <sub><sup>**[What next?](/docs/tutorial/05_extend_with_plugins.md#what-next)**</sup></sub> |
|
@@ -2,13 +2,13 @@
|
|
2
2
|
---
|
3
3
|
**<p style="text-align: center;">Tutorial navigation</p>**
|
4
4
|
|
5
|
-
| <sub>[Introduction](/docs/tutorial.md)</sub> | <nobr><sub><
|
5
|
+
| <sub>[Introduction](/docs/tutorial.md)</sub> | <nobr><sub><sup>👇You are here👇</sup></sub></nobr><br><sub>[1. Installation and first-time setup](/docs/tutorial/01_installation.md)</sub> | <sub>[2. Deploy and check a first node](/docs/tutorial/02_first_node.md)</sub> | <sub>[3. Scale your processes](/docs/tutorial/03_scale.md)</sub> | <sub>[4. Testing your processes and platforms](/docs/tutorial/04_test.md)</sub> | <sub>[5. Extend Hybrid Platforms Conductor with your own requirements](/docs/tutorial/05_extend_with_plugins.md)</sub> |
|
6
6
|
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
7
|
-
| <sub><
|
8
|
-
| <sub><
|
9
|
-
| <sub><
|
10
|
-
| | | | | <sub><
|
11
|
-
| | | | | | <sub><
|
7
|
+
| <sub><sup>**[Use-case](/docs/tutorial.md#use-case)**</sup></sub> | <sub><sup>**[Dependencies installation](/docs/tutorial/01_installation.md#hpc-dependencies)**</sup></sub> | <sub><sup>**[Add your first node and its platform repository](/docs/tutorial/02_first_node.md#add-first-node)**</sup></sub> | <sub><sup>**[Provision our web services platform](/docs/tutorial/03_scale.md#provision)**</sup></sub> | <sub><sup>**[Hello test framework](/docs/tutorial/04_test.md#framework)**</sup></sub> | <sub><sup>**[Create your plugins' repository](/docs/tutorial/05_extend_with_plugins.md#plugins-repo)**</sup></sub> |
|
8
|
+
| <sub><sup>**[Prerequisites](/docs/tutorial.md#prerequisites)**</sup></sub> | <sub><sup>**[Our platforms' main repository](/docs/tutorial/01_installation.md#main-repo)**</sup></sub> | <sub><sup>**[Check and deploy services on this node](/docs/tutorial/02_first_node.md#check-deploy)**</sup></sub> | <sub><sup>**[Run commands on our new web services](/docs/tutorial/03_scale.md#run)**</sup></sub> | <sub><sup>**[Testing your nodes](/docs/tutorial/04_test.md#nodes-tests)**</sup></sub> | <sub><sup>**[Your own platform handler](/docs/tutorial/05_extend_with_plugins.md#platform-handler)**</sup></sub> |
|
9
|
+
| <sub><sup>**[Tutorial setup](/docs/tutorial.md#tutorial-setup)**</sup></sub> | | <sub><sup>**[Updating the configuration](/docs/tutorial/02_first_node.md#update)**</sup></sub> | <sub><sup>**[Check and deploy our web services on several nodes at once](/docs/tutorial/03_scale.md#check-deploy)**</sup></sub> | <sub><sup>**[Testing your platforms' configuration](/docs/tutorial/04_test.md#platforms-tests)**</sup></sub> | <sub><sup>**[Write your own tests](/docs/tutorial/05_extend_with_plugins.md#test)**</sup></sub> |
|
10
|
+
| | | | | <sub><sup>**[Other kinds of tests](/docs/tutorial/04_test.md#other-tests)**</sup></sub> | <sub><sup>**[Enough of stdout, we want to report to other tools](/docs/tutorial/05_extend_with_plugins.md#report)**</sup></sub> |
|
11
|
+
| | | | | | <sub><sup>**[What next?](/docs/tutorial/05_extend_with_plugins.md#what-next)**</sup></sub> |
|
12
12
|
|
13
13
|
# 1. Installation and first-time setup
|
14
14
|
|
@@ -115,15 +115,17 @@ The installation and setup are finished!
|
|
115
115
|
|
116
116
|
Now we are ready to fill in this empty inventory and use the whole power brought by the Hybrid Platforms Conductor to manage our platforms.
|
117
117
|
|
118
|
+
*Files that have been covered in this section can be checked in [this example tutorial folder](/examples/tutorial/01_installation).*
|
119
|
+
|
118
120
|
**[Next >> Check and deploy your first node](/docs/tutorial/02_first_node.md)**
|
119
121
|
|
120
122
|
---
|
121
123
|
**<p style="text-align: center;">Tutorial navigation</p>**
|
122
124
|
|
123
|
-
| <sub>[Introduction](/docs/tutorial.md)</sub> | <nobr><sub><
|
125
|
+
| <sub>[Introduction](/docs/tutorial.md)</sub> | <nobr><sub><sup>👇You are here👇</sup></sub></nobr><br><sub>[1. Installation and first-time setup](/docs/tutorial/01_installation.md)</sub> | <sub>[2. Deploy and check a first node](/docs/tutorial/02_first_node.md)</sub> | <sub>[3. Scale your processes](/docs/tutorial/03_scale.md)</sub> | <sub>[4. Testing your processes and platforms](/docs/tutorial/04_test.md)</sub> | <sub>[5. Extend Hybrid Platforms Conductor with your own requirements](/docs/tutorial/05_extend_with_plugins.md)</sub> |
|
124
126
|
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
125
|
-
| <sub><
|
126
|
-
| <sub><
|
127
|
-
| <sub><
|
128
|
-
| | | | | <sub><
|
129
|
-
| | | | | | <sub><
|
127
|
+
| <sub><sup>**[Use-case](/docs/tutorial.md#use-case)**</sup></sub> | <sub><sup>**[Dependencies installation](/docs/tutorial/01_installation.md#hpc-dependencies)**</sup></sub> | <sub><sup>**[Add your first node and its platform repository](/docs/tutorial/02_first_node.md#add-first-node)**</sup></sub> | <sub><sup>**[Provision our web services platform](/docs/tutorial/03_scale.md#provision)**</sup></sub> | <sub><sup>**[Hello test framework](/docs/tutorial/04_test.md#framework)**</sup></sub> | <sub><sup>**[Create your plugins' repository](/docs/tutorial/05_extend_with_plugins.md#plugins-repo)**</sup></sub> |
|
128
|
+
| <sub><sup>**[Prerequisites](/docs/tutorial.md#prerequisites)**</sup></sub> | <sub><sup>**[Our platforms' main repository](/docs/tutorial/01_installation.md#main-repo)**</sup></sub> | <sub><sup>**[Check and deploy services on this node](/docs/tutorial/02_first_node.md#check-deploy)**</sup></sub> | <sub><sup>**[Run commands on our new web services](/docs/tutorial/03_scale.md#run)**</sup></sub> | <sub><sup>**[Testing your nodes](/docs/tutorial/04_test.md#nodes-tests)**</sup></sub> | <sub><sup>**[Your own platform handler](/docs/tutorial/05_extend_with_plugins.md#platform-handler)**</sup></sub> |
|
129
|
+
| <sub><sup>**[Tutorial setup](/docs/tutorial.md#tutorial-setup)**</sup></sub> | | <sub><sup>**[Updating the configuration](/docs/tutorial/02_first_node.md#update)**</sup></sub> | <sub><sup>**[Check and deploy our web services on several nodes at once](/docs/tutorial/03_scale.md#check-deploy)**</sup></sub> | <sub><sup>**[Testing your platforms' configuration](/docs/tutorial/04_test.md#platforms-tests)**</sup></sub> | <sub><sup>**[Write your own tests](/docs/tutorial/05_extend_with_plugins.md#test)**</sup></sub> |
|
130
|
+
| | | | | <sub><sup>**[Other kinds of tests](/docs/tutorial/04_test.md#other-tests)**</sup></sub> | <sub><sup>**[Enough of stdout, we want to report to other tools](/docs/tutorial/05_extend_with_plugins.md#report)**</sup></sub> |
|
131
|
+
| | | | | | <sub><sup>**[What next?](/docs/tutorial/05_extend_with_plugins.md#what-next)**</sup></sub> |
|
@@ -2,13 +2,13 @@
|
|
2
2
|
---
|
3
3
|
**<p style="text-align: center;">Tutorial navigation</p>**
|
4
4
|
|
5
|
-
| <sub>[Introduction](/docs/tutorial.md)</sub> | <sub>[1. Installation and first-time setup](/docs/tutorial/01_installation.md)</sub> | <nobr><sub><
|
5
|
+
| <sub>[Introduction](/docs/tutorial.md)</sub> | <sub>[1. Installation and first-time setup](/docs/tutorial/01_installation.md)</sub> | <nobr><sub><sup>👇You are here👇</sup></sub></nobr><br><sub>[2. Deploy and check a first node](/docs/tutorial/02_first_node.md)</sub> | <sub>[3. Scale your processes](/docs/tutorial/03_scale.md)</sub> | <sub>[4. Testing your processes and platforms](/docs/tutorial/04_test.md)</sub> | <sub>[5. Extend Hybrid Platforms Conductor with your own requirements](/docs/tutorial/05_extend_with_plugins.md)</sub> |
|
6
6
|
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
7
|
-
| <sub><
|
8
|
-
| <sub><
|
9
|
-
| <sub><
|
10
|
-
| | | | | <sub><
|
11
|
-
| | | | | | <sub><
|
7
|
+
| <sub><sup>**[Use-case](/docs/tutorial.md#use-case)**</sup></sub> | <sub><sup>**[Dependencies installation](/docs/tutorial/01_installation.md#hpc-dependencies)**</sup></sub> | <sub><sup>**[Add your first node and its platform repository](/docs/tutorial/02_first_node.md#add-first-node)**</sup></sub> | <sub><sup>**[Provision our web services platform](/docs/tutorial/03_scale.md#provision)**</sup></sub> | <sub><sup>**[Hello test framework](/docs/tutorial/04_test.md#framework)**</sup></sub> | <sub><sup>**[Create your plugins' repository](/docs/tutorial/05_extend_with_plugins.md#plugins-repo)**</sup></sub> |
|
8
|
+
| <sub><sup>**[Prerequisites](/docs/tutorial.md#prerequisites)**</sup></sub> | <sub><sup>**[Our platforms' main repository](/docs/tutorial/01_installation.md#main-repo)**</sup></sub> | <sub><sup>**[Check and deploy services on this node](/docs/tutorial/02_first_node.md#check-deploy)**</sup></sub> | <sub><sup>**[Run commands on our new web services](/docs/tutorial/03_scale.md#run)**</sup></sub> | <sub><sup>**[Testing your nodes](/docs/tutorial/04_test.md#nodes-tests)**</sup></sub> | <sub><sup>**[Your own platform handler](/docs/tutorial/05_extend_with_plugins.md#platform-handler)**</sup></sub> |
|
9
|
+
| <sub><sup>**[Tutorial setup](/docs/tutorial.md#tutorial-setup)**</sup></sub> | | <sub><sup>**[Updating the configuration](/docs/tutorial/02_first_node.md#update)**</sup></sub> | <sub><sup>**[Check and deploy our web services on several nodes at once](/docs/tutorial/03_scale.md#check-deploy)**</sup></sub> | <sub><sup>**[Testing your platforms' configuration](/docs/tutorial/04_test.md#platforms-tests)**</sup></sub> | <sub><sup>**[Write your own tests](/docs/tutorial/05_extend_with_plugins.md#test)**</sup></sub> |
|
10
|
+
| | | | | <sub><sup>**[Other kinds of tests](/docs/tutorial/04_test.md#other-tests)**</sup></sub> | <sub><sup>**[Enough of stdout, we want to report to other tools](/docs/tutorial/05_extend_with_plugins.md#report)**</sup></sub> |
|
11
|
+
| | | | | | <sub><sup>**[What next?](/docs/tutorial/05_extend_with_plugins.md#what-next)**</sup></sub> |
|
12
12
|
|
13
13
|
# 2. Deploy and check a first node
|
14
14
|
|
@@ -452,15 +452,17 @@ So now it's time to see how Hybrid Platforms Conductor will scale those processe
|
|
452
452
|
|
453
453
|
We won't stop at editing bash scripts on a local environment - time to scale!
|
454
454
|
|
455
|
+
*Files that have been covered in this section can be checked in [this example tutorial folder](/examples/tutorial/02_first_node).*
|
456
|
+
|
455
457
|
**[Next >> Scale your processes](/docs/tutorial/03_scale.md)**
|
456
458
|
|
457
459
|
---
|
458
460
|
**<p style="text-align: center;">Tutorial navigation</p>**
|
459
461
|
|
460
|
-
| <sub>[Introduction](/docs/tutorial.md)</sub> | <sub>[1. Installation and first-time setup](/docs/tutorial/01_installation.md)</sub> | <nobr><sub><
|
462
|
+
| <sub>[Introduction](/docs/tutorial.md)</sub> | <sub>[1. Installation and first-time setup](/docs/tutorial/01_installation.md)</sub> | <nobr><sub><sup>👇You are here👇</sup></sub></nobr><br><sub>[2. Deploy and check a first node](/docs/tutorial/02_first_node.md)</sub> | <sub>[3. Scale your processes](/docs/tutorial/03_scale.md)</sub> | <sub>[4. Testing your processes and platforms](/docs/tutorial/04_test.md)</sub> | <sub>[5. Extend Hybrid Platforms Conductor with your own requirements](/docs/tutorial/05_extend_with_plugins.md)</sub> |
|
461
463
|
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
462
|
-
| <sub><
|
463
|
-
| <sub><
|
464
|
-
| <sub><
|
465
|
-
| | | | | <sub><
|
466
|
-
| | | | | | <sub><
|
464
|
+
| <sub><sup>**[Use-case](/docs/tutorial.md#use-case)**</sup></sub> | <sub><sup>**[Dependencies installation](/docs/tutorial/01_installation.md#hpc-dependencies)**</sup></sub> | <sub><sup>**[Add your first node and its platform repository](/docs/tutorial/02_first_node.md#add-first-node)**</sup></sub> | <sub><sup>**[Provision our web services platform](/docs/tutorial/03_scale.md#provision)**</sup></sub> | <sub><sup>**[Hello test framework](/docs/tutorial/04_test.md#framework)**</sup></sub> | <sub><sup>**[Create your plugins' repository](/docs/tutorial/05_extend_with_plugins.md#plugins-repo)**</sup></sub> |
|
465
|
+
| <sub><sup>**[Prerequisites](/docs/tutorial.md#prerequisites)**</sup></sub> | <sub><sup>**[Our platforms' main repository](/docs/tutorial/01_installation.md#main-repo)**</sup></sub> | <sub><sup>**[Check and deploy services on this node](/docs/tutorial/02_first_node.md#check-deploy)**</sup></sub> | <sub><sup>**[Run commands on our new web services](/docs/tutorial/03_scale.md#run)**</sup></sub> | <sub><sup>**[Testing your nodes](/docs/tutorial/04_test.md#nodes-tests)**</sup></sub> | <sub><sup>**[Your own platform handler](/docs/tutorial/05_extend_with_plugins.md#platform-handler)**</sup></sub> |
|
466
|
+
| <sub><sup>**[Tutorial setup](/docs/tutorial.md#tutorial-setup)**</sup></sub> | | <sub><sup>**[Updating the configuration](/docs/tutorial/02_first_node.md#update)**</sup></sub> | <sub><sup>**[Check and deploy our web services on several nodes at once](/docs/tutorial/03_scale.md#check-deploy)**</sup></sub> | <sub><sup>**[Testing your platforms' configuration](/docs/tutorial/04_test.md#platforms-tests)**</sup></sub> | <sub><sup>**[Write your own tests](/docs/tutorial/05_extend_with_plugins.md#test)**</sup></sub> |
|
467
|
+
| | | | | <sub><sup>**[Other kinds of tests](/docs/tutorial/04_test.md#other-tests)**</sup></sub> | <sub><sup>**[Enough of stdout, we want to report to other tools](/docs/tutorial/05_extend_with_plugins.md#report)**</sup></sub> |
|
468
|
+
| | | | | | <sub><sup>**[What next?](/docs/tutorial/05_extend_with_plugins.md#what-next)**</sup></sub> |
|