vanagon 0.20.1 → 0.21.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/lib/vanagon/cli/list.rb +11 -0
- data/lib/vanagon/platform/defaults/debian-10-amd64.rb +11 -0
- data/lib/vanagon/platform/defaults/debian-8-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/debian-8-i386.rb +12 -0
- data/lib/vanagon/platform/defaults/debian-9-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/debian-9-i386.rb +12 -0
- data/lib/vanagon/platform/defaults/el-6-i386.rb +11 -0
- data/lib/vanagon/platform/defaults/el-6-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/el-7-aarch64.rb +13 -0
- data/lib/vanagon/platform/defaults/el-7-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/el-8-aarch64.rb +10 -0
- data/lib/vanagon/platform/defaults/el-8-x86_64.rb +10 -0
- data/lib/vanagon/platform/defaults/fedora-30-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/fedora-31-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/fedora-32-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/osx-10.14-x86_64.rb +22 -0
- data/lib/vanagon/platform/defaults/osx-10.15-x86_64.rb +21 -0
- data/lib/vanagon/platform/defaults/redhatfips-7-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/sles-12-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/sles-15-x86_64.rb +10 -0
- data/lib/vanagon/platform/defaults/solaris-11-i386.rb +9 -0
- data/lib/vanagon/platform/defaults/solaris-11-sparc.rb +10 -0
- data/lib/vanagon/platform/defaults/ubuntu-16.04-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/ubuntu-16.04-i386.rb +12 -0
- data/lib/vanagon/platform/defaults/ubuntu-18.04-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/ubuntu-20.04-aarch64.rb +11 -0
- data/lib/vanagon/platform/defaults/ubuntu-20.04-amd64.rb +11 -0
- data/lib/vanagon/platform/dsl.rb +7 -0
- data/spec/lib/vanagon/cli_spec.rb +56 -5
- metadata +56 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e832c071ba2d54e8c938fbeace5fe1c0287bc25b2ff405b6b2d1ca5dbc9f44f
|
4
|
+
data.tar.gz: 1af5c0c38870de680a4cc1f037a94fa6595d22d0e9b70147371650beb11d7130
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53756b8e737fbe884d6e5ce934442778d07407b638d34186c1b19f658981b5e36a79d0c7c272b0efe82a7f86ded6479ab0a5e1fc7962b0112dfd85732168095c
|
7
|
+
data.tar.gz: 21b9ebef8bb1d8a54650c4a35551abdf8142d9e28689d843f96278ad81d5081877ec9eb6d4d9432799feb464a2f682754d78d3af6cf4b8c20d17bc0ea3c94145
|
data/lib/vanagon/cli/list.rb
CHANGED
@@ -11,6 +11,7 @@ class Vanagon
|
|
11
11
|
Options:
|
12
12
|
-h, --help Display help
|
13
13
|
-c, --configdir DIRECTORY Configuration directory [default: #{Dir.pwd}/configs]
|
14
|
+
-d, --defaults Display the list of default platforms
|
14
15
|
-l, --platforms Display a list of platforms
|
15
16
|
-r, --projects Display a list of projects
|
16
17
|
-s, --use-spaces Displays the list as space separated
|
@@ -36,6 +37,10 @@ class Vanagon
|
|
36
37
|
exit 1
|
37
38
|
end
|
38
39
|
|
40
|
+
default_list = Dir.children(File.join(File.dirname(__FILE__), '..', 'platform', 'defaults')).map do |platform|
|
41
|
+
File.basename(platform, File.extname(platform))
|
42
|
+
end
|
43
|
+
|
39
44
|
platform_list = Dir.children(File.join(options[:configdir], 'platforms')).map do |platform|
|
40
45
|
File.basename(platform, File.extname(platform))
|
41
46
|
end
|
@@ -44,6 +49,11 @@ class Vanagon
|
|
44
49
|
File.basename(project, File.extname(project))
|
45
50
|
end
|
46
51
|
|
52
|
+
if options[:defaults]
|
53
|
+
puts "- Defaults", output(default_list, options[:use_spaces])
|
54
|
+
return
|
55
|
+
end
|
56
|
+
|
47
57
|
if options[:projects] == options[:platforms]
|
48
58
|
puts "- Projects", output(project_list, options[:use_spaces]), "\n", "- Platforms", output(platform_list, options[:use_spaces])
|
49
59
|
return
|
@@ -63,6 +73,7 @@ class Vanagon
|
|
63
73
|
def options_translate(docopt_options)
|
64
74
|
translations = {
|
65
75
|
'--configdir' => :configdir,
|
76
|
+
'--defaults' => :defaults,
|
66
77
|
'--platforms' => :platforms,
|
67
78
|
'--projects' => :projects,
|
68
79
|
'--use-spaces' => :use_spaces,
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "debian-10-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "buster"
|
6
|
+
|
7
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot cmake)
|
8
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
10
|
+
plat.vmpooler_template "debian-10-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-8-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "jessie"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "debian-8-x86_64"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-8-i386" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "jessie"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends"
|
11
|
+
plat.vmpooler_template "debian-8-i386"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-9-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "stretch"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "debian-9-x86_64"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-9-i386" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "stretch"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "debian-9-i386"
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "el-6-i386" do |plat|
|
2
|
+
plat.servicedir "/etc/rc.d/init.d"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "sysv"
|
5
|
+
|
6
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/yum/pl-build-tools-release-#{plat.get_os_name}-#{plat.get_os_version}.noarch.rpm"
|
7
|
+
packages = %w(autoconf automake createrepo rsync gcc make rpmdevtools rpm-libs yum-utils rpm-sign)
|
8
|
+
plat.provision_with "yum install --assumeyes #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "yum install --assumeyes"
|
10
|
+
plat.vmpooler_template "redhat-6-i386"
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "el-6-x86_64" do |plat|
|
2
|
+
plat.servicedir "/etc/rc.d/init.d"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "sysv"
|
5
|
+
|
6
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/yum/pl-build-tools-release-#{plat.get_os_name}-#{plat.get_os_version}.noarch.rpm"
|
7
|
+
packages = %w(autoconf automake createrepo rsync gcc make rpmdevtools rpm-libs yum-utils rpm-sign)
|
8
|
+
plat.provision_with "yum install --assumeyes #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "yum install --assumeyes"
|
10
|
+
plat.vmpooler_template "redhat-6-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
platform "el-7-aarch64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/yum/el/7/aarch64/pl-build-tools-aarch64.repo"
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/yum/el/7/x86_64/pl-build-tools-x86_64.repo"
|
8
|
+
packages = %w(autoconf automake createrepo rsync gcc make rpmdevtools rpm-libs yum-utils rpm-sign)
|
9
|
+
plat.provision_with "yum install --assumeyes #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "yum install --assumeyes"
|
11
|
+
plat.cross_compiled true
|
12
|
+
plat.vmpooler_template "redhat-7-x86_64"
|
13
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "el-7-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/yum/pl-build-tools-release-#{plat.get_os_name}-#{plat.get_os_version}.noarch.rpm"
|
7
|
+
packages = %w(autoconf automake createrepo rsync gcc make rpmdevtools rpm-libs yum-utils rpm-sign)
|
8
|
+
plat.provision_with "yum install --assumeyes #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "yum install --assumeyes"
|
10
|
+
plat.vmpooler_template "redhat-7-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
platform "el-8-aarch64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
packages = %w(autoconf automake createrepo gcc gcc-c++ rsync cmake make rpm-libs rpm-build)
|
7
|
+
plat.provision_with "dnf install -y --allowerasing #{packages.join(' ')}"
|
8
|
+
plat.install_build_dependencies_with "dnf install -y --allowerasing "
|
9
|
+
plat.vmpooler_template "redhat-8-arm64"
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
platform "el-8-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
packages = %w(gcc gcc-c++ autoconf automake createrepo rsync cmake make rpm-libs rpm-build rpm-sign libtool)
|
7
|
+
plat.provision_with "dnf install -y --allowerasing #{packages.join(' ')}"
|
8
|
+
plat.install_build_dependencies_with "dnf install -y --allowerasing "
|
9
|
+
plat.vmpooler_template "redhat-8-x86_64"
|
10
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "fedora-30-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.dist "fc30"
|
6
|
+
|
7
|
+
packages = %w(autoconf automake createrepo rsync gcc gcc-c++ make rpmdevtools rpm-libs cmake rpm-sign yum-utils)
|
8
|
+
plat.provision_with "/usr/bin/dnf install -y --best --allowerasing #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "/usr/bin/dnf install -y --best --allowerasing"
|
10
|
+
plat.vmpooler_template "fedora-30-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "fedora-31-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.dist "fc31"
|
6
|
+
|
7
|
+
packages = %w(autoconf automake cmake createrepo rsync gcc gcc-c++ make rpmdevtools rpm-libs rpm-sign)
|
8
|
+
plat.provision_with "/usr/bin/dnf install -y --best --allowerasing #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "/usr/bin/dnf install -y --best --allowerasing"
|
10
|
+
plat.vmpooler_template "fedora-31-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "fedora-32-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.dist "fc32"
|
6
|
+
|
7
|
+
packages = %w(autoconf automake rsync gcc gcc-c++ make rpmdevtools cmake)
|
8
|
+
plat.provision_with "/usr/bin/dnf install -y --best --allowerasing #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "/usr/bin/dnf install -y --best --allowerasing"
|
10
|
+
plat.vmpooler_template "fedora-32-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
platform "osx-10.14-x86_64" do |plat|
|
2
|
+
plat.servicetype "launchd"
|
3
|
+
plat.servicedir "/Library/LaunchDaemons"
|
4
|
+
plat.codename "mojave"
|
5
|
+
|
6
|
+
plat.provision_with "export HOMEBREW_NO_EMOJI=true"
|
7
|
+
plat.provision_with "export HOMEBREW_VERBOSE=true"
|
8
|
+
plat.provision_with "sudo dscl . -create /Users/test"
|
9
|
+
plat.provision_with "sudo dscl . -create /Users/test UserShell /bin/bash"
|
10
|
+
plat.provision_with "sudo dscl . -create /Users/test UniqueID 1001"
|
11
|
+
plat.provision_with "sudo dscl . -create /Users/test PrimaryGroupID 1000"
|
12
|
+
plat.provision_with "sudo dscl . -create /Users/test NFSHomeDirectory /Users/test"
|
13
|
+
plat.provision_with "sudo dscl . -passwd /Users/test password"
|
14
|
+
plat.provision_with "sudo dscl . -merge /Groups/admin GroupMembership test"
|
15
|
+
plat.provision_with "echo 'test ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/username"
|
16
|
+
plat.provision_with "mkdir -p /etc/homebrew"
|
17
|
+
plat.provision_with "cd /etc/homebrew"
|
18
|
+
plat.provision_with %Q(su test -c 'echo | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"')
|
19
|
+
plat.provision_with "sudo chown -R test:admin /Users/test/"
|
20
|
+
plat.vmpooler_template "osx-1014-x86_64"
|
21
|
+
plat.output_dir File.join("apple", "10.14", "puppet6", "x86_64")
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
platform "osx-10.15-x86_64" do |plat|
|
2
|
+
plat.servicetype "launchd"
|
3
|
+
plat.servicedir "/Library/LaunchDaemons"
|
4
|
+
plat.codename "catalina"
|
5
|
+
|
6
|
+
plat.provision_with "export HOMEBREW_NO_EMOJI=true"
|
7
|
+
plat.provision_with "export HOMEBREW_VERBOSE=true"
|
8
|
+
plat.provision_with "sudo dscl . -create /Users/test"
|
9
|
+
plat.provision_with "sudo dscl . -create /Users/test UserShell /bin/bash"
|
10
|
+
plat.provision_with "sudo dscl . -create /Users/test UniqueID 1001"
|
11
|
+
plat.provision_with "sudo dscl . -create /Users/test PrimaryGroupID 1000"
|
12
|
+
plat.provision_with "sudo dscl . -create /Users/test NFSHomeDirectory /Users/test"
|
13
|
+
plat.provision_with "sudo dscl . -passwd /Users/test password"
|
14
|
+
plat.provision_with "sudo dscl . -merge /Groups/admin GroupMembership test"
|
15
|
+
plat.provision_with "echo 'test ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/username"
|
16
|
+
plat.provision_with "mkdir -p /etc/homebrew"
|
17
|
+
plat.provision_with "cd /etc/homebrew"
|
18
|
+
plat.provision_with %Q(su test -c 'echo | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"')
|
19
|
+
plat.provision_with "sudo chown -R test:admin /Users/test/"
|
20
|
+
plat.vmpooler_template "osx-1015-x86_64"
|
21
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "redhatfips-7-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/yum/pl-build-tools-release-el-7.noarch.rpm"
|
7
|
+
packages = %w(autoconf automake createrepo rsync gcc make rpmdevtools rpm-libs yum-utils rpm-sign)
|
8
|
+
plat.provision_with "yum install --assumeyes #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "yum install --assumeyes"
|
10
|
+
plat.vmpooler_template "redhat-fips-7-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "sles-12-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/yum/pl-build-tools-release-#{plat.get_os_name}-#{plat.get_os_version}.noarch.rpm"
|
7
|
+
packages = %w(aaa_base autoconf automake rsync gcc make rpm-build)
|
8
|
+
plat.provision_with "zypper -n --no-gpg-checks install -y #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "zypper -n --no-gpg-checks install -y"
|
10
|
+
plat.vmpooler_template "sles-12-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
platform "sles-15-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
packages = %w(aaa_base autoconf automake rsync gcc gcc-c++ make rpm-build gettext-tools cmake)
|
7
|
+
plat.provision_with "zypper -n --no-gpg-checks install -y #{packages.join(' ')}"
|
8
|
+
plat.install_build_dependencies_with "zypper -n --no-gpg-checks install -y"
|
9
|
+
plat.vmpooler_template "sles-15-x86_64"
|
10
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
platform "solaris-11-i386" do |plat|
|
2
|
+
plat.servicedir "/lib/svc/manifest"
|
3
|
+
plat.defaultdir "/lib/svc/method"
|
4
|
+
plat.servicetype "smf"
|
5
|
+
|
6
|
+
plat.vmpooler_template "solaris-11-x86_64"
|
7
|
+
plat.add_build_repository "http://solaris-11-reposync.delivery.puppetlabs.net:81", "puppetlabs.com"
|
8
|
+
plat.install_build_dependencies_with "pkg install ", " || [[ $? -eq 4 ]]"
|
9
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
platform "solaris-11-sparc" do |plat|
|
2
|
+
plat.servicedir "/lib/svc/manifest"
|
3
|
+
plat.defaultdir "/lib/svc/method"
|
4
|
+
plat.servicetype "smf"
|
5
|
+
|
6
|
+
plat.cross_compiled true
|
7
|
+
plat.vmpooler_template "solaris-11-x86_64"
|
8
|
+
plat.add_build_repository "http://solaris-11-reposync.delivery.puppetlabs.net:81", "puppetlabs.com"
|
9
|
+
plat.install_build_dependencies_with "pkg install ", " || [[ $? -eq 4 ]]"
|
10
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "ubuntu-16.04-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "xenial"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "ubuntu-1604-x86_64"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "ubuntu-16.04-i386" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "xenial"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "ubuntu-1604-i386"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "ubuntu-18.04-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "bionic"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "export DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "ubuntu-1804-x86_64"
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "ubuntu-20.04-aarch64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "focal"
|
6
|
+
|
7
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot cmake)
|
8
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
10
|
+
plat.vmpooler_template "ubuntu-2004-arm64"
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "ubuntu-20.04-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "focal"
|
6
|
+
|
7
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot cmake)
|
8
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
10
|
+
plat.vmpooler_template "ubuntu-2004-x86_64"
|
11
|
+
end
|
data/lib/vanagon/platform/dsl.rb
CHANGED
@@ -85,6 +85,13 @@ class Vanagon
|
|
85
85
|
method_name.to_s.start_with?('get_') || super
|
86
86
|
end
|
87
87
|
|
88
|
+
def inherit_from_default(name = @name)
|
89
|
+
default_file = File.join(__dir__, 'defaults', "#{name}.rb")
|
90
|
+
default_object = Vanagon::Platform::DSL.new(name)
|
91
|
+
|
92
|
+
@platform = default_object.instance_eval(File.read(default_file), default_file, 1)
|
93
|
+
end
|
94
|
+
|
88
95
|
# Adds an arbitrary environment variable to a Platform, which will be
|
89
96
|
# merged with any environment variables defined by the Project into the
|
90
97
|
# rendered Makefile
|
@@ -93,6 +93,7 @@ describe Vanagon::CLI::List do
|
|
93
93
|
end
|
94
94
|
|
95
95
|
describe "#run" do
|
96
|
+
let(:defaults){ ['def1', 'def2', 'def3'] }
|
96
97
|
let(:projects){ ['foo', 'bar', 'baz'] }
|
97
98
|
let(:platforms){ ['1', '2', '3'] }
|
98
99
|
let(:output_both){
|
@@ -115,6 +116,9 @@ baz
|
|
115
116
|
expect(Dir).to receive(:exist?)
|
116
117
|
.with("#{File.join(Dir.pwd, 'configs', 'projects')}")
|
117
118
|
.and_return(true)
|
119
|
+
expect(Dir).to receive(:children)
|
120
|
+
.with("#{File.join(Dir.pwd, 'lib', 'vanagon' ,'cli', '..', 'platform', 'defaults')}")
|
121
|
+
.and_return(defaults)
|
118
122
|
expect(Dir).to receive(:children)
|
119
123
|
.with("#{File.join(Dir.pwd, 'configs', 'projects')}")
|
120
124
|
.and_return(projects)
|
@@ -124,28 +128,32 @@ baz
|
|
124
128
|
end
|
125
129
|
let(:options_empty) { {
|
126
130
|
nil=>false,
|
127
|
-
:configdir=>"#{Dir.pwd}/configs",
|
131
|
+
:configdir=>"#{Dir.pwd}/configs",
|
132
|
+
:defaults=>false,
|
128
133
|
:platforms=>false,
|
129
134
|
:projects=>false,
|
130
135
|
:use_spaces=>false
|
131
136
|
} }
|
132
137
|
let(:options_platforms_only) { {
|
133
138
|
nil=>false,
|
134
|
-
:configdir=>"#{Dir.pwd}/configs",
|
139
|
+
:configdir=>"#{Dir.pwd}/configs",
|
140
|
+
:defaults=>false,
|
135
141
|
:platforms=>true,
|
136
142
|
:projects=>false,
|
137
143
|
:use_spaces=>false
|
138
144
|
} }
|
139
145
|
let(:options_projects_only) { {
|
140
146
|
nil=>false,
|
141
|
-
:configdir=>"#{Dir.pwd}/configs",
|
147
|
+
:configdir=>"#{Dir.pwd}/configs",
|
148
|
+
:defaults=>false,
|
142
149
|
:platforms=>false,
|
143
150
|
:projects=>true,
|
144
151
|
:use_spaces=>false
|
145
152
|
} }
|
146
153
|
let(:options_space_only) { {
|
147
154
|
nil=>false,
|
148
|
-
:configdir=>"#{Dir.pwd}/configs",
|
155
|
+
:configdir=>"#{Dir.pwd}/configs",
|
156
|
+
:defaults=>false,
|
149
157
|
:platforms=>false,
|
150
158
|
:projects=>false,
|
151
159
|
:use_spaces=>true
|
@@ -202,14 +210,19 @@ baz
|
|
202
210
|
let(:options_configdir) { {
|
203
211
|
nil=>false,
|
204
212
|
:configdir=> '/configs',
|
213
|
+
:defaults=>false,
|
205
214
|
:platforms=>false,
|
206
215
|
:projects=>false,
|
207
|
-
:use_spaces=>false
|
216
|
+
:use_spaces=>false
|
217
|
+
} }
|
208
218
|
it "it successfully takes the configs directory" do
|
209
219
|
expect(Dir).to receive(:exist?).with('/configs' + '/platforms')
|
210
220
|
.and_return(true)
|
211
221
|
expect(Dir).to receive(:exist?).with('/configs' + '/projects')
|
212
222
|
.and_return(true)
|
223
|
+
expect(Dir).to receive(:children)
|
224
|
+
.with("#{File.join(Dir.pwd, 'lib', 'vanagon' ,'cli', '..', 'platform', 'defaults')}")
|
225
|
+
.and_return(defaults)
|
213
226
|
expect(Dir).to receive(:children).with('/configs' + '/projects')
|
214
227
|
.and_return(projects)
|
215
228
|
expect(Dir).to receive(:children).with('/configs' + '/platforms')
|
@@ -219,5 +232,43 @@ baz
|
|
219
232
|
end.to output(output_both).to_stdout
|
220
233
|
end
|
221
234
|
end
|
235
|
+
|
236
|
+
context "spec to determine vanagon defaults" do
|
237
|
+
let(:options_default_platforms) { {
|
238
|
+
nil=>false,
|
239
|
+
:configdir=>"#{Dir.pwd}/configs",
|
240
|
+
:defaults=>true,
|
241
|
+
:platforms=>false,
|
242
|
+
:projects=>false,
|
243
|
+
:use_spaces=>false
|
244
|
+
} }
|
245
|
+
let(:output_defaults){
|
246
|
+
"- Defaults
|
247
|
+
def1
|
248
|
+
def2
|
249
|
+
def3
|
250
|
+
"
|
251
|
+
}
|
252
|
+
it "lists the vanagon defaults" do
|
253
|
+
expect(Dir).to receive(:exist?)
|
254
|
+
.with("#{File.join(Dir.pwd, 'configs', 'platforms')}")
|
255
|
+
.and_return(true)
|
256
|
+
expect(Dir).to receive(:exist?)
|
257
|
+
.with("#{File.join(Dir.pwd, 'configs', 'projects')}")
|
258
|
+
.and_return(true)
|
259
|
+
expect(Dir).to receive(:children)
|
260
|
+
.with("#{File.join(Dir.pwd, 'lib', 'vanagon' ,'cli', '..', 'platform', 'defaults')}")
|
261
|
+
.and_return(defaults)
|
262
|
+
expect(Dir).to receive(:children)
|
263
|
+
.with("#{File.join(Dir.pwd, 'configs', 'projects')}")
|
264
|
+
.and_return(projects)
|
265
|
+
expect(Dir).to receive(:children)
|
266
|
+
.with("#{File.join(Dir.pwd, 'configs', 'platforms')}")
|
267
|
+
.and_return(platforms)
|
268
|
+
expect do
|
269
|
+
cli.run(options_default_platforms)
|
270
|
+
end.to output(output_defaults).to_stdout
|
271
|
+
end
|
272
|
+
end
|
222
273
|
end
|
223
274
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vanagon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docopt
|
@@ -152,6 +152,32 @@ files:
|
|
152
152
|
- lib/vanagon/patch.rb
|
153
153
|
- lib/vanagon/platform.rb
|
154
154
|
- lib/vanagon/platform/deb.rb
|
155
|
+
- lib/vanagon/platform/defaults/debian-10-amd64.rb
|
156
|
+
- lib/vanagon/platform/defaults/debian-8-amd64.rb
|
157
|
+
- lib/vanagon/platform/defaults/debian-8-i386.rb
|
158
|
+
- lib/vanagon/platform/defaults/debian-9-amd64.rb
|
159
|
+
- lib/vanagon/platform/defaults/debian-9-i386.rb
|
160
|
+
- lib/vanagon/platform/defaults/el-6-i386.rb
|
161
|
+
- lib/vanagon/platform/defaults/el-6-x86_64.rb
|
162
|
+
- lib/vanagon/platform/defaults/el-7-aarch64.rb
|
163
|
+
- lib/vanagon/platform/defaults/el-7-x86_64.rb
|
164
|
+
- lib/vanagon/platform/defaults/el-8-aarch64.rb
|
165
|
+
- lib/vanagon/platform/defaults/el-8-x86_64.rb
|
166
|
+
- lib/vanagon/platform/defaults/fedora-30-x86_64.rb
|
167
|
+
- lib/vanagon/platform/defaults/fedora-31-x86_64.rb
|
168
|
+
- lib/vanagon/platform/defaults/fedora-32-x86_64.rb
|
169
|
+
- lib/vanagon/platform/defaults/osx-10.14-x86_64.rb
|
170
|
+
- lib/vanagon/platform/defaults/osx-10.15-x86_64.rb
|
171
|
+
- lib/vanagon/platform/defaults/redhatfips-7-x86_64.rb
|
172
|
+
- lib/vanagon/platform/defaults/sles-12-x86_64.rb
|
173
|
+
- lib/vanagon/platform/defaults/sles-15-x86_64.rb
|
174
|
+
- lib/vanagon/platform/defaults/solaris-11-i386.rb
|
175
|
+
- lib/vanagon/platform/defaults/solaris-11-sparc.rb
|
176
|
+
- lib/vanagon/platform/defaults/ubuntu-16.04-amd64.rb
|
177
|
+
- lib/vanagon/platform/defaults/ubuntu-16.04-i386.rb
|
178
|
+
- lib/vanagon/platform/defaults/ubuntu-18.04-amd64.rb
|
179
|
+
- lib/vanagon/platform/defaults/ubuntu-20.04-aarch64.rb
|
180
|
+
- lib/vanagon/platform/defaults/ubuntu-20.04-amd64.rb
|
155
181
|
- lib/vanagon/platform/dsl.rb
|
156
182
|
- lib/vanagon/platform/osx.rb
|
157
183
|
- lib/vanagon/platform/rpm.rb
|
@@ -293,41 +319,41 @@ signing_key:
|
|
293
319
|
specification_version: 3
|
294
320
|
summary: All of your packages will fit into this van with this one simple trick.
|
295
321
|
test_files:
|
296
|
-
- spec/lib/
|
297
|
-
- spec/lib/
|
322
|
+
- spec/lib/git/rev_list_spec.rb
|
323
|
+
- spec/lib/makefile_spec.rb
|
324
|
+
- spec/lib/vanagon/common/user_spec.rb
|
325
|
+
- spec/lib/vanagon/common/pathname_spec.rb
|
298
326
|
- spec/lib/vanagon/extensions/set/json_spec.rb
|
299
|
-
- spec/lib/vanagon/
|
300
|
-
- spec/lib/vanagon/
|
301
|
-
- spec/lib/vanagon/
|
327
|
+
- spec/lib/vanagon/extensions/string_spec.rb
|
328
|
+
- spec/lib/vanagon/extensions/ostruct/json_spec.rb
|
329
|
+
- spec/lib/vanagon/component_spec.rb
|
330
|
+
- spec/lib/vanagon/utilities/shell_utilities_spec.rb
|
331
|
+
- spec/lib/vanagon/platform_spec.rb
|
332
|
+
- spec/lib/vanagon/environment_spec.rb
|
333
|
+
- spec/lib/vanagon/project/dsl_spec.rb
|
302
334
|
- spec/lib/vanagon/platform/osx_spec.rb
|
303
|
-
- spec/lib/vanagon/platform/solaris_10_spec.rb
|
304
335
|
- spec/lib/vanagon/platform/dsl_spec.rb
|
305
|
-
- spec/lib/vanagon/platform/deb_spec.rb
|
306
336
|
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
307
|
-
- spec/lib/vanagon/
|
308
|
-
- spec/lib/vanagon/
|
309
|
-
- spec/lib/vanagon/
|
310
|
-
- spec/lib/vanagon/
|
311
|
-
- spec/lib/vanagon/
|
312
|
-
- spec/lib/vanagon/engine/base_spec.rb
|
313
|
-
- spec/lib/vanagon/engine/hardware_spec.rb
|
314
|
-
- spec/lib/vanagon/engine/always_be_scheduling_spec.rb
|
315
|
-
- spec/lib/vanagon/engine/pooler_spec.rb
|
316
|
-
- spec/lib/vanagon/component_spec.rb
|
337
|
+
- spec/lib/vanagon/platform/rpm/aix_spec.rb
|
338
|
+
- spec/lib/vanagon/platform/windows_spec.rb
|
339
|
+
- spec/lib/vanagon/platform/deb_spec.rb
|
340
|
+
- spec/lib/vanagon/platform/rpm_spec.rb
|
341
|
+
- spec/lib/vanagon/platform/solaris_10_spec.rb
|
317
342
|
- spec/lib/vanagon/component/rules_spec.rb
|
318
|
-
- spec/lib/vanagon/component/
|
319
|
-
- spec/lib/vanagon/component/source/local_spec.rb
|
343
|
+
- spec/lib/vanagon/component/dsl_spec.rb
|
320
344
|
- spec/lib/vanagon/component/source/rewrite_spec.rb
|
321
345
|
- spec/lib/vanagon/component/source/git_spec.rb
|
322
|
-
- spec/lib/vanagon/component/
|
346
|
+
- spec/lib/vanagon/component/source/local_spec.rb
|
347
|
+
- spec/lib/vanagon/component/source/http_spec.rb
|
323
348
|
- spec/lib/vanagon/component/source_spec.rb
|
324
|
-
- spec/lib/vanagon/platform_spec.rb
|
325
|
-
- spec/lib/vanagon/cli_spec.rb
|
326
|
-
- spec/lib/vanagon/utilities_spec.rb
|
327
|
-
- spec/lib/vanagon/common/user_spec.rb
|
328
|
-
- spec/lib/vanagon/common/pathname_spec.rb
|
329
349
|
- spec/lib/vanagon/driver_spec.rb
|
330
350
|
- spec/lib/vanagon/project_spec.rb
|
331
|
-
- spec/lib/vanagon/
|
332
|
-
- spec/lib/
|
333
|
-
- spec/lib/
|
351
|
+
- spec/lib/vanagon/utilities_spec.rb
|
352
|
+
- spec/lib/vanagon/cli_spec.rb
|
353
|
+
- spec/lib/vanagon/engine/ec2_spec.rb
|
354
|
+
- spec/lib/vanagon/engine/always_be_scheduling_spec.rb
|
355
|
+
- spec/lib/vanagon/engine/base_spec.rb
|
356
|
+
- spec/lib/vanagon/engine/docker_spec.rb
|
357
|
+
- spec/lib/vanagon/engine/local_spec.rb
|
358
|
+
- spec/lib/vanagon/engine/hardware_spec.rb
|
359
|
+
- spec/lib/vanagon/engine/pooler_spec.rb
|