mirror of https://github.com/k3s-io/k3s
Erik Wilson
5 years ago
committed by
GitHub
9 changed files with 259 additions and 42 deletions
@ -1,12 +1,7 @@
|
||||
./bin |
||||
./etc |
||||
./build/data |
||||
./build/data.tar.gz |
||||
./pkg/data/zz_generated_bindata.go |
||||
./package/data.tar.gz |
||||
./.vagrant |
||||
./.cache |
||||
./.dapper |
||||
./data-dir |
||||
./dist |
||||
./.trash-cache |
||||
|
@ -0,0 +1,57 @@
|
||||
# vim: sw=4:ts=4:et |
||||
|
||||
%define install_path /usr/bin |
||||
%define util_path %{_datadir}/k3s |
||||
%define install_sh %{util_path}/.install.sh |
||||
%define uninstall_sh %{util_path}/.uninstall.sh |
||||
|
||||
Name: k3s |
||||
Version: %{k3s_version} |
||||
Release: %{k3s_release}%{?dist} |
||||
Summary: Lightweight Kubernetes |
||||
|
||||
Group: System Environment/Base |
||||
License: ASL 2.0 |
||||
URL: http://k3s.io |
||||
|
||||
BuildRequires: systemd |
||||
Requires(post): k3s-selinux >= %{k3s_policyver} |
||||
|
||||
%description |
||||
The certified Kubernetes distribution built for IoT & Edge computing. |
||||
|
||||
%install |
||||
install -d %{buildroot}%{install_path} |
||||
install dist/artifacts/%{k3s_binary} %{buildroot}%{install_path}/k3s |
||||
install -d %{buildroot}%{util_path} |
||||
install install.sh %{buildroot}%{install_sh} |
||||
|
||||
%post |
||||
# do not run install script on upgrade |
||||
echo post-install args: $@ |
||||
if [ $1 == 1 ]; then |
||||
INSTALL_K3S_BIN_DIR=%{install_path} \ |
||||
INSTALL_K3S_SKIP_DOWNLOAD=true \ |
||||
INSTALL_K3S_SKIP_ENABLE=true \ |
||||
UNINSTALL_K3S_SH=%{uninstall_sh} \ |
||||
%{install_sh} |
||||
fi |
||||
%systemd_post k3s.service |
||||
exit 0 |
||||
|
||||
%postun |
||||
echo post-uninstall args: $@ |
||||
# do not run uninstall script on upgrade |
||||
if [ $1 == 0 ]; then |
||||
%{uninstall_sh} |
||||
rm -rf %{util_path} |
||||
fi |
||||
exit 0 |
||||
|
||||
%files |
||||
%{install_path}/k3s |
||||
%{install_sh} |
||||
|
||||
%changelog |
||||
* Mon Mar 2 2020 Erik Wilson <erik@rancher.com> 0.1-1 |
||||
- Initial version |
@ -0,0 +1,78 @@
|
||||
#!/bin/bash |
||||
set -e -x |
||||
|
||||
cd $(dirname $0)/.. |
||||
|
||||
ARCH=${DRONE_STAGE_ARCH:-$(arch)} |
||||
. ./scripts/version.sh |
||||
|
||||
if [[ ! "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(\-[^\+]*)?\+k3s.+$ ]]; then |
||||
echo "k3s version $VERSION does not match regex for rpm upload" |
||||
exit 0 |
||||
fi |
||||
|
||||
TMPDIR=$(mktemp -d) |
||||
cleanup() { |
||||
exit_code=$? |
||||
trap - EXIT INT |
||||
rm -rf ${TMPDIR} |
||||
exit ${exit_code} |
||||
} |
||||
trap cleanup EXIT INT |
||||
|
||||
export HOME=${TMPDIR} |
||||
|
||||
BIN_SUFFIX="" |
||||
if [ ${ARCH} = aarch64 ] || [ ${ARCH} = arm64 ]; then |
||||
BIN_SUFFIX="-arm64" |
||||
elif [ ${ARCH} = armv7l ] || [ ${ARCH} = arm ]; then |
||||
BIN_SUFFIX="-armhf" |
||||
fi |
||||
|
||||
# capture version of k3s |
||||
k3s_version=$(sed -E -e 's/^v([^-+]*).*$/\1/' <<< $VERSION) |
||||
# capture pre-release and metadata information of k3s |
||||
k3s_release=$(sed -E -e 's/\+k3s/+/; s/\+/-/g; s/^[^-]*//; s/^--/dev-/; s/-+/./g; s/^\.+//; s/\.+$//;' <<< $VERSION) |
||||
# k3s-selinux policy version needed for functionality |
||||
k3s_policyver=0.1-1 |
||||
|
||||
rpmbuild \ |
||||
--define "k3s_version ${k3s_version}" \ |
||||
--define "k3s_release ${k3s_release}" \ |
||||
--define "k3s_policyver ${k3s_policyver}" \ |
||||
--define "k3s_binary k3s${BIN_SUFFIX}" \ |
||||
--define "_sourcedir ${PWD}" \ |
||||
--define "_specdir ${PWD}" \ |
||||
--define "_builddir ${PWD}" \ |
||||
--define "_srcrpmdir ${PWD}" \ |
||||
--define "_rpmdir ${PWD}/dist/rpm" \ |
||||
--define "_buildrootdir ${PWD}/.rpm-build" \ |
||||
-bb package/k3s.spec |
||||
|
||||
if ! grep "BEGIN PGP PRIVATE KEY BLOCK" <<<"$PRIVATE_KEY"; then |
||||
echo "PRIVATE_KEY not defined, skipping rpm sign and upload" |
||||
exit 0 |
||||
fi |
||||
|
||||
cat <<\EOF >~/.rpmmacros |
||||
%_signature gpg |
||||
%_gpg_name ci@rancher.com |
||||
EOF |
||||
gpg --import - <<<"$PRIVATE_KEY" |
||||
|
||||
expect <<EOF |
||||
set timeout 60 |
||||
spawn sh -c "rpmsign --addsign dist/rpm/**/k3s-*.rpm" |
||||
expect "Enter pass phrase:" |
||||
send -- "$PRIVATE_KEY_PASS_PHRASE\r" |
||||
expect eof |
||||
lassign [wait] _ _ _ code |
||||
exit \$code |
||||
EOF |
||||
|
||||
if [ -z "$AWS_S3_BUCKET" ]; then |
||||
echo "AWS_S3_BUCKET skipping rpm upload" |
||||
exit 0 |
||||
fi |
||||
|
||||
rpm-s3 --bucket $AWS_S3_BUCKET dist/rpm/**/k3s-*.rpm |
@ -0,0 +1,37 @@
|
||||
#!/bin/bash |
||||
|
||||
set -e -x |
||||
|
||||
TMPDIR=$(mktemp -d) |
||||
cleanup() { |
||||
exit_code=$? |
||||
trap - EXIT INT |
||||
rm -rf ${TMPDIR} |
||||
exit ${exit_code} |
||||
} |
||||
trap cleanup EXIT INT |
||||
|
||||
export HOME=${TMPDIR} |
||||
|
||||
gpg --batch --gen-key - <<EOF |
||||
%echo Generating a default key |
||||
Key-Type: default |
||||
Subkey-Type: default |
||||
Name-Real: Rancher |
||||
Name-Comment: CI |
||||
Name-Email: ci@rancher.com |
||||
Expire-Date: 0 |
||||
|
||||
# Key-Length: 4096 |
||||
# Subkey-Length: 4096 |
||||
Passphrase: $PRIVATE_KEY_PASS_PHRASE |
||||
# %no-protection |
||||
# %no-ask-passphrase |
||||
|
||||
# Do a commit here, so that we can later print "done" :-) |
||||
%commit |
||||
%echo done |
||||
EOF |
||||
|
||||
gpg --armor --export ci@rancher.com >public.key |
||||
gpg --armor --export-secret-key ci@rancher.com >private.key |
@ -0,0 +1,7 @@
|
||||
#!/bin/bash |
||||
|
||||
set -e -x |
||||
|
||||
yum install -y git expect yum-utils rpm-build rpm-sign python-deltarpm epel-release |
||||
yum install -y python2-pip |
||||
pip install git+git://github.com/Voronenko/rpm-s3.git@5695c6ad9a08548141d3713328e1bd3f533d137e |
Loading…
Reference in new issue