[lxc-devel] [lxc-ci/master] Add cloud images
monstermunchkin on Github
lxc-bot at linuxcontainers.org
Thu Aug 8 15:40:32 UTC 2019
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 302 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190808/1b09a590/attachment-0001.bin>
-------------- next part --------------
From 0b51afdc09f1760d18ba3fe42ac1cee3477fe27c Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Thu, 8 Aug 2019 14:02:33 +0200
Subject: [PATCH 1/2] images: Add cloud images
Signed-off-by: Thomas Hipp <thomas.hipp at canonical.com>
---
images/centos-cloud.yaml | 408 ++++++++++++++++++++++++++++++++++++++
images/fedora-cloud.yaml | 115 +++++++++++
images/gentoo-cloud.yaml | 392 ++++++++++++++++++++++++++++++++++++
images/oracle-cloud.yaml | 167 ++++++++++++++++
images/sabayon-cloud.yaml | 116 +++++++++++
images/ubuntu-cloud.yaml | 403 +++++++++++++++++++++++++++++++++++++
6 files changed, 1601 insertions(+)
create mode 100644 images/centos-cloud.yaml
create mode 100644 images/fedora-cloud.yaml
create mode 100644 images/gentoo-cloud.yaml
create mode 100644 images/oracle-cloud.yaml
create mode 100644 images/sabayon-cloud.yaml
create mode 100644 images/ubuntu-cloud.yaml
diff --git a/images/centos-cloud.yaml b/images/centos-cloud.yaml
new file mode 100644
index 0000000..e3cab89
--- /dev/null
+++ b/images/centos-cloud.yaml
@@ -0,0 +1,408 @@
+image:
+ distribution: centos
+
+source:
+ downloader: centos-http
+ url: http://centos.mirror.iweb.ca
+ keys:
+ # 0x6341AB2753D78A78A7C27BB124C6A8A7F4A80EB5
+ - |-
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ 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
+ ceEtRuCZ+Q==
+ =TDE8
+ -----END PGP PUBLIC KEY BLOCK-----
+
+ # 0xC1DAC52D1664E8A4386DBA430946FCA2C105B9DE
+ - |-
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ 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
+ ykI0UftbiVfOow==
+ =zBxo
+ -----END PGP PUBLIC KEY BLOCK-----
+
+ variant: minimal
+
+targets:
+ lxc:
+ create-message: |
+ You just created a {{ image.description }} container.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/centos.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/centos.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_kernel }}
+
+files:
+ - name: hostname
+ path: /etc/hostname
+ generator: hostname
+
+ - name: hosts
+ path: /etc/hosts
+ generator: hosts
+
+ - name: ifcfg-eth0
+ path: /etc/sysconfig/network-scripts/ifcfg-eth0
+ generator: dump
+ templated: true
+ content: |-
+ DEVICE=eth0
+ BOOTPROTO=dhcp
+ ONBOOT=yes
+ HOSTNAME=LXC_NAME
+ NM_CONTROLLED=no
+ TYPE=Ethernet
+ MTU=
+ DHCP_HOSTNAME=`hostname`
+
+ - name: network
+ path: /etc/sysconfig/network
+ generator: dump
+ templated: true
+ content: |-
+ NETWORKING=yes
+ HOSTNAME=LXC_NAME
+
+ - name: ifcfg-eth0.lxd
+ path: /etc/sysconfig/network-scripts/ifcfg-eth0
+ generator: template
+ content: |-
+ DEVICE=eth0
+ BOOTPROTO=dhcp
+ ONBOOT=yes
+ HOSTNAME={{ container.name }}
+ NM_CONTROLLED=no
+ TYPE=Ethernet
+ MTU=
+ DHCP_HOSTNAME=`hostname`
+
+ - name: network.lxd
+ path: /etc/sysconfig/network
+ generator: template
+ content: |-
+ NETWORKING=yes
+ HOSTNAME={{ container.name }}
+
+ - name: lxc-sysinit
+ path: /etc/init/lxc-sysinit.conf
+ generator: dump
+ content: |-
+ start on startup
+ env container
+
+ pre-start script
+ if [ "x$container" != "xlxc" -a "x$container" != "xlibvirt" ]; then
+ stop;
+ fi
+
+ rm -f /var/lock/subsys/*
+ rm -f /var/run/*.pid
+ [ -e /etc/mtab ] || ln -s /proc/mounts /etc/mtab
+ mkdir -p /dev/shm
+ mount -t tmpfs -o nosuid,nodev tmpfs /dev/shm
+
+ initctl start tty TTY=console
+ telinit 3
+ exit 0
+ end script
+ releases:
+ - 6
+
+ - name: sigpwr.conf
+ path: /etc/init/power-status-changed.conf
+ generator: dump
+ content: |-
+ start on power-status-changed
+
+ exec /sbin/shutdown -h now "SIGPWR received"
+ releases:
+ - 6
+
+ - name: meta-data
+ generator: cloud-init
+
+ - name: network-config
+ generator: cloud-init
+
+ - name: user-data
+ generator: cloud-init
+
+ - name: vendor-data
+ generator: cloud-init
+
+packages:
+ manager: yum
+ update: true
+ cleanup: true
+
+ sets:
+ - packages:
+ - cloud-init
+ - cronie
+ - cronie-noanacron
+ - curl
+ - dhclient
+ - initscripts
+ - openssh-clients
+ - passwd
+ - policycoreutils
+ - rootfiles
+ - rsyslog
+ - vim-minimal
+ action: install
+
+actions:
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+
+ # Disable SELinux
+ mkdir -p /selinux
+ echo 0 > /selinux/enforce
+
+ # Disable loginuid in PAM stack
+ sed -i '/^session.*pam_loginuid.so/s/^session/# session/' /etc/pam.d/*
diff --git a/images/fedora-cloud.yaml b/images/fedora-cloud.yaml
new file mode 100644
index 0000000..ead7477
--- /dev/null
+++ b/images/fedora-cloud.yaml
@@ -0,0 +1,115 @@
+image:
+ distribution: fedora
+
+source:
+ downloader: fedora-http
+ url: https://kojipkgs.fedoraproject.org
+
+targets:
+ lxc:
+ create-message: |
+ You just created a {{ image.description }} container.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/fedora.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/fedora.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_kernel }}
+
+files:
+ - path: /etc/hostname
+ generator: hostname
+
+ - path: /etc/hosts
+ generator: hosts
+
+ - name: eth0.network
+ path: /etc/systemd/network/eth0.network
+ generator: dump
+ content: |-
+ [Match]
+ Name=eth0
+
+ [Network]
+ DHCP=ipv4
+
+ - name: meta-data
+ generator: cloud-init
+
+ - name: network-config
+ generator: cloud-init
+
+ - name: user-data
+ generator: cloud-init
+
+ - name: vendor-data
+ generator: cloud-init
+
+packages:
+ manager: dnf
+ update: true
+ cleanup: true
+
+ sets:
+ - packages:
+ - cloud-init
+ - cpio
+ - dhcp-client
+ - file
+ - findutils
+ - fipscheck
+ - gettext
+ - glibc-all-langpacks
+ - hardlink
+ - initscripts
+ - ipcalc
+ - iproute
+ - iproute-tc
+ - iputils
+ - kbd
+ - kmod
+ - openssh-clients
+ - passwd
+ - pigz
+ - policycoreutils
+ - procps-ng
+ - systemd-udev
+ - which
+ - xz
+ action: install
+
+ - packages:
+ - libsss_idmap
+ - libsss_nss_idmap
+ - sssd-client
+ action: remove
+
+actions:
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ umount -l /etc/resolv.conf || true
+ rm /etc/resolv.conf
+ ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
+ systemctl enable systemd-networkd
+ systemctl enable systemd-resolved
+ cp -R /etc/skel/.bash* /root/
diff --git a/images/gentoo-cloud.yaml b/images/gentoo-cloud.yaml
new file mode 100644
index 0000000..f3269cd
--- /dev/null
+++ b/images/gentoo-cloud.yaml
@@ -0,0 +1,392 @@
+image:
+ distribution: gentoo
+
+source:
+ downloader: gentoo-http
+ url: https://mirror.csclub.uwaterloo.ca/gentoo-distfiles
+ keys:
+ # 0x13EBBDBEDE7A12775DFDB1BABB572E0E2D182910
+ - |-
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ mQINBEqUWzgBEACXftaG+HVuSQBEqdpBIg2SOVgWW/KbCihO5wPOsdbM93e+psmb
+ wvw+OtNHADQvxocKMuZX8Q/j5i3nQ/ikQFW5Oj6UXvl1qyxZhR2P7GZSNQxn0eMI
+ zAX08o691ws2/dFGXKmNT6btYJ0FxuTtTVSK6zi68WF+ILGK/O2TZXK9EKfZKPDH
+ KHcGrUq4c03vcGANz/8ksJj2ZYEGxMr1h7Wfe9PVcm0gCB1MhYHNR755M47V5Pch
+ fyxbs6vaKz82PgrNjjjbT0PISvnKReUOdA2PFUWry6UKQkiVrLVDRkd8fryLL8ey
+ 5JxgVoJZ4echoVWQ0JYJ5lJTWmcZyxQYSAbz2w9dLB+dPyyGpyPp1KX1ADukbROp
+ 9S11I9+oVnyGdUBm+AUme0ecekWvt4qiCw3azghLSwEyGZc4a8nNcwSqFmH7Rqdd
+ 1+gHc+4tu4WHmguhMviifGXKyWiRERULp0obV33JEo/c4uwyAZHBTJtKtVaLb92z
+ aRdh1yox2I85iumyt62lq9dfOuet4NNVDnUkqMYCQD23JB8IM+qnVaDwJ6oCSIKi
+ nY3uyoqbVE6Lkm+Hk5q5pbvg1cpEH6HWWAl20EMCzMOoMcH0tPyQLDlD2Mml7veG
+ kwdy3S6RkjCympbNzqWec2+hkU2c93Bgpfh7QP0GDN0qrzcNNFmrD5795QARAQAB
+ tFNHZW50b28gTGludXggUmVsZWFzZSBFbmdpbmVlcmluZyAoQXV0b21hdGVkIFdl
+ ZWtseSBSZWxlYXNlIEtleSkgPHJlbGVuZ0BnZW50b28ub3JnPoheBBARCAAGBQJR
+ yaWCAAoJELP3uHLZaXat08sA/3paxuDydIV/8qe9PzgID6zifip9T9XfTDCRbHQR
+ Kw0xAP9vTE9yoPuNMrF55AP9+68FbYaIO0sUxNN9CVby28iU7IkBHAQQAQIABgUC
+ Ut9qEwAKCRAvJnjSPF2apBtSCACIPmfvwiBluwx1dz4/C4pUSIZmaRk5NrKhuADL
+ CBUyH4X/Ajz4MhvXjAYeWpvtzxHW5sJL0mnNBQtkEM3SPGrYsJLCmhp0hW0lfYtq
+ pG8Kymej7N7CJMYKW65HTvlLyCM1JpBy3OAXBgtxNIeho+dXbXTBPAUCje2MVS8h
+ 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
+ jTsu2yrgfAlRBAIer9m6c0dtjIJnqnXByNhv11XdiH3rIURCJcKkZIBgMcosun3b
+ MK9hHYQ+A2dvLbWIG4W67xDufYpzmRx8pLepfQa6FHgD/5a1AJ93fQrkkd0gaDbN
+ t0H/DvQZqLaxaZHKtCVO7JZwPvxw4ttSjq6MW8v78I1D9i/WC53rvUeFTiChm7xt
+ CMzXr08g51Xu/t3q0oOtaHhCHYGOiQI7BBMBAgAlBQJKlFs5AhsDBQkHhM4ABgsJ
+ CAcDAgQVAggDAxYCAQIeAQIXgAAKCRC7Vy4OLRgpEBavEACN6PjhMdn3gv9Ee6s1
+ 3ugDZARHVwxiBS2IIFarTj0tvwtX2GHme8u0AgQ8u1hhGIp/JvnUi8LylTTnxyoW
+ eTS7kU7Lwv08pX0uI6MrGfTblRQoKWZQKGcTZ3b3Qj2l9EXUHIA0ZBj/RPPaqq4J
+ QAjiQ3Ng2hCitpUNuMCvcMJtJSgBzbN3eas/U0Nj6KQR////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////
+ /////////////////////////4kCUgQTAQIAPAIbAwYLCQgHAwIEFQIIAwMWAgEC
+ HgECF4AWIQQT672+3noSd139sbq7Vy4OLRgpEAUCWZxJ3wUJEspVpwAKCRC7Vy4O
+ LRgpEBGvD/0RfgZz9fObSxYAJWEm1HFjIKtr2jhD9m0YllYhv6JhU21RnlqEb5DR
+ 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
+ x/lOXD+10MmvH+jr/F6q7R7kVl/n2WDZq5S6iOWvFjxuoSEt/nklunw+Vv80m5M/
+ giW+qCpdM9QgrL3NxCRrm3z5wNSbliYsd7Cuv0X2G7HGAgm5uQENBFxxNVIBCACr
+ rx8QDtOErLrjh8U33d+hn/dzTHhm2O+jOBz/xT/FQh4Mku93kWZ5gLpv4nHkNfVI
+ CrhlAdEjcDs1HkVJlTnHjj5qL1Vw6SV6AMIKbhBB5Fa+F8T44AHqtOE44ogR3TUg
+ IDiMGHGQ+i0LjyRM+HZ0/167uNEiYOg4OHsM49YN86d8jmJKsDLAU4ZtgR72HXcs
+ bLNYUE4Jg1LLMbjPbIRrNk3GygMAgs7bYT4LEM5/SP6IAqDF5v0J48MPtfBg1+4W
+ nGE5T6i54fssnro5gCSY1c+lmuw+OANmNCKiKBd5cI4aODiULURHQc6uzF/BA2qo
+ rEj4erEEzbMKIMlSQfsXABEBAAGJA9IEGAEKACYCGwIWIQQT672+3noSd139sbq7
+ Vy4OLRgpEAUCXMRr8gUJAospTgGgwNQgBBkBCgB9FiEEU05CCatJ7uHBnZYWLERp
+ Xbn2BD0FAlxxNVJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBn
+ cC5maWZ0aGhvcnNlbWFuLm5ldDUzNEU0MjA5QUI0OUVFRTFDMTlEOTYxNjJDNDQ2
+ OTVEQjlGNjA0M0QACgkQLERpXbn2BD0uPwf/fqcGR7LdbXx70uk6nw1I63D4sc24
+ eWuZPROGmZpkiOafUbRUYsrNSWOauD9cvCETbxke5hLBciUEYx1OTUh/FZr1qCcS
+ 2JUtrpwOJCqzeMVrpCKhur+iWQjM3yw/mQDc0BgJRyYH/t1zDSz8VZSzI5Iqx5RZ
+ QQdDB9/Fl4j22uy4xO3nSGbTGHzLLrSNY90jO5jlX4Lczxh0/uhhLWX/05rSp/qd
+ ua/6koirgP3NC5NRoKAvrc3JztzZCu1jVwi41PFsZgwGt/8w4+fPGGHTRxCHtKyt
+ XZpS4yn5JXzwf+idjD+JiJURcNGBotbxpljupMBbelLSxD6djlgPKjaCQgkQu1cu
+ Di0YKRCXzg//TKZrljYXymdJKjFeRBfMCj7Jg0zeo/rYRJUIj4ZTqkL3mDoYB+yQ
+ 2qgqH/0egketlkTCfoQRNsAo8GIdyCm+o0AU1n5x4mrLeglJb6h2WwmjGW00kbGf
+ G0CfBobD8b4UHTLnTcQ9xz4riH0TRJR7p3cEH116hcgfF4IXWjn7lRZEmUw/xDex
+ fX/LO8uttBM33EOHVAdxcq9uZuCFPhsmAkLhfoNnTXdCS83YTWPn43DvhoyIbfQS
+ ZcS+YL6AthfybtcTKOOBGoR1vWRYOjbHwPxeiEhl7gQbp3aGndcjmL71KcSSybv2
+ 2R2/ifi5UrcyGPFuBpxmtyGwMFFU6sDtkc7PUIvmCZgOho1BVdm+zUWbZHe/j5Wu
+ h5CLPECJiMvk9clZWxUNN0p3nEnfZ0ulj4mcDnWHv1fiwlAwqOqWgse2RSB0Q+VW
+ 2+HTgaGIQqgL28rvINw5CBOIw+LtMSTYtPb4zK/eVlfO/4U/DmF9JVYu7OgYojnr
+ OFm9a6OolvUoeT6r0FOgP9efznlSzEq59amY6DigAYzygwWanEGto1GYIy35GoC3
+ XcqC8kUGL+wv3WE1Os6RfAJlpWf1/rt1cFUzOBeZFAEuEfKbgNxXBx8xogrg1CrN
+ WzpmZk4pw+O/jdpJkdFxphpg6hbFdqpzMvvKq7jBvrunAxffXYAF2lY=
+ =T+GL
+ -----END PGP PUBLIC KEY BLOCK-----
+
+targets:
+ lxc:
+ create-message: |
+ You just created an {{ image.description }} container.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/gentoo.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/gentoo.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_kernel }}
+
+files:
+ - name: hostname
+ path: /etc/hostname
+ generator: hostname
+
+ - name: conf-hostname
+ path: /etc/conf.d/hostname
+ generator: hostname
+
+ - name: hosts
+ path: /etc/hosts
+ generator: hosts
+
+ - name: conf-net
+ path: /etc/conf.d/net
+ generator: dump
+ content: |-
+ rc_keyword="-stop"
+ config_eth0="dhcp"
+
+ - name: meta-data
+ generator: cloud-init
+
+ - name: network-config
+ generator: cloud-init
+
+ - name: user-data
+ generator: cloud-init
+
+ - name: vendor-data
+ generator: cloud-init
+
+packages:
+ manager: portage
+ update: false
+ cleanup: true
+
+ sets:
+ - packages:
+ - cloud-init
+ action: install
+
+actions:
+ - trigger: post-unpack
+ action: |-
+ #!/bin/sh
+ set -eux
+ mv /usr/bin/gpg2 /usr/bin/gpg2.real
+ echo "#!/bin/sh" > /usr/bin/gpg2
+ echo "exec /usr/bin/gpg2.real --keyserver keyserver.ubuntu.com \"\$@\"" >> /usr/bin/gpg2
+ chmod +x /usr/bin/gpg2
+ sed -i 's/^c[0-9]:/#\0/' /etc/inittab
+ sed -i 's/^#\(x1:.*\)/\1/' etc/inittab
+ echo pf:12345:powerwait:/sbin/halt >> /etc/inittab
+
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+ ln -s net.lo /etc/init.d/net.eth0
+ mkdir -p /etc/runlevels/default
+ rc-update add net.eth0 default
+
+ rm /usr/bin/gpg2
+ mv /usr/bin/gpg2.real /usr/bin/gpg2
+
+mappings:
+ architecture_map: gentoo
diff --git a/images/oracle-cloud.yaml b/images/oracle-cloud.yaml
new file mode 100644
index 0000000..b9de9b3
--- /dev/null
+++ b/images/oracle-cloud.yaml
@@ -0,0 +1,167 @@
+image:
+ distribution: oracle
+
+source:
+ downloader: oraclelinux-http
+ url: https://mirrors.kernel.org/oracle
+
+targets:
+ lxc:
+ create-message: |
+ You just created a {{ image.description }} container.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/centos.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/centos.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_kernel }}
+
+files:
+ - name: hostname
+ path: /etc/hostname
+ generator: hostname
+
+ - name: hosts
+ path: /etc/hosts
+ generator: hosts
+
+ - name: ifcfg-eth0
+ path: /etc/sysconfig/network-scripts/ifcfg-eth0
+ generator: dump
+ templated: true
+ content: |-
+ DEVICE=eth0
+ BOOTPROTO=dhcp
+ ONBOOT=yes
+ HOSTNAME=LXC_NAME
+ NM_CONTROLLED=no
+ TYPE=Ethernet
+ MTU=
+ DHCP_HOSTNAME=`hostname`
+
+ - name: network
+ path: /etc/sysconfig/network
+ generator: dump
+ templated: true
+ content: |-
+ NETWORKING=yes
+ HOSTNAME=LXC_NAME
+
+ - name: ifcfg-eth0.lxd
+ path: /etc/sysconfig/network-scripts/ifcfg-eth0
+ generator: template
+ content: |-
+ DEVICE=eth0
+ BOOTPROTO=dhcp
+ ONBOOT=yes
+ HOSTNAME={{ container.name }}
+ NM_CONTROLLED=no
+ TYPE=Ethernet
+ MTU=
+ DHCP_HOSTNAME=`hostname`
+
+ - name: network.lxd
+ path: /etc/sysconfig/network
+ generator: template
+ content: |-
+ NETWORKING=yes
+ HOSTNAME={{ container.name }}
+
+ - name: lxc-sysinit
+ path: /etc/init/lxc-sysinit.conf
+ generator: dump
+ content: |-
+ start on startup
+ env container
+
+ pre-start script
+ if [ "x$container" != "xlxc" -a "x$container" != "xlibvirt" ]; then
+ stop;
+ fi
+
+ rm -f /var/lock/subsys/*
+ rm -f /var/run/*.pid
+ [ -e /etc/mtab ] || ln -s /proc/mounts /etc/mtab
+ mkdir -p /dev/shm
+ mount -t tmpfs -o nosuid,nodev tmpfs /dev/shm
+
+ initctl start tty TTY=console
+ telinit 3
+ exit 0
+ end script
+ releases:
+ - 6
+
+ - name: sigpwr.conf
+ path: /etc/init/power-status-changed.conf
+ generator: dump
+ content: |-
+ start on power-status-changed
+
+ exec /sbin/shutdown -h now "SIGPWR received"
+ releases:
+ - 6
+
+ - name: meta-data
+ generator: cloud-init
+
+ - name: network-config
+ generator: cloud-init
+
+ - name: user-data
+ generator: cloud-init
+
+ - name: vendor-data
+ generator: cloud-init
+
+packages:
+ manager: yum
+ update: true
+ cleanup: true
+
+ sets:
+ - packages:
+ - cloud-init
+ - curl
+ - dhclient
+ - initscripts
+ - openssh-clients
+ - passwd
+ - policycoreutils
+ - rootfiles
+ - rsyslog
+ - tcp_wrappers-libs
+ - vim-minimal
+ action: install
+
+actions:
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+
+ # Disable SELinux
+ mkdir -p /selinux
+ echo 0 > /selinux/enforce
+
+ # Disable loginuid in PAM stack
+ sed -i '/^session.*pam_loginuid.so/s/^session/# session/' /etc/pam.d/*
diff --git a/images/sabayon-cloud.yaml b/images/sabayon-cloud.yaml
new file mode 100644
index 0000000..c15f271
--- /dev/null
+++ b/images/sabayon-cloud.yaml
@@ -0,0 +1,116 @@
+image:
+ distribution: sabayon
+
+source:
+ downloader: sabayon-http
+ url: http://dl.sabayon.org/sbi/sabayon%3Aiso/iso
+
+environment:
+ clear_defaults: true
+ variables:
+ - key: "SHELL"
+ value: "/bin/bash"
+ - key: "ACCEPT_LICENSE"
+ value: "*"
+
+targets:
+ lxc:
+ create-message: |
+ You just created an {{ image.description }} container.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/sabayon.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/sabayon.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_kernel }}
+
+files:
+ - path: /etc/hostname
+ generator: hostname
+
+ - path: /etc/hosts
+ generator: hosts
+
+ - path: /etc/systemd/system/systemd-sysctl.service.d/00gentoo.conf
+ generator: dump
+ content: |-
+ [Service]
+ ExecStart=
+ ExecStart=/usr/lib/systemd/systemd-sysctl --prefix=/etc/sysctl.d/
+
+ - path: /etc/systemd/system/NetworkManager.service.d/override.conf
+ generator: dump
+ content: |-
+ [Service]
+ ExecStartPre=-/bin/ip -4 link set dev eth0 down
+
+ - name: meta-data
+ generator: cloud-init
+
+ - name: network-config
+ generator: cloud-init
+
+ - name: user-data
+ generator: cloud-init
+
+ - name: vendor-data
+ generator: cloud-init
+
+packages:
+ manager: equo
+ update: false
+ cleanup: true
+
+ sets:
+ - packages:
+ - cloud-init
+ action: install
+
+actions:
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+
+ # Disable problematic systemd units
+ ln -s /dev/null /etc/systemd/system/systemd-journald-audit.socket
+ ln -s /dev/null /etc/systemd/system/systemd-remount-fs.service
+ ln -s /dev/null /etc/systemd/system/sys-fs-fuse-connections.mount
+ ln -s /dev/null /etc/systemd/system/dev-hugepages.mount
+
+ # Disable sabayon-anti-fork-bomb limits
+ sed -i -e 's/^*/#*/g' /etc/security/limits.d/00-sabayon-anti-fork-bomb.conf
+ sed -i -e 's/^root/#root/g' /etc/security/limits.d/00-sabayon-anti-fork-bomb.conf
+
+ # Clean journal directory (to avoid permission errors)
+ rm -rf /var/log/journal/
+
+ # Remove LVM service. Normally not needed on container system.
+ rm -rf /etc/systemd/system/sysinit.target.wants/lvm2-lvmetad.service
+
+ # Comment unneeded entry on /etc/fstab
+ sed -e 's/\/dev/#\/dev/g' -i /etc/fstab
+
+ # Create some potentially missing directory
+ mkdir -p /etc/local.d
+
+mappings:
+ architecture_map: debian
diff --git a/images/ubuntu-cloud.yaml b/images/ubuntu-cloud.yaml
new file mode 100644
index 0000000..906e861
--- /dev/null
+++ b/images/ubuntu-cloud.yaml
@@ -0,0 +1,403 @@
+image:
+ distribution: "ubuntu"
+
+source:
+ downloader: debootstrap
+ same_as: gutsy
+ url: http://archive.ubuntu.com/ubuntu
+ keys:
+ # 0x790BC7277767219C42C86F933B4FE6ACC0B21F32
+ - |-
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+ 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
+ =384X
+ -----END PGP PUBLIC KEY BLOCK-----
+
+ apt_sources: |-
+ {% if image.architecture_mapped == "amd64" or image.architecture_mapped == "i386" %}deb http://archive.ubuntu.com/ubuntu {{ image.release }} main restricted universe multiverse
+ deb http://archive.ubuntu.com/ubuntu {{ image.release }}-updates main restricted universe multiverse
+ deb http://security.ubuntu.com/ubuntu {{ image.release }}-security main restricted universe multiverse
+ {% else %}deb http://ports.ubuntu.com/ubuntu-ports {{ image.release }} main restricted universe multiverse
+ deb http://ports.ubuntu.com/ubuntu-ports {{ image.release }}-updates main restricted universe multiverse
+ deb http://ports.ubuntu.com/ubuntu-ports {{ image.release }}-security main restricted universe multiverse
+ {% endif %}
+
+targets:
+ lxc:
+ create-message: |-
+ You just created an {{ image.description }} container.
+
+ To enable SSH, run: apt install openssh-server
+ No default root or user password are set by LXC.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/ubuntu.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/ubuntu.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ # For Ubuntu 14.04
+ lxc.mount.entry = /sys/kernel/debug sys/kernel/debug none bind,optional 0 0
+ lxc.mount.entry = /sys/kernel/security sys/kernel/security none bind,optional 0 0
+ lxc.mount.entry = /sys/fs/pstore sys/fs/pstore none bind,optional 0 0
+ lxc.mount.entry = mqueue dev/mqueue mqueue rw,relatime,create=dir,optional 0 0
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ # For Ubuntu 14.04
+ lxc.mount.entry = /sys/firmware/efi/efivars sys/firmware/efi/efivars none bind,optional 0 0
+ lxc.mount.entry = /proc/sys/fs/binfmt_misc proc/sys/fs/binfmt_misc none bind,optional 0 0
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_personality }}
+
+files:
+ - path: /etc/hostname
+ generator: hostname
+
+ - path: /etc/hosts
+ generator: hosts
+
+ - path: /etc/resolvconf/resolv.conf.d/original
+ generator: remove
+
+ - path: /etc/resolvconf/resolv.conf.d/tail
+ generator: remove
+
+ - path: /etc/machine-id
+ generator: remove
+
+ - path: /etc/netplan/10-lxc.yaml
+ generator: dump
+ content: |-
+ network:
+ version: 2
+ ethernets:
+ eth0: {dhcp4: true}
+ releases:
+ - bionic
+ - cosmic
+ - disco
+ - eoan
+
+ - path: /etc/network/interfaces
+ generator: dump
+ content: |-
+ # This file describes the network interfaces available on your system
+ # and how to activate them. For more information, see interfaces(5).
+
+ # The loopback network interface
+ auto lo
+ iface lo inet loopback
+
+ auto eth0
+ iface eth0 inet dhcp
+ releases:
+ - trusty
+ - xenial
+
+ - path: /etc/init/lxc-tty.conf
+ generator: upstart-tty
+ releases:
+ - trusty
+
+ - name: meta-data
+ generator: cloud-init
+
+ - name: network-config
+ generator: cloud-init
+
+ - name: user-data
+ generator: cloud-init
+
+ - name: vendor-data
+ generator: cloud-init
+
+packages:
+ manager: apt
+ update: true
+ cleanup: true
+
+ sets:
+ - packages:
+ - apt-transport-https
+ - language-pack-en
+ - openssh-client
+ - vim
+ action: install
+
+ - packages:
+ - cloud-init
+ action: install
+ releases:
+ - xenial
+ - bionic
+ - cosmic
+ - disco
+ - eoan
+
+
+actions:
+ - trigger: post-update
+ action: |-
+ #!/bin/sh
+ set -eux
+
+ # Create the ubuntu user account
+ getent group sudo >/dev/null 2>&1 || groupadd --system sudo
+ useradd --create-home -s /bin/bash -G sudo -U ubuntu
+
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+
+ # Make sure the locale is built and functional
+ locale-gen en_US.UTF-8
+ update-locale LANG=en_US.UTF-8
+
+ # Cleanup underlying /run
+ mount -o bind / /mnt
+ rm -rf /mnt/run/*
+ umount /mnt
+
+ # Cleanup temporary shadow paths
+ rm /etc/*-
+
+mappings:
+ architecture_map: debian
From 513d6ebe6ec3a3fa3c92089330fc82d18701adb4 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Thu, 8 Aug 2019 17:38:53 +0200
Subject: [PATCH 2/2] jenkins/jobs: Add cloud images
Signed-off-by: Thomas Hipp <thomas.hipp at canonical.com>
---
jenkins/jobs/image-centos.yaml | 6 +++++-
jenkins/jobs/image-fedora.yaml | 6 +++++-
jenkins/jobs/image-gentoo.yaml | 6 +++++-
jenkins/jobs/image-oracle.yaml | 6 +++++-
jenkins/jobs/image-sabayon.yaml | 6 +++++-
jenkins/jobs/image-ubuntu.yaml | 10 ++++++++--
6 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/jenkins/jobs/image-centos.yaml b/jenkins/jobs/image-centos.yaml
index 835022c..448b140 100644
--- a/jenkins/jobs/image-centos.yaml
+++ b/jenkins/jobs/image-centos.yaml
@@ -28,6 +28,7 @@
type: user-defined
values:
- default
+ - cloud
- axis:
name: restrict
@@ -51,7 +52,10 @@
EXTRA_ARGS="-o source.url=http://mirror.math.princeton.edu/pub/centos-altarch/ -o source.skip_verification=true"
fi
- exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/centos.yaml \
+ YAML_FILE=centos.yaml
+ [ "${variant}" = "cloud" ] && YAML_FILE=centos-cloud.yaml
+
+ exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/${YAML_FILE} \
${LXD_ARCHITECTURE} 7200 ${WORKSPACE} \
-o image.architecture=${ARCH} \
-o image.release=${release} ${EXTRA_ARGS}
diff --git a/jenkins/jobs/image-fedora.yaml b/jenkins/jobs/image-fedora.yaml
index 410badd..05ed84f 100644
--- a/jenkins/jobs/image-fedora.yaml
+++ b/jenkins/jobs/image-fedora.yaml
@@ -29,6 +29,7 @@
type: user-defined
values:
- default
+ - cloud
- axis:
name: restrict
@@ -52,7 +53,10 @@
[ "${ARCH}" = "armhf" ] && ARCH="armhfp"
[ "${ARCH}" = "ppc64el" ] && ARCH="ppc64le"
- exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/fedora.yaml \
+ YAML_FILE=fedora.yaml
+ [ "${variant}" = "cloud" ] && YAML_FILE=fedora-cloud.yaml
+
+ exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/${YAML_FILE} \
${LXD_ARCHITECTURE} 1800 ${WORKSPACE} \
-o image.architecture=${ARCH} \
-o image.release=${release}
diff --git a/jenkins/jobs/image-gentoo.yaml b/jenkins/jobs/image-gentoo.yaml
index 8054145..4bfde11 100644
--- a/jenkins/jobs/image-gentoo.yaml
+++ b/jenkins/jobs/image-gentoo.yaml
@@ -27,6 +27,7 @@
type: user-defined
values:
- default
+ - cloud
- axis:
name: restrict
@@ -44,7 +45,10 @@
[ "${ARCH}" = "ppc64el" ] && ARCH="ppc64le"
[ "${ARCH}" = "i386" ] && ARCH="i686"
- exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/gentoo.yaml \
+ YAML_FILE=gentoo.yaml
+ [ "${variant}" = "cloud" ] && YAML_FILE=gentoo-cloud.yaml
+
+ exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/${YAML_FILE} \
${LXD_ARCHITECTURE} 7200 ${WORKSPACE} \
-o image.architecture=${ARCH}
diff --git a/jenkins/jobs/image-oracle.yaml b/jenkins/jobs/image-oracle.yaml
index facb76a..58fe116 100644
--- a/jenkins/jobs/image-oracle.yaml
+++ b/jenkins/jobs/image-oracle.yaml
@@ -25,6 +25,7 @@
type: user-defined
values:
- default
+ - cloud
- axis:
name: restrict
@@ -40,7 +41,10 @@
ARCH=${architecture}
[ "${ARCH}" = "amd64" ] && ARCH="x86_64"
- exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/oracle.yaml \
+ YAML_FILE=oracle.yaml
+ [ "${variant}" = "cloud" ] && YAML_FILE=oracle-cloud.yaml
+
+ exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/${YAML_FILE} \
${LXD_ARCHITECTURE} 3600 ${WORKSPACE} \
-o image.architecture=${ARCH} \
-o image.release=${release}
diff --git a/jenkins/jobs/image-sabayon.yaml b/jenkins/jobs/image-sabayon.yaml
index 961ab71..209172f 100644
--- a/jenkins/jobs/image-sabayon.yaml
+++ b/jenkins/jobs/image-sabayon.yaml
@@ -23,6 +23,7 @@
type: user-defined
values:
- default
+ - cloud
- axis:
name: restrict
@@ -37,7 +38,10 @@
ARCH=${architecture}
- exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/sabayon.yaml \
+ YAML_FILE=sabayon.yaml
+ [ "${variant}" = "cloud" ] && YAML_FILE=sabayon-cloud.yaml
+
+ exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/${YAML_FILE} \
${LXD_ARCHITECTURE} 3600 ${WORKSPACE} \
-o image.architecture=${ARCH}
diff --git a/jenkins/jobs/image-ubuntu.yaml b/jenkins/jobs/image-ubuntu.yaml
index 23b67a6..78edb49 100644
--- a/jenkins/jobs/image-ubuntu.yaml
+++ b/jenkins/jobs/image-ubuntu.yaml
@@ -33,6 +33,7 @@
type: user-defined
values:
- default
+ - cloud
- axis:
name: restrict
@@ -48,14 +49,19 @@
ARCHIVE="http://us.ports.ubuntu.com/ubuntu-ports"
fi
- exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/ubuntu.yaml \
+ YAML_FILE=ubuntu.yaml
+ [ "${variant}" = "cloud" ] && YAML_FILE=ubuntu-cloud.yaml
+
+ exec sudo /lxc-ci/bin/build-distro /lxc-ci/images/${YAML_FILE} \
${architecture} 3600 ${WORKSPACE} \
-o image.architecture=${architecture} \
-o image.release=${release} \
-o source.url=${ARCHIVE}
execution-strategy:
- combination-filter: '!(architecture=="s390x" && release == "trusty")'
+ combination-filter: '
+ !(architecture=="s390x" && release == "trusty") &&
+ !(variant == "cloud" && release == "trusty")'
properties:
- build-discarder:
More information about the lxc-devel
mailing list