vagrant-service-manager 1.1.0 → 1.2.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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/ansible/roles/centos/tasks/main.yml +3 -2
  3. data/.ci/jenkins-execute-script.py +6 -4
  4. data/.gitignore +1 -0
  5. data/.rubocop.yml +13 -0
  6. data/.rubocop_todo.yml +55 -0
  7. data/CHANGELOG.md +22 -1
  8. data/CONTRIBUTING.adoc +6 -6
  9. data/Gemfile +12 -4
  10. data/README.adoc +104 -70
  11. data/Rakefile +235 -66
  12. data/features/box-command.feature +26 -1
  13. data/features/env-command.feature +20 -3
  14. data/features/help-command.feature +4 -1
  15. data/features/install-cli.feature +58 -0
  16. data/features/openshift.feature +2 -1
  17. data/features/service-operation.feature +76 -3
  18. data/features/support/env.rb +26 -10
  19. data/lib/vagrant-service-manager.rb +7 -2
  20. data/lib/vagrant-service-manager/action/setup_network.rb +0 -2
  21. data/lib/vagrant-service-manager/archive_handlers/tar_handler.rb +26 -0
  22. data/lib/vagrant-service-manager/archive_handlers/zip_handler.rb +25 -0
  23. data/lib/vagrant-service-manager/binary_handlers/adb_binary_handler.rb +55 -0
  24. data/lib/vagrant-service-manager/binary_handlers/adb_docker_binary_handler.rb +38 -0
  25. data/lib/vagrant-service-manager/binary_handlers/adb_openshift_binary_handler.rb +49 -0
  26. data/lib/vagrant-service-manager/binary_handlers/binary_handler.rb +119 -0
  27. data/lib/vagrant-service-manager/binary_handlers/cdk_binary_handler.rb +33 -0
  28. data/lib/vagrant-service-manager/binary_handlers/cdk_docker_binary_handler.rb +9 -0
  29. data/lib/vagrant-service-manager/binary_handlers/cdk_openshift_binary_handler.rb +9 -0
  30. data/lib/vagrant-service-manager/command.rb +90 -15
  31. data/lib/vagrant-service-manager/config.rb +8 -8
  32. data/lib/vagrant-service-manager/installer.rb +49 -0
  33. data/lib/vagrant-service-manager/plugin.rb +2 -2
  34. data/lib/vagrant-service-manager/plugin_logger.rb +2 -2
  35. data/lib/vagrant-service-manager/plugin_util.rb +29 -6
  36. data/lib/vagrant-service-manager/service.rb +4 -3
  37. data/lib/vagrant-service-manager/service_base.rb +11 -0
  38. data/lib/vagrant-service-manager/services/docker.rb +29 -29
  39. data/lib/vagrant-service-manager/services/kubernetes.rb +7 -7
  40. data/lib/vagrant-service-manager/services/open_shift.rb +42 -41
  41. data/lib/vagrant-service-manager/version.rb +1 -1
  42. data/locales/en.yml +42 -4
  43. data/plugins/guests/redhat/cap/machine_ip.rb +2 -1
  44. data/plugins/guests/redhat/plugin.rb +1 -1
  45. data/plugins/hosts/darwin/cap/os_arch.rb +11 -0
  46. data/plugins/hosts/darwin/plugin.rb +13 -0
  47. data/plugins/hosts/linux/cap/os_arch.rb +11 -0
  48. data/plugins/hosts/linux/plugin.rb +13 -0
  49. data/plugins/hosts/windows/cap/os_arch.rb +18 -0
  50. data/plugins/hosts/windows/plugin.rb +13 -0
  51. data/test/test_data/docker-1.10.0.tar.gz +0 -0
  52. data/test/test_data/docker-1.11.0.tgz +0 -0
  53. data/test/test_data/docker-1.9.1.zip +0 -0
  54. data/test/test_data/openshift-origin-client-tools-v1.2.0-2e62fab-linux-64bit.tar.gz +0 -0
  55. data/test/test_data/openshift-origin-client-tools-v1.2.0-2e62fab-linux-64bit.zip +0 -0
  56. data/test/test_data/openshift-origin-client-tools-v1.2.0-2e62fab-mac.zip +0 -0
  57. data/test/test_helper.rb +121 -0
  58. data/test/vagrant-service-manager/archive_handler_test.rb +49 -0
  59. data/test/vagrant-service-manager/binary_handlers/adb_docker_binary_handler_test.rb +111 -0
  60. data/test/vagrant-service-manager/binary_handlers/adb_openshift_binary_handler_test.rb +107 -0
  61. data/test/vagrant-service-manager/installer_test.rb +96 -0
  62. data/vagrant-service-manager.gemspec +4 -3
  63. metadata +43 -16
  64. data/TODO +0 -24
  65. data/Vagrantfile +0 -29
  66. data/lib/vagrant-service-manager/os.rb +0 -22
  67. data/vagrant-service-manager.spec +0 -215
@@ -0,0 +1,49 @@
1
+ module VagrantPlugins
2
+ module ServiceManager
3
+ class Installer
4
+ def initialize(type, machine, env, options)
5
+ @type = type
6
+ @machine = machine
7
+ @env = env
8
+ @box_version = options.delete(:box_version)
9
+
10
+ validate_prerequisites
11
+ binary_handler_class = Object.const_get(handler_class)
12
+ @binary_handler = binary_handler_class.new(machine, env, { type: @type }.merge(options))
13
+ end
14
+
15
+ def handler_class
16
+ "#{ServiceManager.name}::#{@box_version.upcase}#{@type.capitalize}BinaryHandler"
17
+ end
18
+
19
+ def install
20
+ unless PluginUtil.binary_downloaded?(@binary_handler.path)
21
+ @binary_handler.binary_exists = false
22
+ @binary_handler.install
23
+ end
24
+
25
+ @binary_handler.print_message
26
+ end
27
+
28
+ private
29
+
30
+ def validate_prerequisites
31
+ if @box_version == 'cdk'
32
+ @env.ui.info I18n.t('servicemanager.commands.install_cli.unsupported_box')
33
+ exit 126
34
+ end
35
+
36
+ if @type == :kubernetes
37
+ @env.ui.info I18n.t('servicemanager.commands.install_cli.kube_not_supported')
38
+ exit 126
39
+ end
40
+
41
+ unless PluginUtil.service_running?(@machine, @type.to_s)
42
+ @env.ui.info I18n.t('servicemanager.commands.install_cli.service_not_enabled',
43
+ service: @type)
44
+ exit 126
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -5,8 +5,8 @@ require_relative 'service'
5
5
  module VagrantPlugins
6
6
  module ServiceManager
7
7
  class Plugin < Vagrant.plugin('2')
8
- name "service-manager"
9
- description "Service manager for services inside vagrant box."
8
+ name 'service-manager'
9
+ description 'Service manager for services inside vagrant box.'
10
10
 
11
11
  command 'service-manager' do
12
12
  require_relative 'command'
@@ -14,7 +14,7 @@ module VagrantPlugins
14
14
  @debug = true
15
15
  end
16
16
 
17
- def self.set_logger(logger)
17
+ def self.logger=(logger)
18
18
  @logger = logger
19
19
  end
20
20
 
@@ -24,7 +24,7 @@ module VagrantPlugins
24
24
 
25
25
  def self.debug(message = nil)
26
26
  if debug_mode?
27
- message = "#{command}" if message.nil?
27
+ message = command.to_s if message.nil?
28
28
  logger.debug "[ service-manager: #{message} ]"
29
29
  end
30
30
  end
@@ -1,7 +1,6 @@
1
1
  module VagrantPlugins
2
2
  module ServiceManager
3
3
  module PluginUtil
4
-
5
4
  def self.service_class(service)
6
5
  SERVICES_MAP[service]
7
6
  end
@@ -35,7 +34,7 @@ module VagrantPlugins
35
34
  return false if Dir["#{path}/*"].empty?
36
35
 
37
36
  # check validity of certs
38
- Dir[path + "/*"].each do |f|
37
+ Dir[path + '/*'].each do |f|
39
38
  guest_file_path = "#{DOCKER_PATH}/#{File.basename(f)}"
40
39
  guest_sha = machine.guest.capability(:sha_id, guest_file_path)
41
40
  return false if sha_id(File.read(f)) != guest_sha
@@ -94,10 +93,19 @@ module VagrantPlugins
94
93
  ui.error e.message.squeeze
95
94
  end
96
95
 
96
+ def self.execute_once(machine, ui, command)
97
+ machine.communicate.sudo(command) do |_, data|
98
+ PluginLogger.debug
99
+ return data.chomp
100
+ end
101
+ rescue StandardError => e
102
+ ui.error e.message.squeeze
103
+ end
104
+
97
105
  def self.print_shell_configure_info(ui, command = '')
98
- label = if OS.unix?
106
+ label = if !Vagrant::Util::Platform.windows?
99
107
  'unix_configure_info'
100
- elsif OS.windows_cygwin?
108
+ elsif Vagrant::Util::Platform.cygwin?
101
109
  'windows_cygwin_configure_info'
102
110
  end
103
111
 
@@ -109,14 +117,29 @@ module VagrantPlugins
109
117
  def self.env_label(script_readable)
110
118
  if script_readable
111
119
  'script_readable'
112
- elsif OS.unix?
120
+ elsif !Vagrant::Util::Platform.windows?
113
121
  'non_windows'
114
- elsif OS.windows_cygwin?
122
+ elsif Vagrant::Util::Platform.cygwin?
115
123
  'windows_cygwin'
116
124
  else
117
125
  'windows'
118
126
  end
119
127
  end
128
+
129
+ def self.binary_downloaded?(path)
130
+ File.file?(path)
131
+ end
132
+
133
+ def self.format_path(path)
134
+ if Vagrant::Util::Platform.cygwin?
135
+ path[0..1] = '' # Remove drive letter and colon from path
136
+ "/cygdrive/c#{path}"
137
+ elsif Vagrant::Util::Platform.windows?
138
+ windows_path(path).chop
139
+ else
140
+ path
141
+ end
142
+ end
120
143
  end
121
144
  end
122
145
  end
@@ -1,9 +1,10 @@
1
+ require_relative 'service_base'
1
2
  # Loads all services
2
3
  Dir["#{File.dirname(__FILE__)}/services/*.rb"].each { |f| require_relative f }
3
4
 
4
5
  module VagrantPlugins
5
6
  module ServiceManager
6
- SUPPORTED_BOXES = ['adb', 'cdk']
7
+ SUPPORTED_BOXES = %w(adb cdk).freeze
7
8
 
8
9
  class Service
9
10
  def initialize(app, env)
@@ -22,10 +23,10 @@ module VagrantPlugins
22
23
  # docker service needs to be started by default for ADB and CDK box
23
24
  @docker_hook.execute
24
25
 
25
- if @machine.guest.capability(:os_variant) == "cdk" && @services.length == 0
26
+ if @machine.guest.capability(:os_variant) == 'cdk' && @services.empty?
26
27
  # openshift to be started by default for CDK
27
28
  @openshift_hook.execute
28
- elsif @services.include? "openshift"
29
+ elsif @services.include? 'openshift'
29
30
  # Start OpenShift service if it is configured in Vagrantfile
30
31
  @openshift_hook.execute
31
32
  end
@@ -0,0 +1,11 @@
1
+ module VagrantPlugins
2
+ module ServiceManager
3
+ class ServiceBase
4
+ def initialize(machine, _env)
5
+ @machine = machine
6
+ @env = machine.env
7
+ @ui = @env.ui
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,13 +1,13 @@
1
1
  module VagrantPlugins
2
2
  module ServiceManager
3
- class Docker
3
+ class Docker < ServiceBase
4
4
  # Hard Code the Docker port because it is fixed on the VM
5
5
  # This also makes it easier for the plugin to be cross-provider
6
6
  PORT = 2376
7
7
 
8
- def initialize(machine, ui)
9
- @machine = machine
10
- @ui = ui
8
+ def initialize(machine, env)
9
+ super(machine, env)
10
+ @service_name = 'docker'
11
11
  end
12
12
 
13
13
  def execute
@@ -21,55 +21,55 @@ module VagrantPlugins
21
21
  end
22
22
  end
23
23
 
24
- def self.status(machine, ui, service)
25
- PluginUtil.print_service_status(ui, machine, service)
24
+ def status
25
+ PluginUtil.print_service_status(@ui, @machine, @service_name)
26
26
  end
27
27
 
28
- def self.info(machine, ui, options = {})
29
- if PluginUtil.service_running?(machine, 'docker')
30
- options[:secrets_path] = PluginUtil.host_docker_path(machine)
31
- options[:guest_ip] = PluginUtil.machine_ip(machine)
28
+ def info(options = {})
29
+ if PluginUtil.service_running?(@machine, @service_name)
30
+ options[:secrets_path] = PluginUtil.host_docker_path(@machine)
31
+ options[:guest_ip] = PluginUtil.machine_ip(@machine)
32
32
 
33
33
  # Verify valid certs and copy if invalid
34
- unless PluginUtil.certs_present_and_valid?(options[:secrets_path], machine)
34
+ unless PluginUtil.certs_present_and_valid?(options[:secrets_path], @machine)
35
35
  # Log the message prefixed by #
36
- PluginUtil.copy_certs_to_host(machine, options[:secrets_path], ui, true)
36
+ PluginUtil.copy_certs_to_host(@machine, options[:secrets_path], @ui, true)
37
37
  end
38
38
 
39
- docker_api_version_cmd = "docker version --format '{{.Server.APIVersion}}'"
40
- unless machine.communicate.test(docker_api_version_cmd)
39
+ api_version_cmd = "docker version --format '{{.Server.APIVersion}}'"
40
+ unless @machine.communicate.test(api_version_cmd)
41
41
  # fix for issue #152: Fallback to older Docker version (< 1.9.1)
42
- docker_api_version_cmd.gsub!(/APIVersion/, 'ApiVersion')
43
- end
44
-
45
- PluginLogger.debug
46
- machine.communicate.execute(docker_api_version_cmd) do |type, data|
47
- options[:api_version] = data.chomp if type == :stdout
42
+ api_version_cmd.gsub!(/APIVersion/, 'ApiVersion')
48
43
  end
49
44
 
45
+ options[:api_version] = PluginUtil.execute_once(@machine, @ui, api_version_cmd)
50
46
  # Display the information, irrespective of the copy operation
51
- print_env_info(ui, options)
47
+ print_env_info(@ui, options)
52
48
  else
53
- ui.error I18n.t('servicemanager.commands.env.service_not_running',
54
- name: 'Docker')
49
+ @ui.error I18n.t('servicemanager.commands.env.service_not_running',
50
+ name: @service_name)
55
51
  exit 126
56
52
  end
57
53
  end
58
54
 
59
- def self.print_env_info(ui, options)
55
+ private
56
+
57
+ def print_env_info(ui, options)
60
58
  PluginLogger.debug("script_readable: #{options[:script_readable] || false}")
61
59
 
62
60
  label = PluginUtil.env_label(options[:script_readable])
63
- options[:secrets_path] = PluginUtil.windows_path(options[:secrets_path]) unless OS.unix?
61
+
62
+ if Vagrant::Util::Platform.windows?
63
+ options[:secrets_path] = PluginUtil.windows_path(options[:secrets_path])
64
+ end
64
65
  message = I18n.t("servicemanager.commands.env.docker.#{label}",
65
66
  ip: options[:guest_ip], port: PORT, path: options[:secrets_path],
66
67
  api_version: options[:api_version])
67
68
  # Puts is used to escape and render the back slashes in Windows path
68
- message = puts(message) if OS.windows?
69
+ message = puts(message) if Vagrant::Util::Platform.windows?
69
70
  ui.info(message)
70
- unless options[:script_readable] || options[:all]
71
- PluginUtil.print_shell_configure_info(ui, ' docker')
72
- end
71
+ return if options[:script_readable] || options[:all]
72
+ PluginUtil.print_shell_configure_info(ui, ' docker')
73
73
  end
74
74
  end
75
75
  end
@@ -1,20 +1,20 @@
1
1
  module VagrantPlugins
2
2
  module ServiceManager
3
- class Kubernetes
4
- def initialize(machine, ui)
5
- @machine = machine
6
- @ui = ui
3
+ class Kubernetes < ServiceBase
4
+ def initialize(machine, env)
5
+ super(machine, env)
6
+ @service_name = 'kubernetes'
7
7
  end
8
8
 
9
9
  def execute
10
10
  # TODO: Implement execute method
11
11
  end
12
12
 
13
- def self.status(machine, ui, service)
14
- PluginUtil.print_service_status(ui, machine, service)
13
+ def status
14
+ PluginUtil.print_service_status(@ui, @machine, @service_name)
15
15
  end
16
16
 
17
- def self.info(machine, ui, options = {})
17
+ def info(options = {})
18
18
  # TODO: Implement info method
19
19
  end
20
20
  end
@@ -1,11 +1,11 @@
1
1
  module VagrantPlugins
2
2
  module ServiceManager
3
- class OpenShift
4
- OPENSHIFT_PORT = 8443
3
+ class OpenShift < ServiceBase
4
+ PORT = 8443
5
5
 
6
- def initialize(machine, ui)
7
- @machine = machine
8
- @ui = ui
6
+ def initialize(machine, env)
7
+ super(machine, env)
8
+ @service_name = 'openshift'
9
9
  @extra_cmd = build_extra_command
10
10
  end
11
11
 
@@ -14,39 +14,39 @@ module VagrantPlugins
14
14
  PluginUtil.execute_and_exit_on_fail(@machine, @ui, command)
15
15
  end
16
16
 
17
- def self.status(machine, ui, service)
18
- PluginUtil.print_service_status(ui, machine, service)
17
+ def status
18
+ PluginUtil.print_service_status(@ui, @machine, @service_name)
19
19
  end
20
20
 
21
- def self.docker_registry_host(machine)
22
- url = ''
23
- PluginLogger.debug
24
- command = \
25
- "sudo oc --config=/var/lib/openshift/openshift.local." +
26
- "config/master/admin.kubeconfig get route/docker-registry " +
27
- "-o template --template={{.spec.host}}"
28
- machine.communicate.execute(command) do |type, data|
29
- url << data.chomp if type == :stdout
30
- end
31
- url
32
- end
33
-
34
- def self.info(machine, ui, options = {})
21
+ def info(options = {})
35
22
  options[:script_readable] ||= false
36
23
 
37
- if PluginUtil.service_running?(machine, 'openshift')
38
- options[:url] = "https://#{PluginUtil.machine_ip(machine)}:#{OPENSHIFT_PORT}"
24
+ if PluginUtil.service_running?(@machine, 'openshift')
25
+ options[:url] = "https://#{PluginUtil.machine_ip(@machine)}:#{PORT}"
39
26
  options[:console_url] = "#{options[:url]}/console"
40
- options[:docker_registry] = docker_registry_host(machine)
41
- print_info(ui, options)
27
+ options[:docker_registry] = docker_registry_host
28
+ print_info(options)
42
29
  else
43
- ui.error I18n.t('servicemanager.commands.env.service_not_running',
44
- name: 'OpenShift')
30
+ @ui.error I18n.t('servicemanager.commands.env.service_not_running',
31
+ name: 'OpenShift')
45
32
  exit 126
46
33
  end
47
34
  end
48
35
 
49
- def self.print_info(ui, options)
36
+ private
37
+
38
+ def build_extra_command
39
+ cmd = ''
40
+ CONFIG_KEYS.select { |e| e[/^openshift_/] }.each do |key|
41
+ unless @machine.config.servicemanager.send(key).nil?
42
+ env_name = key.to_s.gsub(/openshift_/, '').upcase
43
+ cmd += "#{env_name}='#{@machine.config.servicemanager.send(key)}' "
44
+ end
45
+ end
46
+ cmd.chop
47
+ end
48
+
49
+ def print_info(options)
50
50
  PluginLogger.debug("script_readable: #{options[:script_readable] || false}")
51
51
 
52
52
  label = PluginUtil.env_label(options[:script_readable])
@@ -54,23 +54,24 @@ module VagrantPlugins
54
54
  openshift_url: options[:url],
55
55
  openshift_console_url: options[:console_url],
56
56
  docker_registry: options[:docker_registry])
57
- ui.info(message)
58
- unless options[:script_readable] || options[:all]
59
- PluginUtil.print_shell_configure_info(ui, ' openshift')
60
- end
57
+ @ui.info(message)
58
+
59
+ return if options[:script_readable] || options[:all]
60
+ PluginUtil.print_shell_configure_info(@ui, ' openshift')
61
61
  end
62
62
 
63
- private
63
+ def docker_registry_host
64
+ url = ''
65
+ PluginLogger.debug
66
+ command = \
67
+ 'sudo oc --config=/var/lib/openshift/openshift.local.' \
68
+ 'config/master/admin.kubeconfig get route/docker-registry ' \
69
+ '-o template --template={{.spec.host}}'
64
70
 
65
- def build_extra_command
66
- cmd = ''
67
- CONFIG_KEYS.select {|e| e[/^openshift_/] }.each do |key|
68
- unless @machine.config.servicemanager.send(key).nil?
69
- env_name = key.to_s.gsub(/openshift_/,'').upcase
70
- cmd += "#{env_name}='#{@machine.config.servicemanager.send(key)}' "
71
- end
71
+ @machine.communicate.execute(command) do |type, data|
72
+ url << data.chomp if type == :stdout
72
73
  end
73
- cmd.chop
74
+ url
74
75
  end
75
76
  end
76
77
  end
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module ServiceManager
3
- VERSION = "1.1.0"
3
+ VERSION = '1.2.0'.freeze
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
@@ -1,4 +1,10 @@
1
1
  en:
2
+ vagrant:
3
+ errors:
4
+ url_validation_error: |-
5
+ Download URL is not accessible.
6
+ Possible reason: Invalid version name
7
+
2
8
  servicemanager:
3
9
  synopsis: |-
4
10
  provides the IP address:port and tls certificate file location for a docker daemon
@@ -28,6 +34,7 @@ en:
28
34
  start starts the given service in the box
29
35
  stop stops the given service in the box
30
36
  status list services and their running state
37
+ install-cli install the client binary for the specified service
31
38
 
32
39
  Options:
33
40
  -h, --help print this help
@@ -40,7 +47,7 @@ en:
40
47
  docker display information and environment variables for docker
41
48
  openshift display information and environment variables for openshift
42
49
 
43
- If OBJECT is ommitted, display the information for all active services
50
+ If OBJECT is omitted, display the information for all active services
44
51
 
45
52
  Options:
46
53
  --script-readable display information in a script readable format.
@@ -58,8 +65,9 @@ en:
58
65
 
59
66
  Examples:
60
67
  vagrant service-manager box version
61
- vagrant service-manager box ip
62
68
  vagrant service-manager box version --script-readable
69
+ vagrant service-manager box ip
70
+ vagrant service-manager box ip --script-readable
63
71
  status: |-
64
72
  Usage: vagrant service-manager status [service] [options]
65
73
 
@@ -85,6 +93,19 @@ en:
85
93
 
86
94
  Examples:
87
95
  vagrant service-manager %{operation} docker
96
+ install_cli: |-
97
+ Install the client binary for the specified service
98
+
99
+ Usage: vagrant service-manager install-cli [service] [options]
100
+
101
+ Service:
102
+ A supported service. For example: docker, kubernetes or openshift.
103
+
104
+ Options:
105
+ -h, --help print this help
106
+
107
+ Example:
108
+ vagrant service-manager install-cli docker
88
109
 
89
110
  env:
90
111
  docker:
@@ -94,7 +115,7 @@ en:
94
115
  setx DOCKER_HOST tcp://%{ip}:%{port}
95
116
  setx DOCKER_CERT_PATH %{path}
96
117
  setx DOCKER_TLS_VERIFY 1
97
- setx DOCKER_API_VERSION=#{api_version}
118
+ setx DOCKER_API_VERSION %{api_version}
98
119
  non_windows: |-
99
120
  # Set the following environment variables to enable access to the
100
121
  # docker daemon running inside of the vagrant virtual machine:
@@ -151,6 +172,23 @@ en:
151
172
  Only sccli services are supported. For example:
152
173
  docker, openshift and kubernetes
153
174
 
175
+ install_cli:
176
+ message: |-
177
+ # Binary %{when} available at %{path}
178
+ # run binary as:
179
+ # %{binary} <command>
180
+ export PATH=%{dir}:$PATH
181
+
182
+ # run following command to configure your shell:
183
+ # eval "$(VAGRANT_NO_COLOR=1 vagrant service-manager install-cli %{service} | tr -d '\r')"
184
+ unsupported_box: |-
185
+ The CDK does not support client binary installs via the 'install-cli' command.
186
+ Please visit access.redhat.com to download client binaries.
187
+ service_not_enabled: |-
188
+ '%{service}' service is not enabled.
189
+ kube_not_supported: |-
190
+ Installation of Kubernetes client library via the install-cli command is not supported yet.
191
+
154
192
  status:
155
193
  nil: |-
156
194
  Configured services:
@@ -158,5 +196,5 @@ en:
158
196
  running: running
159
197
  stopped: stopped
160
198
  unsupported_service: |-
161
- Unkown service '%{service}'.
199
+ Unknown service '%{service}'.
162
200
  Supported services are %{services}.