pfab 0.18.0 → 0.21.0

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: 39b274de173e627baf79bb67bceee55639a095a503709b3dc8b96076d6374e93
4
- data.tar.gz: c94f1bce1be02fbe2158d6a1b51fede74379bf5a2234ec4fe53f08045d24171f
3
+ metadata.gz: 27a890e2f61bd9bc6199fe0274e29a31e84746e7525e78db1d4c6aa521599fec
4
+ data.tar.gz: 256394a7e22e8396c7a7a48e1b719cc2d0d70f82061dd7ce76766ce6dc13e5e4
5
5
  SHA512:
6
- metadata.gz: 9950a8bd021e9f1cbd2a41463a7a1a121e62d72b4841f0e798beb7b4788cb560b0b665aa5dc9d300031100efef71f9f466d257b67a6c35f4648bb010edc0d9cc
7
- data.tar.gz: 632de04acb276119e836be46d479b10d32ae38598bd09497f5d1eb3aad95e3df4d8a3c1d9b5674ff60e287fcd4cd5ed10460a62d1590f245a8961b42744a3bf6
6
+ metadata.gz: fbfc48c374b2014452e18bcb00f0fc58d81058e592bc842106de08f472c8e7841896b4a809d34dfabe5dbdc59f164df86f053dc4b93916a90dca9ab4134e73a2
7
+ data.tar.gz: e319e0ee8b66448ddcc084fb1dafb871b9e2b0ea4092966deebcb53b15e6dad69e6a79807b406b1281bd259154e712d2051ce2ba83e02ae9bc11bf882836213a
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 2.6.9
1
+ ruby 3.0.3
data/CODEOWNERS ADDED
@@ -0,0 +1 @@
1
+ * @prefab-cloud/prefabdevs @prefab-cloud/prefabmaintainers @prefab-cloud/prefabadmins
data/Gemfile.lock CHANGED
@@ -18,7 +18,7 @@ GIT
18
18
  GEM
19
19
  remote: https://rubygems.org/
20
20
  specs:
21
- activesupport (5.2.2)
21
+ activesupport (5.2.4.3)
22
22
  concurrent-ruby (~> 1.0, >= 1.0.2)
23
23
  i18n (>= 0.7, < 2)
24
24
  minitest (~> 5.1)
@@ -30,7 +30,7 @@ GEM
30
30
  coderay (1.1.2)
31
31
  commander (4.4.6)
32
32
  highline (~> 1.7.2)
33
- concurrent-ruby (1.1.4)
33
+ concurrent-ruby (1.1.9)
34
34
  descendants_tracker (0.0.4)
35
35
  thread_safe (~> 0.3, >= 0.3.1)
36
36
  docile (1.3.1)
@@ -53,7 +53,7 @@ GEM
53
53
  faraday-net_http_persistent (1.2.0)
54
54
  faraday-patron (1.0.0)
55
55
  faraday-rack (1.0.0)
56
- git (1.9.1)
56
+ git (1.11.0)
57
57
  rchardet (~> 1.8)
58
58
  github_api (0.19.0)
59
59
  addressable (~> 2.4)
@@ -63,20 +63,20 @@ GEM
63
63
  oauth2 (~> 1.0)
64
64
  hashie (3.6.0)
65
65
  highline (1.7.10)
66
- i18n (1.2.0)
66
+ i18n (1.8.11)
67
67
  concurrent-ruby (~> 1.0)
68
68
  json (1.8.6)
69
69
  jwt (2.3.0)
70
70
  kamelcase (0.0.2)
71
71
  semver2 (~> 3)
72
72
  method_source (0.9.2)
73
- mini_portile2 (2.6.1)
74
- minitest (5.11.3)
73
+ mini_portile2 (2.8.0)
74
+ minitest (5.15.0)
75
75
  multi_json (1.15.0)
76
76
  multi_xml (0.6.0)
77
77
  multipart-post (2.1.1)
78
- nokogiri (1.12.5)
79
- mini_portile2 (~> 2.6.1)
78
+ nokogiri (1.13.6)
79
+ mini_portile2 (~> 2.8.0)
80
80
  racc (~> 1.4)
81
81
  oauth2 (1.4.7)
82
82
  faraday (>= 0.8, < 2.0)
@@ -109,7 +109,7 @@ GEM
109
109
  test-unit (3.2.9)
110
110
  power_assert
111
111
  thread_safe (0.3.6)
112
- tzinfo (1.2.5)
112
+ tzinfo (1.2.9)
113
113
  thread_safe (~> 0.1)
114
114
 
115
115
  PLATFORMS
@@ -126,4 +126,4 @@ DEPENDENCIES
126
126
  test-unit
127
127
 
128
128
  BUNDLED WITH
129
- 1.17.2
129
+ 2.3.5
data/README.markdown CHANGED
@@ -117,9 +117,9 @@ Releasing
117
117
  - modify version.rb
118
118
  - ```bundle exec rake gemspec```
119
119
  - ```git commit ```
120
- - ```bundle exec rake git:release```
121
- - ```bundle exec rake build```
122
- - ```gem push pkg/pfab-0.12.0.gem```
120
+ - ```REMOTE_BRANCH=main LOCAL_BRANCH=main bundle exec rake git:release```
121
+ - ```REMOTE_BRANCH=main LOCAL_BRANCH=main bundle exec rake build```
122
+ - ```gem push pkg/pfab-0.15.0.gem```
123
123
 
124
124
  Copyright
125
125
  ---------
data/lib/pfab/cli.rb CHANGED
@@ -209,11 +209,12 @@ module Pfab
209
209
 
210
210
  full_image_name = "#{container_repository}/#{image_name}:#{rev}"
211
211
 
212
- cmd = "docker images -q #{full_image_name}"
212
+ # return 0 if image exists 1 if not
213
+ cmd = "docker manifest inspect #{full_image_name} > /dev/null ; echo $?"
213
214
  say "Looking for images with #{cmd}"
214
- existing = `#{cmd}`
215
+ existing = `#{cmd}`.strip
215
216
 
216
- if !existing.to_s.empty? && !force
217
+ if existing == "0" && !force
217
218
  say "Found image #{full_image_name} already, skipping prebuild, build & push"
218
219
  return true
219
220
  end
@@ -234,13 +235,23 @@ module Pfab
234
235
  end
235
236
  end
236
237
 
237
- puts_and_system "docker build -t #{image_name} --platform amd64 ."
238
+ build_cmd = "docker build -t #{image_name} --platform amd64 ."
239
+ puts build_cmd
240
+ result = system(build_cmd)
238
241
 
239
- puts_and_system "docker tag #{image_name}:latest #{image_name}:#{rev}"
240
- puts_and_system "docker tag #{image_name}:#{rev} #{full_image_name}"
242
+ puts "Build Result #{result}"
243
+
244
+ if result
245
+ puts_and_system "docker tag #{image_name}:latest #{image_name}:#{rev}"
246
+ puts_and_system "docker tag #{image_name}:#{rev} #{full_image_name}"
247
+
248
+ puts_and_system "docker push #{container_repository}/#{image_name}:#{rev}"
249
+ return true
250
+ else
251
+ say "Build Did Not Succeed"
252
+ return false
253
+ end
241
254
 
242
- puts_and_system "docker push #{container_repository}/#{image_name}:#{rev}"
243
- return true
244
255
  end
245
256
 
246
257
  def yy
@@ -263,7 +274,7 @@ module Pfab
263
274
  end
264
275
 
265
276
  def get_current_sha
266
- `git rev-parse --short --verify HEAD`.chomp
277
+ `git rev-parse --short=8 --verify HEAD`.chomp
267
278
  end
268
279
 
269
280
  def set_kube_context
@@ -42,8 +42,17 @@ module Pfab
42
42
  }
43
43
  end
44
44
 
45
+
46
+ def deploy_id
47
+ "#{@data['application']}.#{application_type}.#{@data['deployed_name']}"
48
+ end
49
+
45
50
  def env_vars
46
- env_vars = { "DEPLOYED_NAME" => { value: @data['deployed_name'] } }
51
+
52
+ env_vars = { "DEPLOYED_NAME" => { value: @data['deployed_name'] },
53
+ "DEPLOY_ID" => { value: deploy_id },
54
+ "POD_ID" => { valueFrom: { fieldRef: { fieldPath: 'metadata.name' } } }
55
+ }
47
56
 
48
57
  # load defaults
49
58
  load_env_vars(env_vars, @data.dig("application_yaml", :environment))
@@ -5,6 +5,10 @@ module Pfab
5
5
  f << YAML.dump(job.deep_stringify_keys)
6
6
  end
7
7
 
8
+ def application_type
9
+ "cron"
10
+ end
11
+
8
12
  def job
9
13
  {
10
14
  apiVersion: "batch/v1beta1",
@@ -15,7 +19,8 @@ module Pfab
15
19
  labels: {
16
20
  application: @data['application'],
17
21
  "deployed-name" => @data['deployed_name'],
18
- "application-type" => "job",
22
+ "application-type" => application_type,
23
+ "deploy-id" => deploy_id
19
24
  }
20
25
  },
21
26
  spec: {
@@ -5,6 +5,10 @@ module Pfab
5
5
  f << YAML.dump(deployment.deep_stringify_keys)
6
6
  end
7
7
 
8
+ def application_type
9
+ "daemon"
10
+ end
11
+
8
12
  def deployment
9
13
  {
10
14
  kind: "Deployment",
@@ -15,7 +19,8 @@ module Pfab
15
19
  labels: {
16
20
  application: @data['application'],
17
21
  "deployed-name" => @data['deployed_name'],
18
- "application-type" => "daemon",
22
+ "application-type" => application_type,
23
+ "deploy-id" => deploy_id
19
24
  }
20
25
  },
21
26
  spec: {
@@ -5,6 +5,10 @@ module Pfab
5
5
  f << YAML.dump(job.deep_stringify_keys)
6
6
  end
7
7
 
8
+ def application_type
9
+ "job"
10
+ end
11
+
8
12
  def job
9
13
  {
10
14
  apiVersion: "batch/v1",
@@ -15,7 +19,8 @@ module Pfab
15
19
  labels: {
16
20
  application: @data['application'],
17
21
  "deployed-name" => @data['deployed_name'],
18
- "application-type" => "job",
22
+ "application-type" => application_type,
23
+ "deploy-id" => deploy_id
19
24
  }
20
25
  },
21
26
  spec: {
@@ -21,7 +21,8 @@ module Pfab
21
21
  labels: {
22
22
  application: @data['application'],
23
23
  "deployed-name" => @data['deployed_name'],
24
- }
24
+ },
25
+ annotations: service_annotations,
25
26
  },
26
27
  spec: {
27
28
  selector: {
@@ -38,6 +39,12 @@ module Pfab
38
39
  }
39
40
  end
40
41
 
42
+ def service_annotations
43
+ h = {}
44
+ h["traefik.ingress.kubernetes.io/service.serversscheme"] = "h2c" if get("protocol") == "h2c"
45
+ h
46
+ end
47
+
41
48
  def ingress
42
49
  {
43
50
  apiVersion: "networking.k8s.io/v1",
@@ -107,7 +114,6 @@ module Pfab
107
114
  "traefik.ingress.kubernetes.io/router.entrypoints" => "websecure",
108
115
  "traefik.ingress.kubernetes.io/router.tls" => "true"
109
116
  }
110
- h["ingress.kubernetes.io/protocol"] = "h2c" if get("protocol") == "h2c"
111
117
  h
112
118
  end
113
119
 
@@ -130,6 +136,10 @@ module Pfab
130
136
  get("readinessProbe") || default_probe
131
137
  end
132
138
 
139
+ def application_type
140
+ "web"
141
+ end
142
+
133
143
  def deployment
134
144
  {
135
145
  kind: "Deployment",
@@ -140,7 +150,8 @@ module Pfab
140
150
  labels: {
141
151
  application: @data['application'],
142
152
  "deployed-name" => @data['deployed_name'],
143
- "application-type" => "web",
153
+ "application-type" => application_type,
154
+ "deploy-id" => deploy_id
144
155
  }
145
156
  },
146
157
  spec: {
data/lib/pfab/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Pfab
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 18
4
+ MINOR = 21
5
5
  PATCH = 0
6
6
  BUILD = nil
7
7
 
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.18.0 ruby lib
5
+ # stub: pfab 0.21.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "pfab".freeze
9
- s.version = "0.18.0"
9
+ s.version = "0.21.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 = "2022-07-16"
14
+ s.date = "2022-07-21"
15
15
  s.description = "k8s helper".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.executables = ["pfab".freeze]
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.files = [
23
23
  ".document",
24
24
  ".tool-versions",
25
+ "CODEOWNERS",
25
26
  "Gemfile",
26
27
  "Gemfile.lock",
27
28
  "LICENSE.txt",
@@ -43,31 +44,22 @@ Gem::Specification.new do |s|
43
44
  ]
44
45
  s.homepage = "http://github.com/prefab-cloud/pfab".freeze
45
46
  s.licenses = ["MIT".freeze]
46
- s.rubygems_version = "3.0.3.1".freeze
47
+ s.rubygems_version = "3.2.32".freeze
47
48
  s.summary = "helper gem".freeze
48
49
 
49
50
  if s.respond_to? :specification_version then
50
51
  s.specification_version = 4
52
+ end
51
53
 
52
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
- s.add_runtime_dependency(%q<commander>.freeze, [">= 0"])
54
- s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
55
- s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
56
- s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
57
- s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
58
- s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
59
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
60
- s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
61
- else
62
- s.add_dependency(%q<commander>.freeze, [">= 0"])
63
- s.add_dependency(%q<activesupport>.freeze, [">= 0"])
64
- s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
65
- s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
66
- s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
67
- s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
68
- s.add_dependency(%q<simplecov>.freeze, [">= 0"])
69
- s.add_dependency(%q<test-unit>.freeze, [">= 0"])
70
- end
54
+ if s.respond_to? :add_runtime_dependency then
55
+ s.add_runtime_dependency(%q<commander>.freeze, [">= 0"])
56
+ s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
57
+ s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
58
+ s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
59
+ s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
60
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
61
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
62
+ s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
71
63
  else
72
64
  s.add_dependency(%q<commander>.freeze, [">= 0"])
73
65
  s.add_dependency(%q<activesupport>.freeze, [">= 0"])
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.18.0
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-16 00:00:00.000000000 Z
11
+ date: 2022-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -133,6 +133,7 @@ extra_rdoc_files:
133
133
  files:
134
134
  - ".document"
135
135
  - ".tool-versions"
136
+ - CODEOWNERS
136
137
  - Gemfile
137
138
  - Gemfile.lock
138
139
  - LICENSE.txt
@@ -170,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
171
  - !ruby/object:Gem::Version
171
172
  version: '0'
172
173
  requirements: []
173
- rubygems_version: 3.0.3.1
174
+ rubygems_version: 3.2.32
174
175
  signing_key:
175
176
  specification_version: 4
176
177
  summary: helper gem