pfab 0.58.19 → 0.58.21

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: f7691bb5b1e776fa0a627d0c0c310fd4487b00840d7696479b1cf73564e586fc
4
- data.tar.gz: 1c9c35389d9d7afd8a8688bc01cdd50219aa6d525a0f311ac6201706a15dc9d9
3
+ metadata.gz: 0ae171cf942f1ee9f5226810a96169ddc0f5d1ef1bb715baaebc42dbc7dd027d
4
+ data.tar.gz: 98b9d183e651a03c8aa29d652a660ff4e4d2d2c8e80dba728ec41f0c7d2334c9
5
5
  SHA512:
6
- metadata.gz: 0b2987d1d0aa78f625c948bb39af2f6c675d0f2f609214ff57311021ad1364e55d79582b4e857189b5cf4fb14ec37b9cc4a43426eda8a8510692a37e527f5b6d
7
- data.tar.gz: 6d9ab217334a5e06f1f2604d1b9dae6d4611707c14ae0b4d220fe7b1e0935ce0102d0c32731653e28707586f083da1a923f0d34482d66c34dd16672b33851ce9
6
+ metadata.gz: 8559ce5e8df9cd2e193e25fa553ffe08f54074be2abc1a13bee545df398824ee0d212947bd58ac290f2137e0d2f6cb6ff0fa860d9c7ec8bb0c07a7fca61dc6bb
7
+ data.tar.gz: 14095425002f7207519ddfb63bdfa93da9c95311884c83d3cfad2d5dc2385342ffc027dd109b79718d4c926c8e46a43a39e1b9ef2cca888aa265a1007feb15ef
data/Gemfile.lock CHANGED
@@ -72,12 +72,12 @@ GEM
72
72
  kamelcase (0.0.2)
73
73
  semver2 (~> 3)
74
74
  method_source (1.0.0)
75
- mini_portile2 (2.8.8)
75
+ mini_portile2 (2.8.9)
76
76
  minitest (5.22.3)
77
77
  multi_json (1.15.0)
78
78
  multi_xml (0.6.0)
79
79
  multipart-post (2.1.1)
80
- nokogiri (1.18.4)
80
+ nokogiri (1.18.9)
81
81
  mini_portile2 (~> 2.8.2)
82
82
  racc (~> 1.4)
83
83
  oauth2 (1.4.11)
data/lib/pfab/cli.rb CHANGED
@@ -352,23 +352,38 @@ module Pfab
352
352
  cache_image_name = "#{container_repository}/#{image_name}:cache"
353
353
  cache_args = "--cache-from type=registry,ref=#{cache_image_name} --cache-to type=registry,ref=#{cache_image_name},mode=max"
354
354
  say "Using Docker registry cache: #{cache_image_name}"
355
+ elsif !docker_container_driver_available? && !$disable_docker_registry_cache
356
+ say "Docker registry caching not available - docker-container driver not found. Set up with: docker buildx create --driver docker-container --use"
355
357
  end
356
358
 
357
- build_cmd = "docker buildx build --tag #{image_name} --platform linux/amd64 #{build_args} #{cache_args} ."
358
- puts build_cmd
359
- result = system(build_cmd)
359
+ if docker_container_driver_available?
360
+ say "Using docker-container driver - building and pushing directly to avoid local tagging issues"
361
+ # When using docker-container driver, build and push directly since image won't be in local docker
362
+ build_cmd = "docker buildx build --tag #{image_name}:#{rev} --tag #{full_image_name} --platform linux/amd64 #{build_args} #{cache_args} --push ."
363
+ puts build_cmd
364
+ result = system(build_cmd)
360
365
 
361
- puts "Build Result #{result}"
366
+ puts "Build Result #{result}"
367
+ return result
368
+ else
369
+ say "Using default docker driver - building locally then tagging and pushing"
370
+ # Traditional build, tag, and push workflow for local docker
371
+ build_cmd = "docker buildx build --tag #{image_name} --platform linux/amd64 #{build_args} #{cache_args} ."
372
+ puts build_cmd
373
+ result = system(build_cmd)
362
374
 
363
- if result
364
- puts_and_system "docker tag #{image_name}:latest #{image_name}:#{rev}"
365
- puts_and_system "docker tag #{image_name}:#{rev} #{full_image_name}"
375
+ puts "Build Result #{result}"
366
376
 
367
- puts_and_system "docker push #{container_repository}/#{image_name}:#{rev}"
368
- return true
369
- else
370
- say "Build Did Not Succeed"
371
- return false
377
+ if result
378
+ puts_and_system "docker tag #{image_name} #{image_name}:#{rev}"
379
+ puts_and_system "docker tag #{image_name}:#{rev} #{full_image_name}"
380
+
381
+ puts_and_system "docker push #{container_repository}/#{image_name}:#{rev}"
382
+ return true
383
+ else
384
+ say "Build Did Not Succeed"
385
+ return false
386
+ end
372
387
  end
373
388
 
374
389
  end
@@ -509,10 +524,18 @@ module Pfab
509
524
  (name == "all") ? deployables.keys : [name]
510
525
  end
511
526
 
527
+ def docker_container_driver_available?
528
+ output = `docker buildx ls 2>/dev/null`
529
+ output.lines.any? { |line| line.match(/^\S+\s+docker-container/) }
530
+ end
531
+
512
532
  def should_use_registry_cache?
513
533
  # Disable flag takes highest precedence
514
534
  return false if $disable_docker_registry_cache
515
535
 
536
+ # Registry cache requires docker-container driver - this is mandatory
537
+ return false unless docker_container_driver_available?
538
+
516
539
  # Enable flag takes precedence over auto-detection
517
540
  return true if $enable_docker_registry_cache
518
541
 
data/lib/pfab/version.rb CHANGED
@@ -2,7 +2,7 @@ module Pfab
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 58
5
- PATCH = 19
5
+ PATCH = 21
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.58.19 ruby lib
5
+ # stub: pfab 0.58.21 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "pfab".freeze
9
- s.version = "0.58.19".freeze
9
+ s.version = "0.58.21".freeze
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 = "2025-08-19"
14
+ s.date = "2025-08-26"
15
15
  s.description = "k8s helper".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.executables = ["pfab".freeze]
@@ -53,7 +53,7 @@ Gem::Specification.new do |s|
53
53
 
54
54
  s.specification_version = 4
55
55
 
56
- s.add_runtime_dependency(%q<commander>.freeze, [">= 0".freeze])
56
+ s.add_runtime_dependency(%q<commander>.freeze, ["~> 4.6".freeze])
57
57
  s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0".freeze])
58
58
  s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0".freeze])
59
59
  s.add_runtime_dependency(%q<styled_yaml>.freeze, ["~> 0.0.1".freeze])
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.58.19
4
+ version: 0.58.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-19 00:00:00.000000000 Z
11
+ date: 2025-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander