beaker-docker 2.3.1 → 2.5.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: 1ae0aa6a1dd9a7aaf3e98ab02dcc336bf1b34f745be84b29340fde59dcd381ea
4
- data.tar.gz: f6f46aec3f55bf0363cad9c26df8f425000a2b15037aa6f1a904d378ea95ba3f
3
+ metadata.gz: 1b71f56e85f3587c0e5a206f50e0076dc720ee1439190ff174106433042702df
4
+ data.tar.gz: 6ecc500404ea4ffb79d4e25ad3eaea8dab76dbba20551eae2f48872c638ed44c
5
5
  SHA512:
6
- metadata.gz: 9eac5632b11d070e6803e8b4e7946b29989641d37ed26388a48ceee9701b7751a0e2c8aeb0ffb4b682147520f93b2bf59a09de5821e024eb9d5c97eca33b4d1f
7
- data.tar.gz: f85e38fc6d09f6165b9b20f04594cb8d93284586abc48c9221b1650243eb38718be0b61238b08e9cda8c67dda847e075d62ed37f9cb794b5af149e5bc147182b
6
+ metadata.gz: c3382b63801a0a3ecaa409337ac240e8b9565892120a2e62285a7436047fae856384476b6d9427cf4ebbbe96b7470bec360d42d6cb765cffcbefe1adce210821
7
+ data.tar.gz: a70861121d80a3e16b1abadf7b03ef1925a04ad8d87c6dfe71abd8e19e0e335ab44ebc16f8c24fba2d2ec483dcbea7681ffcfb303b67a0aca4f0ab717b7390a7
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.5.0](https://github.com/voxpupuli/beaker-docker/tree/2.5.0) (2024-09-20)
4
+
5
+ [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.4.0...2.5.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - add ContainerDocker and ContainerSwarm [\#145](https://github.com/voxpupuli/beaker-docker/pull/145) ([evgeni](https://github.com/evgeni))
10
+ - Add ContainerPodman class [\#130](https://github.com/voxpupuli/beaker-docker/pull/130) ([bastelfreak](https://github.com/bastelfreak))
11
+
12
+ **Merged pull requests:**
13
+
14
+ - fix tests after Beaker::Platform refactoring [\#146](https://github.com/voxpupuli/beaker-docker/pull/146) ([evgeni](https://github.com/evgeni))
15
+
16
+ ## [2.4.0](https://github.com/voxpupuli/beaker-docker/tree/2.4.0) (2024-08-13)
17
+
18
+ [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.3.1...2.4.0)
19
+
20
+ **Implemented enhancements:**
21
+
22
+ - Arch Linux: remove redundant system updates [\#142](https://github.com/voxpupuli/beaker-docker/pull/142) ([bastelfreak](https://github.com/bastelfreak))
23
+
3
24
  ## [2.3.1](https://github.com/voxpupuli/beaker-docker/tree/2.3.1) (2024-07-08)
4
25
 
5
26
  [Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.3.0...2.3.1)
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'beaker/hypervisor/docker'
4
+
5
+ module Beaker
6
+ class Container < Beaker::Docker
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'beaker/hypervisor/container'
4
+
5
+ module Beaker
6
+ class ContainerDocker < Beaker::Container
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'beaker/hypervisor/container'
4
+
5
+ module Beaker
6
+ class ContainerPodman < Beaker::Container
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'beaker/hypervisor/container'
4
+
5
+ module Beaker
6
+ class ContainerSwarm < Beaker::Container
7
+ end
8
+ end
@@ -392,8 +392,6 @@ module Beaker
392
392
  container.exec(%w[ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key])
393
393
  container.exec(%w[sed -ri 's/^#?UsePAM .*/UsePAM no/' /etc/ssh/sshd_config])
394
394
  when /archlinux/
395
- container.exec(%w[pacman --noconfirm -Sy archlinux-keyring])
396
- container.exec(%w[pacman --noconfirm -Syu])
397
395
  container.exec(%w[pacman -S --noconfirm openssh])
398
396
  container.exec(%w[ssh-keygen -A])
399
397
  container.exec(%w[sed -ri 's/^#?UsePAM .*/UsePAM no/' /etc/ssh/sshd_config])
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BeakerDocker
4
- VERSION = '2.3.1'
4
+ VERSION = '2.5.0'
5
5
  end
@@ -6,7 +6,6 @@ require 'fakefs/spec_helpers'
6
6
  module Beaker
7
7
  platforms = [
8
8
  'ubuntu-14.04-x86_64',
9
- 'cumulus-2.2-x86_64',
10
9
  'fedora-22-x86_64',
11
10
  'centos-7-x86_64',
12
11
  'sles-12-x86_64',
@@ -190,14 +189,14 @@ module Beaker
190
189
  end
191
190
 
192
191
  it 'accepts alpine as valid platform' do
193
- host['platform'] = 'alpine-3.8-x86_64'
192
+ host['platform'] = Beaker::Platform.new('alpine-3.8-x86_64')
194
193
  expect(test_container).to receive(:exec).at_least(:twice)
195
194
  docker.install_ssh_components(test_container, host)
196
195
  end
197
196
 
198
197
  it 'raises an error with an unsupported platform' do
199
- host['platform'] = 'boogeyman-2000-x86_64'
200
- expect { docker.install_ssh_components(test_container, host) }.to raise_error(RuntimeError, /boogeyman/)
198
+ host['platform'] = Beaker::Platform.new('windows-11-64')
199
+ expect { docker.install_ssh_components(test_container, host) }.to raise_error(RuntimeError, /windows/)
201
200
  end
202
201
  end
203
202
 
@@ -632,16 +631,16 @@ module Beaker
632
631
  describe '#dockerfile_for' do
633
632
  FakeFS.deactivate!
634
633
  it 'raises on an unsupported platform' do
635
- expect { docker.send(:dockerfile_for, { 'platform' => 'a_sidewalk', 'image' => 'foobar' }) }.to raise_error(/platform a_sidewalk not yet supported/)
634
+ expect { docker.send(:dockerfile_for, make_host('none', { 'platform' => 'solaris-11-64', 'image' => 'foobar' })) }.to raise_error(/platform solaris-11-64 not yet supported/)
636
635
  end
637
636
 
638
637
  it 'sets "ENV container docker"' do
639
638
  FakeFS.deactivate!
640
639
  platforms.each do |platform|
641
- dockerfile = docker.send(:dockerfile_for, {
642
- 'platform' => platform,
643
- 'image' => 'foobar',
644
- })
640
+ dockerfile = docker.send(:dockerfile_for, make_host('none', {
641
+ 'platform' => platform,
642
+ 'image' => 'foobar',
643
+ }))
645
644
  expect(dockerfile).to match(/ENV container docker/)
646
645
  end
647
646
  end
@@ -649,15 +648,15 @@ module Beaker
649
648
  it 'adds docker_image_first_commands as RUN statements' do
650
649
  FakeFS.deactivate!
651
650
  platforms.each do |platform|
652
- dockerfile = docker.send(:dockerfile_for, {
653
- 'platform' => platform,
654
- 'image' => 'foobar',
655
- 'docker_image_first_commands' => [
656
- 'special one',
657
- 'special two',
658
- 'special three',
659
- ],
660
- })
651
+ dockerfile = docker.send(:dockerfile_for, make_host('none', {
652
+ 'platform' => platform,
653
+ 'image' => 'foobar',
654
+ 'docker_image_first_commands' => [
655
+ 'special one',
656
+ 'special two',
657
+ 'special three',
658
+ ],
659
+ }))
661
660
 
662
661
  expect(dockerfile).to match(/RUN special one\nRUN special two\nRUN special three/)
663
662
  end
@@ -666,15 +665,15 @@ module Beaker
666
665
  it 'adds docker_image_commands as RUN statements' do
667
666
  FakeFS.deactivate!
668
667
  platforms.each do |platform|
669
- dockerfile = docker.send(:dockerfile_for, {
670
- 'platform' => platform,
671
- 'image' => 'foobar',
672
- 'docker_image_commands' => [
673
- 'special one',
674
- 'special two',
675
- 'special three',
676
- ],
677
- })
668
+ dockerfile = docker.send(:dockerfile_for, make_host('none', {
669
+ 'platform' => platform,
670
+ 'image' => 'foobar',
671
+ 'docker_image_commands' => [
672
+ 'special one',
673
+ 'special two',
674
+ 'special three',
675
+ ],
676
+ }))
678
677
 
679
678
  expect(dockerfile).to match(/RUN special one\nRUN special two\nRUN special three/)
680
679
  end
@@ -683,11 +682,11 @@ module Beaker
683
682
  it 'adds docker_image_entrypoint' do
684
683
  FakeFS.deactivate!
685
684
  platforms.each do |platform|
686
- dockerfile = docker.send(:dockerfile_for, {
687
- 'platform' => platform,
688
- 'image' => 'foobar',
689
- 'docker_image_entrypoint' => '/bin/bash',
690
- })
685
+ dockerfile = docker.send(:dockerfile_for, make_host('none', {
686
+ 'platform' => platform,
687
+ 'image' => 'foobar',
688
+ 'docker_image_entrypoint' => '/bin/bash',
689
+ }))
691
690
 
692
691
  expect(dockerfile).to match(%r{ENTRYPOINT /bin/bash})
693
692
  end
@@ -695,10 +694,10 @@ module Beaker
695
694
 
696
695
  it 'uses zypper on sles' do
697
696
  FakeFS.deactivate!
698
- dockerfile = docker.send(:dockerfile_for, {
699
- 'platform' => 'sles-12-x86_64',
700
- 'image' => 'foobar',
701
- })
697
+ dockerfile = docker.send(:dockerfile_for, make_host('none', {
698
+ 'platform' => Beaker::Platform.new('sles-12-x86_64'),
699
+ 'image' => 'foobar',
700
+ }))
702
701
 
703
702
  expect(dockerfile).to match(/zypper -n in openssh/)
704
703
  end
@@ -706,10 +705,10 @@ module Beaker
706
705
  (22..39).to_a.each do |fedora_release|
707
706
  it "uses dnf on fedora #{fedora_release}" do
708
707
  FakeFS.deactivate!
709
- dockerfile = docker.send(:dockerfile_for, {
710
- 'platform' => "fedora-#{fedora_release}-x86_64",
711
- 'image' => 'foobar',
712
- })
708
+ dockerfile = docker.send(:dockerfile_for, make_host('none', {
709
+ 'platform' => Beaker::Platform.new("fedora-#{fedora_release}-x86_64"),
710
+ 'image' => 'foobar',
711
+ }))
713
712
 
714
713
  expect(dockerfile).to match(/dnf install -y sudo/)
715
714
  end
@@ -717,14 +716,14 @@ module Beaker
717
716
 
718
717
  it 'uses pacman on archlinux' do
719
718
  FakeFS.deactivate!
720
- dockerfile = docker.send(:dockerfile_for, {
721
- 'platform' => 'archlinux-current-x86_64',
722
- 'image' => 'foobar',
723
- })
719
+ dockerfile = docker.send(:dockerfile_for, make_host('none', {
720
+ 'platform' => Beaker::Platform.new('archlinux-current-x86_64'),
721
+ 'image' => 'foobar',
722
+ }))
724
723
 
725
724
  expect(dockerfile).to match(/pacman --sync --refresh --noconfirm archlinux-keyring/)
726
725
  expect(dockerfile).to match(/pacman --sync --refresh --noconfirm --sysupgrade/)
727
- expect(dockerfile).to match(/pacman --sync --noconfirm curl ntp net-tools openssh/)
726
+ expect(dockerfile).to match(/pacman --sync --noconfirm curl net-tools openssh/)
728
727
  end
729
728
  end
730
729
 
@@ -747,21 +746,21 @@ module Beaker
747
746
  end
748
747
 
749
748
  it 'execs sshd on alpine' do
750
- host['platform'] = 'alpine-3.8-x86_64'
749
+ host['platform'] = Beaker::Platform.new('alpine-3.8-x86_64')
751
750
  expect(test_container).to receive(:exec).with(array_including('sed'))
752
751
  expect(test_container).to receive(:exec).with(%w[/usr/sbin/sshd])
753
752
  docker.send(:fix_ssh, test_container, host)
754
753
  end
755
754
 
756
755
  it 'restarts ssh service on ubuntu' do
757
- host['platform'] = 'ubuntu-20.04-x86_64'
756
+ host['platform'] = Beaker::Platform.new('ubuntu-20.04-x86_64')
758
757
  expect(test_container).to receive(:exec).with(array_including('sed'))
759
758
  expect(test_container).to receive(:exec).with(%w[service ssh restart])
760
759
  docker.send(:fix_ssh, test_container, host)
761
760
  end
762
761
 
763
762
  it 'restarts sshd service otherwise' do
764
- host['platform'] = 'boogeyman-2000-x86_64'
763
+ host['platform'] = Beaker::Platform.new('centos-6-x86_64')
765
764
  expect(test_container).to receive(:exec).with(array_including('sed'))
766
765
  expect(test_container).to receive(:exec).with(%w[service sshd restart])
767
766
  docker.send(:fix_ssh, test_container, host)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2024-07-08 00:00:00.000000000 Z
14
+ date: 2024-09-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: fakefs
@@ -151,6 +151,10 @@ files:
151
151
  - docker.md
152
152
  - lib/beaker-docker.rb
153
153
  - lib/beaker-docker/version.rb
154
+ - lib/beaker/hypervisor/container.rb
155
+ - lib/beaker/hypervisor/container_docker.rb
156
+ - lib/beaker/hypervisor/container_podman.rb
157
+ - lib/beaker/hypervisor/container_swarm.rb
154
158
  - lib/beaker/hypervisor/docker.rb
155
159
  - spec/beaker/hypervisor/docker_spec.rb
156
160
  - spec/spec_helper.rb
@@ -176,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
180
  - !ruby/object:Gem::Version
177
181
  version: '0'
178
182
  requirements: []
179
- rubygems_version: 3.5.11
183
+ rubygems_version: 3.5.16
180
184
  signing_key:
181
185
  specification_version: 4
182
186
  summary: Docker hypervisor for Beaker acceptance testing framework