pfab 0.8.3 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 224ab8cfa23f3ee0a33cb46be50f3754650c99c5ebd5ba22e1671e2cf086de67
4
- data.tar.gz: 3edfbec234d5aef944976bc296bee56018fa0b33f5a87ef3d934355e165f9033
3
+ metadata.gz: 86a0173094dded1e5b572b11593274b17abcfa2f29e7aac04977918af2d5674c
4
+ data.tar.gz: 3e189a70dc5126e40f8e81e13f84872964e35b06561251c6e260efa42a517de2
5
5
  SHA512:
6
- metadata.gz: dd8954a340c7d2a2b3e603bb1dc168717c27db71b1344ba7c9ad55ca7069496da320d4fbd53cb6336dc4bebcdd795e800afab2a84cd52230b10f03985dc0c2af
7
- data.tar.gz: 92dfb44127da6d5ba2900007e3f6f0052848dc8b2f05a043814928aa588d6627f1e20057e1ed987b374f92d52cee59e7c8d84882c644b2ad324d5ac59cc0a97e
6
+ metadata.gz: '09b0ce9accab6e86643d1dff636a84c0b6aa077d1309ff82867fa3e7125255bdb60fa2639a74766d2575b239ea8cb8933ec7ac94f6659d0ce55336aca59704d0'
7
+ data.tar.gz: 67427d6c7818d428945a36736cb45ac024967ccacd189087a3146f2458f85e12316e2e9e7497c1801d65bbae70055480c8e7a22a30f9aeb2d190f3a998456446
data/Gemfile CHANGED
@@ -12,7 +12,7 @@ gem "pry-byebug"
12
12
  group :development do
13
13
  gem "rdoc", "~> 3.12"
14
14
  gem "bundler", "~> 1.0"
15
- gem "juwelier", "~> 2.1.0"
15
+ gem "juwelier", "~> 2.4.9"
16
16
  gem "simplecov", ">= 0"
17
17
  gem "test-unit", ">= 0"
18
18
  end
data/Gemfile.lock CHANGED
@@ -6,9 +6,9 @@ GEM
6
6
  i18n (>= 0.7, < 2)
7
7
  minitest (~> 5.1)
8
8
  tzinfo (~> 1.1)
9
- addressable (2.5.2)
10
- public_suffix (>= 2.0.2, < 4.0)
11
- builder (3.2.3)
9
+ addressable (2.7.0)
10
+ public_suffix (>= 2.0.2, < 5.0)
11
+ builder (3.2.4)
12
12
  byebug (10.0.2)
13
13
  coderay (1.1.2)
14
14
  commander (4.4.6)
@@ -17,42 +17,51 @@ GEM
17
17
  descendants_tracker (0.0.4)
18
18
  thread_safe (~> 0.3, >= 0.3.1)
19
19
  docile (1.3.1)
20
- faraday (0.12.2)
20
+ faraday (1.3.0)
21
+ faraday-net_http (~> 1.0)
21
22
  multipart-post (>= 1.2, < 3)
22
- git (1.3.0)
23
- github_api (0.18.2)
23
+ ruby2_keywords
24
+ faraday-net_http (1.0.1)
25
+ git (1.8.1)
26
+ rchardet (~> 1.8)
27
+ github_api (0.19.0)
24
28
  addressable (~> 2.4)
25
29
  descendants_tracker (~> 0.0.4)
26
- faraday (~> 0.8)
30
+ faraday (>= 0.8, < 2)
27
31
  hashie (~> 3.5, >= 3.5.2)
28
32
  oauth2 (~> 1.0)
29
- hashie (3.5.7)
33
+ hashie (3.6.0)
30
34
  highline (1.7.10)
31
35
  i18n (1.2.0)
32
36
  concurrent-ruby (~> 1.0)
33
37
  json (1.8.6)
34
- juwelier (2.1.3)
38
+ juwelier (2.4.9)
35
39
  builder
36
- bundler (>= 1.13)
37
- git (>= 1.2.5)
40
+ bundler
41
+ git
38
42
  github_api
39
- highline (>= 1.6.15)
40
- nokogiri (>= 1.5.10)
43
+ highline
44
+ kamelcase (~> 0)
45
+ nokogiri
46
+ psych
41
47
  rake
42
48
  rdoc
43
- semver
44
- jwt (1.5.6)
49
+ semver2
50
+ jwt (2.2.2)
51
+ kamelcase (0.0.2)
52
+ semver2 (~> 3)
45
53
  method_source (0.9.2)
46
- mini_portile2 (2.3.0)
54
+ mini_portile2 (2.5.0)
47
55
  minitest (5.11.3)
48
- multi_json (1.13.1)
56
+ multi_json (1.15.0)
49
57
  multi_xml (0.6.0)
50
- multipart-post (2.0.0)
51
- nokogiri (1.8.4)
52
- mini_portile2 (~> 2.3.0)
53
- oauth2 (1.4.0)
54
- faraday (>= 0.8, < 0.13)
55
- jwt (~> 1.0)
58
+ multipart-post (2.1.1)
59
+ nokogiri (1.11.2)
60
+ mini_portile2 (~> 2.5.0)
61
+ racc (~> 1.4)
62
+ oauth2 (1.4.4)
63
+ faraday (>= 0.8, < 2.0)
64
+ jwt (>= 1.0, < 3.0)
56
65
  multi_json (~> 1.3)
57
66
  multi_xml (~> 0.5)
58
67
  rack (>= 1.2, < 3)
@@ -63,12 +72,16 @@ GEM
63
72
  pry-byebug (3.6.0)
64
73
  byebug (~> 10.0)
65
74
  pry (~> 0.10)
66
- public_suffix (3.0.2)
67
- rack (2.0.5)
68
- rake (12.3.1)
75
+ psych (3.3.1)
76
+ public_suffix (4.0.6)
77
+ racc (1.5.2)
78
+ rack (2.2.3)
79
+ rake (13.0.3)
80
+ rchardet (1.8.0)
69
81
  rdoc (3.12.2)
70
82
  json (~> 1.4)
71
- semver (1.0.1)
83
+ ruby2_keywords (0.0.4)
84
+ semver2 (3.4.2)
72
85
  simplecov (0.16.1)
73
86
  docile (~> 1.1)
74
87
  json (>= 1.8, < 3)
@@ -87,7 +100,7 @@ DEPENDENCIES
87
100
  activesupport
88
101
  bundler (~> 1.0)
89
102
  commander
90
- juwelier (~> 2.1.0)
103
+ juwelier (~> 2.4.9)
91
104
  pry-byebug
92
105
  rdoc (~> 3.12)
93
106
  simplecov
data/README.markdown CHANGED
@@ -100,6 +100,13 @@ Contributing to pfab
100
100
  is fine, but please isolate to its own commit so I can cherry-pick
101
101
  around it.
102
102
 
103
+ Releasing
104
+ -----------------------------------------
105
+
106
+ - modify version.rb
107
+ - ```rake gemspec:release```
108
+ - ```rake gemcutter:release```
109
+
103
110
  Copyright
104
111
  ---------
105
112
 
data/lib/pfab/cli.rb CHANGED
@@ -128,7 +128,7 @@ module Pfab
128
128
  elsif $verbose
129
129
  puts_and_system "kubectl describe pods -l #{selector}"
130
130
  else
131
- puts_and_system "kubectl get ingresses,jobs,services,cronjobs,deployments,pods --include-uninitialized=true -l #{selector}"
131
+ puts_and_system "kubectl get ingresses,jobs,services,cronjobs,deployments,pods -l #{selector}"
132
132
  end
133
133
  end
134
134
  end
@@ -148,7 +148,7 @@ module Pfab
148
148
  env_vars = yy.env_vars(app_name).
149
149
  reject { |v| v.has_key? :valueFrom }
150
150
 
151
- env_var_string = env_vars.map { |item| "#{item[:name]}=#{item[:value]}" }.join(" ")
151
+ env_var_string = env_vars.map { |item| "#{item[:name]}=\"#{item[:value]}\"" }.join(" ")
152
152
  options.default command: @apps[app_name][:command]
153
153
 
154
154
  puts_and_system "#{env_var_string} #{options.command}"
@@ -186,6 +186,11 @@ module Pfab
186
186
  def cmd_apply
187
187
  set_kube_context
188
188
  get_apps.each do |app_name|
189
+ app = @apps[app_name]
190
+ if app[:deployable_type] == "cron"
191
+ deployed_name = deployed_name(app)
192
+ puts_and_system("kubectl delete cronjob -l deployed-name=#{deployed_name}")
193
+ end
189
194
  puts_and_system("kubectl apply -f .application-k8s-#{$env}-#{app_name}.yaml")
190
195
  puts_and_system("git tag release-#{$env}-#{app_name}-#{Time.now.strftime("%Y-%m-%d-%H-%M-%S")} HEAD")
191
196
  end
@@ -256,6 +261,10 @@ module Pfab
256
261
  puts "Generated #{wrote}"
257
262
  end
258
263
 
264
+ def deployed_name(app)
265
+ [app[:application], app[:deployable_type], app[:deployable]].join("-")
266
+ end
267
+
259
268
  def get_current_sha
260
269
  `git rev-parse --short --verify HEAD`.chomp
261
270
  end
@@ -17,7 +17,6 @@ module Pfab
17
17
  app_vars.dig(@data["env"], key) || app_vars[key]
18
18
  end
19
19
 
20
-
21
20
  def cpu(req_type)
22
21
  default_cpu_string = @data["config"]["default_cpu_string"] || "50m/250m"
23
22
  (request, limit) = (get("cpu") || default_cpu_string).split("/")
@@ -44,44 +43,44 @@ module Pfab
44
43
  end
45
44
 
46
45
  def env_vars
46
+ env_vars = { "DEPLOYED_NAME": { value: @data['deployed_name'] } }
47
47
 
48
- env_vars = [
49
- { name: "DEPLOYED_NAME", value: @data['deployed_name'] },
50
- ]
51
-
48
+ # load defaults
52
49
  load_env_vars(env_vars, @data.dig("application_yaml", :environment))
53
- load_env_vars(env_vars, @data.dig("application_yaml", @data["env"], :environment))
54
-
55
50
  load_secrets(env_vars, @data.dig("application_yaml", :env_secrets))
51
+
52
+ # load env overrides
53
+ load_env_vars(env_vars, @data.dig("application_yaml", @data["env"], :environment))
56
54
  load_secrets(env_vars, @data.dig("application_yaml", @data["env"], :env_secrets))
57
55
 
58
- env_vars
56
+ env_vars.map do |k, v|
57
+ { name: k }.merge(v)
58
+ end
59
59
  end
60
60
 
61
61
  def load_env_vars(env_vars, hash)
62
62
  (hash || {}).each do |env_var_name, v|
63
63
  if v.to_s.start_with? "field/"
64
64
  (_, field_name) = v.split("/")
65
- env_vars << { name: env_var_name, valueFrom: {
65
+ env_vars[env_var_name] = { valueFrom: {
66
66
  fieldRef: { fieldPath: field_name }
67
67
  } }
68
68
  else
69
- env_vars << { name: env_var_name, value: v }
69
+ env_vars[env_var_name] = { value: v }
70
70
  end
71
-
72
71
  end
73
72
  end
74
73
 
75
74
  def load_secrets(env_vars, hash)
76
75
  (hash || {}).each do |env_var_name, v|
77
76
  (ref, key) = v.split("/")
78
- env_vars << { name: env_var_name,
79
- valueFrom: {
80
- secretKeyRef: {
81
- name: ref,
82
- key: key
83
- }
84
- } }
77
+ env_vars[env_var_name] = {
78
+ valueFrom: {
79
+ secretKeyRef: {
80
+ name: ref,
81
+ key: key
82
+ }
83
+ } }
85
84
  end
86
85
  end
87
86
  end
@@ -8,7 +8,7 @@ module Pfab
8
8
  def deployment
9
9
  {
10
10
  kind: "Deployment",
11
- apiVersion: "extensions/v1beta1",
11
+ apiVersion: "apps/v1",
12
12
  metadata: {
13
13
  name: @data['deployed_name'],
14
14
  namespace: @data['env'],
@@ -36,7 +36,7 @@ module Pfab
36
36
 
37
37
  def ingress
38
38
  {
39
- apiVersion: "extensions/v1beta1",
39
+ apiVersion: "networking.k8s.io/v1",
40
40
  kind: "Ingress",
41
41
  metadata: {
42
42
  name: "ingress-#{@data['deployed_name']}",
@@ -109,7 +109,7 @@ module Pfab
109
109
  def deployment
110
110
  {
111
111
  kind: "Deployment",
112
- apiVersion: "extensions/v1beta1",
112
+ apiVersion: "apps/v1",
113
113
  metadata: {
114
114
  name: @data['deployed_name'],
115
115
  namespace: @data['env'],
data/lib/pfab/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Pfab
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 8
5
- PATCH = 3
4
+ MINOR = 11
5
+ PATCH = 0
6
6
  BUILD = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
data/pfab.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: pfab 0.8.3 ruby lib
5
+ # stub: pfab 0.11.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "pfab".freeze
9
- s.version = "0.8.3"
9
+ s.version = "0.11.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Jeff Dwyer".freeze]
14
- s.date = "2019-01-23"
14
+ s.date = "2021-11-30"
15
15
  s.description = "k8s helper".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.executables = ["pfab".freeze]
@@ -55,7 +55,7 @@ Gem::Specification.new do |s|
55
55
  s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
56
56
  s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
57
57
  s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
58
- s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
58
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
59
59
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
60
60
  s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
61
61
  else
@@ -64,7 +64,7 @@ Gem::Specification.new do |s|
64
64
  s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
65
65
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
66
66
  s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
67
- s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
67
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
68
68
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
69
69
  s.add_dependency(%q<test-unit>.freeze, [">= 0"])
70
70
  end
@@ -74,7 +74,7 @@ Gem::Specification.new do |s|
74
74
  s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
75
75
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
76
76
  s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
77
- s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
77
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
78
78
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
79
79
  s.add_dependency(%q<test-unit>.freeze, [">= 0"])
80
80
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pfab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-23 00:00:00.000000000 Z
11
+ date: 2021-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.1.0
89
+ version: 2.4.9
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.1.0
96
+ version: 2.4.9
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: simplecov
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +155,7 @@ homepage: http://github.com/prefab-cloud/pfab
155
155
  licenses:
156
156
  - MIT
157
157
  metadata: {}
158
- post_install_message:
158
+ post_install_message:
159
159
  rdoc_options: []
160
160
  require_paths:
161
161
  - lib
@@ -170,9 +170,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  - !ruby/object:Gem::Version
171
171
  version: '0'
172
172
  requirements: []
173
- rubyforge_project:
173
+ rubyforge_project:
174
174
  rubygems_version: 2.7.8
175
- signing_key:
175
+ signing_key:
176
176
  specification_version: 4
177
177
  summary: helper gem
178
178
  test_files: []