kubernetes-deploy 0.26.2 → 0.26.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f9843cd4324ce81800fa02b9e84093523560c3b84d22f43da17d5f80f592b3c9
4
- data.tar.gz: cdd79de172e2568e2a2cf2dc86fbc0248c173481903a6c936a762393eb9797bf
3
+ metadata.gz: dbfc9ddacc1877541f3c3d580be4e4f8dd2e4bbb59f6bbe52232ccc77985df1e
4
+ data.tar.gz: 1b15550b1ba3eada31790eb1b5521be3f6a9837108e379f97eb9791548b1478a
5
5
  SHA512:
6
- metadata.gz: d7ffcb45240a99cb05259138b65134c1e50d6a0449368b4da1bb7765a65b5a45270fba91a5db7dd2d509af493b85b0fb04314dae23b595b561ebd00e56e402f6
7
- data.tar.gz: bdcad6cd5291598baf26f954ead30c6b1ce2210cc210d8415290b626ed6533ccd06865a8ad00008eda02f003d855791f3a0aafcadb3cb065720983c442d07ec4
6
+ metadata.gz: 3f7fe96e6737b17e2d979ca6cbf6c21b8f2524a4029d0a1756c859029a003688ad0b51e6d9f55ac34190ca635a9b071a657b3654d3c7f2793627505e0cd5942c
7
+ data.tar.gz: 438181bf2d2e491c0ffb5565a96f98b4d2d9352b6a88958fae80cfaedc1590a11cd0a768f1e35878a59f13ec5e57b18f3d8ce89459ba16be014d41c706d5e5b4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## next
2
2
 
3
+ ## 0.26.3
4
+
5
+ *Bug fixes*
6
+ - Fixes a bug introduced in 0.26.0 where listing multiple files in the $KUBECONFIG environment variable would throw an error ([#468](https://github.com/Shopify/kubernetes-deploy/pull/468))
7
+ - Fixes a bug introduced in 0.26.2 where kubernetes-render started adding YAML headers to empty render results ([#467](https://github.com/Shopify/kubernetes-deploy/pull/467))
8
+
3
9
  ## 0.26.2
4
10
 
5
11
  *Enhancements*
@@ -7,7 +13,7 @@
7
13
  through a yaml parser. ([#454](https://github.com/Shopify/kubernetes-deploy/pull/454))
8
14
 
9
15
  *Bug fixes*
10
- - Remove use of deprecated feature preventing use with Kuberentes 1.14 ([#460](https://github.com/Shopify/kubernetes-deploy/pull/460))
16
+ - Remove use of deprecated feature preventing use with Kubernetes 1.14 ([#460](https://github.com/Shopify/kubernetes-deploy/pull/460))
11
17
 
12
18
  ## 0.26.1
13
19
 
@@ -7,18 +7,14 @@ module KubernetesDeploy
7
7
  class ContextMissingError < FatalDeploymentError
8
8
  def initialize(context_name, kubeconfig)
9
9
  super("`#{context_name}` context must be configured in your " \
10
- "KUBECONFIG file(s) (#{kubeconfig}).")
10
+ "KUBECONFIG file(s) (#{kubeconfig.join(', ')}).")
11
11
  end
12
12
  end
13
13
 
14
- def self.kubeconfig
15
- new.kubeconfig
16
- end
17
-
18
- attr_reader :kubeconfig
19
-
20
14
  def initialize(kubeconfig: ENV["KUBECONFIG"])
21
- @kubeconfig = kubeconfig || "#{Dir.home}/.kube/config"
15
+ files = kubeconfig || "#{Dir.home}/.kube/config"
16
+ # Split the list by colon for Linux and Mac, and semicolon for Windows.
17
+ @kubeconfig_files = files.split(/[:;]/).map!(&:strip).reject(&:empty?)
22
18
  end
23
19
 
24
20
  def build_v1_kubeclient(context)
@@ -100,33 +96,32 @@ module KubernetesDeploy
100
96
  )
101
97
  end
102
98
 
103
- def config_files
104
- # Split the list by colon for Linux and Mac, and semicolon for Windows.
105
- kubeconfig.split(/[:;]/).map!(&:strip).reject(&:empty?)
106
- end
107
-
108
99
  def validate_config_files
109
100
  errors = []
110
- if config_files.empty?
101
+ if @kubeconfig_files.empty?
111
102
  errors << "Kube config file name(s) not set in $KUBECONFIG"
112
103
  else
113
- config_files.each do |f|
114
- unless File.file?(f)
115
- errors << "Kube config not found at #{f}"
116
- end
104
+ @kubeconfig_files.each do |f|
105
+ # If any files in the list are not valid, we can't be sure the merged context list is what the user intended
106
+ errors << "Kube config not found at #{f}" unless File.file?(f)
117
107
  end
118
108
  end
119
109
  errors
120
110
  end
121
111
 
112
+ def validate_config_files!
113
+ errors = validate_config_files
114
+ raise TaskConfigurationError, errors.join(', ') if errors.present?
115
+ end
116
+
122
117
  private
123
118
 
124
119
  def build_kubeclient(api_version:, context:, endpoint_path: nil)
120
+ validate_config_files!
121
+ @kubeclient_configs ||= @kubeconfig_files.map { |f| KubeConfig.read(f) }
125
122
  # Find a context defined in kube conf files that matches the input context by name
126
- configs = config_files.map { |f| KubeConfig.read(f) }
127
- config = configs.find { |c| c.contexts.include?(context) }
128
-
129
- raise ContextMissingError.new(context, kubeconfig) unless config
123
+ config = @kubeclient_configs.find { |c| c.contexts.include?(context) }
124
+ raise ContextMissingError.new(context, @kubeconfig_files) unless config
130
125
 
131
126
  kube_context = config.context(context)
132
127
  client = Kubeclient::Client.new(
@@ -9,7 +9,6 @@ module KubernetesDeploy
9
9
 
10
10
  def initialize(namespace:, context:, logger:, log_failure_by_default:, default_timeout: DEFAULT_TIMEOUT,
11
11
  output_is_sensitive_default: false)
12
- @kubeconfig = KubeclientBuilder.kubeconfig
13
12
  @namespace = namespace
14
13
  @context = context
15
14
  @logger = logger
@@ -27,7 +26,6 @@ module KubernetesDeploy
27
26
  output_is_sensitive = @output_is_sensitive_default if output_is_sensitive.nil?
28
27
 
29
28
  args = args.unshift("kubectl")
30
- args.push("--kubeconfig=#{@kubeconfig}")
31
29
  args.push("--namespace=#{@namespace}") if use_namespace
32
30
  args.push("--context=#{@context}") if use_context
33
31
  args.push("--output=#{output}") if output
@@ -65,14 +65,19 @@ module KubernetesDeploy
65
65
  end
66
66
 
67
67
  def render_filename(filename, stream)
68
- @logger.info("Rendering #{File.basename(filename)} ...")
68
+ file_basename = File.basename(filename)
69
+ @logger.info("Rendering #{file_basename}...")
69
70
  file_content = File.read(File.join(@template_dir, filename))
70
71
  rendered_content = @renderer.render_template(filename, file_content)
71
72
  implicit = true
72
73
  YAML.parse_stream(rendered_content, "<rendered> #{filename}") { |d| implicit = d.implicit }
73
- stream.puts "---\n" if implicit
74
- stream.puts rendered_content
75
- @logger.info("Rendered #{File.basename(filename)}")
74
+ if rendered_content.present?
75
+ stream.puts "---\n" if implicit
76
+ stream.puts rendered_content
77
+ @logger.info("Rendered #{file_basename}")
78
+ else
79
+ @logger.warn("Rendered #{file_basename} successfully, but the result was blank")
80
+ end
76
81
  rescue Psych::SyntaxError => exception
77
82
  raise InvalidTemplateError.new("Template is not valid YAML. #{exception.message}", filename: filename)
78
83
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module KubernetesDeploy
3
- VERSION = "0.26.2"
3
+ VERSION = "0.26.3"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubernetes-deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.26.2
4
+ version: 0.26.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Verey
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-04-05 00:00:00.000000000 Z
12
+ date: 2019-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport