cpl 1.3.0 → 2.0.0.rc.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/command_docs.yml +1 -1
- data/.github/workflows/rspec-shared.yml +56 -0
- data/.github/workflows/rspec.yml +19 -31
- data/.github/workflows/rubocop.yml +2 -10
- data/.gitignore +2 -0
- data/.simplecov_spawn.rb +10 -0
- data/CHANGELOG.md +28 -1
- data/CONTRIBUTING.md +32 -2
- data/Gemfile.lock +38 -29
- data/README.md +43 -17
- data/cpl.gemspec +2 -1
- data/docs/commands.md +68 -59
- data/docs/dns.md +6 -0
- data/docs/migrating.md +10 -10
- data/docs/tips.md +15 -3
- data/examples/circleci.yml +3 -3
- data/examples/controlplane.yml +35 -9
- data/lib/command/apply_template.rb +66 -18
- data/lib/command/base.rb +168 -27
- data/lib/command/build_image.rb +4 -9
- data/lib/command/cleanup_stale_apps.rb +1 -3
- data/lib/command/copy_image_from_upstream.rb +0 -7
- data/lib/command/delete.rb +39 -7
- data/lib/command/deploy_image.rb +35 -2
- data/lib/command/exists.rb +1 -1
- data/lib/command/generate.rb +1 -1
- data/lib/command/info.rb +7 -3
- data/lib/command/logs.rb +22 -2
- data/lib/command/maintenance_off.rb +1 -1
- data/lib/command/maintenance_on.rb +1 -1
- data/lib/command/open.rb +2 -2
- data/lib/command/open_console.rb +2 -2
- data/lib/command/promote_app_from_upstream.rb +5 -25
- data/lib/command/ps.rb +1 -1
- data/lib/command/ps_start.rb +2 -1
- data/lib/command/ps_stop.rb +40 -8
- data/lib/command/ps_wait.rb +3 -2
- data/lib/command/run.rb +430 -68
- data/lib/command/setup_app.rb +22 -2
- data/lib/constants/exit_code.rb +7 -0
- data/lib/core/config.rb +11 -3
- data/lib/core/controlplane.rb +126 -47
- data/lib/core/controlplane_api.rb +15 -1
- data/lib/core/controlplane_api_cli.rb +3 -3
- data/lib/core/controlplane_api_direct.rb +33 -5
- data/lib/core/shell.rb +15 -9
- data/lib/cpl/version.rb +1 -1
- data/lib/cpl.rb +50 -9
- data/lib/deprecated_commands.json +2 -1
- data/lib/generator_templates/controlplane.yml +5 -0
- data/lib/generator_templates/templates/{gvc.yml → app.yml} +4 -4
- data/lib/generator_templates/templates/postgres.yml +1 -1
- data/lib/generator_templates/templates/rails.yml +1 -1
- data/script/check_cpln_links +3 -3
- data/templates/app.yml +18 -0
- data/templates/daily-task.yml +3 -2
- data/templates/rails.yml +3 -2
- data/templates/secrets.yml +11 -0
- data/templates/sidekiq.yml +3 -2
- metadata +38 -25
- data/.rspec +0 -1
- data/lib/command/run_cleanup.rb +0 -116
- data/lib/command/run_detached.rb +0 -175
- data/lib/core/scripts.rb +0 -34
- data/templates/gvc.yml +0 -13
- data/templates/identity.yml +0 -2
data/lib/command/ps_start.rb
CHANGED
@@ -6,6 +6,7 @@ module Command
|
|
6
6
|
OPTIONS = [
|
7
7
|
app_option(required: true),
|
8
8
|
workload_option,
|
9
|
+
location_option,
|
9
10
|
wait_option("workload to be ready")
|
10
11
|
].freeze
|
11
12
|
DESCRIPTION = "Starts workloads in app"
|
@@ -42,7 +43,7 @@ module Command
|
|
42
43
|
|
43
44
|
@workloads.reverse_each do |workload|
|
44
45
|
step("Waiting for workload '#{workload}' to be ready", retry_on_failure: true) do
|
45
|
-
cp.workload_deployments_ready?(workload, expected_status: true)
|
46
|
+
cp.workload_deployments_ready?(workload, location: config.location, expected_status: true)
|
46
47
|
end
|
47
48
|
end
|
48
49
|
end
|
data/lib/command/ps_stop.rb
CHANGED
@@ -6,6 +6,8 @@ module Command
|
|
6
6
|
OPTIONS = [
|
7
7
|
app_option(required: true),
|
8
8
|
workload_option,
|
9
|
+
replica_option,
|
10
|
+
location_option,
|
9
11
|
wait_option("workload to not be ready")
|
10
12
|
].freeze
|
11
13
|
DESCRIPTION = "Stops workloads in app"
|
@@ -19,32 +21,62 @@ module Command
|
|
19
21
|
|
20
22
|
# Stops a specific workload in app.
|
21
23
|
cpl ps:stop -a $APP_NAME -w $WORKLOAD_NAME
|
24
|
+
|
25
|
+
# Stops a specific replica of a workload.
|
26
|
+
cpl ps:stop -a $APP_NAME -w $WORKLOAD_NAME -r $REPLICA_NAME
|
22
27
|
```
|
23
28
|
EX
|
24
29
|
|
25
30
|
def call
|
26
|
-
|
27
|
-
|
31
|
+
workload = config.options[:workload]
|
32
|
+
replica = config.options[:replica]
|
33
|
+
if replica
|
34
|
+
stop_replica(workload, replica)
|
35
|
+
else
|
36
|
+
workloads = [workload] if workload
|
37
|
+
workloads ||= config[:app_workloads] + config[:additional_workloads]
|
38
|
+
|
39
|
+
stop_workloads(workloads)
|
40
|
+
end
|
41
|
+
end
|
28
42
|
|
29
|
-
|
43
|
+
private
|
44
|
+
|
45
|
+
def stop_workloads(workloads)
|
46
|
+
workloads.each do |workload|
|
30
47
|
step("Stopping workload '#{workload}'") do
|
31
48
|
cp.set_workload_suspend(workload, true)
|
32
49
|
end
|
33
50
|
end
|
34
51
|
|
35
|
-
|
52
|
+
wait_for_workloads_not_ready(workloads) if config.options[:wait]
|
36
53
|
end
|
37
54
|
|
38
|
-
|
55
|
+
def stop_replica(workload, replica)
|
56
|
+
step("Stopping replica '#{replica}'", retry_on_failure: true) do
|
57
|
+
cp.stop_workload_replica(workload, replica, location: config.location)
|
58
|
+
end
|
39
59
|
|
40
|
-
|
60
|
+
wait_for_replica_not_ready(workload, replica) if config.options[:wait]
|
61
|
+
end
|
62
|
+
|
63
|
+
def wait_for_workloads_not_ready(workloads)
|
41
64
|
progress.puts
|
42
65
|
|
43
|
-
|
66
|
+
workloads.each do |workload|
|
44
67
|
step("Waiting for workload '#{workload}' to not be ready", retry_on_failure: true) do
|
45
|
-
cp.workload_deployments_ready?(workload, expected_status: false)
|
68
|
+
cp.workload_deployments_ready?(workload, location: config.location, expected_status: false)
|
46
69
|
end
|
47
70
|
end
|
48
71
|
end
|
72
|
+
|
73
|
+
def wait_for_replica_not_ready(workload, replica)
|
74
|
+
progress.puts
|
75
|
+
|
76
|
+
step("Waiting for replica '#{replica}' to not be ready", retry_on_failure: true) do
|
77
|
+
result = cp.fetch_workload_replicas(workload, location: config.location)
|
78
|
+
!result["items"].include?(replica)
|
79
|
+
end
|
80
|
+
end
|
49
81
|
end
|
50
82
|
end
|
data/lib/command/ps_wait.rb
CHANGED
@@ -5,7 +5,8 @@ module Command
|
|
5
5
|
NAME = "ps:wait"
|
6
6
|
OPTIONS = [
|
7
7
|
app_option(required: true),
|
8
|
-
workload_option
|
8
|
+
workload_option,
|
9
|
+
location_option
|
9
10
|
].freeze
|
10
11
|
DESCRIPTION = "Waits for workloads in app to be ready after re-deployment"
|
11
12
|
LONG_DESCRIPTION = <<~DESC
|
@@ -27,7 +28,7 @@ module Command
|
|
27
28
|
|
28
29
|
@workloads.reverse_each do |workload|
|
29
30
|
step("Waiting for workload '#{workload}' to be ready", retry_on_failure: true) do
|
30
|
-
cp.workload_deployments_ready?(workload, expected_status: true)
|
31
|
+
cp.workload_deployments_ready?(workload, location: config.location, expected_status: true)
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|