kubernetes-deploy 0.6.0 → 0.6.1

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
  SHA1:
3
- metadata.gz: d6c0635aa2dd4ca87b4cea59f90b783251f93418
4
- data.tar.gz: 9859f840e6b082188e50e8545546b756b399e95c
3
+ metadata.gz: 8d4d12495a2c45feea06818619b789fe435c9458
4
+ data.tar.gz: be4b5c1fd86dd89e61ff4c209325dd355a9c4ca6
5
5
  SHA512:
6
- metadata.gz: f637386dec36fb619f319d22109f113b621587c0e1b6f8774d76801582a3c349355ed2f2ac3de57e7d2c1f30792e9c796abd27fde46c58b1bd558ec849290209
7
- data.tar.gz: 57c73ae638bab026343598ae9f503f9a1af48d11a77ceed8e4c73238d3795314ff1eacf775101dcc19cdf76c2fd3ef584c13c53ca9910db8f69b61bf6a8f7cd4
6
+ metadata.gz: dbc9a37c932a11084c881b5333bb32d2d86500095c704f0a17ad2e0d53331f91105b4f0afbe5134a30f244fdce6b53b48cc9e43f8005d6c6bcfc4ed6ff59c29a
7
+ data.tar.gz: 3910718f3c377f15a88e478211c1ebc25a9ba365af017405f7999f1c0a2fcdf14f43b0b348d900666640200a623baaef2b3c37149d32ccee83f75246e6130cd5
@@ -22,9 +22,11 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
  spec.add_dependency "activesupport", ">= 4.2"
24
24
  spec.add_dependency "kubeclient", "~> 2.3"
25
+ spec.add_dependency "googleauth", ">= 0.5"
25
26
 
26
27
  spec.add_development_dependency "bundler", "~> 1.13"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
28
29
  spec.add_development_dependency "minitest", "~> 5.0"
29
30
  spec.add_development_dependency "minitest-stub-const", "~> 0.6"
31
+ spec.add_development_dependency "webmock", "~> 3.0"
30
32
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  require 'kubeclient'
3
+ require 'kubernetes-deploy/kubeclient_builder/google_friendly_config'
3
4
 
4
5
  module KubernetesDeploy
5
6
  module KubeclientBuilder
@@ -28,7 +29,7 @@ module KubernetesDeploy
28
29
  end
29
30
 
30
31
  def _build_kubeclient(api_version:, context:, endpoint_path: nil)
31
- config = Kubeclient::Config.read(ENV.fetch("KUBECONFIG"))
32
+ config = GoogleFriendlyConfig.read(ENV.fetch("KUBECONFIG"))
32
33
  unless config.contexts.include?(context)
33
34
  raise ContextMissingError, context
34
35
  end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'googleauth'
4
+ module KubernetesDeploy
5
+ module KubeclientBuilder
6
+ class GoogleFriendlyConfig < Kubeclient::Config
7
+ def fetch_user_auth_options(user)
8
+ if user['auth-provider'] && (user['auth-provider']['name'] == 'gcp')
9
+ { bearer_token: new_token }
10
+ else
11
+ super
12
+ end
13
+ end
14
+
15
+ def self.read(filename)
16
+ new(YAML.load_file(filename), File.dirname(filename))
17
+ end
18
+
19
+ def new_token
20
+ scopes = ['https://www.googleapis.com/auth/cloud-platform']
21
+ authorization = Google::Auth.get_application_default(scopes)
22
+
23
+ authorization.apply({})
24
+
25
+ authorization.access_token
26
+
27
+ rescue Signet::AuthorizationError => e
28
+ err_message = json_error_message(e.response.body) || e.message
29
+ raise KubeException.new(e.response.status, err_message, e.response.body)
30
+ end
31
+
32
+ private
33
+
34
+ def json_error_message(body)
35
+ json_error_msg = begin
36
+ JSON.parse(body || '') || {}
37
+ rescue JSON::ParserError
38
+ {}
39
+ end
40
+ json_error_msg['message']
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,3 +1,3 @@
1
1
  module KubernetesDeploy
2
- VERSION = "0.6.0"
2
+ VERSION = "0.6.1"
3
3
  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.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kir Shatrov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2017-04-27 00:00:00.000000000 Z
13
+ date: 2017-05-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -40,6 +40,20 @@ dependencies:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '2.3'
43
+ - !ruby/object:Gem::Dependency
44
+ name: googleauth
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0.5'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0.5'
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: bundler
45
59
  requirement: !ruby/object:Gem::Requirement
@@ -96,6 +110,20 @@ dependencies:
96
110
  - - "~>"
97
111
  - !ruby/object:Gem::Version
98
112
  version: '0.6'
113
+ - !ruby/object:Gem::Dependency
114
+ name: webmock
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '3.0'
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '3.0'
99
127
  description: Kubernetes deploy scripts
100
128
  email:
101
129
  - ops-accounts+shipit@shopify.com
@@ -120,6 +148,7 @@ files:
120
148
  - kubernetes-deploy.gemspec
121
149
  - lib/kubernetes-deploy.rb
122
150
  - lib/kubernetes-deploy/kubeclient_builder.rb
151
+ - lib/kubernetes-deploy/kubeclient_builder/google_friendly_config.rb
123
152
  - lib/kubernetes-deploy/kubectl.rb
124
153
  - lib/kubernetes-deploy/kubernetes_resource.rb
125
154
  - lib/kubernetes-deploy/kubernetes_resource/bugsnag.rb
@@ -159,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
188
  version: '0'
160
189
  requirements: []
161
190
  rubyforge_project:
162
- rubygems_version: 2.6.10
191
+ rubygems_version: 2.4.5.1
163
192
  signing_key:
164
193
  specification_version: 4
165
194
  summary: Kubernetes deploy scripts