beaker-docker 3.1.3 → 3.2.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 +4 -4
- data/.github/workflows/release.yml +7 -7
- data/.github/workflows/test.yml +81 -24
- data/CHANGELOG.md +10 -0
- data/Gemfile +1 -1
- data/acceptance/config/nodes/hosts.yaml +7 -0
- data/beaker-docker.gemspec +1 -1
- data/lib/beaker/hypervisor/docker.rb +1 -1
- data/lib/beaker-docker/version.rb +1 -1
- data/spec/beaker/hypervisor/docker_spec.rb +8 -7
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3558d672e0a02e7a5847184d70b3003b173e501ff8b1023a9f606bb46c6a4852
|
|
4
|
+
data.tar.gz: '09fea7467dc98209892cecefc0be6abf7d23929cc19f6625228c333b0f1187ee'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e8afa62bf82f407c4c815503230b5b1eb5411abe98fc47c733bd597dee29cff12ab4519e33a694f5e55e65bf763c2278d1782b4e4c55f4cb8f048ef0a8a4662b
|
|
7
|
+
data.tar.gz: 369b61ead22fc95defd7a538d3f1e1bdba857d6db823107f68fe00cc6072b2b7023d2038924d55353987d6cffa9687f9493808c09c33d5d73557dcc91d0a88d3
|
|
@@ -17,14 +17,14 @@ jobs:
|
|
|
17
17
|
steps:
|
|
18
18
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
19
19
|
- name: Install Ruby
|
|
20
|
-
uses: ruby/setup-ruby@
|
|
20
|
+
uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
|
|
21
21
|
with:
|
|
22
22
|
ruby-version: 'ruby'
|
|
23
23
|
- name: Build gem
|
|
24
24
|
shell: bash
|
|
25
25
|
run: gem build --verbose *.gemspec
|
|
26
26
|
- name: Upload gem to GitHub cache
|
|
27
|
-
uses: actions/upload-artifact@
|
|
27
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
28
28
|
with:
|
|
29
29
|
name: gem-artifact
|
|
30
30
|
path: '*.gem'
|
|
@@ -39,7 +39,7 @@ jobs:
|
|
|
39
39
|
contents: write # clone repo and create release
|
|
40
40
|
steps:
|
|
41
41
|
- name: Download gem from GitHub cache
|
|
42
|
-
uses: actions/download-artifact@
|
|
42
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
43
43
|
with:
|
|
44
44
|
name: gem-artifact
|
|
45
45
|
- name: Create Release
|
|
@@ -56,7 +56,7 @@ jobs:
|
|
|
56
56
|
packages: write # publish to rubygems.pkg.github.com
|
|
57
57
|
steps:
|
|
58
58
|
- name: Download gem from GitHub cache
|
|
59
|
-
uses: actions/download-artifact@
|
|
59
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
60
60
|
with:
|
|
61
61
|
name: gem-artifact
|
|
62
62
|
- name: Publish gem to GitHub packages
|
|
@@ -73,7 +73,7 @@ jobs:
|
|
|
73
73
|
id-token: write # rubygems.org authentication
|
|
74
74
|
steps:
|
|
75
75
|
- name: Download gem from GitHub cache
|
|
76
|
-
uses: actions/download-artifact@
|
|
76
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
77
77
|
with:
|
|
78
78
|
name: gem-artifact
|
|
79
79
|
- uses: rubygems/configure-rubygems-credentials@dc5a8d8553e6ee01fc26761a49e99e733d17954a # v2.1.0
|
|
@@ -92,11 +92,11 @@ jobs:
|
|
|
92
92
|
- release-to-rubygems
|
|
93
93
|
steps:
|
|
94
94
|
- name: Download gem from GitHub cache
|
|
95
|
-
uses: actions/download-artifact@
|
|
95
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
96
96
|
with:
|
|
97
97
|
name: gem-artifact
|
|
98
98
|
- name: Install Ruby
|
|
99
|
-
uses: ruby/setup-ruby@
|
|
99
|
+
uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
|
|
100
100
|
with:
|
|
101
101
|
ruby-version: 'ruby'
|
|
102
102
|
- name: Wait for release to propagate
|
data/.github/workflows/test.yml
CHANGED
|
@@ -15,10 +15,11 @@ jobs:
|
|
|
15
15
|
runs-on: ubuntu-24.04
|
|
16
16
|
outputs:
|
|
17
17
|
ruby: ${{ steps.ruby.outputs.versions }}
|
|
18
|
+
latest_ruby: ${{ steps.latest_ruby.outputs.version }}
|
|
18
19
|
steps:
|
|
19
20
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
21
|
- name: Install Ruby 4.0
|
|
21
|
-
uses: ruby/setup-ruby@
|
|
22
|
+
uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
|
|
22
23
|
with:
|
|
23
24
|
ruby-version: '4.0'
|
|
24
25
|
bundler-cache: true
|
|
@@ -26,6 +27,9 @@ jobs:
|
|
|
26
27
|
run: bundle exec rake rubocop
|
|
27
28
|
- id: ruby
|
|
28
29
|
uses: voxpupuli/ruby-version@be0467ce7366d206b2e87f5b7a032a030120b7cb # 2.0.0
|
|
30
|
+
- id: latest_ruby
|
|
31
|
+
name: Determine newest supported Ruby
|
|
32
|
+
run: echo "version=$(echo '${{ steps.ruby.outputs.versions }}' | jq -r 'max_by(split(".") | map(tonumber))')" >> "$GITHUB_OUTPUT"
|
|
29
33
|
|
|
30
34
|
rspec:
|
|
31
35
|
runs-on: ubuntu-24.04
|
|
@@ -38,7 +42,7 @@ jobs:
|
|
|
38
42
|
steps:
|
|
39
43
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
40
44
|
- name: Install Ruby ${{ matrix.ruby }}
|
|
41
|
-
uses: ruby/setup-ruby@
|
|
45
|
+
uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
|
|
42
46
|
with:
|
|
43
47
|
ruby-version: ${{ matrix.ruby }}
|
|
44
48
|
bundler-cache: true
|
|
@@ -58,32 +62,84 @@ jobs:
|
|
|
58
62
|
steps:
|
|
59
63
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
60
64
|
- name: Install Ruby ${{ matrix.ruby }}
|
|
61
|
-
uses: ruby/setup-ruby@
|
|
65
|
+
uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
|
|
62
66
|
with:
|
|
63
67
|
ruby-version: ${{ matrix.ruby }}
|
|
64
68
|
bundler-cache: true
|
|
65
69
|
- name: Run acceptance tests
|
|
66
70
|
run: bundle exec rake test:acceptance
|
|
67
71
|
|
|
68
|
-
#
|
|
69
|
-
#
|
|
70
|
-
#
|
|
71
|
-
#
|
|
72
|
-
#
|
|
73
|
-
#
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
72
|
+
# Run Beaker itself inside a container talking to the host daemon, so the
|
|
73
|
+
# test containers are siblings. Covers both connection routing modes:
|
|
74
|
+
# gateway - in_container? detects /.dockerenv and connects via the bridge
|
|
75
|
+
# gateway and published ssh port
|
|
76
|
+
# dind - DOCKER_IN_DOCKER=true forces a direct connection to the test
|
|
77
|
+
# container's network IP
|
|
78
|
+
beaker_in_container:
|
|
79
|
+
runs-on: ubuntu-24.04
|
|
80
|
+
needs: rubocop_and_matrix
|
|
81
|
+
strategy:
|
|
82
|
+
fail-fast: false
|
|
83
|
+
matrix:
|
|
84
|
+
mode: [gateway, dind]
|
|
85
|
+
name: Docker - Beaker in container connection test (${{ matrix.mode }})
|
|
86
|
+
timeout-minutes: 15
|
|
87
|
+
steps:
|
|
88
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
89
|
+
- name: Run Beaker in docker container
|
|
90
|
+
run: |
|
|
91
|
+
docker run --rm \
|
|
92
|
+
-v "$PWD:/work" -w /work \
|
|
93
|
+
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
94
|
+
${{ matrix.mode == 'dind' && '-e DOCKER_IN_DOCKER=true' || '' }} \
|
|
95
|
+
ruby:${{ needs.rubocop_and_matrix.outputs.latest_ruby }} \
|
|
96
|
+
bash -c 'bundle install && bundle exec rake test:acceptance'
|
|
97
|
+
|
|
98
|
+
# Same as beaker_in_container, but with podman. The gateway mode exercises
|
|
99
|
+
# the /run/.containerenv detection in in_container?.
|
|
100
|
+
# Rootless podman publishes ports only in the host network namespace, so
|
|
101
|
+
# they are not reachable at the bridge gateway from a sibling container and
|
|
102
|
+
# gateway mode has to use rootful podman. dind mode connects to sibling IPs
|
|
103
|
+
# directly, which rootless podman supports once the Beaker container joins
|
|
104
|
+
# the default bridge network instead of the slirp4netns one a plain run gets.
|
|
105
|
+
# This needs netavark >= 1.6.0: older versions turn the 0.0.0.0 host ip of a
|
|
106
|
+
# port binding into a DNAT rule that never matches, so the gateway connection
|
|
107
|
+
# lands on conmon's port reservation socket and hangs. ubuntu-24.04 ships
|
|
108
|
+
# netavark 1.4.0, ubuntu-26.04 ships podman 5.7.
|
|
109
|
+
beaker_in_podman:
|
|
110
|
+
runs-on: ubuntu-26.04
|
|
111
|
+
needs: rubocop_and_matrix
|
|
112
|
+
strategy:
|
|
113
|
+
fail-fast: false
|
|
114
|
+
matrix:
|
|
115
|
+
mode: [gateway, dind]
|
|
116
|
+
name: Podman - Beaker in container connection test (${{ matrix.mode }})
|
|
117
|
+
timeout-minutes: 15
|
|
118
|
+
steps:
|
|
119
|
+
- name: Start podman
|
|
120
|
+
run: |
|
|
121
|
+
sudo systemctl stop docker.service docker.socket
|
|
122
|
+
sudo systemctl start podman.socket
|
|
123
|
+
systemctl start --user podman.socket
|
|
124
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
125
|
+
- name: Run Beaker in podman container
|
|
126
|
+
run: |
|
|
127
|
+
if [ "${{ matrix.mode }}" = gateway ]; then
|
|
128
|
+
podman='sudo podman'
|
|
129
|
+
socket=/run/podman/podman.sock
|
|
130
|
+
else
|
|
131
|
+
podman=podman
|
|
132
|
+
socket="/run/user/$(id -u)/podman/podman.sock"
|
|
133
|
+
fi
|
|
134
|
+
$podman run --rm \
|
|
135
|
+
-v "$PWD:/work" -w /work \
|
|
136
|
+
-v "$socket:/run/podman/podman.sock" \
|
|
137
|
+
-e DOCKER_HOST=unix:///run/podman/podman.sock \
|
|
138
|
+
--network podman \
|
|
139
|
+
--security-opt label=disable \
|
|
140
|
+
${{ matrix.mode == 'dind' && '-e DOCKER_IN_DOCKER=true' || '' }} \
|
|
141
|
+
ruby:${{ needs.rubocop_and_matrix.outputs.latest_ruby }} \
|
|
142
|
+
bash -c 'bundle install && bundle exec rake test:acceptance'
|
|
87
143
|
|
|
88
144
|
# verifies that podman service is a dropin replacement for docker
|
|
89
145
|
podman:
|
|
@@ -101,7 +157,7 @@ jobs:
|
|
|
101
157
|
echo "DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock" >> "$GITHUB_ENV"
|
|
102
158
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
103
159
|
- name: Install Ruby ${{ matrix.ruby }}
|
|
104
|
-
uses: ruby/setup-ruby@
|
|
160
|
+
uses: ruby/setup-ruby@de492cf36cbab201753d720ce4f4e336cd688c94 # v1.336.0
|
|
105
161
|
with:
|
|
106
162
|
ruby-version: ${{ matrix.ruby }}
|
|
107
163
|
bundler-cache: true
|
|
@@ -113,7 +169,8 @@ jobs:
|
|
|
113
169
|
needs:
|
|
114
170
|
- rubocop_and_matrix
|
|
115
171
|
- docker
|
|
116
|
-
|
|
172
|
+
- beaker_in_container
|
|
173
|
+
- beaker_in_podman
|
|
117
174
|
- podman
|
|
118
175
|
- rspec
|
|
119
176
|
runs-on: ubuntu-24.04
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.2.0](https://github.com/voxpupuli/beaker-docker/tree/3.2.0) (2026-11-02)
|
|
4
|
+
|
|
5
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/3.1.3...3.2.0)
|
|
6
|
+
|
|
7
|
+
**Implemented enhancements:**
|
|
8
|
+
|
|
9
|
+
- Support el10 hosts [\#212](https://github.com/voxpupuli/beaker-docker/pull/212) ([treydock](https://github.com/treydock))
|
|
10
|
+
- CI: re-enable beaker-in-container acceptance jobs [\#198](https://github.com/voxpupuli/beaker-docker/pull/198) ([miharp](https://github.com/miharp))
|
|
11
|
+
|
|
3
12
|
## [3.1.3](https://github.com/voxpupuli/beaker-docker/tree/3.1.3) (2026-08-21)
|
|
4
13
|
|
|
5
14
|
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/3.1.2...3.1.3)
|
|
@@ -10,6 +19,7 @@
|
|
|
10
19
|
|
|
11
20
|
**Closed issues:**
|
|
12
21
|
|
|
22
|
+
- CI: re-enable the beaker\_in\_container acceptance job to cover in-container connection routing [\#195](https://github.com/voxpupuli/beaker-docker/issues/195)
|
|
13
23
|
- `in_container?` only checks `/.dockerenv`, so the gateway connection path never triggers under Podman [\#193](https://github.com/voxpupuli/beaker-docker/issues/193)
|
|
14
24
|
- `DOCKER_IN_DOCKER=true` crashes with NoMethodError on Podman 5: `Networks[NetworkMode]` lookup assumes Docker's network naming [\#192](https://github.com/voxpupuli/beaker-docker/issues/192)
|
|
15
25
|
|
data/Gemfile
CHANGED
|
@@ -12,6 +12,13 @@ HOSTS:
|
|
|
12
12
|
- classifier
|
|
13
13
|
- default
|
|
14
14
|
docker_cmd: '["/sbin/init"]'
|
|
15
|
+
centos10:
|
|
16
|
+
platform: el-10-x86_64
|
|
17
|
+
hypervisor: docker
|
|
18
|
+
image: quay.io/centos/centos:stream10
|
|
19
|
+
roles:
|
|
20
|
+
- agent
|
|
21
|
+
docker_cmd: '["/sbin/init"]'
|
|
15
22
|
debian12:
|
|
16
23
|
platform: debian-12-x86_64
|
|
17
24
|
hypervisor: docker
|
data/beaker-docker.gemspec
CHANGED
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
|
|
|
30
30
|
s.add_development_dependency 'irb', '< 2'
|
|
31
31
|
s.add_development_dependency 'rake', '~> 13.0'
|
|
32
32
|
s.add_development_dependency 'rspec', '~> 3.0'
|
|
33
|
-
s.add_development_dependency 'voxpupuli-rubocop', '~> 5.
|
|
33
|
+
s.add_development_dependency 'voxpupuli-rubocop', '~> 5.3.0'
|
|
34
34
|
|
|
35
35
|
# Run time dependencies
|
|
36
36
|
s.add_dependency 'beaker', '>= 4', '< 8'
|
|
@@ -522,7 +522,7 @@ module Beaker
|
|
|
522
522
|
RUN apt-get update \
|
|
523
523
|
&& apt-get install -y openssh-server openssh-client #{additional_packages.join(' ')}
|
|
524
524
|
DF
|
|
525
|
-
when /el-[
|
|
525
|
+
when /el-([8-9]|10)/, /fedora-(2[2-9]|3)/, /amazon-2023/
|
|
526
526
|
dockerfile += <<~DF
|
|
527
527
|
RUN dnf clean all \
|
|
528
528
|
&& dnf install -y sudo openssh-server openssh-clients #{additional_packages.join(' ')} \
|
|
@@ -8,6 +8,7 @@ module Beaker
|
|
|
8
8
|
'ubuntu-14.04-x86_64',
|
|
9
9
|
'fedora-22-x86_64',
|
|
10
10
|
'centos-7-x86_64',
|
|
11
|
+
'el-10-x86_64',
|
|
11
12
|
'sles-12-x86_64',
|
|
12
13
|
'archlinux-2017.12.27-x86_64',
|
|
13
14
|
'amazon-2023-x86_64',
|
|
@@ -913,7 +914,7 @@ module Beaker
|
|
|
913
914
|
'platform' => platform,
|
|
914
915
|
'image' => 'foobar',
|
|
915
916
|
}))
|
|
916
|
-
expect(dockerfile).to
|
|
917
|
+
expect(dockerfile).to include('ENV container docker')
|
|
917
918
|
end
|
|
918
919
|
end
|
|
919
920
|
|
|
@@ -960,7 +961,7 @@ module Beaker
|
|
|
960
961
|
'docker_image_entrypoint' => '/bin/bash',
|
|
961
962
|
}))
|
|
962
963
|
|
|
963
|
-
expect(dockerfile).to
|
|
964
|
+
expect(dockerfile).to include('ENTRYPOINT /bin/bash')
|
|
964
965
|
end
|
|
965
966
|
end
|
|
966
967
|
|
|
@@ -971,7 +972,7 @@ module Beaker
|
|
|
971
972
|
'image' => 'foobar',
|
|
972
973
|
}))
|
|
973
974
|
|
|
974
|
-
expect(dockerfile).to
|
|
975
|
+
expect(dockerfile).to include('zypper -n in openssh')
|
|
975
976
|
end
|
|
976
977
|
|
|
977
978
|
(22..39).to_a.each do |fedora_release|
|
|
@@ -982,7 +983,7 @@ module Beaker
|
|
|
982
983
|
'image' => 'foobar',
|
|
983
984
|
}))
|
|
984
985
|
|
|
985
|
-
expect(dockerfile).to
|
|
986
|
+
expect(dockerfile).to include('dnf install -y sudo')
|
|
986
987
|
end
|
|
987
988
|
end
|
|
988
989
|
|
|
@@ -993,9 +994,9 @@ module Beaker
|
|
|
993
994
|
'image' => 'foobar',
|
|
994
995
|
}))
|
|
995
996
|
|
|
996
|
-
expect(dockerfile).to
|
|
997
|
-
expect(dockerfile).to
|
|
998
|
-
expect(dockerfile).to
|
|
997
|
+
expect(dockerfile).to include('pacman --sync --refresh --noconfirm archlinux-keyring')
|
|
998
|
+
expect(dockerfile).to include('pacman --sync --refresh --noconfirm --sysupgrade')
|
|
999
|
+
expect(dockerfile).to include('pacman --sync --noconfirm curl net-tools openssh')
|
|
999
1000
|
end
|
|
1000
1001
|
end
|
|
1001
1002
|
|
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: 3.
|
|
4
|
+
version: 3.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vox Pupuli
|
|
@@ -80,14 +80,14 @@ dependencies:
|
|
|
80
80
|
requirements:
|
|
81
81
|
- - "~>"
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
|
-
version: 5.
|
|
83
|
+
version: 5.3.0
|
|
84
84
|
type: :development
|
|
85
85
|
prerelease: false
|
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
|
87
87
|
requirements:
|
|
88
88
|
- - "~>"
|
|
89
89
|
- !ruby/object:Gem::Version
|
|
90
|
-
version: 5.
|
|
90
|
+
version: 5.3.0
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: beaker
|
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
218
218
|
- !ruby/object:Gem::Version
|
|
219
219
|
version: '0'
|
|
220
220
|
requirements: []
|
|
221
|
-
rubygems_version: 4.0.
|
|
221
|
+
rubygems_version: 4.0.20
|
|
222
222
|
specification_version: 4
|
|
223
223
|
summary: Docker hypervisor for Beaker acceptance testing framework
|
|
224
224
|
test_files: []
|