krates 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +212 -0
- data/LOGO +10 -0
- data/VERSION +1 -0
- data/bin/krates +23 -0
- data/lib/kontena/autoload_core.rb +19 -0
- data/lib/kontena/callback.rb +60 -0
- data/lib/kontena/callbacks/.gitkeep +0 -0
- data/lib/kontena/callbacks/auth/01_list_and_select_grid_after_master_auth.rb +26 -0
- data/lib/kontena/callbacks/master/01_clear_current_master_after_terminate.rb +19 -0
- data/lib/kontena/callbacks/master/deploy/01_show_logo_before_deploy.rb +14 -0
- data/lib/kontena/callbacks/master/deploy/04_default_master_version.rb +18 -0
- data/lib/kontena/callbacks/master/deploy/05_before_deploy_configuration_wizard.rb +105 -0
- data/lib/kontena/callbacks/master/deploy/40_install_ssl_certificate_after_deploy.rb +32 -0
- data/lib/kontena/callbacks/master/deploy/50_authenticate_after_deploy.rb +66 -0
- data/lib/kontena/callbacks/master/deploy/55_create_initial_grid_after_deploy.rb +21 -0
- data/lib/kontena/callbacks/master/deploy/56_set_server_provider_after_deploy.rb +24 -0
- data/lib/kontena/callbacks/master/deploy/60_configure_auth_provider_after_deploy.rb +31 -0
- data/lib/kontena/callbacks/master/deploy/70_invite_self_after_deploy.rb +95 -0
- data/lib/kontena/callbacks/master/deploy/90_proptip_after_deploy.rb +33 -0
- data/lib/kontena/cli/browser_launcher.rb +61 -0
- data/lib/kontena/cli/bytes_helper.rb +40 -0
- data/lib/kontena/cli/certificate/authorize_command.rb +107 -0
- data/lib/kontena/cli/certificate/common.rb +16 -0
- data/lib/kontena/cli/certificate/domain_authorization/list_command.rb +24 -0
- data/lib/kontena/cli/certificate/domain_authorization/remove_authorization_command.rb +25 -0
- data/lib/kontena/cli/certificate/domain_authorize_command.rb +7 -0
- data/lib/kontena/cli/certificate/export_command.rb +28 -0
- data/lib/kontena/cli/certificate/get_command.rb +33 -0
- data/lib/kontena/cli/certificate/import_command.rb +61 -0
- data/lib/kontena/cli/certificate/list_command.rb +75 -0
- data/lib/kontena/cli/certificate/register_command.rb +30 -0
- data/lib/kontena/cli/certificate/remove_command.rb +23 -0
- data/lib/kontena/cli/certificate/request_command.rb +20 -0
- data/lib/kontena/cli/certificate/show_command.rb +22 -0
- data/lib/kontena/cli/certificate_command.rb +18 -0
- data/lib/kontena/cli/cloud/login_command.rb +186 -0
- data/lib/kontena/cli/cloud/logout_command.rb +14 -0
- data/lib/kontena/cli/cloud/master/add_command.rb +156 -0
- data/lib/kontena/cli/cloud/master/list_command.rb +35 -0
- data/lib/kontena/cli/cloud/master/remove_command.rb +68 -0
- data/lib/kontena/cli/cloud/master/show_command.rb +21 -0
- data/lib/kontena/cli/cloud/master/update_command.rb +52 -0
- data/lib/kontena/cli/cloud/master_command.rb +14 -0
- data/lib/kontena/cli/cloud_command.rb +13 -0
- data/lib/kontena/cli/common.rb +360 -0
- data/lib/kontena/cli/config.rb +662 -0
- data/lib/kontena/cli/container_command.rb +10 -0
- data/lib/kontena/cli/containers/exec_command.rb +31 -0
- data/lib/kontena/cli/containers/inspect_command.rb +16 -0
- data/lib/kontena/cli/containers/list_command.rb +51 -0
- data/lib/kontena/cli/containers/logs_command.rb +19 -0
- data/lib/kontena/cli/etcd/common.rb +8 -0
- data/lib/kontena/cli/etcd/get_command.rb +26 -0
- data/lib/kontena/cli/etcd/health_command.rb +53 -0
- data/lib/kontena/cli/etcd/list_command.rb +36 -0
- data/lib/kontena/cli/etcd/mkdir_command.rb +23 -0
- data/lib/kontena/cli/etcd/remove_command.rb +29 -0
- data/lib/kontena/cli/etcd/set_command.rb +24 -0
- data/lib/kontena/cli/etcd_command.rb +12 -0
- data/lib/kontena/cli/external_registries/add_command.rb +25 -0
- data/lib/kontena/cli/external_registries/list_command.rb +23 -0
- data/lib/kontena/cli/external_registries/remove_command.rb +17 -0
- data/lib/kontena/cli/external_registry_command.rb +9 -0
- data/lib/kontena/cli/grid_command.rb +21 -0
- data/lib/kontena/cli/grid_options.rb +12 -0
- data/lib/kontena/cli/grids/audit_log_command.rb +22 -0
- data/lib/kontena/cli/grids/cloud_config_command.rb +53 -0
- data/lib/kontena/cli/grids/common.rb +182 -0
- data/lib/kontena/cli/grids/create_command.rb +48 -0
- data/lib/kontena/cli/grids/current_command.rb +25 -0
- data/lib/kontena/cli/grids/env_command.rb +32 -0
- data/lib/kontena/cli/grids/events_command.rb +50 -0
- data/lib/kontena/cli/grids/health_command.rb +69 -0
- data/lib/kontena/cli/grids/list_command.rb +59 -0
- data/lib/kontena/cli/grids/logs_command.rb +35 -0
- data/lib/kontena/cli/grids/remove_command.rb +31 -0
- data/lib/kontena/cli/grids/show_command.rb +25 -0
- data/lib/kontena/cli/grids/trusted_subnet_command.rb +10 -0
- data/lib/kontena/cli/grids/trusted_subnets/add_command.rb +18 -0
- data/lib/kontena/cli/grids/trusted_subnets/list_command.rb +18 -0
- data/lib/kontena/cli/grids/trusted_subnets/remove_command.rb +26 -0
- data/lib/kontena/cli/grids/update_command.rb +35 -0
- data/lib/kontena/cli/grids/use_command.rb +26 -0
- data/lib/kontena/cli/grids/user_command.rb +9 -0
- data/lib/kontena/cli/grids/users/add_command.rb +18 -0
- data/lib/kontena/cli/grids/users/list_command.rb +20 -0
- data/lib/kontena/cli/grids/users/remove_command.rb +20 -0
- data/lib/kontena/cli/helpers/exec_helper.rb +209 -0
- data/lib/kontena/cli/helpers/health_helper.rb +65 -0
- data/lib/kontena/cli/helpers/log_helper.rb +113 -0
- data/lib/kontena/cli/helpers/time_helper.rb +29 -0
- data/lib/kontena/cli/localhost_web_server.rb +113 -0
- data/lib/kontena/cli/log_formatters/compact.rb +65 -0
- data/lib/kontena/cli/log_formatters/strip_color.rb +13 -0
- data/lib/kontena/cli/logout_command.rb +10 -0
- data/lib/kontena/cli/master/audit_log_command.rb +19 -0
- data/lib/kontena/cli/master/config/export_command.rb +46 -0
- data/lib/kontena/cli/master/config/get_command.rb +26 -0
- data/lib/kontena/cli/master/config/import_command.rb +67 -0
- data/lib/kontena/cli/master/config/set_command.rb +19 -0
- data/lib/kontena/cli/master/config/unset_command.rb +20 -0
- data/lib/kontena/cli/master/config_command.rb +17 -0
- data/lib/kontena/cli/master/create_command.rb +74 -0
- data/lib/kontena/cli/master/current_command.rb +25 -0
- data/lib/kontena/cli/master/init_cloud_command.rb +45 -0
- data/lib/kontena/cli/master/join_command.rb +22 -0
- data/lib/kontena/cli/master/list_command.rb +24 -0
- data/lib/kontena/cli/master/login_command.rb +331 -0
- data/lib/kontena/cli/master/logout_command.rb +25 -0
- data/lib/kontena/cli/master/remove_command.rb +55 -0
- data/lib/kontena/cli/master/ssh_command.rb +72 -0
- data/lib/kontena/cli/master/token/common.rb +29 -0
- data/lib/kontena/cli/master/token/create_command.rb +50 -0
- data/lib/kontena/cli/master/token/current_command.rb +45 -0
- data/lib/kontena/cli/master/token/list_command.rb +39 -0
- data/lib/kontena/cli/master/token/remove_command.rb +19 -0
- data/lib/kontena/cli/master/token/show_command.rb +34 -0
- data/lib/kontena/cli/master/token_command.rb +13 -0
- data/lib/kontena/cli/master/use_command.rb +31 -0
- data/lib/kontena/cli/master/user/invite_command.rb +51 -0
- data/lib/kontena/cli/master/user/list_command.rb +29 -0
- data/lib/kontena/cli/master/user/remove_command.rb +24 -0
- data/lib/kontena/cli/master/user/role/add_command.rb +29 -0
- data/lib/kontena/cli/master/user/role/remove_command.rb +27 -0
- data/lib/kontena/cli/master/user/role_command.rb +6 -0
- data/lib/kontena/cli/master/user_command.rb +9 -0
- data/lib/kontena/cli/master_command.rb +21 -0
- data/lib/kontena/cli/node_command.rb +17 -0
- data/lib/kontena/cli/nodes/create_command.rb +25 -0
- data/lib/kontena/cli/nodes/env_command.rb +37 -0
- data/lib/kontena/cli/nodes/health_command.rb +47 -0
- data/lib/kontena/cli/nodes/label_command.rb +10 -0
- data/lib/kontena/cli/nodes/labels/add_command.rb +18 -0
- data/lib/kontena/cli/nodes/labels/list_command.rb +19 -0
- data/lib/kontena/cli/nodes/labels/remove_command.rb +32 -0
- data/lib/kontena/cli/nodes/list_command.rb +97 -0
- data/lib/kontena/cli/nodes/remove_command.rb +34 -0
- data/lib/kontena/cli/nodes/reset_token_command.rb +34 -0
- data/lib/kontena/cli/nodes/show_command.rb +56 -0
- data/lib/kontena/cli/nodes/ssh_command.rb +63 -0
- data/lib/kontena/cli/nodes/update_command.rb +31 -0
- data/lib/kontena/cli/plugin_command.rb +12 -0
- data/lib/kontena/cli/plugins/common.rb +8 -0
- data/lib/kontena/cli/plugins/install_command.rb +42 -0
- data/lib/kontena/cli/plugins/list_command.rb +31 -0
- data/lib/kontena/cli/plugins/search_command.rb +25 -0
- data/lib/kontena/cli/plugins/show_command.rb +17 -0
- data/lib/kontena/cli/plugins/uninstall_command.rb +31 -0
- data/lib/kontena/cli/plugins/upgrade_command.rb +60 -0
- data/lib/kontena/cli/registry/create_command.rb +151 -0
- data/lib/kontena/cli/registry/remove_command.rb +21 -0
- data/lib/kontena/cli/registry_command.rb +8 -0
- data/lib/kontena/cli/service_command.rb +28 -0
- data/lib/kontena/cli/services/container_command.rb +8 -0
- data/lib/kontena/cli/services/containers_command.rb +39 -0
- data/lib/kontena/cli/services/create_command.rb +105 -0
- data/lib/kontena/cli/services/deploy_command.rb +25 -0
- data/lib/kontena/cli/services/env_command.rb +9 -0
- data/lib/kontena/cli/services/envs/add_command.rb +21 -0
- data/lib/kontena/cli/services/envs/list_command.rb +22 -0
- data/lib/kontena/cli/services/envs/remove_command.rb +22 -0
- data/lib/kontena/cli/services/events_command.rb +36 -0
- data/lib/kontena/cli/services/exec_command.rb +107 -0
- data/lib/kontena/cli/services/link_command.rb +35 -0
- data/lib/kontena/cli/services/list_command.rb +66 -0
- data/lib/kontena/cli/services/logs_command.rb +33 -0
- data/lib/kontena/cli/services/monitor_command.rb +58 -0
- data/lib/kontena/cli/services/remove_command.rb +60 -0
- data/lib/kontena/cli/services/restart_command.rb +19 -0
- data/lib/kontena/cli/services/scale_command.rb +21 -0
- data/lib/kontena/cli/services/secret_command.rb +8 -0
- data/lib/kontena/cli/services/secrets/link_command.rb +26 -0
- data/lib/kontena/cli/services/secrets/unlink_command.rb +28 -0
- data/lib/kontena/cli/services/services_helper.rb +579 -0
- data/lib/kontena/cli/services/show_command.rb +26 -0
- data/lib/kontena/cli/services/start_command.rb +21 -0
- data/lib/kontena/cli/services/stats_command.rb +87 -0
- data/lib/kontena/cli/services/stop_command.rb +21 -0
- data/lib/kontena/cli/services/unlink_command.rb +30 -0
- data/lib/kontena/cli/services/update_command.rb +94 -0
- data/lib/kontena/cli/spinner.rb +205 -0
- data/lib/kontena/cli/stack_command.rb +21 -0
- data/lib/kontena/cli/stacks/build_command.rb +125 -0
- data/lib/kontena/cli/stacks/common.rb +209 -0
- data/lib/kontena/cli/stacks/deploy_command.rb +37 -0
- data/lib/kontena/cli/stacks/events_command.rb +33 -0
- data/lib/kontena/cli/stacks/inspect_command.rb +17 -0
- data/lib/kontena/cli/stacks/install_command.rb +95 -0
- data/lib/kontena/cli/stacks/label_command.rb +10 -0
- data/lib/kontena/cli/stacks/labels/add_command.rb +21 -0
- data/lib/kontena/cli/stacks/labels/common.rb +19 -0
- data/lib/kontena/cli/stacks/labels/list_command.rb +21 -0
- data/lib/kontena/cli/stacks/labels/remove_command.rb +21 -0
- data/lib/kontena/cli/stacks/list_command.rb +154 -0
- data/lib/kontena/cli/stacks/logs_command.rb +35 -0
- data/lib/kontena/cli/stacks/monitor_command.rb +93 -0
- data/lib/kontena/cli/stacks/registry/create_command.rb +24 -0
- data/lib/kontena/cli/stacks/registry/make_private_command.rb +24 -0
- data/lib/kontena/cli/stacks/registry/make_public_command.rb +24 -0
- data/lib/kontena/cli/stacks/registry/pull_command.rb +28 -0
- data/lib/kontena/cli/stacks/registry/push_command.rb +40 -0
- data/lib/kontena/cli/stacks/registry/remove_command.rb +30 -0
- data/lib/kontena/cli/stacks/registry/search_command.rb +42 -0
- data/lib/kontena/cli/stacks/registry/show_command.rb +65 -0
- data/lib/kontena/cli/stacks/registry_command.rb +12 -0
- data/lib/kontena/cli/stacks/remove_command.rb +80 -0
- data/lib/kontena/cli/stacks/restart_command.rb +24 -0
- data/lib/kontena/cli/stacks/service_generator.rb +131 -0
- data/lib/kontena/cli/stacks/service_generator_v2.rb +27 -0
- data/lib/kontena/cli/stacks/show_command.rb +168 -0
- data/lib/kontena/cli/stacks/stack_name.rb +71 -0
- data/lib/kontena/cli/stacks/stacks_helper.rb +83 -0
- data/lib/kontena/cli/stacks/stop_command.rb +24 -0
- data/lib/kontena/cli/stacks/upgrade_command.rb +264 -0
- data/lib/kontena/cli/stacks/validate_command.rb +75 -0
- data/lib/kontena/cli/stacks/yaml/custom_validators/affinities_validator.rb +19 -0
- data/lib/kontena/cli/stacks/yaml/custom_validators/build_validator.rb +22 -0
- data/lib/kontena/cli/stacks/yaml/custom_validators/certificates_validator.rb +22 -0
- data/lib/kontena/cli/stacks/yaml/custom_validators/extends_validator.rb +22 -0
- data/lib/kontena/cli/stacks/yaml/custom_validators/hooks_validator.rb +102 -0
- data/lib/kontena/cli/stacks/yaml/custom_validators/secrets_validator.rb +22 -0
- data/lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb +37 -0
- data/lib/kontena/cli/stacks/yaml/opto/prompt_resolver.rb +78 -0
- data/lib/kontena/cli/stacks/yaml/opto/service_instances_resolver.rb +25 -0
- data/lib/kontena/cli/stacks/yaml/opto/service_link_resolver.rb +80 -0
- data/lib/kontena/cli/stacks/yaml/opto/vault_cert_prompt_resolver.rb +39 -0
- data/lib/kontena/cli/stacks/yaml/opto/vault_resolver.rb +13 -0
- data/lib/kontena/cli/stacks/yaml/opto/vault_setter.rb +12 -0
- data/lib/kontena/cli/stacks/yaml/opto.rb +16 -0
- data/lib/kontena/cli/stacks/yaml/reader.rb +525 -0
- data/lib/kontena/cli/stacks/yaml/service_extender.rb +65 -0
- data/lib/kontena/cli/stacks/yaml/stack_file_loader/file_loader.rb +41 -0
- data/lib/kontena/cli/stacks/yaml/stack_file_loader/registry_loader.rb +24 -0
- data/lib/kontena/cli/stacks/yaml/stack_file_loader/uri_loader.rb +23 -0
- data/lib/kontena/cli/stacks/yaml/stack_file_loader.rb +152 -0
- data/lib/kontena/cli/stacks/yaml/validations.rb +119 -0
- data/lib/kontena/cli/stacks/yaml/validator_v3.rb +164 -0
- data/lib/kontena/cli/subcommand_loader.rb +83 -0
- data/lib/kontena/cli/table_generator.rb +128 -0
- data/lib/kontena/cli/vault/export_command.rb +24 -0
- data/lib/kontena/cli/vault/import_command.rb +75 -0
- data/lib/kontena/cli/vault/list_command.rb +37 -0
- data/lib/kontena/cli/vault/read_command.rb +27 -0
- data/lib/kontena/cli/vault/remove_command.rb +23 -0
- data/lib/kontena/cli/vault/update_command.rb +24 -0
- data/lib/kontena/cli/vault/write_command.rb +23 -0
- data/lib/kontena/cli/vault_command.rb +13 -0
- data/lib/kontena/cli/version.rb +10 -0
- data/lib/kontena/cli/version_command.rb +20 -0
- data/lib/kontena/cli/volume_command.rb +9 -0
- data/lib/kontena/cli/volumes/create_command.rb +42 -0
- data/lib/kontena/cli/volumes/list_command.rb +29 -0
- data/lib/kontena/cli/volumes/remove_command.rb +29 -0
- data/lib/kontena/cli/volumes/show_command.rb +38 -0
- data/lib/kontena/cli/vpn/config_command.rb +27 -0
- data/lib/kontena/cli/vpn/create_command.rb +99 -0
- data/lib/kontena/cli/vpn/remove_command.rb +22 -0
- data/lib/kontena/cli/vpn_command.rb +9 -0
- data/lib/kontena/cli/whoami_command.rb +38 -0
- data/lib/kontena/client.rb +574 -0
- data/lib/kontena/command.rb +251 -0
- data/lib/kontena/debug_instrumentor.rb +80 -0
- data/lib/kontena/errors.rb +50 -0
- data/lib/kontena/light_prompt.rb +103 -0
- data/lib/kontena/machine/cert_helper.rb +43 -0
- data/lib/kontena/machine/cloud_config/cloudinit.yml +82 -0
- data/lib/kontena/machine/cloud_config/node_generator.rb +28 -0
- data/lib/kontena/machine/common.rb +17 -0
- data/lib/kontena/machine/random_name.rb +42 -0
- data/lib/kontena/main_command.rb +66 -0
- data/lib/kontena/plugin_manager/cleaner.rb +33 -0
- data/lib/kontena/plugin_manager/common.rb +89 -0
- data/lib/kontena/plugin_manager/installer.rb +78 -0
- data/lib/kontena/plugin_manager/loader.rb +93 -0
- data/lib/kontena/plugin_manager/rubygems_client.rb +59 -0
- data/lib/kontena/plugin_manager/uninstaller.rb +34 -0
- data/lib/kontena/plugin_manager.rb +26 -0
- data/lib/kontena/presets/github_auth_provider.yml +11 -0
- data/lib/kontena/presets/kontena_auth_provider.yml +11 -0
- data/lib/kontena/scripts/completer +9 -0
- data/lib/kontena/scripts/completer.rb +334 -0
- data/lib/kontena/scripts/init +18 -0
- data/lib/kontena/scripts/kontena.zsh +11 -0
- data/lib/kontena/scripts/krates.bash +8 -0
- data/lib/kontena/stacks/change_resolver.rb +118 -0
- data/lib/kontena/stacks/stack_data.rb +58 -0
- data/lib/kontena/stacks/stack_data_set.rb +51 -0
- data/lib/kontena/stacks_cache.rb +110 -0
- data/lib/kontena/stacks_client.rb +177 -0
- data/lib/kontena/util.rb +116 -0
- data/lib/kontena_cli.rb +190 -0
- metadata +518 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module Kontena
|
|
2
|
+
module Machine
|
|
3
|
+
module RandomName
|
|
4
|
+
|
|
5
|
+
def generate_name
|
|
6
|
+
rnd1 = Random.rand(64)
|
|
7
|
+
rnd2 = Random.rand(64)
|
|
8
|
+
"#{adjectives[rnd1%adjectives.length]}-#{nouns[rnd2%adjectives.length]}"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
def adjectives
|
|
14
|
+
[
|
|
15
|
+
"autumn", "hidden", "bitter", "misty", "silent", "empty", "dry", "dark",
|
|
16
|
+
"summer", "icy", "delicate", "quiet", "white", "cool", "spring", "winter",
|
|
17
|
+
"patient", "twilight", "dawn", "crimson", "wispy", "weathered", "blue",
|
|
18
|
+
"billowing", "broken", "cold", "damp", "falling", "frosty", "green",
|
|
19
|
+
"long", "late", "bold", "little", "morning", "muddy",
|
|
20
|
+
"red", "rough", "still", "small", "sparkling", "shy",
|
|
21
|
+
"wandering", "withered", "wild", "black", "young", "holy", "solitary",
|
|
22
|
+
"fragrant", "aged", "snowy", "proud", "floral", "restless",
|
|
23
|
+
"polished", "purple", "lively", "nameless"
|
|
24
|
+
]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def nouns
|
|
28
|
+
[
|
|
29
|
+
"waterfall", "river", "breeze", "moon", "rain", "wind", "sea", "morning",
|
|
30
|
+
"snow", "lake", "sunset", "pine", "shadow", "leaf", "dawn", "glitter",
|
|
31
|
+
"forest", "hill", "cloud", "meadow", "sun", "glade", "bird", "brook",
|
|
32
|
+
"butterfly", "bush", "dew", "dust", "field", "fire", "flower", "firefly",
|
|
33
|
+
"feather", "grass", "haze", "mountain", "night", "pond", "darkness",
|
|
34
|
+
"snowflake", "silence", "sound", "sky", "shape", "surf", "thunder",
|
|
35
|
+
"violet", "water", "wildflower", "wave", "water", "resonance", "sun",
|
|
36
|
+
"wood", "dream", "cherry", "tree", "fog", "frost", "voice", "paper",
|
|
37
|
+
"frog", "smoke", "star"
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require 'kontena/command'
|
|
2
|
+
|
|
3
|
+
class Kontena::MainCommand < Kontena::Command
|
|
4
|
+
option ['-v', '--version'], :flag, "Output Kontena CLI version #{Kontena::Cli::VERSION}" do
|
|
5
|
+
build_tags = [ 'ruby' + RUBY_VERSION ]
|
|
6
|
+
build_tags << RUBY_PLATFORM
|
|
7
|
+
build_tags += ENV["KONTENA_EXTRA_BUILDTAGS"].to_s.split(',')
|
|
8
|
+
puts ['kontena-cli', Kontena::Cli::VERSION, "[#{build_tags.join('+')}]"].join(' ')
|
|
9
|
+
exit 0
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
banner Kontena.pastel.green("Getting started:"), false
|
|
13
|
+
banner ' - Create a Kontena Master (see "kontena plugin search" for a list of', false
|
|
14
|
+
banner ' provisioning plugins)', false
|
|
15
|
+
banner ' - Or log into an existing master, use: "kontena master login <master url>"', false
|
|
16
|
+
banner ' - Read more about Kontena at https://www.kontena.io/docs/', false
|
|
17
|
+
|
|
18
|
+
subcommand "master", "Kontena Master specific commands", load_subcommand('master_command')
|
|
19
|
+
subcommand "cloud", "Kontena Cloud specific commands", load_subcommand('cloud_command')
|
|
20
|
+
subcommand "node", "Node specific commands", load_subcommand('node_command')
|
|
21
|
+
subcommand "grid", "Grid specific commands", load_subcommand('grid_command')
|
|
22
|
+
subcommand "stack", "Stack specific commands", load_subcommand('stack_command')
|
|
23
|
+
subcommand "service", "Service specific commands", load_subcommand('service_command')
|
|
24
|
+
subcommand "container", "Container specific commands", load_subcommand('container_command')
|
|
25
|
+
subcommand "vault", "Vault specific commands", load_subcommand('vault_command')
|
|
26
|
+
subcommand "vpn", "VPN specific commands", load_subcommand('vpn_command')
|
|
27
|
+
subcommand "etcd", "Etcd specific commands", load_subcommand('etcd_command')
|
|
28
|
+
subcommand "certificate", "LE Certificate specific commands", load_subcommand('certificate_command')
|
|
29
|
+
subcommand "registry", "Registry specific commands", load_subcommand('registry_command')
|
|
30
|
+
subcommand "external-registry", "External registry specific commands", load_subcommand('external_registry_command')
|
|
31
|
+
subcommand "volume", "Volume specific commands", load_subcommand('volume_command')
|
|
32
|
+
subcommand "plugin", "Plugin specific commands", load_subcommand('plugin_command')
|
|
33
|
+
subcommand "whoami", "Shows current logged in user", load_subcommand('whoami_command')
|
|
34
|
+
subcommand "version", "Show CLI and current master version", load_subcommand('version_command')
|
|
35
|
+
|
|
36
|
+
def execute
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @param [String] command
|
|
40
|
+
# @param [String] description
|
|
41
|
+
# @param [Class] klass
|
|
42
|
+
def self.register(command, description, command_class)
|
|
43
|
+
subcommand(command, description, command_class)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def subcommand_missing(name)
|
|
47
|
+
extend Kontena::Cli::Common
|
|
48
|
+
if known_plugin_subcommand?(name)
|
|
49
|
+
exit_with_error "The '#{name}' plugin has not been installed. Use: kontena plugin install #{name}"
|
|
50
|
+
elsif name == 'login'
|
|
51
|
+
exit_with_error "Use 'kontena master login' to log into a Kontena Master\n"+
|
|
52
|
+
" or 'kontena cloud login' for logging into your Kontena Cloud account"
|
|
53
|
+
elsif name == 'logout'
|
|
54
|
+
exit_with_error "Use 'kontena master logout' to log out from a Kontena Master\n"+
|
|
55
|
+
" or 'kontena cloud logout' for logging out from your Kontena Cloud account"
|
|
56
|
+
elsif name == 'app'
|
|
57
|
+
exit_with_error "The deprecated app subcommand has been moved into a plugin. You can install\n" +
|
|
58
|
+
" it by using 'kontena plugin install app-command'"
|
|
59
|
+
end
|
|
60
|
+
super
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def known_plugin_subcommand?(name)
|
|
64
|
+
['vagrant', 'packet', 'digitalocean', 'azure', 'upcloud', 'aws', 'shell'].include?(name)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'kontena/plugin_manager/common'
|
|
2
|
+
require 'rubygems/commands/cleanup_command'
|
|
3
|
+
|
|
4
|
+
module Kontena
|
|
5
|
+
module PluginManager
|
|
6
|
+
class Cleaner
|
|
7
|
+
include Common
|
|
8
|
+
|
|
9
|
+
attr_reader :plugin_name
|
|
10
|
+
|
|
11
|
+
def initialize(plugin_name)
|
|
12
|
+
@plugin_name = plugin_name
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def command
|
|
16
|
+
@command ||= Gem::Commands::CleanupCommand.new
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Runs gem cleanup, removes remains from previous versions
|
|
20
|
+
# @param plugin_name [String]
|
|
21
|
+
def cleanup
|
|
22
|
+
options = []
|
|
23
|
+
options += ['-q', '--no-verbose'] unless Kontena.debug?
|
|
24
|
+
command.handle_options options
|
|
25
|
+
command.execute
|
|
26
|
+
true
|
|
27
|
+
rescue Gem::SystemExitException => e
|
|
28
|
+
raise unless e.exit_code.zero?
|
|
29
|
+
true
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
require 'kontena/plugin_manager'
|
|
2
|
+
|
|
3
|
+
module Kontena
|
|
4
|
+
module PluginManager
|
|
5
|
+
module Common
|
|
6
|
+
Gem.autoload :DefaultUserInteraction, 'rubygems/user_interaction'
|
|
7
|
+
Gem.autoload :StreamUI, 'rubygems/user_interaction'
|
|
8
|
+
|
|
9
|
+
KONTENA_PLUGIN = 'kontena-plugin-%s'
|
|
10
|
+
|
|
11
|
+
# @return [Boolean] is the CLI in plugin debugging mode?
|
|
12
|
+
def plugin_debug?
|
|
13
|
+
@plugin_debug ||= ENV['DEBUG'] == 'plugin'
|
|
14
|
+
end
|
|
15
|
+
module_function :plugin_debug?
|
|
16
|
+
|
|
17
|
+
# @return [Gem::StreamUI] a rubygems user interaction module with minimal output
|
|
18
|
+
def dummy_ui
|
|
19
|
+
Gem::StreamUI.new(StringIO.new, StringIO.new, StringIO.new, false)
|
|
20
|
+
end
|
|
21
|
+
module_function :dummy_ui
|
|
22
|
+
|
|
23
|
+
# Tell rubygems to use the dummy ui as default user interaction
|
|
24
|
+
def use_dummy_ui
|
|
25
|
+
Gem::DefaultUserInteraction.ui = dummy_ui
|
|
26
|
+
end
|
|
27
|
+
module_function :use_dummy_ui
|
|
28
|
+
|
|
29
|
+
# Prefix a plugin name into a gem name (hello to kontena-plugin-hello)
|
|
30
|
+
def prefix(plugin_name)
|
|
31
|
+
return KONTENA_PLUGIN % nil if plugin_name.nil? || plugin_name.empty?
|
|
32
|
+
return plugin_name if plugin_name.start_with?('kontena-plugin-') || plugin_name.include?('.')
|
|
33
|
+
KONTENA_PLUGIN % plugin_name
|
|
34
|
+
end
|
|
35
|
+
module_function :prefix
|
|
36
|
+
|
|
37
|
+
# Find a plugin by name from installed plugins
|
|
38
|
+
# @param plugin_name [String]
|
|
39
|
+
def installed(plugin_name)
|
|
40
|
+
search = prefix(plugin_name)
|
|
41
|
+
plugins.find {|plugin| plugin.name == search }
|
|
42
|
+
end
|
|
43
|
+
module_function :installed
|
|
44
|
+
|
|
45
|
+
def installed?(plugin_name)
|
|
46
|
+
!installed(plugin_name).nil?
|
|
47
|
+
end
|
|
48
|
+
module_function :installed?
|
|
49
|
+
|
|
50
|
+
# Gem installation directory
|
|
51
|
+
# @return [String]
|
|
52
|
+
def install_dir
|
|
53
|
+
return @install_dir if @install_dir
|
|
54
|
+
install_dir = File.join(Dir.home, '.krates', 'gems', RUBY_VERSION)
|
|
55
|
+
unless File.directory?(install_dir)
|
|
56
|
+
require 'fileutils'
|
|
57
|
+
FileUtils.mkdir_p(install_dir, mode: 0700)
|
|
58
|
+
end
|
|
59
|
+
@install_dir = install_dir
|
|
60
|
+
end
|
|
61
|
+
module_function :install_dir
|
|
62
|
+
|
|
63
|
+
# @return [Kontena::PluginManager::RubygemsClient]
|
|
64
|
+
def rubygems_client
|
|
65
|
+
@rubygems_client ||= Kontena::PluginManager::RubygemsClient.new
|
|
66
|
+
end
|
|
67
|
+
module_function :rubygems_client
|
|
68
|
+
|
|
69
|
+
# Search rubygems for kontena plugins
|
|
70
|
+
# @param pattern [String] optional search pattern
|
|
71
|
+
def search_plugins(pattern = nil)
|
|
72
|
+
rubygems_client.search(prefix(pattern))
|
|
73
|
+
end
|
|
74
|
+
module_function :search_plugins
|
|
75
|
+
|
|
76
|
+
# Retrieve plugin versions from rubygems
|
|
77
|
+
# @param plugin_name [String]
|
|
78
|
+
def gem_versions(plugin_name)
|
|
79
|
+
rubygems_client.versions(prefix(plugin_name))
|
|
80
|
+
end
|
|
81
|
+
module_function :gem_versions
|
|
82
|
+
|
|
83
|
+
def plugins
|
|
84
|
+
Kontena::PluginManager.plugins
|
|
85
|
+
end
|
|
86
|
+
module_function :plugins
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require 'kontena/plugin_manager/common'
|
|
2
|
+
require 'rubygems/dependency_installer'
|
|
3
|
+
require 'rubygems/requirement'
|
|
4
|
+
|
|
5
|
+
module Kontena
|
|
6
|
+
module PluginManager
|
|
7
|
+
class Installer
|
|
8
|
+
include Common
|
|
9
|
+
|
|
10
|
+
attr_reader :plugin_name, :pre
|
|
11
|
+
attr_accessor :version
|
|
12
|
+
|
|
13
|
+
# Create a new instance of plugin installer
|
|
14
|
+
# @param plugin_name [String]
|
|
15
|
+
# @param pre [Boolean] install a prerelease version if available
|
|
16
|
+
# @param version [String] install a specific version
|
|
17
|
+
def initialize(plugin_name, pre: false, version: nil)
|
|
18
|
+
@plugin_name = plugin_name
|
|
19
|
+
@pre = pre
|
|
20
|
+
@version = version
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def pre?
|
|
24
|
+
!!@pre
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def command
|
|
28
|
+
@command ||= Gem::DependencyInstaller.new(
|
|
29
|
+
document: false,
|
|
30
|
+
force: true,
|
|
31
|
+
prerelease: pre,
|
|
32
|
+
minimal_deps: true
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Install a plugin
|
|
37
|
+
def install
|
|
38
|
+
return install_uri if plugin_name.include?('://')
|
|
39
|
+
plugin_version = version.nil? ? Gem::Requirement.default : Gem::Requirement.new(version)
|
|
40
|
+
command.install(prefix(plugin_name), plugin_version)
|
|
41
|
+
command.installed_gems
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def install_uri
|
|
45
|
+
require 'tempfile'
|
|
46
|
+
require 'open-uri'
|
|
47
|
+
file = Tempfile.new(['kontena_plugin', '.gem'])
|
|
48
|
+
open(plugin_name) do |input|
|
|
49
|
+
file.write input.read
|
|
50
|
+
file.close
|
|
51
|
+
end
|
|
52
|
+
self.class.new(file.path).install
|
|
53
|
+
ensure
|
|
54
|
+
file.unlink
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def available_upgrade
|
|
58
|
+
installed = installed(plugin_name)
|
|
59
|
+
return false unless installed
|
|
60
|
+
|
|
61
|
+
pre = installed.version.prerelease?
|
|
62
|
+
latest = rubygems_client.latest_version(prefix(plugin_name), pre: pre? || pre)
|
|
63
|
+
if latest > installed.version
|
|
64
|
+
latest.to_s
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Upgrade an installed plugin
|
|
69
|
+
def upgrade
|
|
70
|
+
return install if version
|
|
71
|
+
upgrade_to = available_upgrade
|
|
72
|
+
if upgrade_to
|
|
73
|
+
Installer.new(plugin_name, version: upgrade_to).install
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
require 'kontena_cli'
|
|
2
|
+
require 'kontena/plugin_manager/common'
|
|
3
|
+
|
|
4
|
+
module Kontena
|
|
5
|
+
module PluginManager
|
|
6
|
+
class Loader
|
|
7
|
+
include Common
|
|
8
|
+
|
|
9
|
+
CLI_GEM = 'krates'.freeze
|
|
10
|
+
MIN_CLI_VERSION = '0.15.99'.freeze
|
|
11
|
+
|
|
12
|
+
def loaded_plugins
|
|
13
|
+
@loaded_plugins ||= []
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def load_plugins
|
|
17
|
+
Gem::Specification.to_a.each do |spec|
|
|
18
|
+
plugin_path = plugin_require_path(spec)
|
|
19
|
+
next unless plugin_path
|
|
20
|
+
next if loaded_plugins.find { |p| p.name == spec.name }
|
|
21
|
+
load_plugin(plugin_path, spec)
|
|
22
|
+
end
|
|
23
|
+
loaded_plugins
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def load_plugin(path, spec)
|
|
29
|
+
unless spec_has_valid_dependency?(spec)
|
|
30
|
+
plugin_name = spec.name.sub('kontena-plugin-', '')
|
|
31
|
+
$stderr.puts " [#{Kontena.pastel.red('error')}] Plugin #{Kontena.pastel.cyan(plugin_name)} (#{spec.version}) is not compatible with the current cli version."
|
|
32
|
+
$stderr.puts " To update the plugin, run 'kontena plugin install #{plugin_name}'"
|
|
33
|
+
return false
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
start_tracking
|
|
37
|
+
activate(spec)
|
|
38
|
+
|
|
39
|
+
Kontena.logger.debug { "Loading plugin #{spec.name} from #{path}" }
|
|
40
|
+
require(path)
|
|
41
|
+
Kontena.logger.debug { "Loaded plugin #{spec.name}" } if plugin_debug?
|
|
42
|
+
|
|
43
|
+
report_tracking(spec)
|
|
44
|
+
true
|
|
45
|
+
rescue ScriptError, LoadError, StandardError => ex
|
|
46
|
+
warn " [#{Kontena.pastel.red('error')}] Failed to load plugin: #{spec.name} from #{spec.gem_dir}\n\tRerun the command with environment DEBUG=true set to get the full exception."
|
|
47
|
+
Kontena.logger.error(ex)
|
|
48
|
+
spec.description = spec.description + Kontena.pastel.red(" (broken)")
|
|
49
|
+
false
|
|
50
|
+
ensure
|
|
51
|
+
loaded_plugins << spec
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def activate(spec)
|
|
55
|
+
Kontena.logger.debug { "Activating plugin #{spec.name}" } if plugin_debug?
|
|
56
|
+
spec.activate
|
|
57
|
+
spec.activate_dependencies
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# @param [Gem::Specification] spec
|
|
61
|
+
# @return [Boolean]
|
|
62
|
+
def spec_has_valid_dependency?(spec)
|
|
63
|
+
kontena_cli = spec.runtime_dependencies.find{ |d| d.name == CLI_GEM }
|
|
64
|
+
!kontena_cli.match?(CLI_GEM, MIN_CLI_VERSION)
|
|
65
|
+
rescue
|
|
66
|
+
false
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def plugin_require_path(spec)
|
|
70
|
+
paths = spec.require_paths.to_a.map do |require_path|
|
|
71
|
+
File.join(spec.gem_dir, require_path, 'kontena_cli_plugin.rb')
|
|
72
|
+
end
|
|
73
|
+
paths.find { |path| File.exist?(path) }
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def start_tracking
|
|
77
|
+
return unless plugin_debug?
|
|
78
|
+
@loaded_features_before = $LOADED_FEATURES.dup
|
|
79
|
+
@load_path_before = $LOAD_PATH.dup
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def report_tracking(spec)
|
|
83
|
+
return unless plugin_debug?
|
|
84
|
+
added_features = ($LOADED_FEATURES - @loaded_features_before).map {|feat| "- #{feat}"}
|
|
85
|
+
added_paths = ($LOAD_PATH - @load_path_before).map {|feat| "- #{feat}"}
|
|
86
|
+
Kontena.logger.debug { "Plugin manager loaded features for #{spec.name}:" } unless added_features.empty?
|
|
87
|
+
added_features.each { |feat| Kontena.logger.debug { feat } }
|
|
88
|
+
Kontena.logger.debug { "Plugin manager load paths added for #{spec.name}:" } unless added_paths.empty?
|
|
89
|
+
added_paths.each { |path| Kontena.logger.debug { path } }
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'kontena_cli'
|
|
2
|
+
require 'json'
|
|
3
|
+
require 'uri'
|
|
4
|
+
require 'net/https'
|
|
5
|
+
|
|
6
|
+
module Kontena
|
|
7
|
+
module PluginManager
|
|
8
|
+
class RubygemsClient
|
|
9
|
+
|
|
10
|
+
JSON_MIME ='application/json'.freeze
|
|
11
|
+
ACCEPT = 'Accept'.freeze
|
|
12
|
+
HTTPOK = "200".freeze
|
|
13
|
+
|
|
14
|
+
def search(pattern = nil)
|
|
15
|
+
get('/api/v1/search.json', query: pattern)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def versions(gem_name)
|
|
19
|
+
response = get("/api/v1/versions/#{gem_name}.json")
|
|
20
|
+
response.map { |version| Gem::Version.new(version["number"]) }.sort.reverse
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Get the latest version number from rubygems
|
|
24
|
+
# @param plugin_name [String]
|
|
25
|
+
# @param pre [Boolean] include prerelease versions
|
|
26
|
+
def latest_version(gem_name, pre: false)
|
|
27
|
+
return versions(gem_name).first if pre
|
|
28
|
+
versions(gem_name).find { |version| !version.prerelease? }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def client
|
|
32
|
+
return @client if @client
|
|
33
|
+
@client = Net::HTTP.new('rubygems.org', 443)
|
|
34
|
+
@client.use_ssl = true
|
|
35
|
+
@client
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def request_path(path, query = nil)
|
|
39
|
+
uri = URI(path)
|
|
40
|
+
uri.query = URI.encode_www_form(query) if query
|
|
41
|
+
uri.to_s
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def get_request(path)
|
|
45
|
+
request = Net::HTTP::Get.new(path)
|
|
46
|
+
request[ACCEPT] = JSON_MIME
|
|
47
|
+
request
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def get(path, query = nil)
|
|
51
|
+
Kontena.logger.debug { "Requesting GET #{path}" }
|
|
52
|
+
response = client.request(get_request(request_path(path, query)))
|
|
53
|
+
Kontena.logger.debug { "Response #{response.code}" }
|
|
54
|
+
raise "Server responded with #{response.code} (#{response.class.name})" unless response.code == HTTPOK
|
|
55
|
+
JSON.parse(response.body)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'rubygems/uninstaller'
|
|
2
|
+
|
|
3
|
+
module Kontena
|
|
4
|
+
module PluginManager
|
|
5
|
+
class Uninstaller
|
|
6
|
+
include PluginManager::Common
|
|
7
|
+
|
|
8
|
+
attr_reader :plugin_name
|
|
9
|
+
|
|
10
|
+
def initialize(plugin_name)
|
|
11
|
+
@plugin_name = plugin_name
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def command(spec)
|
|
15
|
+
@command ||= Gem::Uninstaller.new(
|
|
16
|
+
spec.name,
|
|
17
|
+
all: true,
|
|
18
|
+
executables: true,
|
|
19
|
+
force: true,
|
|
20
|
+
install_dir: spec.base_dir
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Uninstall a plugin
|
|
25
|
+
# @param plugin_name [String]
|
|
26
|
+
def uninstall
|
|
27
|
+
installed = installed(plugin_name)
|
|
28
|
+
raise "Plugin #{plugin_name} not installed" unless installed
|
|
29
|
+
|
|
30
|
+
command(installed).uninstall
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Kontena
|
|
2
|
+
module PluginManager
|
|
3
|
+
autoload :RubygemsClient, 'kontena/plugin_manager/rubygems_client'
|
|
4
|
+
autoload :Loader, 'kontena/plugin_manager/loader'
|
|
5
|
+
autoload :Installer, 'kontena/plugin_manager/installer'
|
|
6
|
+
autoload :Uninstaller, 'kontena/plugin_manager/uninstaller'
|
|
7
|
+
autoload :Cleaner, 'kontena/plugin_manager/cleaner'
|
|
8
|
+
autoload :Common, 'kontena/plugin_manager/common'
|
|
9
|
+
|
|
10
|
+
# Initialize plugin manager
|
|
11
|
+
def init
|
|
12
|
+
ENV["GEM_HOME"] = Common.install_dir
|
|
13
|
+
Gem.paths = ENV
|
|
14
|
+
Common.use_dummy_ui unless Kontena.debug?
|
|
15
|
+
plugins
|
|
16
|
+
true
|
|
17
|
+
end
|
|
18
|
+
module_function :init
|
|
19
|
+
|
|
20
|
+
# @return [Array<Gem::Specification>]
|
|
21
|
+
def plugins
|
|
22
|
+
@plugins ||= Loader.new.load_plugins
|
|
23
|
+
end
|
|
24
|
+
module_function :plugins
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
oauth2.authorize_endpoint: https://github.com/login/oauth/authorize
|
|
3
|
+
oauth2.code_requires_basic_auth: false
|
|
4
|
+
oauth2.token_endpoint: https://github.com/login/oauth/access_token
|
|
5
|
+
oauth2.token_method: post
|
|
6
|
+
oauth2.token_post_content_type: application/json
|
|
7
|
+
oauth2.userinfo_scope: user:email
|
|
8
|
+
oauth2.userinfo_endpoint: https://api.github.com/user
|
|
9
|
+
oauth2.userinfo_username_jsonpath: "$..login"
|
|
10
|
+
oauth2.userinfo_email_jsonpath: "$..email"
|
|
11
|
+
oauth2.userinfo_user_id_jsonpath: "$..id"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
oauth2.authorize_endpoint: https://cloud.kontena.io/login/oauth/authorize
|
|
3
|
+
oauth2.code_requires_basic_auth: false
|
|
4
|
+
oauth2.token_endpoint: https://cloud-api.kontena.io/oauth2/token
|
|
5
|
+
oauth2.token_method: post
|
|
6
|
+
oauth2.token_post_content_type: application/x-www-form-urlencoded
|
|
7
|
+
oauth2.userinfo_endpoint: https://cloud-api.kontena.io/user
|
|
8
|
+
oauth2.userinfo_username_jsonpath: "$..username"
|
|
9
|
+
oauth2.userinfo_email_jsonpath: "$..email"
|
|
10
|
+
oauth2.userinfo_user_id_jsonpath: "$..id"
|
|
11
|
+
oauth2.userinfo_scope: user
|