beaker-docker 2.4.0 → 2.5.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 +4 -4
- data/CHANGELOG.md +21 -0
- data/lib/beaker/hypervisor/container.rb +8 -0
- data/lib/beaker/hypervisor/container_docker.rb +8 -0
- data/lib/beaker/hypervisor/container_podman.rb +8 -0
- data/lib/beaker/hypervisor/container_swarm.rb +8 -0
- data/lib/beaker/hypervisor/docker.rb +4 -4
- data/lib/beaker-docker/version.rb +1 -1
- data/spec/beaker/hypervisor/docker_spec.rb +47 -48
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 663845682645f35c699e62cb65407975264952a259b7f80c962130d63750ec5c
|
4
|
+
data.tar.gz: d841fc687d1e0b2478d0145aea14149595b37c015b048fb4e6f4eb7f41e70f21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fe5794c4c016d120c4ea55f2ee9ae6371be415664a727e1e48bebd61ffe7f79fed7563b15c694b77151e890c056273cd1d1ec1003191bfe1094c91ba5676616
|
7
|
+
data.tar.gz: 1f39d9e2c41d9eb34188cef8ca0942478f1cf7fbf32404d7f25e6461cdfadc21dba7d110288458dfd2d5fe1615a084643c9b846b57332b5f27f131677573f64e
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [2.5.1](https://github.com/voxpupuli/beaker-docker/tree/2.5.1) (2024-11-20)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.5.0...2.5.1)
|
6
|
+
|
7
|
+
**Fixed bugs:**
|
8
|
+
|
9
|
+
- Update sshd configuration \(UsePAM no, sshd\_config.d\) [\#148](https://github.com/voxpupuli/beaker-docker/pull/148) ([jay7x](https://github.com/jay7x))
|
10
|
+
|
11
|
+
## [2.5.0](https://github.com/voxpupuli/beaker-docker/tree/2.5.0) (2024-09-20)
|
12
|
+
|
13
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.4.0...2.5.0)
|
14
|
+
|
15
|
+
**Implemented enhancements:**
|
16
|
+
|
17
|
+
- add ContainerDocker and ContainerSwarm [\#145](https://github.com/voxpupuli/beaker-docker/pull/145) ([evgeni](https://github.com/evgeni))
|
18
|
+
- Add ContainerPodman class [\#130](https://github.com/voxpupuli/beaker-docker/pull/130) ([bastelfreak](https://github.com/bastelfreak))
|
19
|
+
|
20
|
+
**Merged pull requests:**
|
21
|
+
|
22
|
+
- fix tests after Beaker::Platform refactoring [\#146](https://github.com/voxpupuli/beaker-docker/pull/146) ([evgeni](https://github.com/evgeni))
|
23
|
+
|
3
24
|
## [2.4.0](https://github.com/voxpupuli/beaker-docker/tree/2.4.0) (2024-08-13)
|
4
25
|
|
5
26
|
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/2.3.1...2.4.0)
|
@@ -525,7 +525,6 @@ module Beaker
|
|
525
525
|
dockerfile += <<~DF
|
526
526
|
RUN zypper -n in openssh #{additional_packages.join(' ')} \
|
527
527
|
&& ssh-keygen -A \
|
528
|
-
&& sed -ri 's/^#?UsePAM .*/UsePAM no/' /etc/ssh/sshd_config \
|
529
528
|
&& sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/*
|
530
529
|
DF
|
531
530
|
when /archlinux/
|
@@ -534,7 +533,6 @@ module Beaker
|
|
534
533
|
&& pacman --sync --refresh --noconfirm --sysupgrade \
|
535
534
|
&& pacman --sync --noconfirm #{additional_packages.join(' ')} \
|
536
535
|
&& ssh-keygen -A \
|
537
|
-
&& sed -ri 's/^#?UsePAM .*/UsePAM no/' /etc/ssh/sshd_config \
|
538
536
|
&& systemctl enable sshd
|
539
537
|
DF
|
540
538
|
else
|
@@ -552,13 +550,15 @@ module Beaker
|
|
552
550
|
# Also, disable reverse DNS lookups to prevent every. single. ssh
|
553
551
|
# operation taking 30 seconds while the lookup times out.
|
554
552
|
# Also unbreak users with a bunch of SSH keys loaded in their keyring.
|
553
|
+
# Also unbreak CentOS9 & Fedora containers on Ubuntu 24.04 host (UsePAM no)
|
555
554
|
dockerfile += <<~DF
|
556
|
-
RUN sed -ri \
|
555
|
+
RUN find /etc/ssh/sshd_config /etc/ssh/sshd_config.d/ -type f -exec sed -ri \
|
557
556
|
-e 's/^#?PermitRootLogin .*/PermitRootLogin yes/' \
|
558
557
|
-e 's/^#?PasswordAuthentication .*/PasswordAuthentication yes/' \
|
559
558
|
-e 's/^#?UseDNS .*/UseDNS no/' \
|
559
|
+
-e 's/^#?UsePAM .*/UsePAM no/' \
|
560
560
|
-e 's/^#?MaxAuthTries.*/MaxAuthTries 1000/' \
|
561
|
-
|
561
|
+
{} \\;
|
562
562
|
DF
|
563
563
|
|
564
564
|
# Any extra commands specified for the host
|
@@ -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'] = '
|
200
|
-
expect { docker.install_ssh_components(test_container, host) }.to raise_error(RuntimeError, /
|
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' => '
|
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
|
-
|
643
|
-
|
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
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
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
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
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
|
-
|
688
|
-
|
689
|
-
|
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
|
-
|
700
|
-
|
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
|
-
|
711
|
-
|
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
|
-
|
722
|
-
|
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
|
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'] = '
|
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.
|
4
|
+
version: 2.5.1
|
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-
|
14
|
+
date: 2024-11-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.
|
183
|
+
rubygems_version: 3.5.22
|
180
184
|
signing_key:
|
181
185
|
specification_version: 4
|
182
186
|
summary: Docker hypervisor for Beaker acceptance testing framework
|