cpl 1.3.0 → 2.0.0.rc.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 +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
|