Skip to content

Commit f0edc77

Browse files
committed
support sealer-v0.9.0 auto build
1 parent 5adf576 commit f0edc77

26 files changed

+6279
-373
lines changed

Diff for: auto-build.sh

+14-11
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ for i in "$@"; do
4141
### Options
4242
--k8s-version set the kubernetes k8s_version of the Clusterimage, k8s_version must be greater than 1.13
4343
-c, --cri cri can be set to docker or containerd between kubernetes 1.20-1.24 versions
44-
-n, --buildName set build image name, default is 'registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:${k8s_version}'
44+
-n, --buildName set build image name, default is 'docker.io/sealerio/kubernetes:${k8s_version}'
4545
--platform set the build mirror platform, the default is linux/amd64,linux/arm64
4646
--push push clusterimage after building the clusterimage. The image name must contain the full name of the repository, and use -u and -p to specify the username and password.
4747
-u, --username specify the user's username for pushing the Clusterimage
@@ -63,15 +63,15 @@ for i in "$@"; do
6363
esac
6464
done
6565

66-
version_compare() { printf '%s\n%s\n' "$2" "$1" | sort -V -C; } ## version_vompare $a $b: a>=b
66+
version_compare() { printf '%s\n%s\n' "$2" "$1" | sort -V -C; } ## version_compare $a $b: a>=b
6767

6868
ARCH=$(case "$(uname -m)" in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo "unsupported architecture" "$(uname -m)" && exit 1 ;; esac)
6969

7070
if [ "$k8s_version" = "" ]; then echo "pls use --k8s-version to set Clusterimage kubernetes version" && exit 1; else echo "$k8s_version" | grep "v" || k8s_version="v${k8s_version}"; fi
7171
#cri=$([[ -n "$cri" ]] && echo "$cri" || echo docker)
7272
cri=$( (version_compare "$k8s_version" "v1.24.0" && echo "containerd") || ([[ -n "$cri" ]] && echo "$cri" || echo "docker"))
7373
if [[ -z "$buildName" ]]; then
74-
buildName="registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:${k8s_version}"
74+
buildName="docker.io/sealerio/kubernetes:${k8s_version}"
7575
if [[ "$cri" == "containerd" ]] && ! version_compare "$k8s_version" "v1.24.0"; then buildName=${buildName}-containerd; fi
7676
fi
7777
platform=$(if [[ -z "$platform" ]]; then echo "linux/arm64,linux/amd64"; else echo "$platform"; fi)
@@ -87,22 +87,25 @@ sudo chmod +x version.sh download.sh && export kube_install_version="$k8s_versio
8787
./download.sh "${cri}"
8888

8989
sudo chmod +x amd64/bin/kube* && sudo chmod +x arm64/bin/kube*
90-
sudo wget "https://sealer.oss-cn-beijing.aliyuncs.com/sealers/sealer-v0.8.5-linux-${ARCH}.tar.gz" && sudo tar -xvf "sealer-v0.8.5-linux-${ARCH}.tar.gz"
90+
91+
sudo wget https://github.com/sealerio/sealer/releases/download/v0.9.0/sealer-v0.9.0-linux-amd64.tar.gz && tar -xvf sealer-v0.9.0-linux-amd64.tar.gz -C /usr/bin
9192
sudo sed -i "s/v1.19.8/$k8s_version/g" rootfs/etc/kubeadm.yml ##change k8s_version
93+
sudo sed -i "s/v1.19.8/$k8s_version/g" rootfs/etc/kubeadm.yml.tmpl ##change k8s_version
9294
if [[ "$cri" == "containerd" ]]; then sudo sed -i "s/\/var\/run\/dockershim.sock/\/run\/containerd\/containerd.sock/g" rootfs/etc/kubeadm.yml; fi
95+
if [[ "$cri" == "containerd" ]]; then sudo sed -i "s/\/var\/run\/dockershim.sock/\/run\/containerd\/containerd.sock/g" rootfs/etc/kubeadm.yml.tmpl; fi
9396
sudo sed -i "s/kubeadm.k8s.io\/v1beta2/$kubeadmApiVersion/g" rootfs/etc/kubeadm.yml
97+
sudo sed -i "s/kubeadm.k8s.io\/v1beta2/$kubeadmApiVersion/g" rootfs/etc/kubeadm.yml.tmpl
9498
sudo ./"${ARCH}"/bin/kubeadm config images list --config "rootfs/etc/kubeadm.yml"
99+
sudo mkdir -p rootfs/manifests
95100
sudo ./"${ARCH}"/bin/kubeadm config images list --config "rootfs/etc/kubeadm.yml" 2>/dev/null | sed "/WARNING/d" >>imageList
96-
if [ "$(sudo ./"${ARCH}"/bin/kubeadm config images list --config rootfs/etc/kubeadm.yml 2>/dev/null | grep -c "coredns/coredns")" -gt 0 ]; then sudo sed -i "s/#imageRepository/imageRepository/g" rootfs/etc/kubeadm.yml; fi
97-
sudo sed -i "s/k8s.gcr.io/sea.hub:5000/g" rootfs/etc/kubeadm.yml
101+
if [ "$(sudo ./"${ARCH}"/bin/kubeadm config images list --config rootfs/etc/kubeadm.yml 2>/dev/null | grep -c "coredns/coredns")" -gt 0 ]; then sudo sed -i "s/#imageRepository/imageRepository/g" rootfs/etc/kubeadm.yml.tmpl; fi
102+
sudo sed -i "s/k8s.gcr.io/sea.hub:5000/g" rootfs/etc/kubeadm.yml.tmpl
98103
pauseImage=$(./"${ARCH}"/bin/kubeadm config images list --config "rootfs/etc/kubeadm.yml" 2>/dev/null | sed "/WARNING/d" | grep pause)
99104
if [ -f "rootfs/etc/dump-config.toml" ]; then sudo sed -i "s/sea.hub:5000\/pause:3.6/$(echo "$pauseImage" | sed 's/\//\\\//g')/g" rootfs/etc/dump-config.toml; fi
100-
sudo sed -i "s/v1.19.8/${k8s_version}/g" {arm64,amd64}/etc/Metadata
101-
##linux/arm64,linux/amd64
102-
sudo ./sealer build -t "${buildName}" -f Kubefile --platform "${platform}" .
105+
sudo sealer build -t "docker.io/sealerio/kubernetes:${k8s_version}" -f Kubefile
103106
if [[ "$push" == "true" ]]; then
104107
if [[ -n "$username" ]] && [[ -n "$password" ]]; then
105-
sudo ./sealer login "$(echo "$buildName" | cut -d "/" -f1)" -u "${username}" -p "${password}"
108+
sudo sealer login "$(echo "docker.io" | cut -d "/" -f1)" -u "${username}" -p "${password}"
106109
fi
107-
sudo ./sealer push "${buildName}"
110+
sudo sealer push "docker.io/sealerio/kubernetes:${k8s_version}"
108111
fi

Diff for: context/Kubefile

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
FROM scratch
2-
COPY rootfs/* .
3-
COPY ${ARCH}/* .
2+
COPY rootfs .
3+
COPY amd64 .
44
COPY imageList manifests
5+
COPY tigera-operator.yaml applications/tigera-operator.yaml
6+
COPY custom-resources.yaml applications/custom-resources.yaml
7+
APP calico local://calico.sh
8+
LAUNCH ["calico"]

Diff for: context/amd64/cri/docker.tar.gz

59.5 MB
Binary file not shown.

Diff for: context/amd64/etc/Metadata

-4
This file was deleted.

Diff for: context/arm64/cri/docker.tar.gz

52.7 MB
Binary file not shown.

Diff for: context/arm64/etc/Metadata

-4
This file was deleted.

Diff for: context/calico.sh

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
3+
kubectl apply -f applications/tigera-operator.yaml
4+
kubectl apply -f applications/custom-resources.yaml

Diff for: context/containerd/rootfs/scripts/containerd.sh

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/bash
2+
# shellcheck disable=SC1091
3+
# Copyright © 2021 Alibaba Group Holding Ltd.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
set -x
18+
set -e
19+
20+
rootfs=$(dirname "$(pwd)")
21+
image_dir="$rootfs/images"
22+
lib_dir="${rootfs}/lib"
23+
dump_config_dir="$rootfs/etc/dump-config.toml"
24+
25+
command_exists() {
26+
command -v "$@" >/dev/null 2>&1
27+
}
28+
29+
server_load_images() {
30+
for image in "$image_dir"/*; do
31+
if [ -f "${image}" ]; then
32+
${1} load -i "${image}"
33+
fi
34+
done
35+
}
36+
37+
##cri is containerd
38+
if ! command_exists containerd; then
39+
tar zxvf ../cri/cri-*.tar.gz -C /
40+
cd "$lib_dir" && source install_libseccomp.sh
41+
fi
42+
systemctl daemon-reload
43+
systemctl enable containerd.service
44+
systemctl restart containerd.service
45+
46+
sed -i "s/sea.hub/${2:-sea.hub}/g" "$dump_config_dir"
47+
sed -i "s/5000/${3:-5000}/g" "$dump_config_dir"
48+
mkdir -p /etc/containerd
49+
containerd --config "$dump_config_dir" config dump >/etc/containerd/config.toml
50+
systemctl restart containerd.service
51+
load_image_server="nerdctl"
52+
53+
server_load_images "${load_image_server}"

Diff for: context/containerd/rootfs/scripts/clean.sh renamed to context/containerd/rootfs/scripts/uninstall-containerd.sh

+1-10
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ rm -f /usr/bin/containerd-shim-runc-v2
2727
rm -f /usr/bin/crictl
2828
rm -f /usr/bin/ctr
2929

30-
systemctl disable kubelet
31-
rm -f /usr/bin/kubeadm
32-
rm -f /usr/bin/kubectl
33-
rm -f /usr/bin/kubelet
3430
rm -f /usr/bin/rootlesskit
3531
rm -f /usr/bin/rootlesskit-docker-proxy
3632
rm -f /usr/bin/runc
@@ -40,14 +36,9 @@ rm -f /usr/bin/containerd-rootless.sh
4036
rm -f /usr/bin/nerdctl
4137
rm -f /usr/bin/seautil
4238

43-
rm -f /etc/sysctl.d/k8s.conf
4439
rm -f /etc/crictl.yaml
45-
rm -f /etc/systemd/system/kubelet.service
46-
rm -rf /etc/systemd/system/kubelet.service.d
4740
rm -rf /etc/ld.so.conf.d/containerd.conf
48-
rm -rf /var/lib/kubelet/
4941
rm -rf /var/lib/containerd
5042
rm -rf /var/lib/nerdctl
51-
rm -f /var/lib/kubelet/config.yaml
5243
rm -rf /opt/containerd
53-
systemctl daemon-reload
44+

Diff for: context/custom-resources.yaml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# This section includes base Calico installation configuration.
2+
# For more information, see: https://projectcalico.docs.tigera.io/v3.22/reference/installation/api#operator.tigera.io/v1.Installation
3+
apiVersion: operator.tigera.io/v1
4+
kind: Installation
5+
metadata:
6+
name: default
7+
spec:
8+
# Configures Calico networking.
9+
registry: sea.hub:5000
10+
calicoNetwork:
11+
# Note: The ipPools section cannot be modified post-install.
12+
ipPools:
13+
- blockSize: 26
14+
cidr: 100.64.0.0/10
15+
encapsulation: VXLANCrossSubnet
16+
natOutgoing: Enabled
17+
nodeSelector: all()
18+
19+
---
20+
21+
# This section configures the Calico API server.
22+
# For more information, see: https://projectcalico.docs.tigera.io/v3.22/reference/installation/api#operator.tigera.io/v1.APIServer
23+
apiVersion: operator.tigera.io/v1
24+
kind: APIServer
25+
metadata:
26+
name: default
27+
spec: {}
28+

Diff for: context/docker/rootfs/etc/daemon.json

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
{
2+
"experimental": true,
3+
"oom-score-adjust": -1000,
24
"max-concurrent-downloads": 20,
35
"log-driver": "json-file",
46
"log-level": "warn",
57
"log-opts": {
68
"max-size": "10m",
79
"max-file": "3"
810
},
9-
"mirror-registries": [
10-
{
11-
"domain": "*",
12-
"mirrors": [
13-
"https://sea.hub:5000"
14-
]
15-
}
16-
],
1711
"exec-opts": [
1812
"native.cgroupdriver=systemd"
1913
],
14+
"insecure-registries": ["0.0.0.0/0", "::/0"],
15+
"storage-driver": "overlay2",
16+
"storage-opts":["overlay2.override_kernel_check=true"],
17+
"live-restore": true,
2018
"data-root": "/var/lib/docker"
21-
}
19+
}

Diff for: context/docker/rootfs/scripts/clean.sh

-56
This file was deleted.

Diff for: context/rootfs/scripts/docker.sh renamed to context/docker/rootfs/scripts/docker.sh

+21-6
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
set -x
1717
set -e
1818

19-
scripts_path=$(cd `dirname $0`; pwd)
19+
# shellcheck disable=SC2046
20+
# shellcheck disable=SC2006
21+
scripts_path=$(cd `dirname "$0"`; pwd)
2022
image_dir="$scripts_path/../images"
21-
DOCKER_VERSION="19.03.14-sealer"
23+
DOCKER_VERSION="19.03.15"
2224

25+
# shellcheck disable=SC1091
2326
get_distribution() {
2427
lsb_dist=""
2528
# Every system that we officially support has /etc/os-release
@@ -31,6 +34,10 @@ get_distribution() {
3134
echo "$lsb_dist"
3235
}
3336

37+
utils_command_exists() {
38+
command -v "$@" > /dev/null 2>&1
39+
}
40+
3441
disable_selinux() {
3542
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
3643
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
@@ -46,6 +53,7 @@ load_images() {
4653
done
4754
}
4855

56+
# shellcheck disable=SC2006
4957
check_docker_valid() {
5058
if ! docker info 2>&1; then
5159
panic "docker is not healthy: $(docker info 2>&1), please check"
@@ -57,8 +65,14 @@ check_docker_valid() {
5765
fi
5866
}
5967

68+
# shellcheck disable=SC2145
69+
utils_info()
70+
{
71+
echo -e "\033[1;32m$@\033[0m"
72+
}
73+
6074
storage=${1:-/var/lib/docker}
61-
mkdir -p $storage
75+
mkdir -p "$storage"
6276
if ! utils_command_exists docker; then
6377
lsb_dist=$(get_distribution)
6478
lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"
@@ -101,8 +115,8 @@ if ! utils_command_exists docker; then
101115
systemctl enable docker.service
102116
systemctl restart docker.service
103117
cp "${scripts_path}"/../etc/daemon.json /etc/docker
104-
mkdir -p /root/.docker/
105-
cp "${scripts_path}"/../etc/docker-cli-config.json /root/.docker/config.json
118+
#mkdir -p /root/.docker/
119+
#cp "${scripts_path}"/../etc/docker-cli-config.json /root/.docker/config.json
106120
if [[ -n $1 && -n $2 ]]; then
107121
sed -i "s/sea.hub:5000/$2:$3/g" /etc/docker/daemon.json
108122
fi
@@ -113,4 +127,5 @@ systemctl daemon-reload
113127
systemctl restart docker.service
114128
check_docker_valid
115129

116-
load_images
130+
load_images
131+
bash "${scripts_path}"/init-kube.sh

Diff for: context/rootfs/scripts/uninstall-docker.sh renamed to context/docker/rootfs/scripts/uninstall-docker.sh

+2-11
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ systemctl stop docker
44
ip link delete docker0 type bridge || true
55
rm -rf /lib/systemd/system/docker.service
66
rm -rf /usr/lib/systemd/system/docker.service
7-
rm -rf /etc/docker/daemon.json
7+
rm -rf /etc/docker
88
systemctl daemon-reload
99

1010
rm -f /usr/bin/conntrack
11-
rm -f /usr/bin/kubelet-pre-start.sh
1211
rm -f /usr/bin/containerd
1312
rm -f /usr/bin/containerd-shim
1413
rm -f /usr/bin/containerd-shim-runc-v2
@@ -18,19 +17,11 @@ rm -f /usr/bin/docker
1817
rm -f /usr/bin/docker-init
1918
rm -f /usr/bin/docker-proxy
2019
rm -f /usr/bin/dockerd
21-
rm -f /usr/bin/kubeadm
22-
rm -f /usr/bin/kubectl
23-
rm -f /usr/bin/kubelet
2420
rm -f /usr/bin/rootlesskit
2521
rm -f /usr/bin/rootlesskit-docker-proxy
2622
rm -f /usr/bin/runc
2723
rm -f /usr/bin/vpnkit
2824
rm -f /usr/bin/containerd-rootless-setuptool.sh
2925
rm -f /usr/bin/containerd-rootless.sh
3026
rm -f /usr/bin/nerdctl
31-
32-
rm -f /etc/sysctl.d/k8s.conf
33-
rm -f /etc/systemd/system/kubelet.service
34-
rm -rf /etc/systemd/system/kubelet.service.d
35-
rm -rf /var/lib/kubelet/
36-
rm -f /var/lib/kubelet/config.yaml
27+
rm -f /usr/bin/seautil

0 commit comments

Comments
 (0)