beaker-docker 2.4.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|