krane 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/krane/container_overrides.rb +33 -0
- data/lib/krane/kubernetes_resource.rb +2 -2
- data/lib/krane/runner_task.rb +14 -15
- data/lib/krane/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72b8d113bb3226dd5545832e6913a50e34110afd2402508f920f7ba9c11a3e50
|
4
|
+
data.tar.gz: e52d4e9f325942e94d2d5395111a73e248f649397116d50113a2ad0be3507aae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e228d7cc83a98b9c35d7ecc6570dc85e0a73358b773b8331a12042ce50205bf10a403d88a0b380ef24298b1663d8651956d86aac54c61fd96f3c1d2196dba8b3
|
7
|
+
data.tar.gz: e90ced18d7509a66d630def61a9051bce06fb502652331ba8f2cc13b985b97595a19947285d8d438b7dfc04f1384eb49daa8fba23658e3148f25a021515b3b5f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
## next
|
2
2
|
|
3
|
+
## 1.1.4
|
4
|
+
|
5
|
+
*Bug Fixes*
|
6
|
+
- Properly look up constant on Krane namespace. [#720](https://github.com/Shopify/krane/pull/720)
|
7
|
+
|
8
|
+
*Enhancements*
|
9
|
+
- Allow to configure `image_tag` when using task runner. [#719](https://github.com/Shopify/krane/pull/719)
|
10
|
+
|
3
11
|
## 1.1.3
|
4
12
|
|
5
13
|
*Bug Fixes*
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Krane
|
3
|
+
class ContainerOverrides
|
4
|
+
attr_reader :command, :arguments, :env_vars, :image_tag
|
5
|
+
|
6
|
+
def initialize(command: nil, arguments: nil, env_vars: [], image_tag: nil)
|
7
|
+
@command = command
|
8
|
+
@arguments = arguments
|
9
|
+
@env_vars = env_vars
|
10
|
+
@image_tag = image_tag
|
11
|
+
end
|
12
|
+
|
13
|
+
def apply!(container)
|
14
|
+
container.command = command if command
|
15
|
+
container.args = arguments if arguments
|
16
|
+
|
17
|
+
if image_tag
|
18
|
+
image = container.image
|
19
|
+
base_image, _old_tag = image.split(':')
|
20
|
+
new_image = "#{base_image}:#{image_tag}"
|
21
|
+
|
22
|
+
container.image = new_image
|
23
|
+
end
|
24
|
+
|
25
|
+
env_args = env_vars.map do |env|
|
26
|
+
key, value = env.split('=', 2)
|
27
|
+
{ name: key, value: value }
|
28
|
+
end
|
29
|
+
container.env ||= []
|
30
|
+
container.env = container.env.map(&:to_h) + env_args
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/krane/runner_task.rb
CHANGED
@@ -9,6 +9,7 @@ require 'krane/resource_watcher'
|
|
9
9
|
require 'krane/kubernetes_resource'
|
10
10
|
require 'krane/kubernetes_resource/pod'
|
11
11
|
require 'krane/runner_task_config_validator'
|
12
|
+
require 'krane/container_overrides'
|
12
13
|
|
13
14
|
module Krane
|
14
15
|
# Run a pod that exits upon completing a task
|
@@ -50,7 +51,7 @@ module Krane
|
|
50
51
|
# @param verify_result [Boolean] Wait for completion and verify pod success
|
51
52
|
#
|
52
53
|
# @return [nil]
|
53
|
-
def run!(template:, command:, arguments:, env_vars: [], verify_result: true)
|
54
|
+
def run!(template:, command:, arguments:, env_vars: [], image_tag: nil, verify_result: true)
|
54
55
|
start = Time.now.utc
|
55
56
|
@logger.reset
|
56
57
|
|
@@ -59,8 +60,13 @@ module Krane
|
|
59
60
|
@logger.info("Validating configuration")
|
60
61
|
verify_config!(template)
|
61
62
|
@logger.info("Using namespace '#{@namespace}' in context '#{@context}'")
|
62
|
-
|
63
|
-
|
63
|
+
container_overrides = ContainerOverrides.new(
|
64
|
+
command: command,
|
65
|
+
arguments: arguments,
|
66
|
+
env_vars: env_vars,
|
67
|
+
image_tag: image_tag
|
68
|
+
)
|
69
|
+
pod = build_pod(template, container_overrides, verify_result)
|
64
70
|
validate_pod(pod)
|
65
71
|
|
66
72
|
@logger.phase_heading("Running pod")
|
@@ -98,11 +104,12 @@ module Krane
|
|
98
104
|
raise FatalDeploymentError, msg
|
99
105
|
end
|
100
106
|
|
101
|
-
def build_pod(template_name,
|
107
|
+
def build_pod(template_name, container_overrides, verify_result)
|
102
108
|
task_template = get_template(template_name)
|
103
109
|
@logger.info("Using template '#{template_name}'")
|
104
110
|
pod_template = build_pod_definition(task_template)
|
105
|
-
|
111
|
+
container = extract_task_runner_container(pod_template)
|
112
|
+
container_overrides.apply!(container)
|
106
113
|
ensure_valid_restart_policy!(pod_template, verify_result)
|
107
114
|
Pod.new(namespace: @namespace, context: @context, logger: @logger, stream_logs: true,
|
108
115
|
definition: pod_template.to_hash.deep_stringify_keys, statsd_tags: [])
|
@@ -165,7 +172,7 @@ module Krane
|
|
165
172
|
pod_definition
|
166
173
|
end
|
167
174
|
|
168
|
-
def
|
175
|
+
def extract_task_runner_container(pod_definition)
|
169
176
|
container = pod_definition.spec.containers.find { |cont| cont.name == 'task-runner' }
|
170
177
|
if container.nil?
|
171
178
|
message = "Pod spec does not contain a template container called 'task-runner'"
|
@@ -173,15 +180,7 @@ module Krane
|
|
173
180
|
raise TaskConfigurationError, message
|
174
181
|
end
|
175
182
|
|
176
|
-
container
|
177
|
-
container.args = args if args
|
178
|
-
|
179
|
-
env_args = env_vars.map do |env|
|
180
|
-
key, value = env.split('=', 2)
|
181
|
-
{ name: key, value: value }
|
182
|
-
end
|
183
|
-
container.env ||= []
|
184
|
-
container.env = container.env.map(&:to_h) + env_args
|
183
|
+
container
|
185
184
|
end
|
186
185
|
|
187
186
|
def ensure_valid_restart_policy!(template, verify)
|
data/lib/krane/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: krane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Verey
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-06-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -436,6 +436,7 @@ files:
|
|
436
436
|
- lib/krane/concerns/template_reporting.rb
|
437
437
|
- lib/krane/concurrency.rb
|
438
438
|
- lib/krane/container_logs.rb
|
439
|
+
- lib/krane/container_overrides.rb
|
439
440
|
- lib/krane/deferred_summary_logging.rb
|
440
441
|
- lib/krane/delayed_exceptions.rb
|
441
442
|
- lib/krane/deploy_task.rb
|