File elemental-2.1.3.obscpio of Package SL-Micro-homelab-container
07070100000000000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000001500000000elemental-2.1.3/.obs07070100000001000081A400000000000000000000000166F1387F000001CE000000000000000000000000000000000000001F00000000elemental-2.1.3/.obs/README.md# Open Build Service integration files
This folder includes specific files to integrate with the [Open Build Service](https://build.opensuse.org) (OBS) by
[openSUSE](https://www.opensuse.org). Includes the workflows definition file (`workflows.yml`) that defines
actions for pull request, push tag and commit events.
In addition it also includes any required spec file or Dockerfile, usually these
are adapted to OBS and can't be used outside the OBS context.
07070100000002000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000002000000000elemental-2.1.3/.obs/dockerfile07070100000003000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000003400000000elemental-2.1.3/.obs/dockerfile/micro-baremetal-iso07070100000004000081A400000000000000000000000166F1387F00000869000000000000000000000000000000000000003F00000000elemental-2.1.3/.obs/dockerfile/micro-baremetal-iso/Dockerfile# SPDX-License-Identifier: Apache-2.0
#!BuildName: build-baremetal-iso-image
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-iso-image:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-iso-image:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-iso-image:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 10
#!BuildConstraint: hardware:memory:size unit=G 16
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/baremetal-os-container:latest AS os
FROM suse/sl-micro/${SLMICRO_VERSION}/baremetal-os-container:latest AS builder
WORKDIR /iso
COPY manifest.yaml manifest.yaml
COPY --from=os / rootfs
# Prepare a busybox base
RUN mkdir -p /busybox && rpm --initdb --root /busybox
RUN zypper --installroot /busybox in --no-recommends -y busybox
# Version value is taken form the elemental repository tags
# Release value of this image and os image are unrelated
# must be ...<flavor>.<arch>... for OBS
RUN elemental --debug --config-dir . build-iso -o /output -n "sl-micro-%%SLMICRO_VERSION%%-baremetal.$(uname -m)-%VERSION%-Build%RELEASE%" dir:rootfs
# Only keep the ISO as a result and busybox
FROM scratch
COPY --from=builder /busybox /
COPY --from=builder /output /elemental-iso
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-iso-image
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro baremetal ISO"
LABEL org.opencontainers.image.description="Includes the SUSE Linux Micro baremetal ISO"
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.url="https://github.com/rancher/elemental"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="l3"
# endlabelprefix
# By default run a shell
ENTRYPOINT ["/usr/bin/busybox"]
CMD ["sh"]
07070100000005000081A400000000000000000000000166F1387F00000052000000000000000000000000000000000000004200000000elemental-2.1.3/.obs/dockerfile/micro-baremetal-iso/manifest.yamliso:
bootloader-in-rootfs: true
grub-entry-name: "SL Micro Baremetal Install"
07070100000006000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000003300000000elemental-2.1.3/.obs/dockerfile/micro-baremetal-os07070100000007000081A400000000000000000000000166F1387F00000EB8000000000000000000000000000000000000003E00000000elemental-2.1.3/.obs/dockerfile/micro-baremetal-os/Dockerfile# SPDX-License-Identifier: Apache-2.0
# Define the names/tags of the container
#!BuildName: SL-Micro-container
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-os-container:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-os-container:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-os-container:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 8
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/base-os-container:latest
# dummy zypper call to get elemental into the build context and extract %VERSION% from it via _service
RUN zypper in --no-recommends -y systemd-presets-branding-Elemental elemental
# extend -base with baremetal and usability packages
RUN zypper in --no-recommends -y procps openssh openssh-server \
vim-small less kernel-firmware-all NetworkManager-wwan cryptsetup \
\
avahi bash-completion catatonit cni cni-plugins conmon conntrack-tools \
container-selinux ethtool fuse-overlayfs hdparm hostname iptables \
issue-generator jq keyutils lshw lsof lsscsi mdadm multipath-tools \
netcat-openbsd net-tools nfs-client \
nss-mdns open-iscsi open-vm-tools pciutils pciutils-ids podman policycoreutils \
procmail psmisc rpcbind runc selinux-policy selinux-policy-targeted \
selinux-tools slirp4netns strace sudo sysstat system-user-nobody \
timezone traceroute xtables-plugins
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/baremetal-os-container
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# IMPORTANT: Setup elemental-release used for versioning/upgrade. The
# values here should reflect the tag of the image being built
# Also used by elemental-populate-labels
RUN grep -v "IMAGE_REPO\|IMAGE_TAG\|IMAGE=\|TIMESTAMP\|GRUB_ENTRY_NAME" /etc/os-release > /tmp/os-release
RUN mv /tmp/os-release /etc/os-release
RUN echo IMAGE_REPO=\"${IMAGE_REPO}\" >> /etc/os-release && \
echo IMAGE_TAG=\"${IMAGE_TAG}\" >> /etc/os-release && \
echo IMAGE=\"${IMAGE_REPO}:${IMAGE_TAG}\" >> /etc/os-release && \
echo TIMESTAMP="`date +'%Y%m%d%H%M%S'`" >> /etc/os-release && \
echo GRUB_ENTRY_NAME=\"SUSE Linux Micro\" >> /etc/os-release
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro Baremetal OS Container"
LABEL org.opencontainers.image.description="SUSE Linux Micro Baremetal OS - a containerized OS layer for Kubernetes."
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.url="https://www.suse.com/products/micro/"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="l3"
LABEL com.suse.eula="sle-eula"
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-micro"
LABEL com.suse.image-type="sl-micro"
LABEL com.suse.release-stage="beta"
# endlabelprefix
# Ensure /tmp is mounted as tmpfs by default
RUN if [ -e /usr/share/systemd/tmp.mount ]; then \
cp /usr/share/systemd/tmp.mount /etc/systemd/system; \
fi
# Save some space
RUN if [ -f /usr/bin/zypper ]; then zypper clean --all; fi
# Save more space
RUN rm -rf /var/log/update* && \
>/var/log/lastlog && \
rm -rf /boot/vmlinux*
# Rebuild initrd to setup dracut with the boot configurations
RUN elemental init --force elemental-rootfs,elemental-sysroot,grub-config,dracut-config,cloud-config-essentials,elemental-setup,boot-assessment
07070100000008000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000002F00000000elemental-2.1.3/.obs/dockerfile/micro-base-iso07070100000009000081A400000000000000000000000166F1387F0000083C000000000000000000000000000000000000003A00000000elemental-2.1.3/.obs/dockerfile/micro-base-iso/Dockerfile# SPDX-License-Identifier: Apache-2.0
#!BuildName: build-base-iso-image
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/base-iso-image:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/base-iso-image:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/base-iso-image:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 10
#!BuildConstraint: hardware:memory:size unit=G 16
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/base-os-container:latest AS os
FROM suse/sl-micro/${SLMICRO_VERSION}/baremetal-os-container:latest AS builder
WORKDIR /iso
COPY manifest.yaml manifest.yaml
COPY --from=os / rootfs
# Prepare a busybox base
RUN mkdir -p /busybox && rpm --initdb --root /busybox
RUN zypper --installroot /busybox in --no-recommends -y busybox
# Version value is taken form the elemental repository tags
# Release value of this image and os image are unrelated
# must be ...<flavor>.<arch>... for OBS
RUN elemental --debug --config-dir . build-iso -o /output -n "sl-micro-%%SLMICRO_VERSION%%-base.$(uname -m)-%VERSION%-Build%RELEASE%" dir:rootfs
# Only keep the ISO as a result and busybox
FROM scratch
COPY --from=builder /busybox /
COPY --from=builder /output /elemental-iso
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/base-iso-image
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro base-ISO"
LABEL org.opencontainers.image.description="Includes the SUSE Linux Micro base-ISO"
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.url="https://github.com/rancher/elemental"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="l3"
# endlabelprefix
# By default run a shell
ENTRYPOINT ["/usr/bin/busybox"]
CMD ["sh"]
0707010000000A000081A400000000000000000000000166F1387F0000004D000000000000000000000000000000000000003D00000000elemental-2.1.3/.obs/dockerfile/micro-base-iso/manifest.yamliso:
bootloader-in-rootfs: true
grub-entry-name: "SL Micro Base Install"
0707010000000B000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000002E00000000elemental-2.1.3/.obs/dockerfile/micro-base-os0707010000000C000081A400000000000000000000000166F1387F00001125000000000000000000000000000000000000003900000000elemental-2.1.3/.obs/dockerfile/micro-base-os/Dockerfile# SPDX-License-Identifier: Apache-2.0
# Define the names/tags of the container
#!BuildName: SL-Micro-base-container
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/base-os-container:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/base-os-container:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/base-os-container:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 8
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/toolbox:latest as host
MAINTAINER SUSE LLC (https://www.suse.com/)
RUN mkdir /osimage
RUN rpm --initdb --root /osimage
RUN zypper --installroot /osimage in --no-recommends -y filesystem
# make system bootable
# iputils: https://github.com/rancher/elemental/issues/1138
RUN zypper --installroot /osimage in --no-recommends -y grub2 shim dracut iputils kernel-default systemd bash
#!ArchExclusiveLine: x86_64
RUN if [ `uname -m` = "x86_64" ]; then zypper --installroot /osimage in --no-recommends -y grub2-i386-pc grub2-x86_64-efi; fi
# make dracut happy
RUN zypper --installroot /osimage in --no-recommends -y squashfs NetworkManager-branding-SLE NetworkManager device-mapper iproute2 tar curl ca-certificates ca-certificates-mozilla
# make ARM happy
#!ArchExclusiveLine: aarch64
RUN if [ `uname -m` = "aarch64" ]; then zypper --installroot /osimage in -y grub2-arm64-efi raspberrypi-firmware raspberrypi-firmware-config raspberrypi-firmware-dt u-boot-rpiarm64; fi
# bsc#1215134
#!ArchExclusiveLine: aarch64
RUN if [ `uname -m` = "aarch64" ]; then zypper --installroot /osimage in -y wireless-regdb; fi
# make SUSE happy
RUN zypper --installroot /osimage in --no-recommends -y SL-Micro-release systemd-presets-branding-Elemental btrfsmaintenance audit
# make elemental-register happy
RUN zypper --installroot /osimage in --no-recommends -y dmidecode lvm2 openssl
# add elemental
RUN zypper --installroot /osimage in --no-recommends -y elemental
# end of mandatory package installs for SUSE Linux Micro
# make derived containers possible
RUN zypper --installroot /osimage in --no-recommends -y zypper
FROM scratch as osimage
COPY --from=host /osimage /
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/base-os-container
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# IMPORTANT: Setup elemental-release used for versioning/upgrade. The
# values here should reflect the tag of the image being built
# Also used by elemental-populate-labels
RUN echo IMAGE_REPO=\"${IMAGE_REPO}\" >> /etc/os-release && \
echo IMAGE_TAG=\"${IMAGE_TAG}\" >> /etc/os-release && \
echo IMAGE=\"${IMAGE_REPO}:${IMAGE_TAG}\" >> /etc/os-release && \
echo TIMESTAMP="`date +'%Y%m%d%H%M%S'`" >> /etc/os-release && \
echo GRUB_ENTRY_NAME=\"SUSE Linux Micro\" >> /etc/os-release
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro Base OS Container"
LABEL org.opencontainers.image.description="Container image for SUSE Linux Micro Base - a containerized OS layer for Kubernetes."
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.url="https://www.suse.com/products/micro/"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="l3"
LABEL com.suse.eula="sle-eula"
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-micro"
LABEL com.suse.image-type="sl-micro"
LABEL com.suse.release-stage="beta"
# endlabelprefix
# Make sure trusted certificates are properly generated
RUN /usr/sbin/update-ca-certificates
# Ensure /tmp is mounted as tmpfs by default
RUN if [ -e /usr/share/systemd/tmp.mount ]; then \
cp /usr/share/systemd/tmp.mount /etc/systemd/system; \
fi
# Save some space
RUN zypper clean --all && \
rm -rf /var/log/update* && \
>/var/log/lastlog && \
rm -rf /boot/vmlinux*
# Rebuild initrd to setup dracut with the boot configurations
RUN elemental init --force elemental-rootfs,elemental-sysroot,grub-config,dracut-config,cloud-config-essentials,elemental-setup,boot-assessment
0707010000000D000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000002E00000000elemental-2.1.3/.obs/dockerfile/micro-kvm-iso0707010000000E000081A400000000000000000000000166F1387F00000833000000000000000000000000000000000000003900000000elemental-2.1.3/.obs/dockerfile/micro-kvm-iso/Dockerfile# SPDX-License-Identifier: Apache-2.0
#!BuildName: build-kvm-iso-image
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/kvm-iso-image:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/kvm-iso-image:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/kvm-iso-image:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 10
#!BuildConstraint: hardware:memory:size unit=G 16
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/kvm-os-container:latest AS os
FROM suse/sl-micro/${SLMICRO_VERSION}/baremetal-os-container:latest AS builder
WORKDIR /iso
COPY manifest.yaml manifest.yaml
COPY --from=os / rootfs
# Prepare a busybox base
RUN mkdir -p /busybox && rpm --initdb --root /busybox
RUN zypper --installroot /busybox in --no-recommends -y busybox
# Version value is taken form the elemental repository tags
# Release value of this image and os image are unrelated
# must be ...<flavor>.<arch>... for OBS
RUN elemental --debug --config-dir . build-iso -o /output -n "sl-micro-%%SLMICRO_VERSION%%-kvm.$(uname -m)-%VERSION%-Build%RELEASE%" dir:rootfs
# Only keep the ISO as a result and busybox
FROM scratch
COPY --from=builder /busybox /
COPY --from=builder /output /elemental-iso
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/kvm-iso-image
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro kvm ISO"
LABEL org.opencontainers.image.description="Includes the SUSE Linux Micro kvm ISO"
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.url="https://github.com/rancher/elemental"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="l3"
# endlabelprefix
# By default run a shell
ENTRYPOINT ["/usr/bin/busybox"]
CMD ["sh"]
0707010000000F000081A400000000000000000000000166F1387F00000056000000000000000000000000000000000000003C00000000elemental-2.1.3/.obs/dockerfile/micro-kvm-iso/manifest.yamliso:
bootloader-in-rootfs: true
grub-entry-name: "SL Micro Virtual Image Install"
07070100000010000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000002D00000000elemental-2.1.3/.obs/dockerfile/micro-kvm-os07070100000011000081A400000000000000000000000166F1387F00000B7E000000000000000000000000000000000000003800000000elemental-2.1.3/.obs/dockerfile/micro-kvm-os/Dockerfile# SPDX-License-Identifier: Apache-2.0
# Define the names/tags of the container
#!BuildName: SL-Micro-kvm-container
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/kvm-os-container:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/kvm-os-container:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/kvm-os-container:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 8
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/base-os-container:latest
# dummy zypper call to get elemental into the build context and extract %VERSION% from it via _service
RUN zypper in --no-recommends -y systemd-presets-branding-Elemental elemental
# replace default kernel with smaller one, sufficient to run kvm guests
RUN zypper in --no-recommends -y kernel-default-base -kernel-default qemu-guest-agent
MAINTAINER SUSE LLC (https://www.suse.com/)
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/kvm-os-container
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro KVM"
LABEL org.opencontainers.image.description="Image containing SUSE Linux Micro KVM - a containerized OS layer for Kubernetes."
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
# endlabelprefix
# IMPORTANT: Setup elemental-release used for versioning/upgrade. The
# values here should reflect the tag of the image being built
# Also used by elemental-populate-labels
RUN grep -v "IMAGE_REPO\|IMAGE_TAG\|IMAGE=\|TIMESTAMP\|GRUB_ENTRY_NAME" /etc/os-release > /tmp/os-release
RUN mv /tmp/os-release /etc/os-release
RUN echo IMAGE_REPO=\"${IMAGE_REPO}\" >> /etc/os-release && \
echo IMAGE_TAG=\"${IMAGE_TAG}\" >> /etc/os-release && \
echo IMAGE=\"${IMAGE_REPO}:${IMAGE_TAG}\" >> /etc/os-release && \
echo TIMESTAMP="`date +'%Y%m%d%H%M%S'`" >> /etc/os-release && \
echo GRUB_ENTRY_NAME=\"SUSE Linux Micro\" >> /etc/os-release
# Ensure /tmp is mounted as tmpfs by default
RUN if [ -e /usr/share/systemd/tmp.mount ]; then \
cp /usr/share/systemd/tmp.mount /etc/systemd/system; \
fi
# Save some space
RUN if [ -f /usr/bin/zypper ]; then zypper clean --all; fi
# Save more space
RUN rm -rf /var/log/update* && \
>/var/log/lastlog && \
rm -rf /boot/vmlinux*
# Rebuild initrd to setup dracut with the boot configurations and remove pre-existing initrd from base image
RUN rm -fv /boot/elemental.initrd*
RUN elemental init --force elemental-rootfs,elemental-sysroot,grub-config,dracut-config,cloud-config-essentials,elemental-setup,boot-assessment
07070100000012000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000002D00000000elemental-2.1.3/.obs/dockerfile/micro-rt-iso07070100000013000081A400000000000000000000000166F1387F00000848000000000000000000000000000000000000003800000000elemental-2.1.3/.obs/dockerfile/micro-rt-iso/Dockerfile# SPDX-License-Identifier: Apache-2.0
#!ExclusiveArch: x86_64
#!BuildName: build-rt-iso-image
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/rt-iso-image:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/rt-iso-image:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/rt-iso-image:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 10
#!BuildConstraint: hardware:memory:size unit=G 16
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/rt-os-container:latest AS os
FROM suse/sl-micro/${SLMICRO_VERSION}/baremetal-os-container:latest AS builder
WORKDIR /iso
COPY manifest.yaml manifest.yaml
COPY --from=os / rootfs
# Prepare a busybox base
RUN mkdir -p /busybox && rpm --initdb --root /busybox
RUN zypper --installroot /busybox in --no-recommends -y busybox
# Version value is taken form the elemental repository tags
# Release value of this image and os image are unrelated
# must be ...<flavor>.<arch>... for OBS
RUN elemental --debug --config-dir . build-iso -o /output -n "sl-micro-%%SLMICRO_VERSION%%-rt.$(uname -m)-%VERSION%-Build%RELEASE%" dir:rootfs
# Only keep the ISO as a result and busybox
FROM scratch
COPY --from=builder /busybox /
COPY --from=builder /output /elemental-iso
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/rt-iso-image
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro rt ISO"
LABEL org.opencontainers.image.description="Includes the SUSE Linux Micro realtime ISO"
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.url="https://github.com/rancher/elemental"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="l3"
# endlabelprefix
# By default run a shell
ENTRYPOINT ["/usr/bin/busybox"]
CMD ["sh"]
07070100000014000081A400000000000000000000000166F1387F00000051000000000000000000000000000000000000003B00000000elemental-2.1.3/.obs/dockerfile/micro-rt-iso/manifest.yamliso:
bootloader-in-rootfs: true
grub-entry-name: "SL Micro Realtime Install"
07070100000015000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000002C00000000elemental-2.1.3/.obs/dockerfile/micro-rt-os07070100000016000081A400000000000000000000000166F1387F00000B2E000000000000000000000000000000000000003700000000elemental-2.1.3/.obs/dockerfile/micro-rt-os/Dockerfile# SPDX-License-Identifier: Apache-2.0
# Define the names/tags of the container
#!ExclusiveArch: x86_64
#!BuildName: SL-Micro-rt-container
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/rt-os-container:latest
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/rt-os-container:%VERSION%
#!BuildTag: suse/sl-micro/%%SLMICRO_VERSION%%/rt-os-container:%VERSION%-%RELEASE%
#!BuildConstraint: hardware:disk:size unit=G 8
#!UseOBSRepositories
ARG SLMICRO_VERSION
FROM suse/sl-micro/${SLMICRO_VERSION}/baremetal-os-container:latest AS os
# dummy zypper call to get elemental into the build context and extract %VERSION% from it via _service
RUN zypper in --no-recommends -y systemd-presets-branding-Elemental elemental
# turn base image into a rt image
RUN zypper in --no-recommends -y -- -kernel-default kernel-rt
MAINTAINER SUSE LLC (https://www.suse.com/)
ARG SLMICRO_VERSION
ARG BUILD_REPO=%%IMG_REPO%%
ARG IMAGE_REPO=$BUILD_REPO/suse/sl-micro/%%SLMICRO_VERSION%%/rt-os-container
ARG IMAGE_TAG=%VERSION%-%RELEASE%
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.sl.micro
LABEL org.opencontainers.image.title="SUSE Linux Micro Realtime OS Container"
LABEL org.opencontainers.image.description="Image containing SUSE Linux Micro Realtime - a containerized OS layer for Kubernetes."
LABEL org.opencontainers.image.version="${IMAGE_TAG}"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opensuse.reference="${IMAGE_REPO}:${IMAGE_TAG}"
LABEL org.openbuildservice.disturl="%DISTURL%"
# endlabelprefix
# IMPORTANT: Setup elemental-release used for versioning/upgrade. The
# values here should reflect the tag of the image being built
# Also used by elemental-populate-labels
RUN grep -v "IMAGE_REPO\|IMAGE_TAG\|IMAGE=\|TIMESTAMP\|GRUB_ENTRY_NAME" /etc/os-release > /tmp/os-release
RUN mv /tmp/os-release /etc/os-release
RUN echo IMAGE_REPO=\"${IMAGE_REPO}\" >> /etc/os-release && \
echo IMAGE_TAG=\"${IMAGE_TAG}\" >> /etc/os-release && \
echo IMAGE=\"${IMAGE_REPO}:${IMAGE_TAG}\" >> /etc/os-release && \
echo TIMESTAMP="`date +'%Y%m%d%H%M%S'`" >> /etc/os-release
RUN echo GRUB_ENTRY_NAME=\"SUSE Linux Micro\" >> /etc/os-release
# Ensure /tmp is mounted as tmpfs by default
RUN if [ -e /usr/share/systemd/tmp.mount ]; then \
cp /usr/share/systemd/tmp.mount /etc/systemd/system; \
fi
# Save some space
RUN zypper clean --all && \
rm -rf /var/log/update* && \
>/var/log/lastlog && \
rm -rf /boot/vmlinux*
# Rebuild initrd to setup dracut with the boot configurations and remove pre-existing initrd from baremetal image
RUN rm -fv /boot/elemental.initrd*
RUN elemental init --force elemental-rootfs,elemental-sysroot,grub-config,dracut-config,cloud-config-essentials,elemental-setup,boot-assessment
07070100000017000041ED00000000000000000000000266F1387F00000000000000000000000000000000000000000000001E00000000elemental-2.1.3/.obs/specfile07070100000018000081A400000000000000000000000166F1387F000000BD000000000000000000000000000000000000003200000000elemental-2.1.3/.obs/specfile/elemental-rpmlintrc# ignore complaints due to not compressed source. Sources are really small anyway.
addFilter("W: source-not-compressed");
# ignore fhs complaints
addFilter("E: filelist-forbidden-fhs23");
07070100000019000081A400000000000000000000000166F1387F00001661000000000000000000000000000000000000002D00000000elemental-2.1.3/.obs/specfile/elemental.spec#
# spec file for package elemental
#
# Copyright (c) 2022 - 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define systemdir /system
%define oemdir %{systemdir}/oem
Name: elemental
Version: 0
Release: 0
Summary: A Rancher and Kubernetes optimized immutable Linux distribution
License: Apache-2.0
Group: System/Management
URL: https://github.com/rancher/%{name}
Source: %{name}-%{version}.tar
Source1: LICENSE
Source2: README.md
Source3: %{name}-rpmlintrc
Requires: elemental-toolkit >= 2.1.0
Requires: elemental-toolkit < 2.2.0
Requires: elemental-register
Requires: elemental-system-agent
Requires: elemental-support
Requires: NetworkManager
Requires: systemd-presets-branding-Elemental
Requires: elemental-updater = %{version}-%{release}
%{?systemd_requires}
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Elemental is a new set of tools to manage operating systems as container images within Rancher Manager
%package -n elemental-updater
Summary: Rancher elemental node updater
Group: System/Management
%description -n elemental-updater
Rancher elemental node updater. To be installed on the node.
%prep
%setup -q -n %{name}-%{version}
cp %{S:1} .
cp %{S:2} .
%build
%install
cp -a framework/files/* %{buildroot}
rm -rf %{buildroot}/var/log/journal
%pre
%if 0%{?suse_version}
%service_add_pre elemental-populate-node-labels.service
%service_add_pre shutdown-containerd.service
%service_add_pre elemental-register.service
%service_add_pre elemental-register-install.service
%service_add_pre elemental-register-reset.service
%service_add_pre elemental-register.timer
%service_add_pre elemental-system-agent.service
%endif
%post
%if 0%{?suse_version}
%service_add_post elemental-populate-node-labels.service
%service_add_post shutdown-containerd.service
%service_add_post elemental-register.service
%service_add_post elemental-register-install.service
%service_add_post elemental-register-reset.service
%service_add_post elemental-register.timer
%service_add_post elemental-system-agent.service
%else
%systemd_post elemental-populate-node-labels.service
%systemd_post shutdown-containerd.service
%systemd_post elemental-register.service
%systemd_post elemental-register-install.service
%systemd_post elemental-register-reset.service
%systemd_post elemental-register.timer
%systemd_post elemental-system-agent.service
%endif
%preun
%if 0%{?suse_version}
%service_del_preun elemental-populate-node-labels.service
%service_del_preun shutdown-containerd.service
%service_del_preun elemental-register.service
%service_del_preun elemental-register-install.service
%service_del_preun elemental-register-reset.service
%service_del_preun elemental-register.timer
%service_del_preun elemental-system-agent.service
%else
%systemd_preun elemental-populate-node-labels.service
%systemd_preun shutdown-containerd.service
%systemd_preun elemental-register.service
%systemd_preun elemental-register-install.service
%systemd_preun elemental-register-reset.service
%systemd_preun elemental-register.timer
%systemd_preun elemental-system-agent.service
%endif
%postun
%if 0%{?suse_version}
%service_del_postun elemental-populate-node-labels.service
%service_del_postun shutdown-containerd.service
%service_del_postun elemental-register.service
%service_del_postun elemental-register-install.service
%service_del_postun elemental-register-reset.service
%service_del_postun elemental-register.timer
%service_del_postun elemental-system-agent.service
%else
%systemd_postun elemental-populate-node-labels.service
%systemd_postun shutdown-containerd.service
%systemd_postun elemental-register.service
%systemd_postun elemental-register-install.service
%systemd_postun elemental-register-reset.service
%systemd_postun elemental-register.timer
%systemd_postun elemental-system-agent.service
%endif
%files
%defattr(-,root,root,-)
%doc README.md
%license LICENSE
%dir %{_sysconfdir}/elemental
%config %{_sysconfdir}/elemental/bootargs.cfg
%dir %{_sysconfdir}/elemental/config.d
%config %{_sysconfdir}/elemental/config.d/*
%dir %{_sysconfdir}/dracut.conf.d
%config %{_sysconfdir}/dracut.conf.d/51-certificates-initrd.conf
%config %{_sysconfdir}/dracut.conf.d/99-elemental-systemd.conf
%dir %{_sysconfdir}/NetworkManager
%dir %{_sysconfdir}/NetworkManager/conf.d
%config %{_sysconfdir}/NetworkManager/conf.d/rke2-canal.conf
%dir %{_unitdir}
%{_unitdir}/shutdown-containerd.service
%{_unitdir}/elemental-register.service
%{_unitdir}/elemental-register-install.service
%{_unitdir}/elemental-register-reset.service
%{_unitdir}/elemental-register.timer
%{_unitdir}/elemental-populate-node-labels.service
%{_unitdir}/elemental-system-agent.service
%{_sbindir}/elemental-populate-node-labels
%dir %{_libexecdir}/elemental-checker
%{_libexecdir}/elemental-checker/elemental-register.sh
%dir %{systemdir}
%dir %{oemdir}
%{oemdir}/*
%files -n elemental-updater
%defattr(-,root,root,-)
%license LICENSE
%{_sbindir}/self-upgrade
%{_sbindir}/suc-upgrade
%changelog
0707010000001A000081A400000000000000000000000166F1387F00000EC0000000000000000000000000000000000000002300000000elemental-2.1.3/.obs/workflows.ymlpush_workflow:
steps:
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: elemental
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-baremetal-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-base-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-kvm-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-rt-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-baremetal-container
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-base-container
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-kvm-container
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-rt-container
filters:
branches:
only:
- main
event: push
tag_workflow:
steps:
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: elemental
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-baremetal-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-base-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-kvm-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: build-rt-iso-image
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-baremetal-container
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-base-container
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-kvm-container
- trigger_services:
project: isv:Rancher:Elemental:Dev
package: SL-Micro-rt-container
filters:
event: tag_push
pr_workflow:
steps:
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: elemental
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: build-base-iso-image
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: build-kvm-iso-image
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: build-rt-iso-image
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: build-baremetal-iso-image
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: SL-Micro-baremetal-container
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: SL-Micro-base-container
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: SL-Micro-kvm-container
target_project: isv:Rancher:Elemental:PR
- branch_package:
source_project: isv:Rancher:Elemental:Dev
source_package: SL-Micro-rt-container
target_project: isv:Rancher:Elemental:PR
- set_flags:
flags:
- type: publish
status: enable
project: isv:Rancher:Elemental:PR
filters:
event: pull_request
branches:
only:
- main
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!74 blocks