beaker-docker 1.0.1 → 1.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/CHANGELOG.md +30 -0
- data/Gemfile +0 -18
- data/acceptance/config/nodes/hosts.yaml +1 -1
- data/beaker-docker.gemspec +1 -2
- data/docker.md +11 -2
- data/lib/beaker/hypervisor/docker.rb +15 -10
- data/lib/beaker-docker/version.rb +1 -1
- data/spec/beaker/hypervisor/docker_spec.rb +20 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ce1f4aae26967ce3b8f4d3d24db2a23c2a09b19a749d40bdd7c731d64201f3b
|
4
|
+
data.tar.gz: 711d8f36b0f39494206dbf6c06ffc602f213ad8681ba423529d413240c3d9c9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7c52174a22413d6aa3a99cd0c9e98e8c3cef1c4f973edf9c3a0bd5c4c5e1c854c87c5147310e93ea387bb08ea1a11e6cd71d4dd44dd291db73619f2663f29bc
|
7
|
+
data.tar.gz: 13bf5b863f187e020040ac56504bae971bc0f27ae07ccd4e598325762782a269d56297cacd00b732a0fdd25e89d746aa7d7193aa8234f225c94c20d304a28ace
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,35 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [1.2.0](https://github.com/voxpupuli/beaker-docker/tree/1.2.0) (2022-08-11)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.1.1...1.2.0)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Use ssh-keygen -A on modern Enterprise Linux [\#66](https://github.com/voxpupuli/beaker-docker/pull/66) ([ekohl](https://github.com/ekohl))
|
10
|
+
- Add Docker hostfile parameter docker\_image\_first\_commands [\#65](https://github.com/voxpupuli/beaker-docker/pull/65) ([Rathios](https://github.com/Rathios))
|
11
|
+
|
12
|
+
## [1.1.1](https://github.com/voxpupuli/beaker-docker/tree/1.1.1) (2022-02-17)
|
13
|
+
|
14
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.1.0...1.1.1)
|
15
|
+
|
16
|
+
**Fixed bugs:**
|
17
|
+
|
18
|
+
- Arch Linux: do not install openssh twice [\#58](https://github.com/voxpupuli/beaker-docker/pull/58) ([bastelfreak](https://github.com/bastelfreak))
|
19
|
+
|
20
|
+
**Merged pull requests:**
|
21
|
+
|
22
|
+
- Remove beaker from Gemfile [\#62](https://github.com/voxpupuli/beaker-docker/pull/62) ([bastelfreak](https://github.com/bastelfreak))
|
23
|
+
- CI: Switch centos:8 to centos:stream8 image [\#61](https://github.com/voxpupuli/beaker-docker/pull/61) ([bastelfreak](https://github.com/bastelfreak))
|
24
|
+
|
25
|
+
## [1.1.0](https://github.com/voxpupuli/beaker-docker/tree/1.1.0) (2022-01-27)
|
26
|
+
|
27
|
+
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.0.1...1.1.0)
|
28
|
+
|
29
|
+
**Implemented enhancements:**
|
30
|
+
|
31
|
+
- Use host\_packages helper to reuse logic from beaker [\#59](https://github.com/voxpupuli/beaker-docker/pull/59) ([ekohl](https://github.com/ekohl))
|
32
|
+
|
3
33
|
## [1.0.1](https://github.com/voxpupuli/beaker-docker/tree/1.0.1) (2021-09-13)
|
4
34
|
|
5
35
|
[Full Changelog](https://github.com/voxpupuli/beaker-docker/compare/1.0.0...1.0.1)
|
data/Gemfile
CHANGED
@@ -2,24 +2,6 @@ source ENV['GEM_SOURCE'] || 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
def location_for(place, fake_version = nil)
|
6
|
-
if place =~ /^git:([^#]*)#(.*)/
|
7
|
-
[fake_version, { :git => $1, :branch => $2, :require => false }].compact
|
8
|
-
elsif place =~ /^file:\/\/(.*)/
|
9
|
-
['>= 0', { :path => File.expand_path($1), :require => false }]
|
10
|
-
else
|
11
|
-
[place, { :require => false }]
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
|
16
|
-
# We don't put beaker in as a test dependency because we
|
17
|
-
# don't want to create a transitive dependency
|
18
|
-
group :acceptance_testing do
|
19
|
-
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '>= 4.30')
|
20
|
-
end
|
21
|
-
|
22
|
-
|
23
5
|
if File.exists? "#{__FILE__}.local"
|
24
6
|
eval(File.read("#{__FILE__}.local"), binding)
|
25
7
|
end
|
data/beaker-docker.gemspec
CHANGED
data/docker.md
CHANGED
@@ -23,13 +23,22 @@ The base image to use for the container is named by the image key.
|
|
23
23
|
type: foss
|
24
24
|
|
25
25
|
### Docker hosts file, with image modification ###
|
26
|
-
You can specify extra commands to be executed in order to modify the image with the `docker_image_commands`
|
26
|
+
You can specify extra commands to be executed in order to modify the image with the keys `docker_image_commands` and
|
27
|
+
`docker_image_first_commands`.
|
28
|
+
|
29
|
+
`docker_image_commands` is executed after initial setup. `docker_image_first_commands` is executed before any other
|
30
|
+
commands and can be used eg. to configure a proxy.
|
27
31
|
|
28
32
|
HOSTS:
|
29
33
|
ubuntu-12-10:
|
30
34
|
platform: ubuntu-12.10-x64
|
31
35
|
image: ubuntu:12.10
|
32
36
|
hypervisor: docker
|
37
|
+
docker_image_first_commands:
|
38
|
+
- echo 'Acquire::http::Proxy "http://proxy.example.com:3128";'> /etc/apt/apt.conf.d/01proxy
|
39
|
+
- echo "export http_proxy=http://proxy.example.com:3128"> /etc/profile.d/proxy.sh
|
40
|
+
- echo "export https_proxy=http://proxy.example.com:3128">> /etc/profile.d/proxy.sh
|
41
|
+
- echo "export no_proxy=127.0.0.1,::1">> /etc/profile.d/proxy.sh
|
33
42
|
docker_image_commands:
|
34
43
|
- 'apt-get install -y myapp'
|
35
44
|
- 'myapp --setup'
|
@@ -53,7 +62,7 @@ Instead of using ssh as the CMD for a container, beaker will use the entrypoint
|
|
53
62
|
|
54
63
|
HOSTS:
|
55
64
|
puppetserver:
|
56
|
-
platform: ubuntu-1604-x86_64
|
65
|
+
platform: ubuntu-1604-x86_64
|
57
66
|
hypervisor: docker
|
58
67
|
image: puppet/puppetserver-standalone:6.0.1
|
59
68
|
use_image_entry_point: true
|
@@ -401,8 +401,7 @@ module Beaker
|
|
401
401
|
when /el-[89]/, /fedora-(2[2-9]|3[0-9])/
|
402
402
|
container.exec(%w(dnf clean all))
|
403
403
|
container.exec(%w(dnf install -y sudo openssh-server openssh-clients))
|
404
|
-
container.exec(%w(ssh-keygen -
|
405
|
-
container.exec(%w(ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key))
|
404
|
+
container.exec(%w(ssh-keygen -A))
|
406
405
|
container.exec(%w(sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/*))
|
407
406
|
when /^el-/, /centos/, /fedora/, /redhat/, /eos/
|
408
407
|
container.exec(%w(yum clean all))
|
@@ -516,29 +515,35 @@ module Beaker
|
|
516
515
|
ENV container docker
|
517
516
|
EOF
|
518
517
|
|
518
|
+
# Commands before any other commands. Can be used for eg. proxy configuration
|
519
|
+
dockerfile += (host['docker_image_first_commands'] || []).map { |command|
|
520
|
+
"RUN #{command}\n"
|
521
|
+
}.join('')
|
522
|
+
|
519
523
|
# additional options to specify to the sshd
|
520
524
|
# may vary by platform
|
521
525
|
sshd_options = ''
|
522
526
|
|
523
527
|
# add platform-specific actions
|
524
528
|
service_name = "sshd"
|
529
|
+
additional_packages = host_packages(host)
|
525
530
|
case host['platform']
|
526
531
|
when /ubuntu/, /debian/
|
527
532
|
service_name = "ssh"
|
528
533
|
dockerfile += <<~EOF
|
529
534
|
RUN apt-get update
|
530
|
-
RUN apt-get install -y openssh-server openssh-client #{
|
535
|
+
RUN apt-get install -y openssh-server openssh-client #{additional_packages.join(' ')}
|
531
536
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/*
|
532
537
|
EOF
|
533
538
|
when /cumulus/
|
534
539
|
dockerfile += <<~EOF
|
535
540
|
RUN apt-get update
|
536
|
-
RUN apt-get install -y openssh-server openssh-client #{
|
541
|
+
RUN apt-get install -y openssh-server openssh-client #{additional_packages.join(' ')}
|
537
542
|
EOF
|
538
543
|
when /el-[89]/, /fedora-(2[2-9]|3)/
|
539
544
|
dockerfile += <<~EOF
|
540
545
|
RUN dnf clean all
|
541
|
-
RUN dnf install -y sudo openssh-server openssh-clients #{
|
546
|
+
RUN dnf install -y sudo openssh-server openssh-clients #{additional_packages.join(' ')}
|
542
547
|
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
|
543
548
|
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
|
544
549
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/*
|
@@ -546,14 +551,14 @@ module Beaker
|
|
546
551
|
when /^el-/, /centos/, /fedora/, /redhat/, /eos/
|
547
552
|
dockerfile += <<~EOF
|
548
553
|
RUN yum clean all
|
549
|
-
RUN yum install -y sudo openssh-server openssh-clients #{
|
554
|
+
RUN yum install -y sudo openssh-server openssh-clients #{additional_packages.join(' ')}
|
550
555
|
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
|
551
556
|
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
|
552
557
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/*
|
553
558
|
EOF
|
554
559
|
when /opensuse/, /sles/
|
555
560
|
dockerfile += <<~EOF
|
556
|
-
RUN zypper -n in openssh #{
|
561
|
+
RUN zypper -n in openssh #{additional_packages.join(' ')}
|
557
562
|
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
|
558
563
|
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
|
559
564
|
RUN sed -ri 's/^#?UsePAM .*/UsePAM no/' /etc/ssh/sshd_config
|
@@ -561,9 +566,9 @@ module Beaker
|
|
561
566
|
EOF
|
562
567
|
when /archlinux/
|
563
568
|
dockerfile += <<~EOF
|
564
|
-
RUN pacman --noconfirm
|
565
|
-
RUN pacman --noconfirm
|
566
|
-
RUN pacman
|
569
|
+
RUN pacman --sync --refresh --noconfirm archlinux-keyring
|
570
|
+
RUN pacman --sync --refresh --noconfirm --sysupgrade
|
571
|
+
RUN pacman --sync --noconfirm #{additional_packages.join(' ')}
|
567
572
|
RUN ssh-keygen -A
|
568
573
|
RUN sed -ri 's/^#?UsePAM .*/UsePAM no/' /etc/ssh/sshd_config
|
569
574
|
RUN systemctl enable sshd
|
@@ -692,6 +692,23 @@ module Beaker
|
|
692
692
|
end
|
693
693
|
end
|
694
694
|
|
695
|
+
it 'should add docker_image_first_commands as RUN statements' do
|
696
|
+
FakeFS.deactivate!
|
697
|
+
platforms.each do |platform|
|
698
|
+
dockerfile = docker.send(:dockerfile_for, {
|
699
|
+
'platform' => platform,
|
700
|
+
'image' => 'foobar',
|
701
|
+
'docker_image_first_commands' => [
|
702
|
+
'special one',
|
703
|
+
'special two',
|
704
|
+
'special three',
|
705
|
+
]
|
706
|
+
})
|
707
|
+
|
708
|
+
expect( dockerfile ).to be =~ /RUN special one\nRUN special two\nRUN special three/
|
709
|
+
end
|
710
|
+
end
|
711
|
+
|
695
712
|
it 'should add docker_image_commands as RUN statements' do
|
696
713
|
FakeFS.deactivate!
|
697
714
|
platforms.each do |platform|
|
@@ -751,7 +768,9 @@ module Beaker
|
|
751
768
|
'image' => 'foobar',
|
752
769
|
})
|
753
770
|
|
754
|
-
expect( dockerfile ).to
|
771
|
+
expect( dockerfile ).to match(/RUN pacman --sync --refresh --noconfirm archlinux-keyring/)
|
772
|
+
expect( dockerfile ).to match(/RUN pacman --sync --refresh --noconfirm --sysupgrade/)
|
773
|
+
expect( dockerfile ).to match(/RUN pacman --sync --noconfirm curl ntp net-tools openssh/)
|
755
774
|
end
|
756
775
|
end
|
757
776
|
end
|
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: 1.0
|
4
|
+
version: 1.2.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:
|
14
|
+
date: 2022-08-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rspec
|
@@ -97,6 +97,20 @@ dependencies:
|
|
97
97
|
- - "~>"
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '2.1'
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: beaker
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '4.34'
|
107
|
+
type: :runtime
|
108
|
+
prerelease: false
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '4.34'
|
100
114
|
description: For use for the Beaker acceptance testing tool
|
101
115
|
email:
|
102
116
|
- voxpupuli@groups.io
|
@@ -144,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
158
|
- !ruby/object:Gem::Version
|
145
159
|
version: '0'
|
146
160
|
requirements: []
|
147
|
-
rubygems_version: 3.2.
|
161
|
+
rubygems_version: 3.2.33
|
148
162
|
signing_key:
|
149
163
|
specification_version: 4
|
150
164
|
summary: Beaker DSL Extension Helpers!
|