uffizzi-cli 2.1.0 → 2.1.2
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 +4 -4
- data/lib/uffizzi/cli/cluster.rb +1 -3
- data/lib/uffizzi/cli/dev.rb +40 -19
- data/lib/uffizzi/config_file.rb +1 -0
- data/lib/uffizzi/services/cluster_service.rb +1 -0
- data/lib/uffizzi/services/dev_service.rb +108 -0
- data/lib/uffizzi/services/kubeconfig_service.rb +3 -1
- data/lib/uffizzi/version.rb +1 -1
- data/lib/uffizzi.rb +4 -0
- data/man/uffizzi-dev-start +79 -9
- data/man/uffizzi-dev-start.ronn +76 -8
- data/man/uffizzi-dev-stop +41 -0
- data/man/uffizzi-dev-stop.ronn +33 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53375ab753d707ea69a899c201838dcc0874a185185532b64f3a3cb8b07720fa
|
4
|
+
data.tar.gz: 177486674f4ba6f11935536cd538ddc6e587ba5a330b738196f082b8fff96c3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7278e21c0ce0a61da3403a874d7ce1e1d9771fd9f45867e4fdf126840fb4ddbc0e86c037be58a3bd9d0311631a819081361c4626c78cf11fdab3e6c89380fee6
|
7
|
+
data.tar.gz: 3d09264798892e9c97074d073940922bb2e7703941496bc5a77c6ba555ba6de3e275c3151b7dbd480d9e7b6be6f350ea1e939898c33b2bcfc8e64b8f562d6193
|
data/lib/uffizzi/cli/cluster.rb
CHANGED
@@ -11,8 +11,6 @@ require 'uffizzi/services/cluster_service'
|
|
11
11
|
require 'uffizzi/services/kubeconfig_service'
|
12
12
|
require 'uffizzi/services/cluster/disconnect_service'
|
13
13
|
|
14
|
-
MANUAL = 'manual'
|
15
|
-
|
16
14
|
module Uffizzi
|
17
15
|
class Cli::Cluster < Thor
|
18
16
|
class Error < StandardError; end
|
@@ -115,7 +113,7 @@ module Uffizzi
|
|
115
113
|
end
|
116
114
|
|
117
115
|
cluster_name = command_args[:name] || options[:name] || ClusterService.generate_name
|
118
|
-
creation_source = options[:"creation-source"] ||
|
116
|
+
creation_source = options[:"creation-source"] || ClusterService::MANUAL_CREATION_SOURCE
|
119
117
|
|
120
118
|
unless ClusterService.valid_name?(cluster_name)
|
121
119
|
Uffizzi.ui.say_error_and_exit("Cluster name: #{cluster_name} is not valid.")
|
data/lib/uffizzi/cli/dev.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'uffizzi/services/command_service'
|
4
4
|
require 'uffizzi/services/cluster_service'
|
5
|
+
require 'uffizzi/services/dev_service'
|
5
6
|
require 'uffizzi/services/kubeconfig_service'
|
6
7
|
|
7
8
|
module Uffizzi
|
@@ -9,12 +10,22 @@ module Uffizzi
|
|
9
10
|
include ApiClient
|
10
11
|
|
11
12
|
desc 'start [CONFIG]', 'Start dev environment'
|
13
|
+
method_option :quiet, type: :boolean, aliases: :q
|
14
|
+
method_option :'default-repo', type: :string
|
15
|
+
method_option :kubeconfig, type: :string
|
12
16
|
def start(config_path = 'skaffold.yaml')
|
13
|
-
check_skaffold_existence
|
17
|
+
DevService.check_skaffold_existence
|
18
|
+
DevService.check_running_daemon if options[:quiet]
|
19
|
+
DevService.check_skaffold_config_existence(config_path)
|
14
20
|
check_login
|
15
21
|
cluster_id, cluster_name = start_create_cluster
|
16
22
|
kubeconfig = wait_cluster_creation(cluster_name)
|
17
|
-
|
23
|
+
|
24
|
+
if options[:quiet]
|
25
|
+
launch_demonise_skaffold(config_path)
|
26
|
+
else
|
27
|
+
DevService.start_basic_skaffold(config_path, options)
|
28
|
+
end
|
18
29
|
ensure
|
19
30
|
if defined?(cluster_name).present? && defined?(cluster_id).present?
|
20
31
|
kubeconfig = defined?(kubeconfig).present? ? kubeconfig : nil
|
@@ -22,6 +33,20 @@ module Uffizzi
|
|
22
33
|
end
|
23
34
|
end
|
24
35
|
|
36
|
+
desc 'stop', 'Stop dev environment'
|
37
|
+
def stop
|
38
|
+
return Uffizzi.ui.say('Uffizzi dev is not running') unless File.exist?(DevService.pid_path)
|
39
|
+
|
40
|
+
pid = File.read(DevService.pid_path).to_i
|
41
|
+
File.delete(DevService.pid_path)
|
42
|
+
|
43
|
+
Uffizzi.process.kill('QUIT', pid)
|
44
|
+
Uffizzi.ui.say('Uffizzi dev was stopped')
|
45
|
+
rescue Errno::ESRCH
|
46
|
+
Uffizzi.ui.say('Uffizzi dev is not running')
|
47
|
+
File.delete(DevService.pid_path)
|
48
|
+
end
|
49
|
+
|
25
50
|
private
|
26
51
|
|
27
52
|
def check_login
|
@@ -31,7 +56,7 @@ module Uffizzi
|
|
31
56
|
|
32
57
|
def start_create_cluster
|
33
58
|
cluster_name = ClusterService.generate_name
|
34
|
-
creation_source =
|
59
|
+
creation_source = ClusterService::MANUAL_CREATION_SOURCE
|
35
60
|
params = cluster_creation_params(cluster_name, creation_source)
|
36
61
|
Uffizzi.ui.say('Start creating a cluster')
|
37
62
|
response = create_cluster(ConfigFile.read_option(:server), project_slug, params)
|
@@ -56,7 +81,7 @@ module Uffizzi
|
|
56
81
|
end
|
57
82
|
|
58
83
|
def handle_succeed_cluster_creation(cluster_data)
|
59
|
-
kubeconfig_path = KubeconfigService.default_path
|
84
|
+
kubeconfig_path = options[:kubeconfig] || KubeconfigService.default_path
|
60
85
|
parsed_kubeconfig = parse_kubeconfig(cluster_data[:kubeconfig])
|
61
86
|
|
62
87
|
Uffizzi.ui.say("Cluster with name: #{cluster_data[:name]} was created.")
|
@@ -99,6 +124,8 @@ module Uffizzi
|
|
99
124
|
end
|
100
125
|
|
101
126
|
def handle_delete_cluster(cluster_id, cluster_name, kubeconfig)
|
127
|
+
return if cluster_id.nil? || cluster_name.nil?
|
128
|
+
|
102
129
|
exclude_kubeconfig(cluster_id, kubeconfig) if kubeconfig.present?
|
103
130
|
|
104
131
|
params = {
|
@@ -149,25 +176,19 @@ module Uffizzi
|
|
149
176
|
Psych.safe_load(Base64.decode64(kubeconfig))
|
150
177
|
end
|
151
178
|
|
152
|
-
def
|
153
|
-
Uffizzi.
|
154
|
-
cmd = "skaffold dev --filename='#{config_path}'"
|
179
|
+
def launch_demonise_skaffold(config_path)
|
180
|
+
Uffizzi.process.daemon(true)
|
155
181
|
|
156
|
-
|
157
|
-
|
158
|
-
wait_thr.value
|
182
|
+
at_exit do
|
183
|
+
File.delete(DevService.pid_path) if File.exist?(DevService.pid_path)
|
159
184
|
end
|
160
|
-
end
|
161
|
-
|
162
|
-
def check_skaffold_existence
|
163
|
-
cmd = 'skaffold version'
|
164
|
-
stdout_str, stderr_str = Uffizzi.ui.capture3(cmd)
|
165
|
-
|
166
|
-
return if stdout_str.present? && stderr_str.blank?
|
167
185
|
|
168
|
-
|
186
|
+
File.delete(DevService.logs_path) if File.exist?(DevService.logs_path)
|
187
|
+
File.write(DevService.pid_path, Uffizzi.process.pid)
|
188
|
+
DevService.start_check_pid_file_existence
|
189
|
+
DevService.start_demonised_skaffold(config_path, options)
|
169
190
|
rescue StandardError => e
|
170
|
-
|
191
|
+
File.open(DevService.logs_path, 'a') { |f| f.puts(e.message) }
|
171
192
|
end
|
172
193
|
|
173
194
|
def project_slug
|
data/lib/uffizzi/config_file.rb
CHANGED
@@ -0,0 +1,108 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'uffizzi/clients/api/api_client'
|
4
|
+
|
5
|
+
class DevService
|
6
|
+
class << self
|
7
|
+
include ApiClient
|
8
|
+
|
9
|
+
DEFAULT_REGISTRY_REPO = 'registry.uffizzi.com'
|
10
|
+
|
11
|
+
def check_running_daemon
|
12
|
+
return unless File.exist?(pid_path)
|
13
|
+
|
14
|
+
pid = File.read(pid_path)
|
15
|
+
File.delete(pid_path) if pid.blank?
|
16
|
+
Uffizzi.process.kill(0, pid.to_i)
|
17
|
+
|
18
|
+
Uffizzi.ui.say_error_and_exit("You have already started uffizzi dev as daemon. To stop the process do 'uffizzi dev stop'")
|
19
|
+
rescue Errno::ESRCH
|
20
|
+
File.delete(pid_path)
|
21
|
+
end
|
22
|
+
|
23
|
+
def start_check_pid_file_existence
|
24
|
+
Thread.new do
|
25
|
+
loop do
|
26
|
+
Uffizzi.process.kill('QUIT', Uffizzi.process.pid) unless File.exist?(pid_path)
|
27
|
+
sleep(1)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def start_basic_skaffold(config_path, options)
|
33
|
+
Uffizzi.ui.say('Start skaffold')
|
34
|
+
cmd = build_skaffold_dev_command(config_path, options)
|
35
|
+
|
36
|
+
Uffizzi.ui.popen2e(cmd) do |_stdin, stdout_and_stderr, wait_thr|
|
37
|
+
stdout_and_stderr.each { |l| Uffizzi.ui.say(l) }
|
38
|
+
wait_thr.value
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def start_demonised_skaffold(config_path, options)
|
43
|
+
File.write(logs_path, "Start skaffold\n")
|
44
|
+
cmd = build_skaffold_dev_command(config_path, options)
|
45
|
+
|
46
|
+
Uffizzi.ui.popen2e(cmd) do |_stdin, stdout_and_stderr, wait_thr|
|
47
|
+
File.open(logs_path, 'a') do |f|
|
48
|
+
stdout_and_stderr.each do |line|
|
49
|
+
f.puts(line)
|
50
|
+
f.flush
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
wait_thr.value
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def check_skaffold_existence
|
59
|
+
cmd = 'skaffold version'
|
60
|
+
stdout_str, stderr_str = Uffizzi.ui.capture3(cmd)
|
61
|
+
|
62
|
+
return if stdout_str.present? && stderr_str.blank?
|
63
|
+
|
64
|
+
Uffizzi.ui.say_error_and_exit(stderr_str)
|
65
|
+
rescue StandardError => e
|
66
|
+
Uffizzi.ui.say_error_and_exit(e.message)
|
67
|
+
end
|
68
|
+
|
69
|
+
def check_skaffold_config_existence(config_path)
|
70
|
+
msg = 'A valid dev environment configuration is required. Please provide a valid config,'\
|
71
|
+
"\r\n"\
|
72
|
+
'or run `skaffold init` to generate a skaffold.yaml configuration.'\
|
73
|
+
"\r\n"\
|
74
|
+
'See the `uffizzi dev start --help` page for supported configs and usage details.'
|
75
|
+
|
76
|
+
Uffizzi.ui.say_error_and_exit(msg) unless File.exist?(config_path)
|
77
|
+
end
|
78
|
+
|
79
|
+
def pid_path
|
80
|
+
File.join(Uffizzi::ConfigFile::CONFIG_DIR, 'uffizzi_dev.pid')
|
81
|
+
end
|
82
|
+
|
83
|
+
def logs_path
|
84
|
+
File.join(Uffizzi::ConfigFile::CONFIG_DIR, 'uffizzi_dev.log')
|
85
|
+
end
|
86
|
+
|
87
|
+
def build_skaffold_dev_command(config_path, options)
|
88
|
+
cmd = [
|
89
|
+
'skaffold dev',
|
90
|
+
"--filename='#{config_path}'",
|
91
|
+
"--default-repo='#{default_registry_repo(options[:'default-repo'])}'",
|
92
|
+
"--kubeconfig='#{default_kubeconfig_path(options[:kubeconfig])}'",
|
93
|
+
]
|
94
|
+
|
95
|
+
cmd.join(' ')
|
96
|
+
end
|
97
|
+
|
98
|
+
def default_registry_repo(repo)
|
99
|
+
repo || DEFAULT_REGISTRY_REPO
|
100
|
+
end
|
101
|
+
|
102
|
+
def default_kubeconfig_path(kubeconfig_path)
|
103
|
+
path = kubeconfig_path || KubeconfigService.default_path
|
104
|
+
|
105
|
+
File.expand_path(path)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -81,7 +81,9 @@ class KubeconfigService
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def default_path
|
84
|
-
kubeconfig_env_path || Uffizzi.configuration.default_kubeconfig_path
|
84
|
+
path = kubeconfig_env_path || Uffizzi.configuration.default_kubeconfig_path
|
85
|
+
|
86
|
+
File.expand_path(path)
|
85
87
|
end
|
86
88
|
|
87
89
|
def read_kubeconfig(filepath)
|
data/lib/uffizzi/version.rb
CHANGED
data/lib/uffizzi.rb
CHANGED
data/man/uffizzi-dev-start
CHANGED
@@ -1,29 +1,99 @@
|
|
1
1
|
.\" generated with Ronn-NG/v0.9.1
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
|
3
|
-
.TH "UFFIZZI\-DEV\-START" "" "
|
3
|
+
.TH "UFFIZZI\-DEV\-START" "" "October 2023" ""
|
4
4
|
.SH "NAME"
|
5
|
-
\fBuffizzi\-dev\-start\fR \- start development environment
|
5
|
+
\fBuffizzi\-dev\-start\fR \- start a development environment
|
6
6
|
.SH "SYNOPSIS"
|
7
7
|
.nf
|
8
|
-
uffizzi dev start [
|
8
|
+
uffizzi dev start [CONFIG_FILE] [FLAGS]
|
9
9
|
.fi
|
10
10
|
.SH "DESCRIPTION"
|
11
11
|
.nf
|
12
|
-
Creates a
|
13
|
-
|
14
|
-
|
12
|
+
Creates a Uffizzi cluster preconfigured for development
|
13
|
+
workflows, including building, pushing, and deploying
|
14
|
+
your changes every time project files are saved\.
|
15
|
+
current\-context is updated in kubeconfig file\.
|
16
|
+
|
17
|
+
This command watches for file changes in a given local
|
18
|
+
project directory, as specified in your configuration file\.
|
19
|
+
It then serializes those changes and redeploys them onto
|
20
|
+
a Uffizzi cluster\.
|
21
|
+
|
22
|
+
The command looks for a configuration at the specified
|
23
|
+
path CONFIG_FILE\. Skaffold configurations are currently
|
24
|
+
supported\. For help creating a skaffold\.yaml file, see:
|
25
|
+
https://skaffold\.dev/docs/init/
|
26
|
+
|
27
|
+
If a kubeconfig exists
|
15
28
|
|
16
29
|
For more information on Uffizzi clusters, see:
|
17
30
|
https://docs\.uffizzi\.com/references/cli/
|
18
31
|
.fi
|
32
|
+
.SH "POSITIONAL ARGUMENTS"
|
33
|
+
.nf
|
34
|
+
[CONFIG_FILE]
|
35
|
+
Path to the development environment configuration file\.
|
36
|
+
Currently supports skaffold\.yaml files\.
|
37
|
+
.fi
|
38
|
+
.SH "FLAGS"
|
39
|
+
.nf
|
40
|
+
\-\-build="<local\-or\-remote>"
|
41
|
+
This option specifies whether to build images on the
|
42
|
+
local environment or on the remote Uffizzi cluster\.
|
43
|
+
Possible values are "local" or "remote"\.
|
44
|
+
|
45
|
+
\-\-default\-repo="<container\-registry\-domain>"
|
46
|
+
A public or private repo used to push/pull build
|
47
|
+
artifacts\. Overrides the global default image registry:
|
48
|
+
"registry\.uffizzi\.com"\. See `uffizzi connect \-h` for
|
49
|
+
adding private registry credentials\.
|
50
|
+
|
51
|
+
\-\-quiet, \-q
|
52
|
+
Run the development process in detached mode (i\.e\., in
|
53
|
+
the background)\. Without this option, logs are streamed
|
54
|
+
to the terminal in the foreground\. Run \'uffizzi dev stop`
|
55
|
+
to stop the detached process\.
|
56
|
+
|
57
|
+
\-\-help, \-h
|
58
|
+
Show this message and exit\.
|
59
|
+
|
60
|
+
\-\-kubeconfig="/path/to/your/kubeconfig"
|
61
|
+
Path to kubeconfig file\. If this option is not specified,
|
62
|
+
this command looks for the file at ~/\.kube/config\.
|
63
|
+
.fi
|
19
64
|
.SH "EXAMPLES"
|
20
65
|
.nf
|
21
|
-
|
66
|
+
If your configuration file is in the current working
|
67
|
+
directory and you want to use an auto\-generated name,
|
68
|
+
run:
|
22
69
|
|
23
70
|
$ uffizzi dev start
|
24
71
|
|
25
|
-
To start
|
72
|
+
To start a dev environment using a skaffold\.yaml config
|
73
|
+
file in directory \'~/foo\', run:
|
74
|
+
|
75
|
+
$ uffizzi dev start ~/foo/skaffold\.yaml
|
76
|
+
|
77
|
+
To start a dev environment in quiet mode,
|
78
|
+
run:
|
79
|
+
|
80
|
+
$ uffizzi dev start \-\-quiet
|
81
|
+
|
82
|
+
To push your build artifacts to a private Docker Hub repo
|
83
|
+
called \'acme/foo\', first add your Docker Hub credentials:
|
84
|
+
|
85
|
+
$ uffizzi connect docker\-hub
|
86
|
+
(See `uffizzi connect \-h` for other registry options)
|
87
|
+
|
88
|
+
\|\.\|\.\|\.then override the default repo:
|
89
|
+
|
90
|
+
$ uffizzi dev start \e
|
91
|
+
\-\-default\-repo="hub\.docker\.com/acme/foo"
|
92
|
+
|
93
|
+
To start a dev environment using an alternate kubeconfig file,
|
94
|
+
run:
|
26
95
|
|
27
|
-
$ uffizzi
|
96
|
+
$ uffizzi dev start \e
|
97
|
+
\-\-kubeconfig="/path/to/alternate/kubeconfig"
|
28
98
|
.fi
|
29
99
|
|
data/man/uffizzi-dev-start.ronn
CHANGED
@@ -1,22 +1,90 @@
|
|
1
|
-
uffizzi-dev-start - start development environment
|
1
|
+
uffizzi-dev-start - start a development environment
|
2
2
|
================================================================
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
|
-
uffizzi dev start [
|
5
|
+
uffizzi dev start [CONFIG_FILE] [FLAGS]
|
6
6
|
|
7
7
|
## DESCRIPTION
|
8
|
-
Creates a
|
9
|
-
|
10
|
-
|
8
|
+
Creates a Uffizzi cluster preconfigured for development
|
9
|
+
workflows, including building, pushing, and deploying
|
10
|
+
your changes every time project files are saved.
|
11
|
+
current-context is updated in kubeconfig file.
|
12
|
+
|
13
|
+
This command watches for file changes in a given local
|
14
|
+
project directory, as specified in your configuration file.
|
15
|
+
It then serializes those changes and redeploys them onto
|
16
|
+
a Uffizzi cluster.
|
17
|
+
|
18
|
+
The command looks for a configuration at the specified
|
19
|
+
path CONFIG_FILE. Skaffold configurations are currently
|
20
|
+
supported. For help creating a skaffold.yaml file, see:
|
21
|
+
https://skaffold.dev/docs/init/
|
22
|
+
|
23
|
+
If a kubeconfig exists
|
11
24
|
|
12
25
|
For more information on Uffizzi clusters, see:
|
13
26
|
https://docs.uffizzi.com/references/cli/
|
14
27
|
|
28
|
+
## POSITIONAL ARGUMENTS
|
29
|
+
[CONFIG_FILE]
|
30
|
+
Path to the development environment configuration file.
|
31
|
+
Currently supports skaffold.yaml files.
|
32
|
+
|
33
|
+
## FLAGS
|
34
|
+
--build="<local-or-remote>"
|
35
|
+
This option specifies whether to build images on the
|
36
|
+
local environment or on the remote Uffizzi cluster.
|
37
|
+
Possible values are "local" or "remote".
|
38
|
+
|
39
|
+
--default-repo="<container-registry-domain>"
|
40
|
+
A public or private repo used to push/pull build
|
41
|
+
artifacts. Overrides the global default image registry:
|
42
|
+
"registry.uffizzi.com". See `uffizzi connect -h` for
|
43
|
+
adding private registry credentials.
|
44
|
+
|
45
|
+
--quiet, -q
|
46
|
+
Run the development process in detached mode (i.e., in
|
47
|
+
the background). Without this option, logs are streamed
|
48
|
+
to the terminal in the foreground. Run 'uffizzi dev stop`
|
49
|
+
to stop the detached process.
|
50
|
+
|
51
|
+
--help, -h
|
52
|
+
Show this message and exit.
|
53
|
+
|
54
|
+
--kubeconfig="/path/to/your/kubeconfig"
|
55
|
+
Path to kubeconfig file. If this option is not specified,
|
56
|
+
this command looks for the file at ~/.kube/config.
|
57
|
+
|
15
58
|
## EXAMPLES
|
16
|
-
|
59
|
+
If your configuration file is in the current working
|
60
|
+
directory and you want to use an auto-generated name,
|
61
|
+
run:
|
17
62
|
|
18
63
|
$ uffizzi dev start
|
19
64
|
|
20
|
-
To start
|
65
|
+
To start a dev environment using a skaffold.yaml config
|
66
|
+
file in directory '~/foo', run:
|
67
|
+
|
68
|
+
$ uffizzi dev start ~/foo/skaffold.yaml
|
69
|
+
|
70
|
+
To start a dev environment in quiet mode,
|
71
|
+
run:
|
72
|
+
|
73
|
+
$ uffizzi dev start --quiet
|
74
|
+
|
75
|
+
To push your build artifacts to a private Docker Hub repo
|
76
|
+
called 'acme/foo', first add your Docker Hub credentials:
|
77
|
+
|
78
|
+
$ uffizzi connect docker-hub
|
79
|
+
(See `uffizzi connect -h` for other registry options)
|
80
|
+
|
81
|
+
...then override the default repo:
|
82
|
+
|
83
|
+
$ uffizzi dev start \
|
84
|
+
--default-repo="hub.docker.com/acme/foo"
|
85
|
+
|
86
|
+
To start a dev environment using an alternate kubeconfig file,
|
87
|
+
run:
|
21
88
|
|
22
|
-
$ uffizzi
|
89
|
+
$ uffizzi dev start \
|
90
|
+
--kubeconfig="/path/to/alternate/kubeconfig"
|
@@ -0,0 +1,41 @@
|
|
1
|
+
.\" generated with Ronn-NG/v0.9.1
|
2
|
+
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
|
3
|
+
.TH "UFFIZZI\-DEV\-STOP" "" "October 2023" ""
|
4
|
+
.SH "NAME"
|
5
|
+
\fBuffizzi\-dev\-stop\fR \- stop a development environment
|
6
|
+
.SH "SYNOPSIS"
|
7
|
+
.nf
|
8
|
+
uffizzi dev stop
|
9
|
+
.fi
|
10
|
+
.SH "DESCRIPTION"
|
11
|
+
.nf
|
12
|
+
Stops a dev environment and deletes the backing
|
13
|
+
Uffizzi cluster resources, including any persistent
|
14
|
+
volumes, and the namespace itself\. The Uffizzi
|
15
|
+
cluster config is deleted from the kubeconfig file\.
|
16
|
+
|
17
|
+
This command watches for file changes in a given local
|
18
|
+
project directory, as specified in your configuration file\.
|
19
|
+
It then serializes those changes and redeploys them onto
|
20
|
+
a Uffizzi cluster\.
|
21
|
+
|
22
|
+
The command looks for a configuration at the specified
|
23
|
+
path CONFIG_FILE\. Skaffold configurations are currently
|
24
|
+
supported\. For help creating a skaffold\.yaml file, see:
|
25
|
+
https://skaffold\.dev/docs/init/
|
26
|
+
|
27
|
+
For more information on Uffizzi clusters, see:
|
28
|
+
https://docs\.uffizzi\.com/references/cli/
|
29
|
+
.fi
|
30
|
+
.SH "FLAGS"
|
31
|
+
.nf
|
32
|
+
\-\-help, \-h
|
33
|
+
Show this message and exit\.
|
34
|
+
.fi
|
35
|
+
.SH "EXAMPLES"
|
36
|
+
.nf
|
37
|
+
To stop a dev environment, run:
|
38
|
+
|
39
|
+
$ uffizzi dev stop
|
40
|
+
.fi
|
41
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
uffizzi-dev-stop - stop a development environment
|
2
|
+
================================================================
|
3
|
+
|
4
|
+
## SYNOPSIS
|
5
|
+
uffizzi dev stop
|
6
|
+
|
7
|
+
## DESCRIPTION
|
8
|
+
Stops a dev environment and deletes the backing
|
9
|
+
Uffizzi cluster resources, including any persistent
|
10
|
+
volumes, and the namespace itself. The Uffizzi
|
11
|
+
cluster config is deleted from the kubeconfig file.
|
12
|
+
|
13
|
+
This command watches for file changes in a given local
|
14
|
+
project directory, as specified in your configuration file.
|
15
|
+
It then serializes those changes and redeploys them onto
|
16
|
+
a Uffizzi cluster.
|
17
|
+
|
18
|
+
The command looks for a configuration at the specified
|
19
|
+
path CONFIG_FILE. Skaffold configurations are currently
|
20
|
+
supported. For help creating a skaffold.yaml file, see:
|
21
|
+
https://skaffold.dev/docs/init/
|
22
|
+
|
23
|
+
For more information on Uffizzi clusters, see:
|
24
|
+
https://docs.uffizzi.com/references/cli/
|
25
|
+
|
26
|
+
## FLAGS
|
27
|
+
--help, -h
|
28
|
+
Show this message and exit.
|
29
|
+
|
30
|
+
## EXAMPLES
|
31
|
+
To stop a dev environment, run:
|
32
|
+
|
33
|
+
$ uffizzi dev stop
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uffizzi-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Thurman
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-09
|
12
|
+
date: 2023-10-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -450,6 +450,7 @@ files:
|
|
450
450
|
- lib/uffizzi/services/cluster_service.rb
|
451
451
|
- lib/uffizzi/services/command_service.rb
|
452
452
|
- lib/uffizzi/services/compose_file_service.rb
|
453
|
+
- lib/uffizzi/services/dev_service.rb
|
453
454
|
- lib/uffizzi/services/env_variables_service.rb
|
454
455
|
- lib/uffizzi/services/github_service.rb
|
455
456
|
- lib/uffizzi/services/kubeconfig_service.rb
|
@@ -521,6 +522,8 @@ files:
|
|
521
522
|
- man/uffizzi-connect.ronn
|
522
523
|
- man/uffizzi-dev-start
|
523
524
|
- man/uffizzi-dev-start.ronn
|
525
|
+
- man/uffizzi-dev-stop
|
526
|
+
- man/uffizzi-dev-stop.ronn
|
524
527
|
- man/uffizzi-disconnect
|
525
528
|
- man/uffizzi-disconnect.ronn
|
526
529
|
- man/uffizzi-login
|