sct 0.1.20 → 0.1.25

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 886dba5184c321ede1c67d28d391bdea4c65c91d2039113c6efcd19271af52d5
4
- data.tar.gz: 1a0d8b618938924eb2b5fb5bb2009e71cfdf066e42e6bc125845c9a272715e37
3
+ metadata.gz: b0014f7b902a222679cab47e9a2595a52c6c037e7bb3c47c0ae03e3b69c9f8d7
4
+ data.tar.gz: 37cff1b39148c84cd7d4e626e5d55744017c2a1406183b0915fd0bf8013730dc
5
5
  SHA512:
6
- metadata.gz: 999c86de5b963c310cd538bf216ff8a4efa60390674a579e8c62b5f8b5e3b366203e0970180ffca104803e381826261be7902b6bd881dcb38086def2b871f8b4
7
- data.tar.gz: f0dcfa20601a483a703f0c9f40ea64ecfd12e68251d63bafd77f77fcdf6bee9c97f93d1fe66446ec0cd66624ff8e1fa3f80386a6fde0fabdda76bcba13baca11
6
+ metadata.gz: 419ab66f62d5a1cd697b8a1ddd3a26a1bda26778d6be199b1424ac72d6c8a33854657a5ab2f80838ea25e3f456f0a33e81c5cf6b7418aa22e7869898a2ac72be
7
+ data.tar.gz: 9487da0833e8c581c5c036ecd270794a40f62eee44c80520ddbe89c19b9bd80098a02bb60c94f47f0f08acc2823a25a9d0b13b469e2511af2bb68f3424e2dac3
@@ -83,7 +83,21 @@ module Cluster
83
83
  c.action do |args, options|
84
84
 
85
85
  Cluster::Runner.new.delete_stalled_pods if options.stalled
86
- UI.important("Currently its not possible to delete all pods") if options.all
86
+ Cluster::Runner.new.delete_all_pods if options.all
87
+
88
+ Cluster::Runner.new.delete_pods(args) if !args.empty?
89
+
90
+ end
91
+ end
92
+
93
+ command :'apply pods' do |c|
94
+ c.syntax = 'sct cluster apply pods'
95
+ c.description = 'apply pods from the k8s folder'
96
+
97
+ c.action do |args, options|
98
+
99
+ Cluster::Runner.new.apply_pods
100
+
87
101
  end
88
102
  end
89
103
 
@@ -1,7 +1,7 @@
1
1
  module Cluster
2
2
  class Runner
3
-
4
- def launch
3
+
4
+ def launch
5
5
  return UI.error("SCT has not been initialized. Run 'sct init' first.") unless SctCore::Config.exists
6
6
  start_cluster
7
7
  run_command "kubectl delete pod -n kube-system #{pods("kube-system").map { |pod| pod[:name] if pod[:name].start_with? "registry-creds" } .compact.join(" ")}"
@@ -11,11 +11,11 @@ module Cluster
11
11
 
12
12
  def start_cluster
13
13
  if SctCore::Helper.operatingSystem == SctCore::Helper::MAC_OS
14
- run_command "#{minikube} start --cpus=$(sysctl -n hw.ncpu) --memory=8G"
14
+ run_command "#{SctCore::Helper.minikube} start --cpus=$(sysctl -n hw.ncpu) --memory=8G"
15
15
  else
16
- run_command "#{minikube} start --cpus=$(cat /proc/cpuinfo | grep processor | wc -l) --memory=10G"
16
+ run_command "#{SctCore::Helper.minikube} start --cpus=$(cat /proc/cpuinfo | grep processor | wc -l) --memory=10G"
17
17
  end
18
- run_command "#{minikube} ssh -- 'sudo su -c \"echo 10048576 > /proc/sys/fs/inotify/max_user_watches\"'"
18
+ run_command "#{SctCore::Helper.minikube} ssh -- 'sudo su -c \"echo 10048576 > /proc/sys/fs/inotify/max_user_watches\"'"
19
19
  update_config
20
20
  end
21
21
 
@@ -26,17 +26,14 @@ module Cluster
26
26
  end
27
27
 
28
28
  def down
29
- run_command "#{minikube} stop"
29
+ run_command "#{SctCore::Helper.minikube} stop"
30
30
  end
31
31
 
32
32
  def reset
33
- run_command "#{minikube} delete"
33
+ run_command "#{SctCore::Helper.minikube} delete"
34
34
  start_cluster
35
35
  create_secrets
36
- run_command "#{minikube} addons enable registry-creds"
37
- run_command "#{minikube} addons enable ingress"
38
- run_command "kubectl rollout status -n kube-system deployment/registry-creds"
39
- run_command "kubectl rollout status -n kube-system deployment/nginx-ingress-controller"
36
+ enable_addons
40
37
  wait_for_gcr_secret
41
38
  run_command "kubectl apply -f ~/development/spend-cloud/k8s/ingress.yml"
42
39
  wait_for_ingress_ip
@@ -46,6 +43,19 @@ module Cluster
46
43
  post_start
47
44
  end
48
45
 
46
+ def enable_addons
47
+ enable_addon "registry-creds"
48
+ enable_addon "ingress"
49
+ end
50
+
51
+ def enable_addon(addon)
52
+ run_command "#{SctCore::Helper.minikube} addons enable #{addon}"
53
+
54
+ deployment = deployments("kube-system").find { |deployment| deployment[:name].include? addon }
55
+
56
+ run_command "kubectl rollout status -n kube-system deployment/#{deployment[:name]}"
57
+ end
58
+
49
59
  def wait_for_pods
50
60
  UI.important("Waiting for pods to become ready...")
51
61
 
@@ -71,6 +81,18 @@ module Cluster
71
81
  end
72
82
  end
73
83
 
84
+ def delete_all_pods
85
+ run_command "kubectl delete pods --all"
86
+ end
87
+
88
+ def delete_pods(args)
89
+ run_command "kubectl delete pods #{args.join(" ")}"
90
+ end
91
+
92
+ def apply_pods
93
+ run_command "kubectl apply -f ~/development/spend-cloud/k8s/"
94
+ end
95
+
74
96
  def update_config
75
97
  if SctCore::Helper.operatingSystem == SctCore::Helper::WINDOWS
76
98
  windows_home_path = SctCore::Helper.windowsHomePath
@@ -93,12 +115,8 @@ module Cluster
93
115
  run_command "kubectl rollout status -n kube-system deployment/coredns"
94
116
  end
95
117
 
96
- def pods(namespace = nil)
97
- if namespace
98
- output = `kubectl get pods -n #{namespace}`
99
- else
100
- output = `kubectl get pods`
101
- end
118
+ def deployments(namespace = "default")
119
+ output = `kubectl get deployments -n #{namespace}`
102
120
 
103
121
  # split output lines
104
122
  lines = output.split "\n"
@@ -106,9 +124,26 @@ module Cluster
106
124
  # exclude first line (table header)
107
125
  lines = lines[1..-1]
108
126
 
109
- if lines.to_a.empty?
110
- return
127
+ # get name and status of each pod
128
+ lines.map do |line|
129
+ columns = line.split(" ")
130
+
131
+ name = columns[0]
132
+
133
+ {
134
+ name: name
135
+ }
111
136
  end
137
+ end
138
+
139
+ def pods(namespace = "default")
140
+ output = `kubectl get pods -n #{namespace}`
141
+
142
+ # split output lines
143
+ lines = output.split "\n"
144
+
145
+ # exclude first line (table header)
146
+ lines = lines[1..-1]
112
147
 
113
148
  # get name and status of each pod
114
149
  lines.map do |line|
@@ -193,7 +228,7 @@ module Cluster
193
228
  end
194
229
 
195
230
  def get_minikube_status
196
- output = `#{minikube} status`
231
+ output = `#{SctCore::Helper.minikube} status`
197
232
 
198
233
  lines = output.split "\n"
199
234
 
@@ -204,12 +239,12 @@ module Cluster
204
239
  end
205
240
  end
206
241
 
207
- def print_pods_status(namespace = nil)
242
+ def print_pods_status(namespace = "default")
208
243
 
209
244
  pods_list = pods(namespace)
210
245
 
211
246
  if pods_list.to_a.empty?
212
- return
247
+ return
213
248
  end
214
249
 
215
250
  rows = pods_list.map do |pod|
@@ -219,7 +254,7 @@ module Cluster
219
254
  ]
220
255
  end
221
256
 
222
- puts Terminal::Table.new title: "Pods (namespace: #{namespace || "default"})".green, headings: ['Name', 'Status'], rows: rows
257
+ puts Terminal::Table.new title: "Pods (namespace: #{namespace})".green, headings: ['Name', 'Status'], rows: rows
223
258
  end
224
259
 
225
260
  def run_command command
@@ -227,13 +262,5 @@ module Cluster
227
262
  raise command.red
228
263
  end
229
264
  end
230
-
231
- def minikube
232
- if SctCore::Helper.operatingSystem == SctCore::Helper::WINDOWS
233
- return "minikube.exe"
234
- else
235
- return "minikube"
236
- end
237
- end
238
265
  end
239
- end
266
+ end
@@ -40,7 +40,11 @@ module Sct
40
40
  require "sct/commands_generator"
41
41
  Sct::CommandsGenerator.start
42
42
  end
43
+ ensure
44
+ SctCore::UpdateChecker.start_looking_for_update('sct')
45
+ SctCore::UpdateChecker.show_update_status('sct', Sct::VERSION)
43
46
  end
47
+
44
48
  end
45
49
  end
46
50
  end
@@ -30,6 +30,10 @@ module Sct
30
30
  {
31
31
  host: "docs.spend.cloud.local",
32
32
  comment: "The spend cloud documentation url"
33
+ },
34
+ {
35
+ host: "henk.spend.cloud.local",
36
+ comment: "The spend cloud Henk web-interface"
33
37
  }
34
38
  ]
35
39
 
@@ -1,3 +1,3 @@
1
1
  module Sct
2
- VERSION = "0.1.20"
2
+ VERSION = "0.1.25"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  require_relative 'sct_core/core_ext/string'
2
2
  require_relative 'sct_core/config'
3
3
  require_relative 'sct_core/helper'
4
+ require_relative 'sct_core/update_checker/update_checker'
4
5
  require_relative 'sct_core/command_executor'
5
6
  require_relative 'sct_core/ui/ui'
6
7
  require_relative 'sct_core/sct_pty'
@@ -35,10 +35,10 @@ module SctCore
35
35
  def self.operatingSystem
36
36
  proc = `uname -a`
37
37
 
38
- case proc
39
- when /Microsoft/
38
+ case proc.downcase
39
+ when /microsoft/
40
40
  os = WINDOWS
41
- when /Darwin/
41
+ when /darwin/
42
42
  os = MAC_OS
43
43
  else
44
44
  os = UBUNTU
@@ -86,5 +86,13 @@ module SctCore
86
86
  def self.isSudo
87
87
  return !ENV["SUDO_USER"].nil? && !ENV["SUDO_USER"].empty?
88
88
  end
89
+
90
+ def self.minikube
91
+ if self.operatingSystem == WINDOWS
92
+ return "minikube.exe"
93
+ else
94
+ return "minikube"
95
+ end
96
+ end
89
97
  end
90
98
  end
@@ -0,0 +1,76 @@
1
+
2
+ require 'excon'
3
+ require 'json'
4
+
5
+ module SctCore
6
+ class UpdateChecker
7
+ def self.start_looking_for_update(gem_name)
8
+ begin
9
+ server_results[gem_name] = fetch_latest(gem_name)
10
+ rescue => e
11
+ # ignore possible exceptions
12
+ UI.verbose("error occured fetching latest version #{e.message}")
13
+ end
14
+ end
15
+
16
+ def self.server_results
17
+ @results ||= {}
18
+ end
19
+
20
+ def self.update_available?(gem_name, current_version)
21
+ latest = server_results[gem_name]
22
+ return (latest and Gem::Version.new(latest) > Gem::Version.new(current_version))
23
+ end
24
+
25
+ def self.show_update_status(gem_name, current_version)
26
+ if update_available?(gem_name, current_version)
27
+ show_update_message(gem_name, current_version)
28
+ end
29
+ end
30
+
31
+ def self.show_update_message(gem_name, current_version)
32
+ available = server_results[gem_name]
33
+ puts("")
34
+ UI.important('#######################################################################')
35
+ if available
36
+ UI.important("# #{gem_name} #{available} is available. You are on #{current_version}.")
37
+ else
38
+ UI.important("# An update for #{gem_name} is available. You are on #{current_version}.")
39
+ end
40
+ UI.important("# You should use the latest version.")
41
+ UI.important("# Please update using `#{self.update_command(gem_name: gem_name)}`.")
42
+
43
+ UI.important('#######################################################################')
44
+ UI.important("# Run `sudo gem cleanup` from time to time to speed up sct.")
45
+
46
+ UI.important('#######################################################################')
47
+
48
+ ensure_rubygems_source
49
+ end
50
+
51
+ # Check if RubyGems is set as a gem source
52
+ # on some machines that might not be the case
53
+ # and then users can't find the update when
54
+ # running the specified command
55
+ def self.ensure_rubygems_source
56
+ return if `gem sources`.include?("https://rubygems.org")
57
+ puts("")
58
+ UI.error("RubyGems is not listed as your Gem source")
59
+ UI.error("You can run `gem sources` to see all your sources")
60
+ UI.error("Please run the following command to fix this:")
61
+ UI.command("gem sources --add https://rubygems.org")
62
+ end
63
+
64
+ def self.update_command(gem_name: "sct")
65
+ "sudo gem install #{gem_name.downcase}"
66
+ end
67
+
68
+ def self.fetch_latest(gem_name)
69
+ JSON.parse(Excon.get(generate_fetch_url(gem_name)).body)["version"]
70
+ end
71
+
72
+ def self.generate_fetch_url(gem_name)
73
+ "https://rubygems.org/api/v1/gems/#{gem_name}.json"
74
+ end
75
+ end
76
+ end
@@ -6,11 +6,11 @@ module Shell
6
6
 
7
7
  # Configure the Yarn command
8
8
  def self.config
9
- self.setImage("eu.gcr.io/dev-pasc-vcdm/helpers-composer:latest", true)
10
- self.setPwdAsVolume("/app")
11
- self.addVolume(SctCore::Helper.convertWSLToWindowsPath("#{SctCore::Helper.windowsHomePath || SctCore::Helper.homePath}/.composer") , "/tmp")
12
- self.setCurrentUserAndGroup()
13
- self.setEntrypoint("composer")
9
+ self.set_image("eu.gcr.io/dev-pasc-vcdm/helpers-composer:latest", true)
10
+ self.set_pwd_as_volume("/app")
11
+ self.add_volume(SctCore::Helper.convertWSLToWindowsPath("#{SctCore::Helper.windowsHomePath || SctCore::Helper.homePath}/.composer") , "/tmp")
12
+ self.set_current_user_and_group()
13
+ self.set_entrypoint("composer")
14
14
  end
15
15
  end
16
16
  end
@@ -4,7 +4,7 @@ require "shell/ClassLevelInheritableAttributes"
4
4
  module Shell
5
5
  class Docker
6
6
  include ClassLevelInheritableAttributes
7
- inheritable_attributes :image, :is_private_registry, :entrypoint, :volumes, :ports, :extra_arguments
7
+ inheritable_attributes :image, :is_private_registry, :entrypoint, :volumes, :ports, :extra_arguments, :env_variables
8
8
 
9
9
  @image = nil
10
10
  @is_private_registry = false
@@ -14,6 +14,7 @@ module Shell
14
14
  @ports = {}
15
15
  @user_group = []
16
16
  @extra_arguments = {}
17
+ @env_variables = {}
17
18
 
18
19
  ###
19
20
  # The Docker command configuration. This has to be able to execute the command properly
@@ -27,28 +28,28 @@ module Shell
27
28
  ###
28
29
  def self.exec(cli_arguments)
29
30
 
30
- self.addExtraArgument(cli_arguments)
31
+ self.add_extra_argument(cli_arguments)
31
32
 
32
- self.config()
33
+ self.config
33
34
 
34
35
  # Check if the basic variables are set
35
36
  if !@image || @image.empty?
36
37
  raise LoadError, "The required image is not defined for this command"
37
38
  end
38
39
 
39
- if !self.checkForImage() && @is_private_registry
40
- if !self.loginToPrivateRegistry()
40
+ if !self.check_for_image && @is_private_registry
41
+ unless self.login_to_private_registry
41
42
  raise RuntimeError, "Could not authenticate to GCR (" + $?.exitstatus + ")"
42
43
  end
43
44
  end
44
45
 
45
- self.runCommand()
46
+ self.run_command
46
47
  end
47
48
 
48
49
  ###
49
50
  # The image for this Docker command
50
51
  ###
51
- def self.setImage(image, is_private_registry=false)
52
+ def self.set_image(image, is_private_registry=false)
52
53
  @image = image
53
54
  @is_private_registry = is_private_registry
54
55
  end
@@ -56,27 +57,27 @@ module Shell
56
57
  ###
57
58
  # Set the current PWD as a volume on the specified path in the container
58
59
  ###
59
- def self.setPwdAsVolume(volume_path)
60
+ def self.set_pwd_as_volume(volume_path)
60
61
  pwd = `pwd -P`
61
62
 
62
63
  if SctCore::Helper.operatingSystem == SctCore::Helper::WINDOWS
63
64
  pwd=SctCore::Helper.convertWSLToWindowsPath(pwd)
64
65
  end
65
66
 
66
- addVolume(pwd, volume_path)
67
+ add_volume(pwd, volume_path)
67
68
  end
68
69
 
69
70
  ###
70
71
  # Add an extra volume in the container
71
72
  ###
72
- def self.addVolume(localPath, volume_path)
73
- @volumes[localPath] = volume_path
73
+ def self.add_volume(local_path, volume_path)
74
+ @volumes[local_path] = volume_path
74
75
  end
75
76
 
76
77
  ###
77
78
  # Add a port mapping for the container
78
79
  ###
79
- def self.mapPort(external_port, container_port = nil)
80
+ def self.map_port(external_port, container_port = nil)
80
81
 
81
82
  external_port=String(external_port)
82
83
  container_port=String(container_port)
@@ -91,7 +92,7 @@ module Shell
91
92
  ###
92
93
  # Set the current user and group in the container
93
94
  ###
94
- def self.setCurrentUserAndGroup
95
+ def self.set_current_user_and_group
95
96
  @user_group = []
96
97
  @user_group << `id -u`
97
98
  @user_group << `id -g`
@@ -100,14 +101,14 @@ module Shell
100
101
  ###
101
102
  # Set the entrypoint for the command in the container
102
103
  ###
103
- def self.setEntrypoint(entrypoint)
104
+ def self.set_entrypoint(entrypoint)
104
105
  @entrypoint=entrypoint
105
106
  end
106
107
 
107
108
  ###
108
109
  # Add extra arguments to be configured for the container
109
110
  ###
110
- def self.addExtraArgument(argument, value=nil)
111
+ def self.add_extra_argument(argument, value=nil)
111
112
  argument = String(argument)
112
113
 
113
114
  if value
@@ -117,10 +118,17 @@ module Shell
117
118
  self.extra_arguments[argument] = value
118
119
  end
119
120
 
121
+ ###
122
+ # Set environment variables for the container
123
+ ###
124
+ def self.set_environment_variables(env_variables)
125
+ @env_variables = env_variables
126
+ end
127
+
120
128
  ###
121
129
  # Check if the image is already present in the system
122
130
  ###
123
- def self.checkForImage
131
+ def self.check_for_image
124
132
  image_list=`docker images -q #{@image} 2> /dev/null`
125
133
 
126
134
  return image_list && !image_list.empty?
@@ -129,7 +137,7 @@ module Shell
129
137
  ###
130
138
  # Login to the private container registry with the cloud credentials
131
139
  ###
132
- def self.loginToPrivateRegistry
140
+ def self.login_to_private_registry
133
141
  `docker login -u oauth2accesstoken -p "$(gcloud auth application-default print-access-token)" https://eu.gcr.io &> /dev/null`
134
142
  return $?.success?
135
143
  end
@@ -137,8 +145,8 @@ module Shell
137
145
  ###
138
146
  # Run the command
139
147
  ###
140
- def self.runCommand()
141
- command = self.compileCommand()
148
+ def self.run_command
149
+ command = self.compile_command
142
150
 
143
151
  SctCore::CommandExecutor.execute(command: command, print_all: true, suppress_output: false)
144
152
  end
@@ -146,42 +154,53 @@ module Shell
146
154
  ###
147
155
  # Compile the command with all options
148
156
  ###
149
- def self.compileCommand()
157
+ def self.compile_command
150
158
  # Basic docker run command
151
- command = self.addToCommandString("" , "docker run --rm -it")
159
+ command = self.add_to_command_string("" , "docker run --rm -it")
160
+
161
+ # Attach environment variables
162
+ if @env_variables
163
+ @env_variables.each do |key, value|
164
+ if value && !value.empty?
165
+ command = self.add_to_command_string(command, "-e " + key+"="+value)
166
+ else
167
+ command = self.add_to_command_string("-e " + key, value)
168
+ end
169
+ end
170
+ end
152
171
 
153
172
  # Attach configured volumes
154
173
  if @volumes
155
174
  @volumes.each do |local_path, container_path|
156
- command = self.addToCommandString(command, "--volume " + local_path +":"+ container_path)
175
+ command = self.add_to_command_string(command, "--volume " + local_path +":"+ container_path)
157
176
  end
158
177
  end
159
178
 
160
179
  # Map configured ports
161
180
  if @ports
162
181
  @ports.each do |external_port, container_port|
163
- command = self.addToCommandString(command, "-p " + external_port +":"+ container_port)
182
+ command = self.add_to_command_string(command, "-p " + external_port +":"+ container_port)
164
183
  end
165
184
  end
166
185
 
167
186
  if @user_group
168
- command = self.addToCommandString(command, "--user "+ String(@user_group.shift()) +":"+ String(@user_group.shift()))
187
+ command = self.add_to_command_string(command, "--user "+ String(@user_group.shift) +":"+ String(@user_group.shift))
169
188
  end
170
189
 
171
190
  # Add image to command
172
- command = self.addToCommandString(command, @image)
191
+ command = self.add_to_command_string(command, @image)
173
192
 
174
193
  if @entrypoint
175
- command = self.addToCommandString(command, String(@entrypoint))
194
+ command = self.add_to_command_string(command, String(@entrypoint))
176
195
  end
177
196
 
178
197
  # Append arguments and options to command
179
198
  if @extra_arguments
180
199
  @extra_arguments.each do |argument, value|
181
200
  if value && !value.empty?
182
- command = self.addToCommandString(command, argument+"="+value)
201
+ command = self.add_to_command_string(command, argument+"="+value)
183
202
  else
184
- command = self.addToCommandString(command, argument)
203
+ command = self.add_to_command_string(command, argument)
185
204
  end
186
205
  end
187
206
  end
@@ -192,7 +211,7 @@ module Shell
192
211
  ###
193
212
  # Append a part to the command string and remove any unwanted characters
194
213
  ###
195
- def self.addToCommandString(command_string, append)
214
+ def self.add_to_command_string(command_string, append)
196
215
  return command_string + append.gsub(/\r?\n/, "") + " "
197
216
  end
198
217
  end
@@ -1,15 +1,52 @@
1
1
  require "sct_core"
2
+
2
3
  require_relative "docker"
3
4
 
4
5
  module Shell
5
- class Php < Docker
6
-
7
- # Configure the Yarn command
8
- def self.config
9
- self.setImage("eu.gcr.io/dev-pasc-vcdm/proactive-base:latest", true)
10
- self.setPwdAsVolume("/var/www")
11
- self.setCurrentUserAndGroup()
12
- self.setEntrypoint("php")
6
+ class Php < Docker
7
+
8
+ attr_accessor :make
9
+
10
+ # Configure the Yarn command
11
+ def self.config
12
+ self.set_image("eu.gcr.io/dev-pasc-vcdm/proactive-base:latest", true)
13
+ self.set_pwd_as_volume("/var/www")
14
+ self.set_current_user_and_group
15
+ self.set_entrypoint("php")
16
+ self.set_environment_variables(get_service_ip_and_port)
17
+ end
18
+
19
+ def self.get_service_ip_and_port
20
+ service_names = %w[mysql-service redis-service]
21
+ environment_variables = {}
22
+
23
+ minikube_status
24
+
25
+ service_names.each { |service_name|
26
+ url = `#{SctCore::Helper.minikube} service #{service_name} --url`
27
+
28
+ ip_and_port = url.match /(?<ip>[0-9]+(?:\.[0-9]+){3}):(?<port>[0-9]+)/
29
+
30
+ case service_name
31
+ when "mysql-service"
32
+ environment_variables.store("DB_HOST", ip_and_port[:ip])
33
+ environment_variables.store("DB_PORT", ip_and_port[:port])
34
+ when "redis-service"
35
+ environment_variables.store("REDIS_HOST", ip_and_port[:ip])
36
+ environment_variables.store("REDIS_PORT", ip_and_port[:port])
13
37
  end
38
+ }
39
+
40
+ return environment_variables
41
+ end
42
+
43
+ def self.minikube_status
44
+ output = `#{SctCore::Helper.minikube} status`
45
+
46
+ if output.scan(/Running/).length != 3 && output.scan(/Configured/).length != 1
47
+ UI.important("Please check your minikube status. If all services are stopped you should start the minikube first.")
48
+ exit
49
+ end
14
50
  end
51
+ end
15
52
  end
@@ -6,12 +6,12 @@ module Shell
6
6
 
7
7
  # Configure the Yarn command
8
8
  def self.config
9
- self.setImage("eu.gcr.io/dev-pasc-vcdm/helpers-yarn:latest", true)
10
- self.setPwdAsVolume("/app")
11
- self.addVolume(SctCore::Helper.convertWSLToWindowsPath("#{SctCore::Helper.windowsHomePath || SctCore::Helper.homePath}/.cache") , "/.cache")
12
- self.mapPort(8081, 8080)
13
- self.mapPort(9001)
14
- self.setCurrentUserAndGroup()
9
+ self.set_image("eu.gcr.io/dev-pasc-vcdm/helpers-yarn:latest", true)
10
+ self.set_pwd_as_volume("/app")
11
+ self.add_volume(SctCore::Helper.convertWSLToWindowsPath("#{SctCore::Helper.windowsHomePath || SctCore::Helper.homePath}/.cache") , "/.cache")
12
+ self.map_port(8081, 8080)
13
+ self.map_port(9001)
14
+ self.set_current_user_and_group()
15
15
  end
16
16
  end
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.20
4
+ version: 0.1.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reshad Farid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-31 00:00:00.000000000 Z
11
+ date: 2020-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored
@@ -66,6 +66,40 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: excon
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 0.71.0
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: 1.0.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 0.71.0
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: json
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "<"
94
+ - !ruby/object:Gem::Version
95
+ version: 3.0.0
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: 3.0.0
69
103
  - !ruby/object:Gem::Dependency
70
104
  name: tty-screen
71
105
  requirement: !ruby/object:Gem::Requirement
@@ -192,6 +226,7 @@ files:
192
226
  - sct_core/lib/sct_core/ui/implementations/shell.rb
193
227
  - sct_core/lib/sct_core/ui/interface.rb
194
228
  - sct_core/lib/sct_core/ui/ui.rb
229
+ - sct_core/lib/sct_core/update_checker/update_checker.rb
195
230
  - shell/README.md
196
231
  - shell/lib/shell.rb
197
232
  - shell/lib/shell/ClassLevelInheritableAttributes.rb
@@ -214,9 +249,9 @@ post_install_message:
214
249
  rdoc_options: []
215
250
  require_paths:
216
251
  - cluster/lib
217
- - shell/lib
218
252
  - sct/lib
219
253
  - sct_core/lib
254
+ - shell/lib
220
255
  required_ruby_version: !ruby/object:Gem::Requirement
221
256
  requirements:
222
257
  - - ">="
@@ -228,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
263
  - !ruby/object:Gem::Version
229
264
  version: '0'
230
265
  requirements: []
231
- rubygems_version: 3.0.8
266
+ rubygems_version: 3.0.6
232
267
  signing_key:
233
268
  specification_version: 4
234
269
  summary: Spend Cloud Tool.