kcu 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/README.md +52 -1
- data/bin/kcu +1 -1
- data/kcu.gemspec +7 -2
- data/lib/kcu/actions/deploy_action.rb +23 -0
- data/lib/kcu/actions/restart_deployment_action.rb +14 -0
- data/lib/kcu/client.rb +17 -1
- data/lib/kcu/models/container.rb +11 -0
- data/lib/kcu/services/deployments/restart_deployment.rb +27 -0
- data/lib/kcu/services/deploys/gen_image_name.rb +20 -0
- data/lib/kcu/services/deploys/get_config.rb +21 -0
- data/lib/kcu/services/deploys/get_image_config.rb +26 -0
- data/lib/kcu/services/deploys/get_target_containers.rb +23 -0
- data/lib/kcu/services/deploys/get_target_containers_config.rb +25 -0
- data/lib/kcu/services/deploys/set_image.rb +32 -0
- data/lib/kcu/services/deploys/set_target_namespace.rb +15 -0
- data/lib/kcu/services/exec_shell.rb +22 -0
- data/lib/kcu/services/secrets/get_json.rb +4 -6
- data/lib/kcu/services/secrets/set_entry_value.rb +5 -6
- data/lib/kcu/version.rb +1 -1
- data/lib/kcu.rb +16 -1
- metadata +87 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b390824d729ff0b0d28f3b453aef75ee5d5e7da7
|
4
|
+
data.tar.gz: 2ca5b1df6afd4ec36facb653592df40194731ab4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2ac93598773b7c07008adadb66f96b628229010ca34aa03da0f9de22c19fc3ef1cab36922f54f1ac4b4e48f1c9a062fdd493157bb220b4536cfd9c7cd5d57fd
|
7
|
+
data.tar.gz: 568488c1fe0d3aeebec2e848e0ec5b214e94336339ca9379bec27af891ad12df97b8ed8be788d7516041f95d9d543c59933f0453512f2dadeef4d3be62d8b423
|
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,12 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
-
## [0.
|
7
|
+
## [0.3.0] - 2017-11-26
|
8
|
+
### Added
|
9
|
+
- Add easy deployment
|
10
|
+
- Restart a deployment
|
11
|
+
|
12
|
+
## [0.2.0] - 2017-11-26
|
8
13
|
### Added
|
9
14
|
- Get a single secret's decoded value
|
10
15
|
- Set a single secret's value, given a non-encoded value (yes, we properly encode for you!)
|
data/README.md
CHANGED
@@ -14,13 +14,64 @@ gem install kcu
|
|
14
14
|
|
15
15
|
## Usage
|
16
16
|
|
17
|
-
All actions are documented in the executable
|
17
|
+
All actions are documented in the executable. Use `--help`:
|
18
18
|
|
19
19
|
```
|
20
20
|
kcu --help
|
21
21
|
kcu secret list --help
|
22
22
|
```
|
23
23
|
|
24
|
+
Some examples:
|
25
|
+
|
26
|
+
```
|
27
|
+
kcu secret list production/worker
|
28
|
+
kcu secret get production/worker sidekiq_concurrency
|
29
|
+
kcu secret set production/worker sidekiq_concurrency 10
|
30
|
+
kcu controller restart production/website
|
31
|
+
```
|
32
|
+
|
33
|
+
### Easy Deployment
|
34
|
+
|
35
|
+
Some teams prefer not to deploy via CD -- perhaps more planning needs to go through the deployment phase. For this type of workflow, KCU provides a simple way to deploy:
|
36
|
+
|
37
|
+
```
|
38
|
+
kcu deploy master
|
39
|
+
```
|
40
|
+
|
41
|
+
This must be executed in the project which contains the configuration file `kcu.yml`:
|
42
|
+
|
43
|
+
```
|
44
|
+
---
|
45
|
+
deploys:
|
46
|
+
- branch: master
|
47
|
+
namespace: production
|
48
|
+
template: "gcr.io/bloom-solutions/website:prod-$GIT_COMMIT"
|
49
|
+
targets:
|
50
|
+
- deployment_name: web
|
51
|
+
container: website
|
52
|
+
- deployment_name: worker
|
53
|
+
container: sidekiq
|
54
|
+
- branch: /staging_(\d+)/
|
55
|
+
namespace: staging
|
56
|
+
template: "gcr.io/bloom-solutions/website:staging-$GIT_COMMIT"
|
57
|
+
targets:
|
58
|
+
- deployment_name: web
|
59
|
+
container: website
|
60
|
+
- deployment_name: worker
|
61
|
+
container: sidekiq
|
62
|
+
```
|
63
|
+
|
64
|
+
The command above is the short version of `kcu deploy master production`. If you will deploy the master branch to production/web/website and production/worker/sidekiq then you need not specify the target details, since this is already defined in the config file.
|
65
|
+
|
66
|
+
When deploying the a specific branch to a different namespace (like deploying the production image to the staging namespace), you may specify the namespace. For example, these commands deploy the `master` branch to the staging/web/website and staging/worker/sidekiq containers:
|
67
|
+
|
68
|
+
```
|
69
|
+
kcu deploy master staging
|
70
|
+
```
|
71
|
+
|
72
|
+
- Variables:
|
73
|
+
- `GIT_COMMIT`: the full, latest git commit hash of the *local* git copy in the branch
|
74
|
+
|
24
75
|
## Development
|
25
76
|
|
26
77
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/bin/kcu
CHANGED
data/kcu.gemspec
CHANGED
@@ -26,15 +26,20 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
27
|
f.match(%r{^(test|spec|features)/})
|
28
28
|
end
|
29
|
-
spec.bindir = "
|
30
|
-
spec.executables =
|
29
|
+
spec.bindir = "bin"
|
30
|
+
spec.executables = ["kcu"]
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
|
+
spec.add_dependency "activesupport", ">= 3.0"
|
33
34
|
spec.add_dependency "awesome_print", "~> 1.8"
|
34
35
|
spec.add_dependency "commander", "~> 4.4"
|
36
|
+
spec.add_dependency "dry-initializer", "~> 2.3"
|
35
37
|
spec.add_dependency "light-service", "0.8.3"
|
38
|
+
spec.add_dependency "git", "~> 1.3"
|
39
|
+
spec.add_dependency "to_regexp", "0.2.1"
|
36
40
|
|
37
41
|
spec.add_development_dependency "bundler", "~> 1.15"
|
38
42
|
spec.add_development_dependency "rake", "~> 10.0"
|
39
43
|
spec.add_development_dependency "rspec", "~> 3.0"
|
44
|
+
spec.add_development_dependency "timecop"
|
40
45
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Kcu
|
2
|
+
class DeployAction
|
3
|
+
|
4
|
+
extend LightService::Organizer
|
5
|
+
|
6
|
+
def self.call(repo_dir, git_branch, target_namespace=nil)
|
7
|
+
with(
|
8
|
+
repo_dir: repo_dir,
|
9
|
+
git_branch: git_branch,
|
10
|
+
target_namespace: target_namespace,
|
11
|
+
).reduce(
|
12
|
+
Deploys::GetConfig,
|
13
|
+
Deploys::GetImageConfig,
|
14
|
+
Deploys::GenImageName,
|
15
|
+
Deploys::SetTargetNamespace,
|
16
|
+
Deploys::GetTargetContainersConfig,
|
17
|
+
Deploys::GetTargetContainers,
|
18
|
+
Deploys::SetImage,
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
data/lib/kcu/client.rb
CHANGED
@@ -5,7 +5,7 @@ module Kcu
|
|
5
5
|
|
6
6
|
include Commander::Methods
|
7
7
|
|
8
|
-
def run
|
8
|
+
def run(working_dir:)
|
9
9
|
program :name, "Kubectl Utils (KCU)"
|
10
10
|
program :version, Kcu::VERSION
|
11
11
|
program :description, Kcu::SUMMARY
|
@@ -34,6 +34,22 @@ module Kcu
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
command :"deployment restart" do |c|
|
38
|
+
c.syntax = "deployment restart namespace/deployment_name"
|
39
|
+
c.description = "Restarts a deployment"
|
40
|
+
c.action do |args, options|
|
41
|
+
RestartDeploymentAction.(*args)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
command :deploy do |c|
|
46
|
+
c.syntax = "deploy master"
|
47
|
+
c.description = "Deploy a branch"
|
48
|
+
c.action do |args, options|
|
49
|
+
DeployAction.(*args.insert(0, working_dir))
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
37
53
|
run!
|
38
54
|
end
|
39
55
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deployments
|
3
|
+
class RestartDeployment
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :resource_namespace, :resource_name
|
7
|
+
|
8
|
+
executed do |c|
|
9
|
+
json = { spec: { template: { metadata: { annotations: {
|
10
|
+
kcu_restarted_at: Time.now.to_i.to_s,
|
11
|
+
} } } } }.to_json
|
12
|
+
|
13
|
+
stdout_str, stderr_str, status = ExecShell.(
|
14
|
+
"kubectl",
|
15
|
+
"patch",
|
16
|
+
"deployment",
|
17
|
+
c.resource_name,
|
18
|
+
"--namespace" => c.resource_namespace,
|
19
|
+
"--patch" => "'#{json}'",
|
20
|
+
)
|
21
|
+
|
22
|
+
puts stdout_str
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deploys
|
3
|
+
class GenImageName
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :image_config, :git_branch, :repo_dir
|
7
|
+
promises :image_name
|
8
|
+
|
9
|
+
executed do |c|
|
10
|
+
git = Git.open(c.repo_dir)
|
11
|
+
git.branch(c.git_branch)
|
12
|
+
git_commit = git.log(1).first.sha
|
13
|
+
|
14
|
+
c.image_name = c.image_config["template"].
|
15
|
+
gsub("$GIT_COMMIT", git_commit)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deploys
|
3
|
+
class GetConfig
|
4
|
+
|
5
|
+
CONFIG_FILE_NAME = "kcu.yml"
|
6
|
+
extend LightService::Action
|
7
|
+
expects :repo_dir
|
8
|
+
promises :config
|
9
|
+
|
10
|
+
executed do |c|
|
11
|
+
file_path = File.join(c.repo_dir, CONFIG_FILE_NAME)
|
12
|
+
if File.exists?(file_path)
|
13
|
+
c.config = YAML.load_file(file_path)
|
14
|
+
else
|
15
|
+
fail ArgumentError, "#{CONFIG_FILE_NAME} is not present in #{c.repo_dir}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deploys
|
3
|
+
class GetImageConfig
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :git_branch, :config
|
7
|
+
promises :image_config
|
8
|
+
|
9
|
+
executed do |c|
|
10
|
+
c.image_config = catch(:config) do
|
11
|
+
c.config["deploys"].find do |conf|
|
12
|
+
config_branch = conf["branch"]
|
13
|
+
if config_branch.include?("/")
|
14
|
+
throw(:config, conf) if c.git_branch =~ config_branch.to_regexp
|
15
|
+
else
|
16
|
+
throw(:config, conf) if c.git_branch == config_branch
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
fail ArgumentError, "`#{c.git_branch}` branch is not configured"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deploys
|
3
|
+
class GetTargetContainers
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :target_containers_config, :target_namespace
|
7
|
+
promises :target_containers
|
8
|
+
|
9
|
+
executed do |c|
|
10
|
+
config = c.target_containers_config
|
11
|
+
targets = config["targets"]
|
12
|
+
c.target_containers = targets.map do |target_config|
|
13
|
+
Container.new(
|
14
|
+
namespace: c.target_namespace,
|
15
|
+
deployment_name: target_config["deployment_name"],
|
16
|
+
name: target_config["container"],
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deploys
|
3
|
+
class GetTargetContainersConfig
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :config, :target_namespace, :image_config
|
7
|
+
promises :target_containers_config
|
8
|
+
|
9
|
+
executed do |c|
|
10
|
+
c.target_containers_config = catch(:config) do
|
11
|
+
if c.target_namespace.present?
|
12
|
+
c.config["deploys"].find do |conf|
|
13
|
+
throw(:config, conf) if conf["namespace"] == c.target_namespace
|
14
|
+
end
|
15
|
+
|
16
|
+
fail ArgumentError, "`#{c.target_namespace}` namespace is not configured"
|
17
|
+
end
|
18
|
+
|
19
|
+
throw :config, c.image_config
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deploys
|
3
|
+
class SetImage
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :image_name, :target_containers
|
7
|
+
|
8
|
+
executed do |c|
|
9
|
+
c.target_containers.each do |container|
|
10
|
+
stdout_str, stderr_str, status = ExecShell.(
|
11
|
+
"kubectl",
|
12
|
+
"set",
|
13
|
+
"image",
|
14
|
+
"deployment",
|
15
|
+
container.deployment_name,
|
16
|
+
"--namespace" => container.namespace,
|
17
|
+
container.name => c.image_name,
|
18
|
+
)
|
19
|
+
|
20
|
+
if status.exitstatus.zero?
|
21
|
+
puts "Updated #{container.namespace} deployment " +
|
22
|
+
"#{container.deployment_name} #{container.name} to " +
|
23
|
+
"#{c.image_name}"
|
24
|
+
else
|
25
|
+
puts stderr_str
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Kcu
|
2
|
+
module Deploys
|
3
|
+
class SetTargetNamespace
|
4
|
+
|
5
|
+
extend LightService::Action
|
6
|
+
expects :image_config, :target_namespace
|
7
|
+
|
8
|
+
executed do |c|
|
9
|
+
next c if c.target_namespace.present?
|
10
|
+
c.target_namespace = c.image_config["namespace"]
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Kcu
|
2
|
+
class ExecShell
|
3
|
+
|
4
|
+
def self.call(*args)
|
5
|
+
command_parts = []
|
6
|
+
args.each do |arg|
|
7
|
+
if arg.is_a?(Hash)
|
8
|
+
arg.each do |key, value|
|
9
|
+
command_parts << [key, value].join("=")
|
10
|
+
end
|
11
|
+
else
|
12
|
+
command_parts << arg
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
command = command_parts.join(" ")
|
17
|
+
|
18
|
+
Open3.capture3(command)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -7,16 +7,14 @@ module Kcu
|
|
7
7
|
promises :secret_json
|
8
8
|
|
9
9
|
executed do |c|
|
10
|
-
|
10
|
+
stdout_str, stderr_str, status = ExecShell.(
|
11
11
|
"kubectl",
|
12
12
|
"get",
|
13
13
|
"secret",
|
14
14
|
c.resource_name,
|
15
|
-
"--namespace
|
16
|
-
"--output
|
17
|
-
|
18
|
-
|
19
|
-
stdout_str, stderr_str, status = Open3.capture3(shell_command)
|
15
|
+
"--namespace" => c.resource_namespace,
|
16
|
+
"--output" => "json",
|
17
|
+
)
|
20
18
|
|
21
19
|
c.secret_json = JSON.parse(stdout_str)
|
22
20
|
end
|
@@ -16,16 +16,15 @@ module Kcu
|
|
16
16
|
c.entry_name => c.encoded_entry_value,
|
17
17
|
},
|
18
18
|
}.to_json
|
19
|
-
|
19
|
+
|
20
|
+
stdout_str, stderr_str, status = ExecShell.(
|
20
21
|
"kubectl",
|
21
22
|
"patch",
|
22
23
|
"secret",
|
23
24
|
c.resource_name,
|
24
|
-
"--namespace
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
stdout_str, stderr_str, status = Open3.capture3(shell_command)
|
25
|
+
"--namespace" => c.resource_namespace,
|
26
|
+
"--patch" => "'#{patch_json}'",
|
27
|
+
)
|
29
28
|
|
30
29
|
puts stdout_str
|
31
30
|
end
|
data/lib/kcu/version.rb
CHANGED
data/lib/kcu.rb
CHANGED
@@ -1,25 +1,40 @@
|
|
1
|
+
require "active_support/core_ext/object/blank"
|
1
2
|
require "awesome_print"
|
2
3
|
require "base64"
|
3
4
|
require "commander"
|
5
|
+
require "dry-initializer"
|
6
|
+
require "git"
|
4
7
|
require "json"
|
5
8
|
require "light-service"
|
6
9
|
require "open3"
|
10
|
+
require "to_regexp"
|
7
11
|
|
8
12
|
module Kcu
|
9
13
|
end
|
10
14
|
|
11
15
|
require "kcu/version"
|
12
16
|
require "kcu/summary"
|
17
|
+
require "kcu/models/container"
|
18
|
+
require "kcu/services/exec_shell"
|
13
19
|
require "kcu/services/get_resource_namespace_and_name"
|
14
20
|
require "kcu/services/secrets/get_json"
|
15
21
|
require "kcu/services/secrets/decode_data"
|
16
22
|
require "kcu/services/secrets/get_entry_value"
|
17
23
|
require "kcu/services/secrets/encode_entry_value"
|
18
24
|
require "kcu/services/secrets/set_entry_value"
|
19
|
-
require "kcu/services/
|
25
|
+
require "kcu/services/deployments/restart_deployment"
|
26
|
+
require "kcu/services/deploys/get_config"
|
27
|
+
require "kcu/services/deploys/set_target_namespace"
|
28
|
+
require "kcu/services/deploys/get_image_config"
|
29
|
+
require "kcu/services/deploys/gen_image_name"
|
30
|
+
require "kcu/services/deploys/set_image"
|
31
|
+
require "kcu/services/deploys/get_target_containers_config"
|
32
|
+
require "kcu/services/deploys/get_target_containers"
|
20
33
|
require "kcu/actions/list_secret_action"
|
21
34
|
require "kcu/actions/get_secret_action"
|
22
35
|
require "kcu/actions/set_secret_action"
|
36
|
+
require "kcu/actions/restart_deployment_action"
|
37
|
+
require "kcu/actions/deploy_action"
|
23
38
|
require "kcu/client"
|
24
39
|
|
25
40
|
Kcu.new.run if $0 == __FILE__
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kcu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ramon Tayag
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: awesome_print
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +52,20 @@ dependencies:
|
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '4.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: dry-initializer
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.3'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.3'
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: light-service
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +80,34 @@ dependencies:
|
|
52
80
|
- - '='
|
53
81
|
- !ruby/object:Gem::Version
|
54
82
|
version: 0.8.3
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: git
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.3'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.3'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: to_regexp
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.2.1
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.2.1
|
55
111
|
- !ruby/object:Gem::Dependency
|
56
112
|
name: bundler
|
57
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,10 +150,25 @@ dependencies:
|
|
94
150
|
- - "~>"
|
95
151
|
- !ruby/object:Gem::Version
|
96
152
|
version: '3.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: timecop
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
97
167
|
description:
|
98
168
|
email:
|
99
169
|
- ramon@tayag.net
|
100
|
-
executables:
|
170
|
+
executables:
|
171
|
+
- kcu
|
101
172
|
extensions: []
|
102
173
|
extra_rdoc_files: []
|
103
174
|
files:
|
@@ -117,10 +188,22 @@ files:
|
|
117
188
|
- bin/setup
|
118
189
|
- kcu.gemspec
|
119
190
|
- lib/kcu.rb
|
191
|
+
- lib/kcu/actions/deploy_action.rb
|
120
192
|
- lib/kcu/actions/get_secret_action.rb
|
121
193
|
- lib/kcu/actions/list_secret_action.rb
|
194
|
+
- lib/kcu/actions/restart_deployment_action.rb
|
122
195
|
- lib/kcu/actions/set_secret_action.rb
|
123
196
|
- lib/kcu/client.rb
|
197
|
+
- lib/kcu/models/container.rb
|
198
|
+
- lib/kcu/services/deployments/restart_deployment.rb
|
199
|
+
- lib/kcu/services/deploys/gen_image_name.rb
|
200
|
+
- lib/kcu/services/deploys/get_config.rb
|
201
|
+
- lib/kcu/services/deploys/get_image_config.rb
|
202
|
+
- lib/kcu/services/deploys/get_target_containers.rb
|
203
|
+
- lib/kcu/services/deploys/get_target_containers_config.rb
|
204
|
+
- lib/kcu/services/deploys/set_image.rb
|
205
|
+
- lib/kcu/services/deploys/set_target_namespace.rb
|
206
|
+
- lib/kcu/services/exec_shell.rb
|
124
207
|
- lib/kcu/services/get_resource_namespace_and_name.rb
|
125
208
|
- lib/kcu/services/secrets/decode_data.rb
|
126
209
|
- lib/kcu/services/secrets/encode_entry_value.rb
|