Skip to content

Commit 82bf11f

Browse files
dirkmuellerSUSE Update Bot
authored andcommitted
Test build for #1220
1 parent 376ad8e commit 82bf11f

7 files changed

Lines changed: 268 additions & 0 deletions

File tree

.obs/workflows.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ staging_build:
99
source_project: home:defolos:BCI:CR:Tumbleweed
1010
source_package: alertmanager-image
1111
target_project: home:defolos:BCI:CR:Tumbleweed:Staging
12+
- branch_package:
13+
source_project: home:defolos:BCI:CR:Tumbleweed
14+
source_package: base-image
15+
target_project: home:defolos:BCI:CR:Tumbleweed:Staging
1216
- branch_package:
1317
source_project: home:defolos:BCI:CR:Tumbleweed
1418
source_package: blackbox_exporter-image
@@ -228,6 +232,9 @@ refresh_devel_BCI:
228232
- trigger_services:
229233
project: devel:BCI:Tumbleweed
230234
package: alertmanager-image
235+
- trigger_services:
236+
project: devel:BCI:Tumbleweed
237+
package: base-image
231238
- trigger_services:
232239
project: devel:BCI:Tumbleweed
233240
package: blackbox_exporter-image

base-image/LICENSE

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Permission is hereby granted, free of charge, to any person obtaining a copy
2+
of this software and associated documentation files (the "Software"), to deal
3+
in the Software without restriction, including without limitation the rights
4+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5+
copies of the Software, and to permit persons to whom the Software is
6+
furnished to do so, subject to the following conditions:
7+
8+
The above copyright notice and this permission notice shall be included in
9+
all copies or substantial portions of the Software.
10+
11+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17+
SOFTWARE.

base-image/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# openSUSE Tumbleweed BCI %OS_VERSION_NO_DASH% Base
2+
![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
3+
4+
## Description
5+
6+
SUSE Linux Enterprise Base Container Images (SLE BCI) provide truly open,
7+
flexible, and secure container images and application development tools. The
8+
images consist of container environments based on SUSE Linux Enterprise and
9+
designed to be a secure base for any containerized workload.
10+
11+
SLE BCI is freely available, re-distributable, and supported across many
12+
different environments. These templates and tools address modern, containerized
13+
application development and CI/CD application containerization. They can be
14+
used immediately by developers and integrators without the “lock-in” imposed by
15+
other offerings.
16+
17+
SLE BCI inherits industry-leading security and compliance from SUSE Linux
18+
within your container build process. The container images are designed to be a
19+
secure base for any application workload. SUSE ensures that compliance
20+
standards are applied consistently and continuously improves security-related
21+
capabilities.
22+
23+
SLE BCI is lightweight and easy to adopt, with the ability to run with any
24+
Linux OS. Avoid lock-in imposed by other vendors and get exactly what you need,
25+
fast. SLE BCI delivers a flexible developer experience that accounts for,
26+
integrates with, and supports language-native tools and workflows.
27+
28+
## Usage
29+
30+
## Licensing
31+
32+
`SPDX-License-Identifier: MIT`
33+
34+
This documentation and the build recipe are licensed as MIT.
35+
The container itself contains various software components under various open source licenses listed in the associated
36+
Software Bill of Materials (SBOM).
37+
38+
This image is based on [openSUSE Tumbleweed](https://get.opensuse.org/tumbleweed/).

base-image/_service

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<services>
2+
<service mode="buildtime" name="kiwi_label_helper"/>
3+
<service mode="buildtime" name="kiwi_metainfo_helper"/>
4+
</services>

base-image/base-image.changes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-------------------------------------------------------------------
2+
Thu Jul 04 12:53:44 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
3+
4+
- First version of the Base BCI

base-image/base-image.kiwi

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- SPDX-License-Identifier: MIT -->
3+
<!--
4+
Copyright (c) 2024 SUSE LLC
5+
6+
All modifications and additions to the file contributed by third parties
7+
remain the property of their copyright owners, unless otherwise agreed
8+
upon.
9+
10+
The content of THIS FILE IS AUTOGENERATED and should not be manually modified.
11+
It is maintained by the BCI team and generated by
12+
https://github.com/SUSE/BCI-dockerfile-generator
13+
14+
Please submit bugfixes or comments via https://bugs.opensuse.org/
15+
You can contact the BCI team via https://github.com/SUSE/bci/discussions
16+
-->
17+
<!-- OBS-AddTag: opensuse/bci/bci-base:%OS_VERSION_ID_SP% opensuse/bci/bci-base:%OS_VERSION_ID_SP%.%RELEASE% -->
18+
<!-- OBS-Imagerepo: obsrepositories:/ -->
19+
20+
<image schemaversion="7.4" name="base-image" xmlns:suse_label_helper="com.suse.label_helper">
21+
<description type="system">
22+
<author>openSUSE Project</author>
23+
<contact>https://www.suse.com/</contact>
24+
<specification>openSUSE Tumbleweed BCI %OS_VERSION_NO_DASH% Base Container Image</specification>
25+
</description>
26+
<preferences>
27+
<type image="docker">
28+
<containerconfig
29+
name="opensuse/bci/bci-base"
30+
tag="%OS_VERSION_ID_SP%"
31+
maintainer="openSUSE (https://www.opensuse.org/)"
32+
additionaltags="%OS_VERSION_ID_SP%.%RELEASE%">
33+
<labels>
34+
<suse_label_helper:add_prefix prefix="org.opensuse.bci.base">
35+
<label name="org.opencontainers.image.title" value="openSUSE Tumbleweed BCI %OS_VERSION_NO_DASH% Base"/>
36+
<label name="org.opencontainers.image.description" value="Image for containers based on %OS_PRETTY_NAME%."/>
37+
<label name="org.opencontainers.image.version" value="%OS_VERSION_ID_SP%.%RELEASE%"/>
38+
<label name="org.opencontainers.image.created" value="%BUILDTIME%"/>
39+
<label name="org.opencontainers.image.vendor" value="openSUSE Project"/>
40+
<label name="org.opencontainers.image.source" value="%SOURCEURL%"/>
41+
<label name="org.opencontainers.image.url" value="https://www.opensuse.org"/>
42+
<label name="org.opensuse.reference" value="registry.opensuse.org/opensuse/bci/bci-base:%OS_VERSION_ID_SP%.%RELEASE%"/>
43+
<label name="org.openbuildservice.disturl" value="%DISTURL%"/>
44+
<label name="org.opensuse.release-stage" value="released"/>
45+
<label name="org.opensuse.lifecycle-url" value="https://en.opensuse.org/Lifetime"/>
46+
</suse_label_helper:add_prefix>
47+
<label name="io.artifacthub.package.readme-url" value="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/base-image/README.md"/>
48+
<label name="io.artifacthub.package.logo-url" value="https://opensource.suse.com/bci/SLE_BCI_logomark_green.svg"/>
49+
</labels>
50+
</containerconfig>
51+
</type>
52+
<version>2024</version>
53+
<packagemanager>zypper</packagemanager>
54+
<rpm-check-signatures>false</rpm-check-signatures>
55+
<rpm-excludedocs>true</rpm-excludedocs>
56+
</preferences>
57+
<repository type="rpm-md">
58+
<source path="obsrepositories:/"/>
59+
</repository>
60+
<packages type="bootstrap">
61+
<package name="aaa_base"/>
62+
<package name="cracklib-dict-small"/>
63+
<package name="filesystem"/>
64+
<package name="jdupes"/>
65+
<package name="kubic-locale-archive"/>
66+
<package name="patterns-base-fips"/>
67+
<package name="patterns-base-minimal_base"/>
68+
<package name="rpm-ndb"/>
69+
<package name="shadow"/>
70+
<package name="sles-release"/>
71+
<package name="zypper"/>
72+
</packages>
73+
<packages type="image">
74+
<package name="bash"/>
75+
<package name="ca-certificates-mozilla"/>
76+
<package name="container-suseconnect"/>
77+
<package name="coreutils"/>
78+
<package name="curl"/>
79+
<package name="gzip"/>
80+
<package name="netcfg"/>
81+
<package name="skelcd-EULA-bci"/>
82+
<package name="sle-module-basesystem-release"/>
83+
<package name="sle-module-server-applications-release"/>
84+
<package name="sle-module-python3-release"/>
85+
<package name="suse-build-key"/>
86+
<package name="tar"/>
87+
<package name="timezone"/>
88+
</packages>
89+
90+
</image>

base-image/config.sh

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: MIT
3+
# SPDX-FileCopyrightText: (c) 2022-2024 SUSE LLC
4+
5+
set -euo pipefail
6+
7+
test -f /.kconfig && . /.kconfig
8+
test -f /.profile && . /.profile
9+
10+
echo "Configure image: [$kiwi_iname]..."
11+
12+
#============================================
13+
# Import repositories' keys if rpm is present
14+
#--------------------------------------------
15+
if command -v rpm > /dev/null; then
16+
suseImportBuildKey
17+
fi
18+
19+
20+
echo "Configure image: [$kiwi_iname]..."
21+
22+
#======================================
23+
# Setup baseproduct link
24+
#--------------------------------------
25+
suseSetupProduct
26+
27+
#======================================
28+
# Import repositories' keys
29+
#--------------------------------------
30+
suseImportBuildKey
31+
32+
33+
# don't have duplicate licenses of the same type
34+
jdupes -1 -L -r /usr/share/licenses
35+
36+
zypper --non-interactive rm -u jdupes
37+
38+
# Not needed, but neither rpm nor libzypp handle rpmlib(X-CheckUnifiedSystemdir) yet
39+
# which would avoid it being installed by filesystem package
40+
rpm -q compat-usrmerge-tools && rpm -e compat-usrmerge-tools
41+
42+
#======================================
43+
# Disable recommends
44+
#--------------------------------------
45+
sed -i 's/.*solver.onlyRequires.*/solver.onlyRequires = true/g' /etc/zypp/zypp.conf
46+
47+
#======================================
48+
# Exclude docs installation
49+
#--------------------------------------
50+
sed -i 's/.*rpm.install.excludedocs.*/rpm.install.excludedocs = yes/g' /etc/zypp/zypp.conf
51+
52+
#======================================
53+
# Configure SLE BCI repositories
54+
#--------------------------------------
55+
zypper -n ar --refresh --gpgcheck --priority 100 --enable 'https://updates.suse.com/SUSE/Products/SLE-BCI/$releasever_major-SP$releasever_minor/$basearch/product/' SLE_BCI
56+
zypper -n ar --refresh --gpgcheck --priority 100 --disable 'https://updates.suse.com/SUSE/Products/SLE-BCI/$releasever_major-SP$releasever_minor/$basearch/product_debug/' SLE_BCI_debug
57+
zypper -n ar --refresh --gpgcheck --priority 100 --disable 'https://updates.suse.com/SUSE/Products/SLE-BCI/$releasever_major-SP$releasever_minor/$basearch/product_source/' SLE_BCI_source
58+
59+
#======================================
60+
# Remove locale files
61+
#--------------------------------------
62+
shopt -s globstar
63+
rm -f /usr/share/locale/**/*.mo
64+
65+
#======================================
66+
# Remove zypp uuid (bsc#1098535)
67+
#--------------------------------------
68+
rm -f /var/lib/zypp/AnonymousUniqueId
69+
70+
#==========================================
71+
# Clean up log files
72+
#------------------------------------------
73+
# Remove various log files. Although possible to just rm -rf /var/log/*, that
74+
# would also remove some package owned directories (not %ghost) and some files
75+
# are actually wanted, like lastlog in the !docker case.
76+
# For those wondering about YaST2 here: Kiwi writes /etc/hosts, so the version
77+
# from the netcfg package ends up as /etc/hosts.rpmnew, which zypper writes a
78+
# letter about to /var/log/YaST2/config_diff_2022_03_06.log. Kiwi fixes this,
79+
# but the log file remains.
80+
rm -rf /var/log/{zypper.log,zypp/history,YaST2}
81+
82+
# Remove the entire zypper cache content (not the dir itself, owned by libzypp)
83+
rm -rf /var/cache/zypp/*
84+
85+
#==========================================
86+
# Hack! The go container management tools can't handle sparse files:
87+
# https://github.com/golang/go/issues/13548
88+
# If lastlog doesn't exist, useradd doesn't attempt to reserve space,
89+
# also in derived containers.
90+
#------------------------------------------
91+
rm -f /var/log/lastlog
92+
93+
#======================================
94+
# Remove locale files
95+
#--------------------------------------
96+
find /usr/share/locale -name '*.mo' -delete
97+
98+
99+
#=======================================
100+
# Clean up after zypper if it is present
101+
#---------------------------------------
102+
if command -v zypper > /dev/null; then
103+
zypper -n clean
104+
fi
105+
106+
rm -rf /var/log/{lastlog,tallylog,zypper.log,zypp/history,YaST2}
107+
108+
exit 0

0 commit comments

Comments
 (0)