Init package
This commit is contained in:
parent
e89f9f23c3
commit
de6249fc28
123
build-tar-create.sh
Executable file
123
build-tar-create.sh
Executable file
@ -0,0 +1,123 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
if [ ! -f ./v1.24.2+rc1+k3s2.tar.gz ];then
|
||||
echo "this script should be executed in source directory"
|
||||
exit
|
||||
fi
|
||||
|
||||
tar -xvf v1.24.2+rc1+k3s2.tar.gz
|
||||
|
||||
TRAEFIK_CHART_VERSION="10.19.3"
|
||||
TRAEFIK_PACKAGE_VERSION="00"
|
||||
TRAEFIK_FILE=traefik-${TRAEFIK_CHART_VERSION}${TRAEFIK_PACKAGE_VERSION}.tgz
|
||||
TRAEFIK_CRD_FILE=traefik-crd-${TRAEFIK_CHART_VERSION}${TRAEFIK_PACKAGE_VERSION}.tgz
|
||||
TRAEFIK_URL=https://helm.traefik.io/traefik/traefik-${TRAEFIK_CHART_VERSION}.tgz
|
||||
CHARTS_DIR=build/static/charts
|
||||
RUNC_DIR=build/src/github.com/opencontainers/runc
|
||||
CONTAINERD_DIR=build/src/github.com/containerd/containerd
|
||||
DATA_DIR=build/data
|
||||
TMP_DIR=.
|
||||
export TZ=UTC
|
||||
|
||||
umask 022
|
||||
rm -rf ${CHARTS_DIR}
|
||||
rm -rf ${RUNC_DIR}
|
||||
rm -rf ${CONTAINERD_DIR}
|
||||
mkdir -p ${CHARTS_DIR}
|
||||
mkdir -p ${DATA_DIR}
|
||||
|
||||
|
||||
download_and_package_traefik () {
|
||||
echo "Downloading Traefik Helm chart from ${TRAEFIK_URL}"
|
||||
curl -k -sfL ${TRAEFIK_URL} -o ${TMP_DIR}/${TRAEFIK_FILE}
|
||||
code=$?
|
||||
|
||||
if [ $code -ne 0 ]; then
|
||||
echo "Error: Failed to download Traefik Helm chart!"
|
||||
exit $code
|
||||
fi
|
||||
|
||||
echo "Uncompress ${TMP_DIR}/${TRAEFIK_FILE}"
|
||||
tar xf ${TMP_DIR}/${TRAEFIK_FILE} -C ${TMP_DIR}
|
||||
|
||||
echo "Prepare traefik CRD"
|
||||
TRAEFIK_TMP_CHART=${TMP_DIR}/traefik
|
||||
TRAEFIK_TMP_CRD=${TRAEFIK_TMP_CHART}-crd
|
||||
|
||||
# Collect information on chart
|
||||
name="traefik"
|
||||
api_version="v2"
|
||||
chart_version=${TRAEFIK_CHART_VERSION}
|
||||
package_version=${TRAEFIK_PACKAGE_VERSION}
|
||||
|
||||
# Collect information on CRDs
|
||||
crd_apis=()
|
||||
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/IngressRouteTCP")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/IngressRouteUDP")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/IngressRoute")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/MiddlewareTCP")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/Middleware")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/ServersTransport")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/TLSOption")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/TLSStore")
|
||||
crd_apis+=("traefik.containo.us/v1alpha1/TraefikService")
|
||||
|
||||
set_found_crd=$(
|
||||
for crd in ${crd_apis[@]}; do
|
||||
echo "# {{- set \$found \"${crd}\" false -}}"
|
||||
done
|
||||
)
|
||||
|
||||
# Copy base template and apply variables to the template
|
||||
mkdir -p ${TRAEFIK_TMP_CRD}
|
||||
echo $(pwd)
|
||||
cp -R ./k3s-1.24.2-rc1-k3s2/scripts/chart-templates/crd-base/* ${TRAEFIK_TMP_CRD}
|
||||
for template_file in $(find ${TRAEFIK_TMP_CRD} -type f | sort); do
|
||||
# Applies any environment variables currently set onto your template file
|
||||
echo "Templating ${template_file}"
|
||||
eval "echo \"$(sed 's/"/\\"/g' ${template_file})\"" > ${template_file}
|
||||
done
|
||||
|
||||
# Move anything from ${f}/charts-crd/overlay-upstream to the main chart
|
||||
cp -R ${TRAEFIK_TMP_CRD}/overlay-upstream/* ${TRAEFIK_TMP_CHART}
|
||||
rm -rf ${TRAEFIK_TMP_CRD}/overlay-upstream
|
||||
|
||||
# Modify charts to support system-default-registry
|
||||
echo -e 'global:\n systemDefaultRegistry: ""' >> ${TRAEFIK_TMP_CHART}/values.yaml
|
||||
find ${TRAEFIK_TMP_CHART} -type f | xargs sed -i 's/{{ .Values.image.name }}/{{ template "system_default_registry" .}}&/g'
|
||||
|
||||
# Modify chart version to append package version
|
||||
# If we alter our repackaging of the helm chart without also bumping the version of the
|
||||
# chart, the package version portion (final two digits) of the version string in the
|
||||
# traefik HelmChart manifest should be bumped accordingly.
|
||||
sed -i "s/version: .*/&${TRAEFIK_PACKAGE_VERSION}/" ${TRAEFIK_TMP_CHART}/Chart.yaml
|
||||
|
||||
# Add dashboard annotations to main chart
|
||||
cat <<EOF >>${TRAEFIK_TMP_CHART}/Chart.yaml
|
||||
annotations:
|
||||
fleet.cattle.io/bundle-id: k3s
|
||||
EOF
|
||||
|
||||
# Move CRDs from main chart to CRD chart
|
||||
mkdir -p ${TRAEFIK_TMP_CRD}/templates
|
||||
mv ${TRAEFIK_TMP_CHART}/crds/* ${TRAEFIK_TMP_CRD}/templates
|
||||
rm -rf ${TRAEFIK_TMP_CHART}/crds
|
||||
|
||||
# Package charts
|
||||
OPTS="--format=gnu --sort=name --owner=0 --group=0 --mode=gou-s --numeric-owner --no-acls --no-selinux --no-xattrs"
|
||||
tar ${OPTS} --mtime='2021-01-01 00:00:00Z' -cf - -C ${TMP_DIR} $(basename ${TRAEFIK_TMP_CHART}) | gzip -n > ${CHARTS_DIR}/${TRAEFIK_FILE}
|
||||
tar ${OPTS} --mtime='2021-01-01 00:00:00Z' -cf - -C ${TMP_DIR} $(basename ${TRAEFIK_TMP_CRD}) | gzip -n > ${CHARTS_DIR}/${TRAEFIK_CRD_FILE}
|
||||
for TAR in ${CHARTS_DIR}/${TRAEFIK_FILE} ${CHARTS_DIR}/${TRAEFIK_CRD_FILE}; do
|
||||
sha256sum ${TAR}
|
||||
stat ${TAR}
|
||||
tar -vtf ${TAR}
|
||||
done
|
||||
}
|
||||
|
||||
download_and_package_traefik
|
||||
tar -cvf build.tar.gz ./build
|
||||
rm -rf ./build
|
||||
rm -rf traefik*
|
||||
rm -rf ./k3s-1.24.2-rc1-k3s2
|
||||
BIN
build.tar.gz
Normal file
BIN
build.tar.gz
Normal file
Binary file not shown.
93
k3s.spec
Normal file
93
k3s.spec
Normal file
@ -0,0 +1,93 @@
|
||||
%define debug_package %{nil}
|
||||
%define baseversion 1.24
|
||||
|
||||
Name: k3s
|
||||
Version: 1.24.2+rc1+k3s2
|
||||
Release: 1
|
||||
Summary: Installer for k3s optimised for openSUSE MicroOS
|
||||
License: Apache-2.0
|
||||
Group: System/Management
|
||||
URL: https://k3s.io
|
||||
Source0: https://github.com/k3s-io/k3s/archive/v%{version}.tar.gz#/v%{version}.tar.gz
|
||||
Source5: build.tar.gz
|
||||
Source6: build-tar-create.sh
|
||||
|
||||
BuildRequires: golang
|
||||
BuildRequires: libseccomp-devel
|
||||
BuildRequires: btrfs-progs-devel
|
||||
BuildRequires: containernetworking-plugins
|
||||
BuildRequires: k3s-containerd
|
||||
BuildRequires: docker-runc
|
||||
BuildRequires: systemd systemd-devel
|
||||
Requires: container-selinux
|
||||
Requires: iptables
|
||||
Conflicts: cri-tools
|
||||
Conflicts: kubectl
|
||||
Conflicts: kubernetes-client
|
||||
Conflicts: kubernetes-client-provider
|
||||
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
|
||||
|
||||
%description
|
||||
Based on the official upstream k3s install.sh, this k3s-install
|
||||
package provides a curated, MicroOS-optimised, securely delivered
|
||||
alternative to running a script directly from the internet.
|
||||
|
||||
k3s is a container orchestration system for automating application
|
||||
deployment, scaling, and management. It is a Kubernetes-compliant
|
||||
distribution that differs from the original Kubernetes (colloquially
|
||||
"k8s") in that:
|
||||
|
||||
* Legacy, alpha, or non-default features are removed.
|
||||
* Most in-tree plugins (cloud providers and storage plugins) were
|
||||
removed, since they can be replaced with out-of-tree addons.
|
||||
* sqlite3 is the default storage mechanism.
|
||||
etcd3 is still available, but not the default.
|
||||
* There is a new launcher that handles a lot of the complexity of
|
||||
TLS and options.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n k3s-%(echo %{version} | tr '+' '-')
|
||||
cp %{SOURCE5} .
|
||||
sed -i '/echo Building runc/,+5d' scripts/build
|
||||
cp /usr/libexec/cni/cni bin/
|
||||
cp /usr/local/bin/runc bin/
|
||||
|
||||
%build
|
||||
export GOPATH=%{_builddir}/go
|
||||
export PATH=$PATH:${GOPATH}/bin
|
||||
export GO111MODULE=on
|
||||
export GOPROXY=https://repo.huaweicloud.com/repository/goproxy/
|
||||
export GONOSUMDB=*
|
||||
|
||||
tar -zxvf build.tar.gz
|
||||
pushd build
|
||||
mkdir -p ./src/github.com/containerd/containerd
|
||||
cp -rf /usr/libexec/containerd/containerd-1.6.6/. src/github.com/containerd/containerd/
|
||||
popd
|
||||
mkdir etc
|
||||
./scripts/build
|
||||
SKIP_AIRGAP=true SKIP_IMAGE=true ./scripts/package
|
||||
|
||||
%install
|
||||
install -D -m 755 dist/artifacts/k3s* %{buildroot}/usr/local/bin/k3s
|
||||
mkdir -p %{buildroot}%{_localstatedir}/lib/rancher/k3s
|
||||
mkdir -p %{buildroot}%{_localstatedir}/lib/rancher/k3s/server/manifests
|
||||
cp -rf manifests/* %{buildroot}%{_localstatedir}/lib/rancher/k3s/server/manifests
|
||||
mkdir -p %{buildroot}%{_sbindir}
|
||||
cp install.sh %{buildroot}%{_sbindir}/k3s-install.sh
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
/usr/local/bin/k3s
|
||||
%{_localstatedir}/lib/rancher
|
||||
%{_sbindir}/k3s-install.sh
|
||||
|
||||
%changelog
|
||||
* Tue Jul 26 2022 Ge Wang <wangge20@h-partners.com> - 1.24.2+rc1+k3s2-1
|
||||
- Init package
|
||||
BIN
v1.24.2+rc1+k3s2.tar.gz
Normal file
BIN
v1.24.2+rc1+k3s2.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user