hybrid_platforms_conductor 32.16.4 → 33.0.1
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 +6 -3
- data/bin/check-node +0 -1
- data/bin/deploy +0 -1
- data/bin/get_impacted_nodes +0 -1
- data/bin/last_deploys +12 -8
- data/bin/nodes_to_deploy +6 -6
- data/bin/setup +6 -6
- data/bin/topograph +1 -1
- data/docs/config_dsl.md +45 -1
- data/docs/executables.md +6 -7
- data/docs/executables/check-node.md +3 -3
- data/docs/executables/deploy.md +3 -3
- data/docs/executables/dump_nodes_json.md +3 -3
- data/docs/executables/test.md +3 -3
- data/docs/executables/topograph.md +3 -3
- 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/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/ssh_config.md-0.png +0 -0
- data/docs/gen/mermaid/docs/executables/test.md-0.png +0 -0
- data/docs/plugins.md +47 -0
- data/docs/plugins/connector/ssh.md +1 -1
- data/docs/plugins/log/remote_fs.md +26 -0
- data/docs/plugins/secrets_reader/cli.md +31 -0
- data/docs/plugins/secrets_reader/thycotic.md +46 -0
- data/docs/plugins/test/bitbucket_conf.md +1 -1
- data/docs/plugins/test/check_deploy_and_idempotence.md +1 -1
- data/docs/plugins/test/connection.md +1 -0
- data/docs/plugins/test/deploy_removes_root_access.md +1 -1
- data/docs/plugins/test/file_system.md +1 -0
- data/docs/plugins/test/github_ci.md +48 -0
- data/docs/plugins/test/hostname.md +1 -0
- data/docs/plugins/test/ip.md +1 -0
- data/docs/plugins/test/jenkins_ci_conf.md +1 -1
- data/docs/plugins/test/jenkins_ci_masters_ok.md +1 -1
- data/docs/plugins/test/local_users.md +1 -0
- data/docs/plugins/test/mounts.md +1 -0
- data/docs/plugins/test/orphan_files.md +1 -0
- data/docs/plugins/test/ports.md +1 -0
- data/docs/plugins/test/spectre.md +1 -0
- data/docs/plugins/test/vulnerabilities.md +1 -0
- data/lib/hybrid_platforms_conductor/action.rb +4 -4
- data/lib/hybrid_platforms_conductor/actions_executor.rb +45 -43
- data/lib/hybrid_platforms_conductor/bitbucket.rb +5 -4
- data/lib/hybrid_platforms_conductor/cmd_runner.rb +13 -12
- data/lib/hybrid_platforms_conductor/cmdb.rb +2 -2
- data/lib/hybrid_platforms_conductor/common_config_dsl/bitbucket.rb +2 -1
- data/lib/hybrid_platforms_conductor/common_config_dsl/confluence.rb +2 -1
- data/lib/hybrid_platforms_conductor/common_config_dsl/file_system_tests.rb +5 -4
- data/lib/hybrid_platforms_conductor/common_config_dsl/github.rb +63 -0
- data/lib/hybrid_platforms_conductor/common_config_dsl/idempotence_tests.rb +2 -2
- data/lib/hybrid_platforms_conductor/config.rb +7 -4
- data/lib/hybrid_platforms_conductor/confluence.rb +1 -1
- data/lib/hybrid_platforms_conductor/connector.rb +5 -2
- data/lib/hybrid_platforms_conductor/core_extensions/symbol/zero.rb +24 -0
- data/lib/hybrid_platforms_conductor/credentials.rb +39 -36
- data/lib/hybrid_platforms_conductor/current_dir_monitor.rb +4 -1
- data/lib/hybrid_platforms_conductor/deployer.rb +275 -224
- data/lib/hybrid_platforms_conductor/executable.rb +20 -15
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/config.rb +10 -7
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_ip.rb +1 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/host_keys.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/cmdb/platform_handlers.rb +4 -4
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/local.rb +2 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/connector/ssh.rb +45 -49
- data/lib/hybrid_platforms_conductor/hpc_plugins/log/my_log_plugin.rb.sample +100 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/log/remote_fs.rb +180 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef.rb +68 -66
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/dsl_parser.rb +13 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/serverless_chef/recipes_tree_builder.rb +39 -38
- data/lib/hybrid_platforms_conductor/hpc_plugins/platform_handler/yaml_inventory.rb +5 -4
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/docker.rb +43 -45
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/podman.rb +18 -20
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox.rb +118 -117
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/proxmox_waiter.rb +39 -43
- data/lib/hybrid_platforms_conductor/hpc_plugins/provisioner/proxmox/reserve_proxmox_container +9 -13
- data/lib/hybrid_platforms_conductor/hpc_plugins/report/confluence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/report/mediawiki.rb +28 -21
- data/lib/hybrid_platforms_conductor/hpc_plugins/report/stdout.rb +26 -22
- data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/cli.rb +77 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/my_secrets_reader_plugin.rb.sample +46 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/secrets_reader/thycotic.rb +90 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/bitbucket_conf.rb +3 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/check_deploy_and_idempotence.rb +4 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/connection.rb +3 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_freshness.rb +7 -21
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/deploy_removes_root_access.rb +21 -19
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/divergence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/executables.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system.rb +21 -22
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/file_system_hdfs.rb +19 -21
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/github_ci.rb +31 -0
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/hostname.rb +3 -1
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/idempotence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/ip.rb +4 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_conf.rb +21 -22
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/jenkins_ci_masters_ok.rb +10 -12
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/linear_strategy.rb +9 -9
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/local_users.rb +5 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/mounts.rb +5 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/orphan_files.rb +13 -10
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/ports.rb +5 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/private_ips.rb +5 -5
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/public_ips.rb +5 -5
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/spectre.rb +7 -7
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/veids.rb +3 -3
- data/lib/hybrid_platforms_conductor/hpc_plugins/test/vulnerabilities.rb +27 -25
- data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/confluence.rb +2 -2
- data/lib/hybrid_platforms_conductor/hpc_plugins/test_report/stdout.rb +8 -6
- data/lib/hybrid_platforms_conductor/io_router.rb +14 -13
- data/lib/hybrid_platforms_conductor/json_dumper.rb +2 -2
- data/lib/hybrid_platforms_conductor/log.rb +31 -0
- data/lib/hybrid_platforms_conductor/logger_helpers.rb +19 -16
- data/lib/hybrid_platforms_conductor/nodes_handler.rb +89 -71
- data/lib/hybrid_platforms_conductor/parallel_threads.rb +7 -11
- data/lib/hybrid_platforms_conductor/platform_handler.rb +7 -7
- data/lib/hybrid_platforms_conductor/platforms_handler.rb +5 -3
- data/lib/hybrid_platforms_conductor/plugin.rb +2 -2
- data/lib/hybrid_platforms_conductor/plugins.rb +14 -8
- data/lib/hybrid_platforms_conductor/provisioner.rb +4 -4
- data/lib/hybrid_platforms_conductor/report.rb +2 -2
- data/lib/hybrid_platforms_conductor/reports_handler.rb +3 -2
- data/lib/hybrid_platforms_conductor/secrets_reader.rb +31 -0
- data/lib/hybrid_platforms_conductor/services_handler.rb +32 -29
- data/lib/hybrid_platforms_conductor/test_only_remote_node.rb +18 -0
- data/lib/hybrid_platforms_conductor/test_report.rb +15 -18
- data/lib/hybrid_platforms_conductor/tests_runner.rb +116 -118
- data/lib/hybrid_platforms_conductor/thycotic.rb +28 -19
- data/lib/hybrid_platforms_conductor/topographer.rb +200 -190
- data/lib/hybrid_platforms_conductor/topographer/plugins/graphviz.rb +8 -8
- data/lib/hybrid_platforms_conductor/topographer/plugins/json.rb +4 -4
- data/lib/hybrid_platforms_conductor/version.rb +1 -1
- data/spec/hybrid_platforms_conductor_test.rb +33 -12
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/bash_spec.rb +16 -11
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/interactive_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/remote_bash_spec.rb +23 -18
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/ruby_spec.rb +67 -49
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions/scp_spec.rb +20 -14
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/actions_spec.rb +63 -50
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connection_spec.rb +35 -35
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/connectable_nodes_spec.rb +12 -8
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/local/remote_actions_spec.rb +4 -7
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/cli_options_spec.rb +21 -22
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/config_dsl_spec.rb +23 -24
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connectable_nodes_spec.rb +10 -6
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/connections_spec.rb +73 -54
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/global_helpers_spec.rb +145 -126
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/node_helpers_spec.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/connectors/ssh/remote_actions_spec.rb +29 -25
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/logging_spec.rb +106 -91
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/parallel_spec.rb +272 -244
- data/spec/hybrid_platforms_conductor_test/api/actions_executor/timeout_spec.rb +10 -12
- data/spec/hybrid_platforms_conductor_test/api/cmd_runner_spec.rb +36 -36
- data/spec/hybrid_platforms_conductor_test/api/config_spec.rb +24 -22
- data/spec/hybrid_platforms_conductor_test/api/deployer/check_spec.rb +4 -2
- data/spec/hybrid_platforms_conductor_test/api/deployer/config_dsl_spec.rb +43 -5
- data/spec/hybrid_platforms_conductor_test/api/deployer/deploy_spec.rb +199 -216
- data/spec/hybrid_platforms_conductor_test/api/deployer/log_plugins/remote_fs_spec.rb +223 -0
- data/spec/hybrid_platforms_conductor_test/api/deployer/parse_deploy_output_spec.rb +55 -59
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioner_spec.rb +36 -62
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/podman_spec.rb +17 -17
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/config_dsl_spec.rb +4 -4
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/create_spec.rb +44 -51
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/destroy_spec.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/ip_spec.rb +12 -16
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/destroy_vm_spec.rb +31 -19
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/expired_containers_spec.rb +324 -266
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/ips_assignment_spec.rb +89 -61
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/other_lxc_containers_resources_spec.rb +117 -93
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/pve_node_resources_spec.rb +71 -54
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/retries_spec.rb +10 -8
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/reserve_proxmox_container/vm_ids_assignment_spec.rb +80 -60
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/start_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/state_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/deployer/provisioners/proxmox/stop_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/cli_spec.rb +64 -0
- data/spec/hybrid_platforms_conductor_test/api/deployer/secrets_reader_plugins/thycotic_spec.rb +268 -0
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/config_spec.rb +8 -10
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_ip_spec.rb +33 -24
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/host_keys_spec.rb +64 -51
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs/platform_handlers_spec.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/cmdbs_plugins_api_spec.rb +50 -51
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/common_spec.rb +91 -81
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/config_dsl_spec.rb +14 -16
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/git_diff_impacts_spec.rb +51 -75
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/nodes_selectors_spec.rb +35 -26
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/platform_handlers_plugins_api_spec.rb +24 -16
- data/spec/hybrid_platforms_conductor_test/api/nodes_handler/several_platforms_spec.rb +29 -19
- data/spec/hybrid_platforms_conductor_test/api/platform_handler_spec.rb +4 -4
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/config_dsl_spec.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/deploy_output_parsing_spec.rb +6 -6
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/diff_impacts_spec.rb +57 -99
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/inventory_spec.rb +4 -4
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/packaging_spec.rb +32 -35
- data/spec/hybrid_platforms_conductor_test/api/platform_handlers/serverless_chef/services_deployment_spec.rb +10 -10
- data/spec/hybrid_platforms_conductor_test/api/platforms_handler_spec.rb +38 -27
- data/spec/hybrid_platforms_conductor_test/api/plugins_spec.rb +46 -52
- data/spec/hybrid_platforms_conductor_test/api/reports_handler_spec.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/api/services_handler/actions_to_deploy_spec.rb +90 -58
- data/spec/hybrid_platforms_conductor_test/api/services_handler/deploy_allowed_spec.rb +38 -34
- data/spec/hybrid_platforms_conductor_test/api/services_handler/log_info_spec.rb +11 -9
- data/spec/hybrid_platforms_conductor_test/api/services_handler/package_spec.rb +193 -171
- data/spec/hybrid_platforms_conductor_test/api/services_handler/parse_deploy_output_spec.rb +66 -54
- data/spec/hybrid_platforms_conductor_test/api/services_handler/prepare_for_deploy_spec.rb +147 -133
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/common_spec.rb +69 -49
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/global_spec.rb +5 -4
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_check_spec.rb +8 -5
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_spec.rb +8 -5
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/node_ssh_spec.rb +30 -27
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/platform_spec.rb +12 -9
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/reports_spec.rb +48 -47
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/bitbucket_conf_spec.rb +5 -5
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_plugins/github_ci_spec.rb +72 -0
- data/spec/hybrid_platforms_conductor_test/api/tests_runner/test_reports_plugins/confluence_spec.rb +5 -5
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb.rb +9 -9
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/{test_cmdb2.rb → test_cmdb_2.rb} +6 -6
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/test_cmdb_others.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/cmdb_plugins/{test_cmdb_others2.rb → test_cmdb_others_2.rb} +2 -2
- data/spec/hybrid_platforms_conductor_test/docs_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/executables/{check-node_spec.rb → check_node_spec.rb} +4 -6
- data/spec/hybrid_platforms_conductor_test/executables/deploy_spec.rb +4 -6
- data/spec/hybrid_platforms_conductor_test/executables/get_impacted_nodes_spec.rb +76 -77
- data/spec/hybrid_platforms_conductor_test/executables/last_deploys_spec.rb +159 -113
- data/spec/hybrid_platforms_conductor_test/executables/nodes_to_deploy_spec.rb +299 -160
- data/spec/hybrid_platforms_conductor_test/executables/options/actions_executor_spec.rb +4 -6
- data/spec/hybrid_platforms_conductor_test/executables/options/cmd_runner_spec.rb +3 -5
- data/spec/hybrid_platforms_conductor_test/executables/options/common_spec.rb +8 -8
- data/spec/hybrid_platforms_conductor_test/executables/options/deployer_spec.rb +12 -196
- data/spec/hybrid_platforms_conductor_test/executables/options/nodes_handler_spec.rb +9 -10
- data/spec/hybrid_platforms_conductor_test/executables/options/nodes_selectors_spec.rb +9 -10
- data/spec/hybrid_platforms_conductor_test/executables/options/reports_handler_spec.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/executables/options/tests_runner_spec.rb +22 -22
- data/spec/hybrid_platforms_conductor_test/executables/report_spec.rb +22 -16
- data/spec/hybrid_platforms_conductor_test/executables/run_spec.rb +32 -32
- data/spec/hybrid_platforms_conductor_test/executables/ssh_config_spec.rb +7 -9
- data/spec/hybrid_platforms_conductor_test/executables/test_spec.rb +3 -5
- data/spec/hybrid_platforms_conductor_test/helpers/actions_executor_helpers.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/helpers/cmd_runner_helpers.rb +4 -3
- data/spec/hybrid_platforms_conductor_test/helpers/cmdb_helpers.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/helpers/config_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/connector_ssh_helpers.rb +12 -13
- data/spec/hybrid_platforms_conductor_test/helpers/deployer_helpers.rb +245 -56
- data/spec/hybrid_platforms_conductor_test/helpers/executables_helpers.rb +11 -11
- data/spec/hybrid_platforms_conductor_test/helpers/nodes_handler_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/platforms_handler_helpers.rb +39 -28
- data/spec/hybrid_platforms_conductor_test/helpers/plugins_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/provisioner_proxmox_helpers.rb +86 -111
- data/spec/hybrid_platforms_conductor_test/helpers/reports_handler_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/serverless_chef_helpers.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/helpers/services_handler_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/helpers/tests_runner_helpers.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/{test_plugin_id1.rb → test_plugin_id_1.rb} +0 -0
- data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem/hpc_plugins/test_plugin_type/{test_plugin_id2.rb → test_plugin_id_2.rb} +0 -0
- data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/test_plugin_type/{test_plugin_id3.rb → test_plugin_id_3.rb} +0 -0
- data/spec/hybrid_platforms_conductor_test/mocked_lib/my_test_gem2/sub_dir/hpc_plugins/{test_plugin_type2/test_plugin_id4.rb → test_plugin_type_2/test_plugin_id_4.rb} +0 -0
- data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/test.rb +1 -1
- data/spec/hybrid_platforms_conductor_test/platform_handler_plugins/{test2.rb → test_2.rb} +0 -0
- data/spec/hybrid_platforms_conductor_test/rubocop_spec.rb +31 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/1_node/nodes/node.json +3 -3
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/data_bags/nodes/node.json +3 -3
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/recipes/cookbooks/test_cookbook_2/libraries/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/serverless_chef_repositories/several_cookbooks/other_cookbooks/test_cookbook_2/libraries/default.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/shared_examples/deployer.rb +952 -0
- data/spec/hybrid_platforms_conductor_test/test_connector.rb +3 -3
- data/spec/hybrid_platforms_conductor_test/test_log_no_read_plugin.rb +84 -0
- data/spec/hybrid_platforms_conductor_test/test_log_plugin.rb +105 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/global.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/node.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/node_check.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/platform.rb +1 -0
- data/spec/hybrid_platforms_conductor_test/test_plugins/several_checks.rb +2 -2
- data/spec/hybrid_platforms_conductor_test/test_secrets_reader_plugin.rb +45 -0
- data/spec/hybrid_platforms_conductor_test/tests_report_plugin.rb +5 -6
- data/spec/spec_helper.rb +17 -18
- data/tools/check_md +16 -20
- data/tools/generate_mermaid +1 -1
- metadata +82 -13
- data/spec/hybrid_platforms_conductor_test/helpers/deployer_test_helpers.rb +0 -916
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 557dadbcc02ee1031ca9a68fcbb1093c8760bfa171213a069f8e312a555f3c6d
|
4
|
+
data.tar.gz: 354d4948c3acc65fccbd227baf1b43a9b6950b27ecb7296b030997ea585bff84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61b623a49511b2e649386cb5b8fdcd2ef0535578a88a4e3972597de378a1172bbfc3365f14264d49c0917ec9419b140b5f53ef2c390fc95c8b43ac821b6fc798
|
7
|
+
data.tar.gz: '0589c2444d2580aaf70cc27636b52984b51668ff0470ec0d1a3ebd4ea709c19856926308bffc62c60caeebe30fc5c9bdadbd8d7f2fdf373fc1b6f7422fa28bf4'
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,45 @@
|
|
1
|
+
# [v33.0.1](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v33.0.0...v33.0.1) (2021-06-16 16:22:41)
|
2
|
+
|
3
|
+
### Patches
|
4
|
+
|
5
|
+
* [[#49] Added lint checks in CI and corrected all non acceptable lint errors](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/b3188532e679f845f66966e7c8054ce8db63be26)
|
6
|
+
|
7
|
+
# [v33.0.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.18.0...v33.0.0) (2021-06-15 16:10:47)
|
8
|
+
|
9
|
+
### Breaking changes
|
10
|
+
|
11
|
+
* [[Breaking] Add secrets reader plugins with 2 default plugins: cli and thycotic](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/2cfacebe8cfac57de40ef003877da5b99aca5b5e)
|
12
|
+
|
13
|
+
# [v32.18.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.17.1...v32.18.0) (2021-06-14 15:01:02)
|
14
|
+
|
15
|
+
## Global changes
|
16
|
+
### Patches
|
17
|
+
|
18
|
+
* [[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)
|
19
|
+
|
20
|
+
## Changes for log_remote_fs
|
21
|
+
### Features
|
22
|
+
|
23
|
+
* [[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)
|
24
|
+
|
25
|
+
# [v32.17.1](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.17.0...v32.17.1) (2021-06-03 16:20:09)
|
26
|
+
|
27
|
+
### Patches
|
28
|
+
|
29
|
+
* [[Hotfix] Don't run remote nodes tests on local nodes](https://github.com/sweet-delights/hybrid-platforms-conductor/commit/fe8e34a4d74f21d4903c14b1e156b9730f4b5fee)
|
30
|
+
|
31
|
+
# [v32.17.0](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.16.4...v32.17.0) (2021-06-02 12:57:44)
|
32
|
+
|
33
|
+
## Global changes
|
34
|
+
### Patches
|
35
|
+
|
36
|
+
* [[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)
|
37
|
+
|
38
|
+
## Changes for test_github_ci
|
39
|
+
### Features
|
40
|
+
|
41
|
+
* [[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)
|
42
|
+
|
1
43
|
# [v32.16.4](https://github.com/sweet-delights/hybrid-platforms-conductor/compare/v32.16.3...v32.16.4) (2021-06-01 13:25:19)
|
2
44
|
|
3
45
|
### Patches
|
data/README.md
CHANGED
@@ -216,13 +216,13 @@ Connector ssh options:
|
|
216
216
|
--ssh-gateways-conf
|
217
217
|
|
218
218
|
Deployer options:
|
219
|
-
-e, --secrets SECRETS_LOCATION Specify a secrets location. Can be specified several times. Location can be:
|
220
|
-
* Local path to a JSON file
|
221
|
-
* URL of the form http[s]://<url>:<secret_id> to get a secret JSON file from a Thycotic Secret Server at the given URL.
|
222
219
|
-p, --parallel Execute the commands in parallel (put the standard output in files <hybrid-platforms-dir>/run_logs/*.stdout)
|
223
220
|
-t, --timeout SECS Timeout in seconds to wait for each chef run. Only used in why-run mode. (defaults to no timeout)
|
224
221
|
-W, --why-run Use the why-run mode to see what would be the result of the deploy instead of deploying it for real.
|
225
222
|
--retries-on-error NBR Number of retries in case of non-deterministic errors (defaults to 0)
|
223
|
+
|
224
|
+
Secrets reader cli options:
|
225
|
+
-e, --secrets JSON_FILE Specify a secrets location from a local JSON file. Can be specified several times.
|
226
226
|
```
|
227
227
|
|
228
228
|
All executables also have the `--debug` switch to display more verbose and debugging information.
|
@@ -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/check-node
CHANGED
data/bin/deploy
CHANGED
data/bin/get_impacted_nodes
CHANGED
@@ -22,7 +22,6 @@ executable = HybridPlatformsConductor::Executable.new(nodes_selection_options: f
|
|
22
22
|
end
|
23
23
|
nodes_handler = executable.nodes_handler
|
24
24
|
platforms_handler = executable.platforms_handler
|
25
|
-
cmd_runner = executable.cmd_runner
|
26
25
|
executable.parse_options!
|
27
26
|
raise 'No platform specified. Please use --platform option' if platform.nil?
|
28
27
|
|
data/bin/last_deploys
CHANGED
@@ -8,12 +8,12 @@ possible_string_sorts = %i[
|
|
8
8
|
node
|
9
9
|
user
|
10
10
|
]
|
11
|
-
possible_sorts =
|
11
|
+
possible_sorts = possible_string_sorts.map do |property_name|
|
12
12
|
[
|
13
13
|
property_name,
|
14
14
|
proc { |node, deploy_info| [deploy_info.key?(:error) || !deploy_info.key?(property_name) ? '' : deploy_info[property_name], node] }
|
15
15
|
]
|
16
|
-
end
|
16
|
+
end.to_h
|
17
17
|
|
18
18
|
sort_by = :node
|
19
19
|
sort_desc = false
|
@@ -21,7 +21,7 @@ executable = HybridPlatformsConductor::Executable.new(deploy_options: false) do
|
|
21
21
|
opts.on('-r', '--sort-by SORT', "Specify a sort. Possible values are: #{possible_sorts.keys.sort.join(', ')}. Each value can append _desc to specify a reverse sorting. Defaults to #{sort_by}.") do |sort_name|
|
22
22
|
if sort_name =~ /^(.+)_desc$/
|
23
23
|
sort_desc = true
|
24
|
-
sort_name =
|
24
|
+
sort_name = Regexp.last_match(1)
|
25
25
|
end
|
26
26
|
sort_by = sort_name.to_sym
|
27
27
|
end
|
@@ -32,15 +32,19 @@ deployer = executable.deployer
|
|
32
32
|
executable.parse_options!
|
33
33
|
raise "Unknown sort name: #{sort_by}. Should be one of #{possible_sorts.keys.join(', ')}." unless possible_sorts.key?(sort_by)
|
34
34
|
|
35
|
-
sorted_deploy_info =
|
36
|
-
|
35
|
+
sorted_deploy_info = deployer.
|
36
|
+
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
|
-
|
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
|
-
end
|
43
|
-
|
45
|
+
end.
|
46
|
+
to_h.
|
47
|
+
sort_by(&possible_sorts[sort_by])
|
44
48
|
sorted_deploy_info.reverse! if sort_desc
|
45
49
|
info_displayed = {
|
46
50
|
node: 'Node',
|
data/bin/nodes_to_deploy
CHANGED
@@ -21,7 +21,7 @@ deployer = executable.deployer
|
|
21
21
|
|
22
22
|
executable.parse_options!
|
23
23
|
|
24
|
-
nodes =
|
24
|
+
nodes = nodes_handler.select_nodes(executable.selected_nodes.empty? ? [{ all: true }] : executable.selected_nodes)
|
25
25
|
|
26
26
|
unless ignore_schedule
|
27
27
|
# Select nodes to be deployed, based first on deployment schedule
|
@@ -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] !=
|
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)
|
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)
|
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/bin/setup
CHANGED
@@ -7,10 +7,10 @@ platforms_handler = executable.platforms_handler
|
|
7
7
|
executable.parse_options!
|
8
8
|
|
9
9
|
platforms_handler.known_platforms.each do |platform|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
next unless platform.respond_to?(:setup)
|
11
|
+
|
12
|
+
executable.out "===== Setup platform #{platform.name}..."
|
13
|
+
platform.setup
|
14
|
+
executable.out "===== Platform #{platform.name} setup successfully."
|
15
|
+
executable.out ''
|
16
16
|
end
|
data/bin/topograph
CHANGED
@@ -17,7 +17,7 @@ executable.parse_options!
|
|
17
17
|
|
18
18
|
# Initialize the topograph
|
19
19
|
from_nodes, to_nodes = topographer.resolve_from_to
|
20
|
-
topographer.
|
20
|
+
topographer.json_files
|
21
21
|
|
22
22
|
# The list of clusters to group nodes into 1 graphviz node to simplify the graph.
|
23
23
|
known_nodes_lists = nodes_handler.known_nodes_lists
|
data/docs/config_dsl.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
The DSL used in configuration files is comprised of Ruby methods that can be called directly in the main `hpc_config.rb` file.
|
4
4
|
|
5
|
-
This DSL can also be completed by plugins. Check [the plugins documentations](plugins) to know about DSL extensions brought by plugins.
|
5
|
+
This DSL can also be completed by plugins. Check [the plugins documentations](plugins.md) to know about DSL extensions brought by plugins.
|
6
6
|
|
7
7
|
# Table of Contents
|
8
8
|
* [`<platform_type>_platform`](#platform_type_platform)
|
@@ -13,6 +13,8 @@ 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
|
+
* [`read_secrets_from`](#read_secrets_from)
|
17
|
+
* [`send_logs_to`](#send_logs_to)
|
16
18
|
* [`retry_deploy_for_errors_on_stdout`](#retry_deploy_for_errors_on_stdout)
|
17
19
|
* [`retry_deploy_for_errors_on_stderr`](#retry_deploy_for_errors_on_stderr)
|
18
20
|
* [`packaging_timeout`](#packaging_timeout)
|
@@ -200,6 +202,48 @@ for_nodes('/tst/') do
|
|
200
202
|
end
|
201
203
|
```
|
202
204
|
|
205
|
+
<a name="read_secrets_from"></a>
|
206
|
+
## `read_secrets_from`
|
207
|
+
|
208
|
+
Set the list of [secrets reader plugins](plugins.md#secrets_reader) to use.
|
209
|
+
By default (if no plugins is specifically set) the [secrets reader plugin `cli`](plugins/secrets_reader/cli.md) is being used.
|
210
|
+
|
211
|
+
Takes the list of secrets reader plugin names, as symbols, as a parameter.
|
212
|
+
|
213
|
+
Can be applied to subset of nodes using the [`for_nodes` DSL method](#for_nodes).
|
214
|
+
|
215
|
+
Examples:
|
216
|
+
```ruby
|
217
|
+
# By default, get secrets from the command-line
|
218
|
+
read_secrets_from :cli
|
219
|
+
|
220
|
+
# All our production nodes also have their secrets stored on a secured Thycotic server
|
221
|
+
for_nodes('/prd/') do
|
222
|
+
read_secrets_from :thycotic
|
223
|
+
end
|
224
|
+
```
|
225
|
+
|
226
|
+
<a name="send_logs_to"></a>
|
227
|
+
## `send_logs_to`
|
228
|
+
|
229
|
+
Set the list of [log plugins](plugins.md#log) to use to save logs.
|
230
|
+
By default (if no plugins is specifically set) the [log plugin `remote_fs`](plugins/log/remote_fs.md) is being used.
|
231
|
+
|
232
|
+
Takes the list of log plugin names, as symbols, as a parameter.
|
233
|
+
|
234
|
+
Can be applied to subset of nodes using the [`for_nodes` DSL method](#for_nodes).
|
235
|
+
|
236
|
+
Examples:
|
237
|
+
```ruby
|
238
|
+
# By default, everything gets logged on the nodes
|
239
|
+
send_logs_to :remote_fs
|
240
|
+
|
241
|
+
# All our production nodes also have their logs uploaded on our logs servers
|
242
|
+
for_nodes('/prd/') do
|
243
|
+
send_logs_to :datadog_log_server, :loggly
|
244
|
+
end
|
245
|
+
```
|
246
|
+
|
203
247
|
<a name="retry_deploy_for_errors_on_stdout"></a>
|
204
248
|
## `retry_deploy_for_errors_on_stdout`
|
205
249
|
|
data/docs/executables.md
CHANGED
@@ -132,25 +132,22 @@ The Deployer options are used to drive a deployment (be it in why-run mode or no
|
|
132
132
|
|
133
133
|
```
|
134
134
|
Deployer options:
|
135
|
-
-e, --secrets SECRETS_LOCATION Specify a secrets location. Can be specified several times. Location can be:
|
136
|
-
* Local path to a JSON file
|
137
|
-
* URL of the form http[s]://<url>:<secret_id> to get a secret JSON file from a Thycotic Secret Server at the given URL.
|
138
135
|
-p, --parallel Execute the commands in parallel (put the standard output in files <hybrid-platforms-dir>/run_logs/*.stdout)
|
139
136
|
-t, --timeout SECS Timeout in seconds to wait for each chef run. Only used in why-run mode. (defaults to no timeout)
|
140
137
|
-W, --why-run Use the why-run mode to see what would be the result of the deploy instead of deploying it for real.
|
141
138
|
--retries-on-error NBR Number of retries in case of non-deterministic errors (defaults to 0)
|
139
|
+
|
140
|
+
Secrets reader cli options:
|
141
|
+
-e, --secrets JSON_FILE Specify a secrets location from a local JSON file. Can be specified several times.
|
142
142
|
```
|
143
143
|
|
144
|
-
* `--secrets SECRETS_LOCATION`: Specify a JSON file storing secrets that can be used by the deployment process. Secrets are values that are needed for deployment but that should not be part of the platforms repositories (such as passwords, API keys, SSL certificates...).
|
145
|
-
The location can be:
|
146
|
-
* A local file path (for example /path/to/file.json).
|
147
|
-
* A Thycotic Secret Server URL followed by a secret id (for example https://portal.muc.msp.my_company.net/SecretServer:8845).
|
148
144
|
* `--parallel`: Specify that the deployment process should perform concurrently on the different nodes it has to deploy to.
|
149
145
|
* `--timeout SECS`: Specify the timeout (in seconds) to apply while deploying. This can be set only in why-run mode.
|
150
146
|
* `--why-run`: Specify the why-run mode. The why-run mode is used to simulate a deployment on the nodes, and report what a real deployment would have changed on the node.
|
151
147
|
* `--retries-on-error NBR`: Specify the number of retries deploys can do in case of non-deterministic errors.
|
152
148
|
Non-deterministic errors are matched using a set of strings or regular expressions that can be configured in the `hpc_config.rb` file of any platform, using the `retry_deploy_for_errors_on_stdout` and `retry_deploy_for_errors_on_stderr` properties:
|
153
149
|
For example:
|
150
|
+
|
154
151
|
```ruby
|
155
152
|
retry_deploy_for_errors_on_stdout [
|
156
153
|
'This is a raw string error that will be matched against stdout',
|
@@ -161,6 +158,8 @@ retry_deploy_for_errors_on_stderr [
|
|
161
158
|
]
|
162
159
|
```
|
163
160
|
|
161
|
+
* `--secrets SECRETS_LOCATION`: Specify a JSON file storing secrets that can be used by the deployment process. Secrets are values that are needed for deployment but that should not be part of the platforms repositories (such as passwords, API keys, SSL certificates...). This option is used by the [`cli` secrets reader plugin](plugins/secrets_reader/cli.md). See [secrets reader plugins](plugins.md#secrets_reader) for more info about secrets retrieval.
|
162
|
+
|
164
163
|
## JSON dump options
|
165
164
|
|
166
165
|
The JSON dump options drive the way nodes' JSON information is being dumped.
|
@@ -65,11 +65,11 @@ Connector ssh options:
|
|
65
65
|
--ssh-gateways-conf
|
66
66
|
|
67
67
|
Deployer options:
|
68
|
-
-e, --secrets SECRETS_LOCATION Specify a secrets location. Can be specified several times. Location can be:
|
69
|
-
* Local path to a JSON file
|
70
|
-
* URL of the form http[s]://<url>:<secret_id> to get a secret JSON file from a Thycotic Secret Server at the given URL.
|
71
68
|
-t, --timeout SECS Timeout in seconds to wait for each chef run. Only used in why-run mode. (defaults to no timeout)
|
72
69
|
--retries-on-error NBR Number of retries in case of non-deterministic errors (defaults to 0)
|
70
|
+
|
71
|
+
Secrets reader cli options:
|
72
|
+
-e, --secrets JSON_FILE Specify a secrets location from a local JSON file. Can be specified several times.
|
73
73
|
```
|
74
74
|
|
75
75
|
## Examples
|
data/docs/executables/deploy.md
CHANGED
@@ -82,13 +82,13 @@ Connector ssh options:
|
|
82
82
|
--ssh-gateways-conf
|
83
83
|
|
84
84
|
Deployer options:
|
85
|
-
-e, --secrets SECRETS_LOCATION Specify a secrets location. Can be specified several times. Location can be:
|
86
|
-
* Local path to a JSON file
|
87
|
-
* URL of the form http[s]://<url>:<secret_id> to get a secret JSON file from a Thycotic Secret Server at the given URL.
|
88
85
|
-p, --parallel Execute the commands in parallel (put the standard output in files <hybrid-platforms-dir>/run_logs/*.stdout)
|
89
86
|
-t, --timeout SECS Timeout in seconds to wait for each chef run. Only used in why-run mode. (defaults to no timeout)
|
90
87
|
-W, --why-run Use the why-run mode to see what would be the result of the deploy instead of deploying it for real.
|
91
88
|
--retries-on-error NBR Number of retries in case of non-deterministic errors (defaults to 0)
|
89
|
+
|
90
|
+
Secrets reader cli options:
|
91
|
+
-e, --secrets JSON_FILE Specify a secrets location from a local JSON file. Can be specified several times.
|
92
92
|
```
|
93
93
|
|
94
94
|
## Examples
|
@@ -54,13 +54,13 @@ Connector ssh options:
|
|
54
54
|
--ssh-gateways-conf
|
55
55
|
|
56
56
|
Deployer options:
|
57
|
-
-e, --secrets SECRETS_LOCATION Specify a secrets location. Can be specified several times. Location can be:
|
58
|
-
* Local path to a JSON file
|
59
|
-
* URL of the form http[s]://<url>:<secret_id> to get a secret JSON file from a Thycotic Secret Server at the given URL.
|
60
57
|
-t, --timeout SECS Timeout in seconds to wait for each chef run. Only used in why-run mode. (defaults to 30)
|
61
58
|
-W, --why-run Use the why-run mode to see what would be the result of the deploy instead of deploying it for real.
|
62
59
|
--retries-on-error NBR Number of retries in case of non-deterministic errors (defaults to 0)
|
63
60
|
|
61
|
+
Secrets reader cli options:
|
62
|
+
-e, --secrets JSON_FILE Specify a secrets location from a local JSON file. Can be specified several times.
|
63
|
+
|
64
64
|
JSON dump options:
|
65
65
|
-k, --skip-run Skip the actual gathering of dumps in run_logs. If set, the current run_logs content will be used.
|
66
66
|
-j, --json-dir DIRECTORY Specify the output directory in which JSON files are being written. Defaults to nodes_json.
|
data/docs/executables/test.md
CHANGED
@@ -93,11 +93,11 @@ Connector ssh options:
|
|
93
93
|
--ssh-gateways-conf
|
94
94
|
|
95
95
|
Deployer options:
|
96
|
-
-e, --secrets SECRETS_LOCATION Specify a secrets location. Can be specified several times. Location can be:
|
97
|
-
* Local path to a JSON file
|
98
|
-
* URL of the form http[s]://<url>:<secret_id> to get a secret JSON file from a Thycotic Secret Server at the given URL.
|
99
96
|
--retries-on-error NBR Number of retries in case of non-deterministic errors (defaults to 0)
|
100
97
|
|
98
|
+
Secrets reader cli options:
|
99
|
+
-e, --secrets JSON_FILE Specify a secrets location from a local JSON file. Can be specified several times.
|
100
|
+
|
101
101
|
Tests runner options:
|
102
102
|
-i, --tests-list FILE_NAME Specify a tests file name. The file should contain a list of tests name (1 per line). Can be used several times.
|
103
103
|
-k, --skip-run Skip running the check-node commands for real, and just analyze existing run logs.
|
@@ -39,12 +39,12 @@ Connector ssh options:
|
|
39
39
|
--ssh-gateways-conf
|
40
40
|
|
41
41
|
Deployer options:
|
42
|
-
-e, --secrets SECRETS_LOCATION Specify a secrets location. Can be specified several times. Location can be:
|
43
|
-
* Local path to a JSON file
|
44
|
-
* URL of the form http[s]://<url>:<secret_id> to get a secret JSON file from a Thycotic Secret Server at the given URL.
|
45
42
|
-t, --timeout SECS Timeout in seconds to wait for each chef run. Only used in why-run mode. (defaults to 30)
|
46
43
|
--retries-on-error NBR Number of retries in case of non-deterministic errors (defaults to 0)
|
47
44
|
|
45
|
+
Secrets reader cli options:
|
46
|
+
-e, --secrets JSON_FILE Specify a secrets location from a local JSON file. Can be specified several times.
|
47
|
+
|
48
48
|
JSON dump options:
|
49
49
|
-j, --json-dir DIRECTORY Specify the output directory in which JSON files are being written. Defaults to nodes_json.
|
50
50
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|