diff --git a/0001-Write-a-tool-to-support-KubeOS-deployment-on-physica.patch b/0001-Write-a-tool-to-support-KubeOS-deployment-on-physica.patch deleted file mode 100644 index c321333cf4c0f7067d27b0e5c5e55f44e44e4f3d..0000000000000000000000000000000000000000 --- a/0001-Write-a-tool-to-support-KubeOS-deployment-on-physica.patch +++ /dev/null @@ -1,479 +0,0 @@ -From 236b8ddeb3bc7f35eb817769f117ecd68a59335c Mon Sep 17 00:00:00 2001 -From: stedylan <836671668@qq.com> -Date: Sun, 7 Aug 2022 01:47:14 +0800 -Subject: [PATCH] Write a tool to support KubeOS deployment on physical - machines. - -This tool uses dracut module to make partitions and formatting, set network infomation, get rootfs and set boot options in initramfs before switch to the real root. - -Signed-off-by: stedylan <836671668@qq.com> ---- - scripts/00bootup/Global.cfg | 12 ++ - scripts/00bootup/module-setup.sh | 28 +++ - scripts/00bootup/mount.sh | 332 +++++++++++++++++++++++++++++++ - scripts/create/imageCreate.sh | 4 +- - scripts/create/rootfsCreate.sh | 1 + - scripts/rpmlist | 10 +- - scripts/set_in_chroot.sh | 3 + - 7 files changed, 387 insertions(+), 3 deletions(-) - create mode 100644 scripts/00bootup/Global.cfg - create mode 100644 scripts/00bootup/module-setup.sh - create mode 100644 scripts/00bootup/mount.sh - -diff --git a/scripts/00bootup/Global.cfg b/scripts/00bootup/Global.cfg -new file mode 100644 -index 0000000..cad4e33 ---- /dev/null -+++ b/scripts/00bootup/Global.cfg -@@ -0,0 +1,12 @@ -+# rootfs file name -+rootfs_name=kubeos.tar -+ -+# select the target disk to install kubeOS -+disk=/dev/sda -+ -+# address where stores the rootfs on the http server -+server_ip=192.168.1.50 -+ -+local_ip=192.168.1.100 -+ -+route_ip=192.168.1.1 -\ No newline at end of file -diff --git a/scripts/00bootup/module-setup.sh b/scripts/00bootup/module-setup.sh -new file mode 100644 -index 0000000..5460b2b ---- /dev/null -+++ b/scripts/00bootup/module-setup.sh -@@ -0,0 +1,28 @@ -+#!/bin/bash -+ -+check() { -+ return 0 -+} -+ -+depends() { -+ echo systemd -+} -+ -+install() { -+ inst_multiple -o grub2-mkimage mkfs.ext4 mkfs.vfat lsblk tar cpio gunzip lspci parted dhclient ifconfig curl hwinfo head tee arch df awk route -+ inst_hook mount 00 "$moddir/mount.sh" -+ inst_simple "$moddir/mount.sh" "/mount.sh" -+ inst_simple "$moddir/Global.cfg" "/Global.cfg" -+} -+ -+installkernel() { -+ hostonly='' \ -+ instmods \ -+ =drivers/ata \ -+ =drivers/nvme \ -+ =drivers/scsi \ -+ =drivers/net \ -+ =fs/fat \ -+ =fs/nls -+} -+ -diff --git a/scripts/00bootup/mount.sh b/scripts/00bootup/mount.sh -new file mode 100644 -index 0000000..a04a364 ---- /dev/null -+++ b/scripts/00bootup/mount.sh -@@ -0,0 +1,332 @@ -+#!/bin/bash -+arch=$(arch) -+min_size=8 -+log=/install.log -+ -+source /Global.cfg -+ -+function CheckSpace() { -+ local disk_ava="$(parted -l | grep ${disk} | awk '{print $3}')" -+ if echo "${disk_ava}" | grep [GT]B$; then -+ if echo "${disk_ava}" | grep GB$; then -+ disk_ava="$(echo ${disk_ava} | awk -F G '{print $1}' | awk -F . '{print $1}')" -+ if [ "${disk_ava}" -lt ${min_size} ]; then -+ echo "The available disk space is not enough, at least ${min_size}GB." | tee -a ${log} -+ return 1 -+ fi -+ fi -+ else -+ echo "The available disk space is not enough, at least ${min_size}G." | tee -a ${log} -+ return 1 -+ fi -+ -+ return 0 -+} -+ -+function GetDisk() { -+ disks=$(hwinfo --disk --short | grep -vi "^disk" | awk '{print $1}') -+ if [ ! -z ${disks} ]; then -+ if [ ! -z ${disk} ] && echo "${disks[@]}" | grep -wq "${disk}" ; then -+ echo "${disk} exists, start partition" | tee -a ${log} -+ else -+ echo "disk not exist, choose default disk" | tee -a ${log} -+ disk=$(echo ${disks[0]}) -+ fi -+ else -+ echo "no disk found" | tee -a ${log} -+ return 1 -+ fi -+ -+ -+ CheckSpace -+ if [ $? -ne 0 ]; then -+ echo "no enough space on ${disk}" | tee -a ${log} -+ return 1 -+ fi -+ -+ return 0 -+} -+ -+function PartitionAndFormatting() { -+ echo "Partitioning and formatting disk $disk..." -+ # partition and format -+ parted ${disk} -s mklabel gpt >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "partition failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ parted ${disk} -s mkpart primary fat16 1M 100M >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "partition failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ parted ${disk} -s mkpart primary ext4 100M 2600M >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "partition failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ parted ${disk} -s mkpart primary ext4 2600M 5100M >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "partition failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ parted ${disk} -s mkpart primary ext4 5100M 100% >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "partition failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ parted ${disk} -s set 1 boot on >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "partition failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ mkfs.vfat -n "BOOT" ${disk}1 >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "format failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ mkfs.ext4 -L "ROOT-A" ${disk}2 >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "format failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ mkfs.ext4 -L "ROOT-B" ${disk}3 >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "format failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ mkfs.ext4 -L "PERSIST" ${disk}4 >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "format failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ return 0 -+} -+ -+function InitNetwork() { -+ echo "Initializing network..." -+ # 获取网卡信息,默认只有一个网卡 -+ net_name=`ifconfig -a | awk '{print $1}' | grep : | grep '^e' | awk -F: '{print $1}'` -+ # dhclient --timeout 60 >> ${log} 2>&1 -+ -+ ifconfig ${net_name} up -+ if [ $? -ne 0 ]; then -+ echo "load net card failed" | tee -a ${log} -+ return 1 -+ fi -+ sleep 3 -+ -+ ifconfig ${net_name} ${local_ip} netmask 255.255.255.0 >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "ip set failed" | tee -a ${log} -+ return 1 -+ fi -+ sleep 3 -+ -+ route add default gw ${route_ip} >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "add route failed" | tee -a ${log} -+ return 1 -+ fi -+ sleep 3 -+ -+ -+ -+ return 0 -+} -+ -+function MountRoot() { -+ echo "Mounting rootfs..." -+ # mount rootfs -+ mount ${disk}2 /sysroot >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "mount rootfs failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ return 0 -+} -+ -+function MountPersist() { -+ echo "Mounting persist" -+ mkdir /persist -+ mount ${disk}4 /persist >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "mount persist failed" | tee -a ${log} -+ return 1 -+ fi -+ mkdir /persist/{var,etc,etcwork} -+ mkdir -p /persist/etc/KubeOS/certs -+ return 0 -+} -+ -+function MountBoot() { -+ echo "Mounting boot" -+ mkdir -p /sysroot/boot/efi -+ mount ${disk}1 /sysroot/boot/efi >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "mount boot failed" | tee -a ${log} -+ return 1 -+ fi -+ return 0 -+} -+ -+function GetRootfs() { -+ echo "Downloading rootfs..." -+ -+ curl -o /persist/${rootfs_name} http://${server_ip}/${rootfs_name} -+ if [ ! -e "/persist/${rootfs_name}" ]; then -+ echo "download rootfs failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ tar -xvf /persist/${rootfs_name} -C /sysroot -+ if [ $? -ne 0 ]; then -+ echo "decompose rootfs failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ rm -rf /persist/${rootfs_name} -+ -+ return 0 -+} -+ -+function Inst_Grub2_x86() { -+ # copy the files that boot need -+ cp -r /sysroot/usr/lib/grub/x86_64-efi /sysroot/boot/efi/EFI/openEuler -+ eval "grub2-mkimage -d /sysroot/usr/lib/grub/x86_64-efi -O x86_64-efi --output=/sysroot/boot/efi/EFI/openEuler/grubx64.efi '--prefix=(,gpt1)/EFI/openEuler' fat part_gpt part_msdos linux" >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "grub2-mkimage on x86 failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ mkdir -p /sysroot/boot/efi/EFI/BOOT/ -+ cp -f /sysroot/boot/efi/EFI/openEuler/grubx64.efi /sysroot/boot/efi/EFI/BOOT/BOOTX64.EFI -+ -+ return 0 -+} -+ -+function Inst_Grub2_aarch64() { -+ cp -r /sysroot/usr/lib/grub/arm64-efi /sysroot/boot/efi/EFI/openEuler/ -+ eval "grub2-mkimage -d /sysroot/usr/lib/grub/arm64-efi -O arm64-efi --output=/sysroot/boot/efi/EFI/openEuler/grubaa64.efi '--prefix=(,gpt1)/EFI/openEuler' fat part_gpt part_msdos linux" >> ${log} 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "grub2-mkimage on aarch64 failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ mkdir -p /sysroot/boot/efi/EFI/BOOT/ -+ cp -f /sysroot/boot/efi/EFI/openEuler/grubaa64.efi /sysroot/boot/efi/EFI/BOOT/BOOTAA64.EFI -+ -+ return 0 -+} -+ -+function SetBoot() { -+ # mount boot -+ echo "Setting boot" -+ -+ if [ $arch == "x86_64" ]; then -+ Inst_Grub2_x86 -+ if [ $? -ne 0 ]; then -+ echo "install grub on x86 failed" | tee -a ${log} -+ return 1 -+ fi -+ fi -+ -+ if [ $arch == "aarch64" ]; then -+ Inst_Grub2_aarch64 -+ if [ $? -ne 0 ]; then -+ echo "install grub on aarch64 failed" | tee -a ${log} -+ return 1 -+ fi -+ fi -+ -+ return 0 -+} -+ -+function Bootup_Main() { -+ # get disk -+ echo "Checking disk info..." | tee -a ${log} -+ GetDisk -+ if [ $? -ne 0 ]; then -+ echo "Checking disk info failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ # partition and format disk -+ echo "Partion and formatting..." | tee -a ${log} -+ PartitionAndFormatting -+ if [ $? -ne 0 ]; then -+ echo "Partition and formatting disk failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ # init network -+ echo "Initializing network..." | tee -a ${log} -+ InitNetwork -+ if [ $? -ne 0 ]; then -+ echo "Initializing network failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ # mount partitions -+ echo "Mounting root..." | tee -a ${log} -+ MountRoot -+ if [ $? -ne 0 ]; then -+ echo "Mounting root failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ # mount persist -+ echo "Mounting persisst..." | tee -a ${log} -+ MountPersist -+ if [ $? -ne 0 ]; then -+ echo "Mounting persist failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ # mount boot -+ echo "Mounting boot..." | tee -a ${log} -+ MountBoot -+ if [ $? -ne 0 ]; then -+ echo "Mounting boot failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ # download rootfs -+ echo "Downloading rootfs..." | tee -a ${log} -+ GetRootfs -+ if [ $? -ne 0 ]; then -+ echo "Downloading rootfs failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ # set boot -+ echo "Setting boot..." | tee -a ${log} -+ SetBoot -+ if [ $? -ne 0 ]; then -+ echo "Setting boot failed" | tee -a ${log} -+ return 1 -+ fi -+ -+ return 0 -+} -+ -+Bootup_Main -+ret=$? -+if [ ${ret} -eq 0 ]; then -+ echo "kubeOS install success! switch to root" | tee -a ${log} -+ cp ${log} /persist -+else -+ echo "kubeOS install failed, see install.log" | tee -a ${log} -+fi -+ -diff --git a/scripts/create/imageCreate.sh b/scripts/create/imageCreate.sh -index f8dafbe..95ebcde 100644 ---- a/scripts/create/imageCreate.sh -+++ b/scripts/create/imageCreate.sh -@@ -62,12 +62,12 @@ function create_pxe_img() { - case $opt in - "repo") - create_os_tar_from_repo "$@" -- tar -xvf os.tar ./boot/initramfs.img -+ tar -xvf os.tar ./initramfs.img - tar -xvf os.tar ./boot/vmlinuz - ;; - "docker") - create_os_tar_from_docker "$@" -- tar -xvf os.tar boot/initramfs.img -+ tar -xvf os.tar initramfs.img - tar -xvf os.tar boot/vmlinuz - ;; - esac -diff --git a/scripts/create/rootfsCreate.sh b/scripts/create/rootfsCreate.sh -index 8049f09..e5c53d5 100644 ---- a/scripts/create/rootfsCreate.sh -+++ b/scripts/create/rootfsCreate.sh -@@ -61,6 +61,7 @@ EOF - mv "${RPM_ROOT}"/boot/initramfs* "${RPM_ROOT}/boot/initramfs.img" - cp grub.cfg "${RPM_ROOT}"/boot/grub2 - cp grub.cfg "${RPM_ROOT}"/boot/efi/EFI/openEuler -+ cp -r ./00bootup ${RPM_ROOT}/usr/lib/dracut/modules.d/ - cp set_in_chroot.sh "${RPM_ROOT}" - ROOT_PWD="${PASSWD}" chroot "${RPM_ROOT}" bash /set_in_chroot.sh - rm "${RPM_ROOT}/set_in_chroot.sh" -diff --git a/scripts/rpmlist b/scripts/rpmlist -index 7a9adfa..077a164 100644 ---- a/scripts/rpmlist -+++ b/scripts/rpmlist -@@ -13,4 +13,12 @@ socat - conntrack-tools - ebtables - ethtool --rsyslog -\ No newline at end of file -+rsyslog -+vi -+net-tools -+hwinfo -+dracut -+coreutils -+gawk -+parted -+dosfstools -\ No newline at end of file -diff --git a/scripts/set_in_chroot.sh b/scripts/set_in_chroot.sh -index bacef78..4b061df 100644 ---- a/scripts/set_in_chroot.sh -+++ b/scripts/set_in_chroot.sh -@@ -11,3 +11,6 @@ sed -i '/^root:/d' /etc/shadow_bak - echo "root:"${ROOT_PWD}${str:1} > /etc/shadow - cat /etc/shadow_bak >> /etc/shadow - rm -rf /etc/shadow_bak -+ -+dracut -f -v --add bootup /initramfs.img --kver `ls /lib/modules` -+rm -rf /usr/lib/dracut/modules.d/00bootup -\ No newline at end of file --- -2.33.0.windows.2 - diff --git a/0002-KubeOS-fix-the-kbimg.sh-exception-and-pxe-installati.patch b/0002-KubeOS-fix-the-kbimg.sh-exception-and-pxe-installati.patch deleted file mode 100644 index dc36db07bcc5b2d211da7df2cde2706bab89af93..0000000000000000000000000000000000000000 --- a/0002-KubeOS-fix-the-kbimg.sh-exception-and-pxe-installati.patch +++ /dev/null @@ -1,341 +0,0 @@ -From f64c9587a20cc44036b0f622105501ff142729d7 Mon Sep 17 00:00:00 2001 -From: liyuanr -Date: Tue, 23 Aug 2022 15:32:36 +0800 -Subject: [PATCH] KubeOS:fix the kbimg.sh exception and pxe installation - problem. - -Fixed the issue of abnormal usage printing of the kbimg.sh parameter, -no verification of the -b parameter, and environment clearance in -the concurrent scenario. -Fix the problem that disks and network adapters cannot be found -due to disk and network adapter verification during PXE installation. -Fix the problem that os-proxy does not transfer imagetype and dockerimage -to the os-agent. - -Signed-off-by: liyuanr ---- - cmd/proxy/controllers/os_controller.go | 16 ++++++------ - scripts/00bootup/Global.cfg | 12 ++++++--- - scripts/00bootup/mount.sh | 35 ++++++++++++++------------ - scripts/common/utils.sh | 7 ++++++ - scripts/create/imageCreate.sh | 4 +-- - scripts/kbimg.sh | 30 +++++++++++++--------- - 6 files changed, 62 insertions(+), 42 deletions(-) - -diff --git a/cmd/proxy/controllers/os_controller.go b/cmd/proxy/controllers/os_controller.go -index f73c750..09e58f9 100644 ---- a/cmd/proxy/controllers/os_controller.go -+++ b/cmd/proxy/controllers/os_controller.go -@@ -106,13 +106,15 @@ func (r *OSReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Re - case "upgrade": - version := osVersionSpec - downloadInfo := &agentclient.DownloadInfo{ -- ImageURL: osInstance.Spec.ImageURL, -- FlagSafe: osInstance.Spec.FlagSafe, -- CheckSum: osInstance.Spec.CheckSum, -- CaCert: osInstance.Spec.CaCert, -- ClientCert: osInstance.Spec.ClientCert, -- ClientKey: osInstance.Spec.ClientKey, -- MTLS: osInstance.Spec.MTLS, -+ ImageURL: osInstance.Spec.ImageURL, -+ FlagSafe: osInstance.Spec.FlagSafe, -+ CheckSum: osInstance.Spec.CheckSum, -+ CaCert: osInstance.Spec.CaCert, -+ ClientCert: osInstance.Spec.ClientCert, -+ ClientKey: osInstance.Spec.ClientKey, -+ MTLS: osInstance.Spec.MTLS, -+ ImageType: osInstance.Spec.ImageType, -+ DockerImage: osInstance.Spec.DockerImage, - } - if err := r.Connection.UpdateSpec(version, downloadInfo); err != nil { - return values.RequeueNow, err -diff --git a/scripts/00bootup/Global.cfg b/scripts/00bootup/Global.cfg -index cad4e33..dd78617 100644 ---- a/scripts/00bootup/Global.cfg -+++ b/scripts/00bootup/Global.cfg -@@ -4,9 +4,13 @@ rootfs_name=kubeos.tar - # select the target disk to install kubeOS - disk=/dev/sda - --# address where stores the rootfs on the http server -+# pxe server ip address where stores the rootfs on the http server - server_ip=192.168.1.50 -- -+# target machine ip - local_ip=192.168.1.100 -- --route_ip=192.168.1.1 -\ No newline at end of file -+# target machine route -+route_ip=192.168.1.1 -+# target machine netmask -+netmask=255.255.255.0 -+# target machine netDevice name -+net_name=eth0 -diff --git a/scripts/00bootup/mount.sh b/scripts/00bootup/mount.sh -index a04a364..1bc83ff 100644 ---- a/scripts/00bootup/mount.sh -+++ b/scripts/00bootup/mount.sh -@@ -24,20 +24,17 @@ function CheckSpace() { - } - - function GetDisk() { -- disks=$(hwinfo --disk --short | grep -vi "^disk" | awk '{print $1}') -- if [ ! -z ${disks} ]; then -- if [ ! -z ${disk} ] && echo "${disks[@]}" | grep -wq "${disk}" ; then -+ disks=(`hwinfo --disk --short 2>&1 | grep -vi "^disk" | awk '{print $1}'`) -+ if [ ${#disks[*]} -gt 0 ]; then -+ if [ -n "${disk}" ] && echo "${disks[@]}" | grep -wq "${disk}" ; then - echo "${disk} exists, start partition" | tee -a ${log} - else -- echo "disk not exist, choose default disk" | tee -a ${log} -- disk=$(echo ${disks[0]}) -+ echo "disk not exist, please choose correct disk" | tee -a ${log} - fi - else - echo "no disk found" | tee -a ${log} - return 1 - fi -- -- - CheckSpace - if [ $? -ne 0 ]; then - echo "no enough space on ${disk}" | tee -a ${log} -@@ -115,9 +112,18 @@ function PartitionAndFormatting() { - - function InitNetwork() { - echo "Initializing network..." -- # 获取网卡信息,默认只有一个网卡 -- net_name=`ifconfig -a | awk '{print $1}' | grep : | grep '^e' | awk -F: '{print $1}'` -- # dhclient --timeout 60 >> ${log} 2>&1 -+ netNames=(`ifconfig -a | awk '{print $1}' | grep : | grep '^e' | awk -F: '{print $1}'`) -+ if [ ${#netNames[*]} -gt 0 ]; then -+ if [ -n "${net_name}" ] && echo "${netNames[@]}" | grep -wq "${net_name}" ; then -+ echo "${net_name} exists, start set ip" | tee -a ${log} -+ else -+ echo "net_name not exist, choose default net" | tee -a ${log} -+ net_name=${netNames[0]} -+ fi -+ else -+ echo "no net Device found" | tee -a ${log} -+ return 1 -+ fi - - ifconfig ${net_name} up - if [ $? -ne 0 ]; then -@@ -126,7 +132,7 @@ function InitNetwork() { - fi - sleep 3 - -- ifconfig ${net_name} ${local_ip} netmask 255.255.255.0 >> ${log} 2>&1 -+ ifconfig ${net_name} ${local_ip} netmask ${netmask} >> ${log} 2>&1 - if [ $? -ne 0 ]; then - echo "ip set failed" | tee -a ${log} - return 1 -@@ -139,9 +145,6 @@ function InitNetwork() { - return 1 - fi - sleep 3 -- -- -- - return 0 - } - -@@ -249,6 +252,7 @@ function SetBoot() { - return 1 - fi - fi -+ sed -i 's#/dev/sda#'${disk}'#g' /sysroot/boot/efi/EFI/openEuler/grub.cfg - - return 0 - } -@@ -328,5 +332,4 @@ if [ ${ret} -eq 0 ]; then - cp ${log} /persist - else - echo "kubeOS install failed, see install.log" | tee -a ${log} --fi -- -+fi -\ No newline at end of file -diff --git a/scripts/common/utils.sh b/scripts/common/utils.sh -index 902a6ae..3546c8c 100644 ---- a/scripts/common/utils.sh -+++ b/scripts/common/utils.sh -@@ -87,6 +87,13 @@ function delete_file() { - return 0 - } - -+function check_binary_exist() { -+ if [ ! -f "$1" ];then -+ log_error_print "binary path is invalid." -+ exit 3 -+ fi -+} -+ - function check_repo_path() { - if [ ! -f "$1" ];then - log_error_print "REPO path is invalid." -diff --git a/scripts/create/imageCreate.sh b/scripts/create/imageCreate.sh -index 95ebcde..564c740 100644 ---- a/scripts/create/imageCreate.sh -+++ b/scripts/create/imageCreate.sh -@@ -56,19 +56,17 @@ function create_img() { - } - - function create_pxe_img() { -- rm -rf boot/ kubeos.tar -+ rm -rf initramfs.img kubeos.tar - local opt=$1 - shift - case $opt in - "repo") - create_os_tar_from_repo "$@" - tar -xvf os.tar ./initramfs.img -- tar -xvf os.tar ./boot/vmlinuz - ;; - "docker") - create_os_tar_from_docker "$@" - tar -xvf os.tar initramfs.img -- tar -xvf os.tar boot/vmlinuz - ;; - esac - mv os.tar kubeos.tar -diff --git a/scripts/kbimg.sh b/scripts/kbimg.sh -index 1268700..a77d62e 100644 ---- a/scripts/kbimg.sh -+++ b/scripts/kbimg.sh -@@ -72,12 +72,12 @@ options: - EOF - } - --function show_vm_image_usage() { -+function show_vm_pxe_image_usage() { - cat << EOF - --Usage : kbimg create vm-image -p iso-path -v os-version -b os-agent-dir -e os-password -+Usage : kbimg create [vm-image|pxe-image] -p iso-path -v os-version -b os-agent-dir -e os-password - or -- kbimg create vm-image -d repository/name:tag -+ kbimg create [vm-image|pxe-image] -d repository/name:tag - - options: - -p repo path -@@ -130,7 +130,7 @@ function clean_space() { - function clean_img() { - delete_file system.img - delete_file update.img -- delete_dir boot -+ delete_file initramfs.img - delete_file kubeos.tar - } - -@@ -170,6 +170,7 @@ function verify_upgrade_image_input() { - ;; - *) - log_error_print "option $opt not found" -+ show_upgrade_image_usage - exit 3 - ;; - esac -@@ -183,6 +184,7 @@ function verify_repo_input() { - echo "$@" | grep -q "\-$i " - if [ "$?" -ne 0 ];then - log_error_print "option -$i is mandatory, please check input" -+ show_vm_pxe_image_usage - exit 3 - fi - done -@@ -208,6 +210,7 @@ function verify_repo_input() { - ;; - *) - log_error_print "option $opt not found" -+ show_vm_pxe_image_usage - exit 3 - ;; - esac -@@ -215,7 +218,8 @@ function verify_repo_input() { - } - function verify_docker_input() { - if [ $1 != "-d" ]; then -- log_error_print "option $opt not found" -+ log_error_print "option $1 not found" -+ show_vm_pxe_image_usage - exit 3 - fi - check_param $2 -@@ -242,13 +246,14 @@ function verify_create_input() { - check_disk_space "docker" - verify_upgrade_image_input "$@" - check_repo_path "${REPO}" -+ check_binary_exist "${AGENT_PATH}" - create_docker_image "${REPO}" "${VERSION}" "${AGENT_PATH}" "${PASSWD}" "${DOCKER_IMG}" - ;; - "vm-image") - shift - if [ $# -eq 1 ]; then - if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then -- show_vm_image_usage -+ show_vm_pxe_image_usage - exit 0 - fi - fi -@@ -256,6 +261,7 @@ function verify_create_input() { - if [ $# -eq 8 ]; then - verify_repo_input "$@" - check_repo_path "${REPO}" -+ check_binary_exist "${AGENT_PATH}" - create_vm_img "repo" "${REPO}" "${VERSION}" "${AGENT_PATH}" "${PASSWD}" - elif [ $# -eq 2 ]; then - verify_docker_input "$@" -@@ -263,7 +269,7 @@ function verify_create_input() { - create_vm_img "docker" "${DOCKER_IMG}" - else - log_error_print "the number of parameters is incorrect, please check it." -- show_vm_image_usage -+ show_vm_pxe_image_usage - exit 3 - fi - ;; -@@ -271,7 +277,7 @@ function verify_create_input() { - shift - if [ $# -eq 1 ]; then - if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then -- show_pxe_image_usage -+ show_vm_pxe_image_usage - exit 0 - fi - fi -@@ -279,6 +285,7 @@ function verify_create_input() { - if [ $# -eq 8 ]; then - verify_repo_input "$@" - check_repo_path "${REPO}" -+ check_binary_exist "${AGENT_PATH}" - create_pxe_img "repo" "${REPO}" "${VERSION}" "${AGENT_PATH}" "${PASSWD}" - elif [ $# -eq 2 ]; then - verify_docker_input "$@" -@@ -286,7 +293,7 @@ function verify_create_input() { - create_pxe_img "docker" "${DOCKER_IMG}" - else - log_error_print "the number of parameters is incorrect, please check it." -- show_pxe_image_usage -+ show_vm_pxe_image_usage - exit 3 - fi - ;; -@@ -327,9 +334,8 @@ function kubeos_image_main() { - esac - } - -+test_lock - trap clean_space EXIT - trap clean_img ERR - --test_lock --kubeos_image_main "$@" -- -+kubeos_image_main "$@" -\ No newline at end of file --- -2.33.0.windows.2 - diff --git a/0003-KubeOS-fixed-the-issue-of-VMs-images-and-add-check-o.patch b/0003-KubeOS-fixed-the-issue-of-VMs-images-and-add-check-o.patch deleted file mode 100644 index 7e9eee8c457d66f4f51445dc11aacd5f551caa6b..0000000000000000000000000000000000000000 --- a/0003-KubeOS-fixed-the-issue-of-VMs-images-and-add-check-o.patch +++ /dev/null @@ -1,300 +0,0 @@ -From fd5b3f24446c8c5dfc2fb271431ed296618eccc1 Mon Sep 17 00:00:00 2001 -From: liyuanr -Date: Sat, 27 Aug 2022 16:22:56 +0800 -Subject: [PATCH] KubeOS: fixed the issue of VMs images and add check of - Global.cfg. - -Modify the docker image creation method to fix the problem that /etc/hosts is -empty in the VM created using the docker image and that the /sys directory is -mounted abnormally. -Add checks whether configuration in the Global.cfg file are empty and whether -the IP address is valid. - -Signed-off-by: liyuanr ---- - api/v1alpha1/os_types.go | 15 +++--- - cmd/agent/server/docker_image.go | 27 +++++++---- - .../config/crd/upgrade.openeuler.org_os.yaml | 1 - - scripts/Dockerfile | 2 +- - scripts/common/utils.sh | 48 ++++++++++++++++--- - scripts/create/imageCreate.sh | 3 +- - scripts/create/rootfsCreate.sh | 12 ++--- - scripts/kbimg.sh | 19 +------- - 8 files changed, 74 insertions(+), 53 deletions(-) - -diff --git a/api/v1alpha1/os_types.go b/api/v1alpha1/os_types.go -index 5acb97a..862d408 100644 ---- a/api/v1alpha1/os_types.go -+++ b/api/v1alpha1/os_types.go -@@ -23,14 +23,13 @@ type OSSpec struct { - MaxUnavailable int `json:"maxunavailable"` - CheckSum string `json:"checksum"` - FlagSafe bool `json:"flagSafe"` -- // +kubebuilder:default=true -- MTLS bool `json:"mtls"` -- ImageType string `json:"imagetype"` -- DockerImage string `json:"dockerimage"` -- OpsType string `json:"opstype"` -- CaCert string `json:"cacert"` -- ClientCert string `json:"clientcert"` -- ClientKey string `json:"clientkey"` -+ MTLS bool `json:"mtls"` -+ ImageType string `json:"imagetype"` -+ DockerImage string `json:"dockerimage"` -+ OpsType string `json:"opstype"` -+ CaCert string `json:"cacert"` -+ ClientCert string `json:"clientcert"` -+ ClientKey string `json:"clientkey"` - } - - // +kubebuilder:subresource:status -diff --git a/cmd/agent/server/docker_image.go b/cmd/agent/server/docker_image.go -index c5ed640..11b21aa 100644 ---- a/cmd/agent/server/docker_image.go -+++ b/cmd/agent/server/docker_image.go -@@ -54,7 +54,7 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) { - return "", err - } - defer cli.ContainerRemove(ctx, info.ID, types.ContainerRemoveOptions{}) -- tarStream, stat, err := cli.CopyFromContainer(ctx, info.ID, "/") -+ tarStream, stat, err := cli.CopyFromContainer(ctx, info.ID, "/os.tar") - if err != nil { - return "", err - } -@@ -71,6 +71,15 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) { - return "", fmt.Errorf("space is not enough for downloaing") - } - -+ srcInfo := archive.CopyInfo{ -+ Path: "/", -+ Exists: true, -+ IsDir: stat.Mode.IsDir(), -+ } -+ if err = archive.CopyTo(tarStream, srcInfo, PersistDir); err != nil { -+ return "", err -+ } -+ - tmpMountPath := filepath.Join(PersistDir, "/kubeos-update") - if err = os.Mkdir(tmpMountPath, imgPermission); err != nil { - return "", err -@@ -80,25 +89,23 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) { - if err = runCommand("dd", "if=/dev/zero", "of="+imagePath, "bs=2M", "count=1024"); err != nil { - return "", err - } -- if err = runCommand("mkfs.ext4", imagePath); err != nil { -+ _, next, err := getNextPart(partA, partB) -+ if err = runCommand("mkfs.ext4", "-L", "ROOT-"+next, imagePath); err != nil { - return "", err - } - if err = runCommand("mount", "-o", "loop", imagePath, tmpMountPath); err != nil { - return "", err - } - defer func() { -- runCommand("losetup", "-D") - syscall.Unmount(tmpMountPath, 0) -- -+ runCommand("losetup", "-D") - }() -- srcInfo := archive.CopyInfo{ -- Path: "/", -- Exists: true, -- IsDir: stat.Mode.IsDir(), -- } -+ - logrus.Infoln("downloading to file " + imagePath) -- if err = archive.CopyTo(tarStream, srcInfo, tmpMountPath); err != nil { -+ tmpTarPath := filepath.Join(PersistDir, "/os.tar") -+ if err = runCommand("tar", "-xvf", tmpTarPath, "-C", tmpMountPath); err != nil { - return "", err - } -+ defer os.Remove(tmpTarPath) - return imagePath, nil - } -diff --git a/docs/example/config/crd/upgrade.openeuler.org_os.yaml b/docs/example/config/crd/upgrade.openeuler.org_os.yaml -index 465e803..f240b8d 100644 ---- a/docs/example/config/crd/upgrade.openeuler.org_os.yaml -+++ b/docs/example/config/crd/upgrade.openeuler.org_os.yaml -@@ -51,7 +51,6 @@ spec: - maxunavailable: - type: integer - mtls: -- default: true - type: boolean - opstype: - type: string -diff --git a/scripts/Dockerfile b/scripts/Dockerfile -index 6a616f5..3da4708 100644 ---- a/scripts/Dockerfile -+++ b/scripts/Dockerfile -@@ -1,3 +1,3 @@ - FROM scratch --ADD os.tar / -+COPY os.tar / - CMD ["/bin/sh"] -diff --git a/scripts/common/utils.sh b/scripts/common/utils.sh -index 3546c8c..cf9441b 100644 ---- a/scripts/common/utils.sh -+++ b/scripts/common/utils.sh -@@ -87,19 +87,53 @@ function delete_file() { - return 0 - } - --function check_binary_exist() { -- if [ ! -f "$1" ];then -- log_error_print "binary path is invalid." -+function check_file_valid() { -+ local file="$1" -+ local mesg="$2" -+ if [ ! -e "${file}" ]; then -+ log_error_print "${mesg} is not exist." -+ exit 3 -+ fi -+ if [ ! -f "${file}" ];then -+ log_error_print "${mesg} is not a file." - exit 3 - fi - } - --function check_repo_path() { -- if [ ! -f "$1" ];then -- log_error_print "REPO path is invalid." -+function check_conf_valid() { -+ local conf_path="${PWD}/00bootup/Global.cfg" -+ check_file_valid ${conf_path} "Globab.cfg" -+ if [ $# != 7 ];then -+ log_error_print "configure configured in Global.cfg is empty." - exit 3 - fi -+ for addr in ${server_ip} ${local_ip} ${route_ip} ${netmask}; do -+ check_ip_valid $addr -+ done -+} - -+function check_ip_valid() { -+ local ipaddr="$1"; -+ if [[ ! $ipaddr =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] ; then -+ log_error_print "ip address configured in Global.cfg is not valid." -+ exit 3; -+ fi -+ for quad in $(echo "${ipaddr//./ }"); do -+ if [ $quad -ge 0 ] && [ $quad -le 255 ];then -+ continue -+ fi -+ log_error_print "ip address configured in Global.cfg is not valid." -+ exit 3; -+ done -+ -+} -+ -+function check_binary_exist() { -+ check_file_valid "$1" "os-agent binary" -+} -+ -+function check_repo_path() { -+ check_file_valid $1 "REPO file" - if [ -d "${RPM_ROOT}" ]; then - log_error_print "there is a rootfs folder. please confirm if rootfs is being used, if not, please remove ${RPM_ROOT} first." - exit 5 -@@ -117,7 +151,7 @@ function check_disk_space() { - fi - ;; - vm) -- local maxsize=$((5*1024*1024)) -+ local maxsize=$((25*1024*1024)) - if [ "${disk_ava}" -lt "${maxsize}" ]; then - log_error_print "The available disk space is not enough, at least 25GiB." - exit 6 -diff --git a/scripts/create/imageCreate.sh b/scripts/create/imageCreate.sh -index 564c740..9689f62 100644 ---- a/scripts/create/imageCreate.sh -+++ b/scripts/create/imageCreate.sh -@@ -62,13 +62,12 @@ function create_pxe_img() { - case $opt in - "repo") - create_os_tar_from_repo "$@" -- tar -xvf os.tar ./initramfs.img - ;; - "docker") - create_os_tar_from_docker "$@" -- tar -xvf os.tar initramfs.img - ;; - esac -+ tar -xvf os.tar ./initramfs.img - mv os.tar kubeos.tar - } - function create_docker_image() { -diff --git a/scripts/create/rootfsCreate.sh b/scripts/create/rootfsCreate.sh -index e5c53d5..4c02c35 100644 ---- a/scripts/create/rootfsCreate.sh -+++ b/scripts/create/rootfsCreate.sh -@@ -65,8 +65,6 @@ EOF - cp set_in_chroot.sh "${RPM_ROOT}" - ROOT_PWD="${PASSWD}" chroot "${RPM_ROOT}" bash /set_in_chroot.sh - rm "${RPM_ROOT}/set_in_chroot.sh" -- -- #todo:chroot create initramfs.img to include install-scripts for PXE install - } - - function create_os_tar_from_repo() { -@@ -80,9 +78,9 @@ function create_os_tar_from_repo() { - tar -C "$RPM_ROOT" -cf ./os.tar . - } - function create_os_tar_from_docker() { -- local DOCKER_IMG=$1 -- container_id=$(docker create ${DOCKER_IMG}) -- echo "$container_id" -- docker export $container_id > os.tar -- docker rm $container_id -+ local DOCKER_IMG=$1 -+ container_id=$(docker create ${DOCKER_IMG}) -+ echo "$container_id" -+ docker cp $container_id:/os.tar ./ -+ docker rm $container_id - } -diff --git a/scripts/kbimg.sh b/scripts/kbimg.sh -index a77d62e..a623e3d 100644 ---- a/scripts/kbimg.sh -+++ b/scripts/kbimg.sh -@@ -24,6 +24,7 @@ source common/log.sh &>/dev/null - source common/utils.sh &>/dev/null - source create/rootfsCreate.sh &>/dev/null - source create/imageCreate.sh &>/dev/null -+source 00bootup/Global.cfg &>/dev/null - - function show_options() { - cat << EOF -@@ -89,23 +90,6 @@ options: - EOF - } - --function show_pxe_image_usage() { -- cat << EOF -- --Usage : kbimg create pxe-image -p iso-path -v os-version -b os-agent-dir -e os-password -- or -- kbimg create pxe-image -d repository/name:tag -- --options: -- -p repo path -- -v KubeOS version -- -b directory of os-agent binary -- -e os encrypted password -- -d docker image like repository/name:tag -- -h,--help show help information --EOF --} -- - function file_lock() { - local lock_file=$1 - exec {lock_fd}>"${lock_file}" -@@ -282,6 +266,7 @@ function verify_create_input() { - fi - fi - check_disk_space "pxe" -+ check_conf_valid ${rootfs_name} ${disk} ${server_ip} ${local_ip} ${route_ip} ${netmask} ${net_name} - if [ $# -eq 8 ]; then - verify_repo_input "$@" - check_repo_path "${REPO}" --- -2.33.0.windows.2 - diff --git a/0004-KubeOS-add-the-clearing-of-space-before-the-upgrade-.patch b/0004-KubeOS-add-the-clearing-of-space-before-the-upgrade-.patch deleted file mode 100644 index c183d1b2827ac39e4d4e1f8f6910cdefe3f66817..0000000000000000000000000000000000000000 --- a/0004-KubeOS-add-the-clearing-of-space-before-the-upgrade-.patch +++ /dev/null @@ -1,183 +0,0 @@ -From 54d0a0304a0f76a0e619a8adac370eb3866f52b1 Mon Sep 17 00:00:00 2001 -From: liyuanr -Date: Wed, 31 Aug 2022 18:06:28 +0800 -Subject: [PATCH] KubeOS:add the clearing of space before the upgrade and - rectifying the rollback failure. - -The pre-upgrade space clearance function is added to resolve the problem that the upgrade -fails due to residual resources when the upgrade is performed again after a power failure. -Fix the rollback failure when the upgrade fails due to the upgrade using different architectures. - -Signed-off-by: liyuanr ---- - cmd/agent/server/docker_image.go | 91 ++++++++++++++++++++++++++++---- - scripts/grub.cfg | 10 ---- - 2 files changed, 81 insertions(+), 20 deletions(-) - -diff --git a/cmd/agent/server/docker_image.go b/cmd/agent/server/docker_image.go -index 11b21aa..4f9edc1 100644 ---- a/cmd/agent/server/docker_image.go -+++ b/cmd/agent/server/docker_image.go -@@ -15,6 +15,7 @@ package server - - import ( - "context" -+ "errors" - "fmt" - "io/ioutil" - "os" -@@ -47,9 +48,18 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) { - return "", err - } - -+ containerName := "kubeos-temp" -+ containers, err := cli.ContainerList(ctx, types.ContainerListOptions{All: true}) -+ for _, container := range containers { -+ if container.Names[0] == "/"+containerName { -+ if err = cli.ContainerRemove(ctx, container.ID, types.ContainerRemoveOptions{}); err != nil { -+ return "", err -+ } -+ } -+ } - info, err := cli.ContainerCreate(ctx, &container.Config{ - Image: imageName, -- }, nil, nil, "kubeos-temp") -+ }, nil, nil, containerName) - if err != nil { - return "", err - } -@@ -71,22 +81,31 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) { - return "", fmt.Errorf("space is not enough for downloaing") - } - -+ tmpUpdatePath := filepath.Join(PersistDir, "/KubeOS-Update") -+ tmpMountPath := filepath.Join(tmpUpdatePath, "/kubeos-update") -+ tmpTarPath := filepath.Join(tmpUpdatePath, "/os.tar") -+ imagePath := filepath.Join(PersistDir, "/update.img") -+ -+ if err = cleanSpace(tmpUpdatePath, tmpMountPath, imagePath); err != nil { -+ return "", err -+ } -+ if err = os.MkdirAll(tmpMountPath, imgPermission); err != nil { -+ return "", err -+ } -+ defer os.RemoveAll(tmpUpdatePath) -+ - srcInfo := archive.CopyInfo{ - Path: "/", - Exists: true, - IsDir: stat.Mode.IsDir(), - } -- if err = archive.CopyTo(tarStream, srcInfo, PersistDir); err != nil { -+ if err = archive.CopyTo(tarStream, srcInfo, tmpUpdatePath); err != nil { - return "", err - } -- -- tmpMountPath := filepath.Join(PersistDir, "/kubeos-update") -- if err = os.Mkdir(tmpMountPath, imgPermission); err != nil { -+ if err = runCommand("dd", "if=/dev/zero", "of="+imagePath, "bs=2M", "count=1024"); err != nil { - return "", err - } -- defer os.Remove(tmpMountPath) -- imagePath := filepath.Join(PersistDir, "/update.img") -- if err = runCommand("dd", "if=/dev/zero", "of="+imagePath, "bs=2M", "count=1024"); err != nil { -+ if err = os.Chmod(imagePath, imgPermission); err != nil { - return "", err - } - _, next, err := getNextPart(partA, partB) -@@ -102,10 +121,62 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) { - }() - - logrus.Infoln("downloading to file " + imagePath) -- tmpTarPath := filepath.Join(PersistDir, "/os.tar") - if err = runCommand("tar", "-xvf", tmpTarPath, "-C", tmpMountPath); err != nil { - return "", err - } -- defer os.Remove(tmpTarPath) - return imagePath, nil - } -+ -+func cleanSpace(updatePath, mountPath, imagePath string) error { -+ isFileExist, err := checkFileExist(mountPath) -+ if err != nil { -+ return err -+ } -+ if isFileExist { -+ var st syscall.Stat_t -+ if err := syscall.Lstat(mountPath, &st); err != nil { -+ return err -+ } -+ dev := st.Dev -+ parent := filepath.Dir(mountPath) -+ if err := syscall.Lstat(parent, &st); err != nil { -+ return err -+ } -+ if dev != st.Dev { -+ if err := syscall.Unmount(mountPath, 0); err != nil { -+ return err -+ } -+ } -+ } -+ -+ if err = deleteFile(updatePath); err != nil { -+ return err -+ } -+ -+ if err = deleteFile(imagePath); err != nil { -+ return err -+ } -+ return nil -+} -+ -+func deleteFile(path string) error { -+ isFileExist, err := checkFileExist(path) -+ if err != nil { -+ return err -+ } -+ if isFileExist { -+ if err = os.RemoveAll(path); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+func checkFileExist(path string) (bool, error) { -+ if _, err := os.Stat(path); err == nil { -+ return true, nil -+ } else if errors.Is(err, os.ErrNotExist) { -+ return false, nil -+ } else { -+ return false, err -+ } -+} -diff --git a/scripts/grub.cfg b/scripts/grub.cfg -index d10e4cf..c1a2641 100644 ---- a/scripts/grub.cfg -+++ b/scripts/grub.cfg -@@ -91,11 +91,6 @@ menuentry 'A' --class KubeOS --class gnu-linux --class gnu --class os --unrestri - insmod part_msdos - insmod ext2 - set root='hd0,msdos2' -- if [ x$feature_platform_search_hint = xy ]; then -- search --no-floppy --file --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 /boot/vmlinuz -- else -- search --no-floppy --file --set=root /boot/vmlinuz -- fi - linux /boot/vmlinuz root=/dev/sda2 ro rootfstype=ext4 nomodeset quiet oops=panic softlockup_panic=1 nmi_watchdog=1 rd.shell=0 selinux=0 crashkernel=256M panic=3 - initrd /boot/initramfs.img - } -@@ -107,11 +102,6 @@ menuentry 'B' --class KubeOS --class gnu-linux --class gnu --class os --unrestri - insmod part_msdos - insmod ext2 - set root='hd0,msdos3' -- if [ x$feature_platform_search_hint = xy ]; then -- search --no-floppy --file --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 /boot/vmlinuz -- else -- search --no-floppy --file --set=root /boot/vmlinuz -- fi - linux /boot/vmlinuz root=/dev/sda3 ro rootfstype=ext4 nomodeset quiet oops=panic softlockup_panic=1 nmi_watchdog=1 rd.shell=0 selinux=0 crashkernel=256M panic=3 - initrd /boot/initramfs.img - } --- -2.33.0.windows.2 - diff --git a/0005-KubeOS-add-the-configuration-of-etc-resolv.conf-and-.patch b/0005-KubeOS-add-the-configuration-of-etc-resolv.conf-and-.patch deleted file mode 100644 index 7140e9e86780e376ee4c624adfcb2ed1d4f3c33a..0000000000000000000000000000000000000000 --- a/0005-KubeOS-add-the-configuration-of-etc-resolv.conf-and-.patch +++ /dev/null @@ -1,254 +0,0 @@ -From a1bf179490d33c25dd49fe6c363eec5e0e8fe532 Mon Sep 17 00:00:00 2001 -From: liyuanr -Date: Sat, 3 Sep 2022 14:21:54 +0800 -Subject: [PATCH] KubeOS:add the configuration of /etc/resolv.conf and change - the VM disk to gpt. - -Add the user-defined /etc/resolv.conf file and change the VM disk to gpt -to be the same as that on the physical machine. - -Signed-off-by: liyuanr ---- - cmd/agent/server/docker_image.go | 3 +- - scripts/00bootup/mount.sh | 50 ++++++++++++++++++-------------- - scripts/bootloader.sh | 4 +-- - scripts/create/imageCreate.sh | 12 ++++---- - scripts/create/rootfsCreate.sh | 4 +++ - scripts/grub.cfg | 8 ++--- - 6 files changed, 45 insertions(+), 36 deletions(-) - -diff --git a/cmd/agent/server/docker_image.go b/cmd/agent/server/docker_image.go -index 4f9edc1..735ace0 100644 ---- a/cmd/agent/server/docker_image.go -+++ b/cmd/agent/server/docker_image.go -@@ -108,8 +108,7 @@ func pullOSImage(req *pb.UpdateRequest) (string, error) { - if err = os.Chmod(imagePath, imgPermission); err != nil { - return "", err - } -- _, next, err := getNextPart(partA, partB) -- if err = runCommand("mkfs.ext4", "-L", "ROOT-"+next, imagePath); err != nil { -+ if err = runCommand("mkfs.ext4", "-L", "ROOT-A", imagePath); err != nil { - return "", err - } - if err = runCommand("mount", "-o", "loop", imagePath, tmpMountPath); err != nil { -diff --git a/scripts/00bootup/mount.sh b/scripts/00bootup/mount.sh -index 1bc83ff..7f00fd6 100644 ---- a/scripts/00bootup/mount.sh -+++ b/scripts/00bootup/mount.sh -@@ -23,6 +23,14 @@ function CheckSpace() { - return 0 - } - -+function mount_proc_dev_sys() { -+ local tmp_root=$1 -+ mount -t proc none "${tmp_root}/proc" -+ mount --bind /dev "${tmp_root}/dev" -+ mount --bind /dev/pts "${tmp_root}/dev/pts" -+ mount -t sysfs none "${tmp_root}/sys" -+} -+ - function GetDisk() { - disks=(`hwinfo --disk --short 2>&1 | grep -vi "^disk" | awk '{print $1}'`) - if [ ${#disks[*]} -gt 0 ]; then -@@ -162,14 +170,13 @@ function MountRoot() { - - function MountPersist() { - echo "Mounting persist" -- mkdir /persist -- mount ${disk}4 /persist >> ${log} 2>&1 -+ mount ${disk}4 /sysroot/persist >> ${log} 2>&1 - if [ $? -ne 0 ]; then - echo "mount persist failed" | tee -a ${log} - return 1 - fi -- mkdir /persist/{var,etc,etcwork} -- mkdir -p /persist/etc/KubeOS/certs -+ mkdir /sysroot/persist/{var,etc,etcwork} -+ mkdir -p /sysroot/persist/etc/KubeOS/certs - return 0 - } - -@@ -187,20 +194,20 @@ function MountBoot() { - function GetRootfs() { - echo "Downloading rootfs..." - -- curl -o /persist/${rootfs_name} http://${server_ip}/${rootfs_name} -- if [ ! -e "/persist/${rootfs_name}" ]; then -+ curl -o /${rootfs_name} http://${server_ip}/${rootfs_name} -+ if [ ! -e "/${rootfs_name}" ]; then - echo "download rootfs failed" | tee -a ${log} - return 1 - fi - -- tar -xvf /persist/${rootfs_name} -C /sysroot -+ tar -xf /${rootfs_name} -C /sysroot - if [ $? -ne 0 ]; then - echo "decompose rootfs failed" | tee -a ${log} - return 1 - fi - -- rm -rf /persist/${rootfs_name} -- -+ rm -rf /${rootfs_name} -+ mount -o remount,ro ${disk}2 /sysroot >> ${log} 2>&1 - return 0 - } - -@@ -283,6 +290,8 @@ function Bootup_Main() { - fi - - # mount partitions -+ -+ # mount boot - echo "Mounting root..." | tee -a ${log} - MountRoot - if [ $? -ne 0 ]; then -@@ -290,15 +299,6 @@ function Bootup_Main() { - return 1 - fi - -- # mount persist -- echo "Mounting persisst..." | tee -a ${log} -- MountPersist -- if [ $? -ne 0 ]; then -- echo "Mounting persist failed" | tee -a ${log} -- return 1 -- fi -- -- # mount boot - echo "Mounting boot..." | tee -a ${log} - MountBoot - if [ $? -ne 0 ]; then -@@ -313,7 +313,7 @@ function Bootup_Main() { - echo "Downloading rootfs failed" | tee -a ${log} - return 1 - fi -- -+ mount_proc_dev_sys /sysroot - # set boot - echo "Setting boot..." | tee -a ${log} - SetBoot -@@ -321,7 +321,13 @@ function Bootup_Main() { - echo "Setting boot failed" | tee -a ${log} - return 1 - fi -- -+ # mount persist -+ echo "Mounting persist..." | tee -a ${log} -+ MountPersist -+ if [ $? -ne 0 ]; then -+ echo "Mounting persist failed" | tee -a ${log} -+ return 1 -+ fi - return 0 - } - -@@ -329,7 +335,7 @@ Bootup_Main - ret=$? - if [ ${ret} -eq 0 ]; then - echo "kubeOS install success! switch to root" | tee -a ${log} -- cp ${log} /persist -+ cp ${log} /sysroot/persist - else - echo "kubeOS install failed, see install.log" | tee -a ${log} --fi -\ No newline at end of file -+fi -diff --git a/scripts/bootloader.sh b/scripts/bootloader.sh -index 0f906d4..5760f3d 100644 ---- a/scripts/bootloader.sh -+++ b/scripts/bootloader.sh -@@ -16,7 +16,7 @@ function install_grub2_x86 () - - # make efi file, and save in FAT16 partition, to support UEFI boot mode - cp -r /usr/lib/grub/x86_64-efi boot/efi/EFI/openEuler -- eval "grub2-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi --output=/boot/efi/EFI/openEuler/grubx64.efi '--prefix=(,msdos1)/EFI/openEuler' fat part_gpt part_msdos linux" -+ eval "grub2-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi --output=/boot/efi/EFI/openEuler/grubx64.efi '--prefix=(,gpt1)/EFI/openEuler' fat part_gpt part_msdos linux" - - mkdir -p /boot/EFI/BOOT/ - cp -f /boot/efi/EFI/openEuler/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI -@@ -25,7 +25,7 @@ function install_grub2_x86 () - function install_grub2_efi () - { - cp -r /usr/lib/grub/arm64-efi /boot/efi/EFI/openEuler/ -- eval "grub2-mkimage -d /usr/lib/grub/arm64-efi -O arm64-efi --output=/boot/efi/EFI/openEuler/grubaa64.efi '--prefix=(,msdos1)/EFI/openEuler' fat part_gpt part_msdos linux" -+ eval "grub2-mkimage -d /usr/lib/grub/arm64-efi -O arm64-efi --output=/boot/efi/EFI/openEuler/grubaa64.efi '--prefix=(,gpt1)/EFI/openEuler' fat part_gpt part_msdos linux" - - mkdir -p /boot/EFI/BOOT/ - cp -f /boot/efi/EFI/openEuler/grubaa64.efi /boot/efi/EFI/BOOT/BOOTAA64.EFI -diff --git a/scripts/create/imageCreate.sh b/scripts/create/imageCreate.sh -index 9689f62..e615d5f 100644 ---- a/scripts/create/imageCreate.sh -+++ b/scripts/create/imageCreate.sh -@@ -16,12 +16,12 @@ PWD="$(pwd)" - function create_img() { - rm -f system.img update.img - qemu-img create system.img ${IMG_SIZE}G -- parted system.img -- mklabel msdos -- parted system.img -- mkpart primary fat16 1MiB 60MiB -- parted system.img -- mkpart primary ext4 60MiB 2160MiB -- parted system.img -- mkpart primary ext4 2160MiB 4260MiB -- parted system.img -- mkpart primary ext4 4260MiB 100% -- -+ parted system.img -s mklabel gpt -+ parted system.img -s mkpart primary fat32 1MiB 60MiB -+ parted system.img -s mkpart primary ext4 60MiB 2160MiB -+ parted system.img -s mkpart primary ext4 2160MiB 4260MiB -+ parted system.img -s mkpart primary ext4 4260MiB 100% -+ parted system.img -s set 1 boot on - local device=$(losetup -f) - losetup "${device}" system.img - -diff --git a/scripts/create/rootfsCreate.sh b/scripts/create/rootfsCreate.sh -index 4c02c35..29f2762 100644 ---- a/scripts/create/rootfsCreate.sh -+++ b/scripts/create/rootfsCreate.sh -@@ -46,6 +46,7 @@ function install_misc() { - local VERSION=$1 - local AGENT_PATH=$2 - local PASSWD=$3 -+ local DNS_CONF="${PWD}/resolv.conf" - cp ../files/*mount ../files/os-agent.service "${RPM_ROOT}/usr/lib/systemd/system/" - cp ../files/os-release "${RPM_ROOT}/usr/lib/" - cp "${AGENT_PATH}" "${RPM_ROOT}/usr/bin" -@@ -65,6 +66,9 @@ EOF - cp set_in_chroot.sh "${RPM_ROOT}" - ROOT_PWD="${PASSWD}" chroot "${RPM_ROOT}" bash /set_in_chroot.sh - rm "${RPM_ROOT}/set_in_chroot.sh" -+ if [ -e "${DNS_CONF}" ]; then -+ cp "${DNS_CONF}" "${RPM_ROOT}/etc/resolv.conf" -+ fi - } - - function create_os_tar_from_repo() { -diff --git a/scripts/grub.cfg b/scripts/grub.cfg -index c1a2641..984b161 100644 ---- a/scripts/grub.cfg -+++ b/scripts/grub.cfg -@@ -88,9 +88,9 @@ menuentry 'A' --class KubeOS --class gnu-linux --class gnu --class os --unrestri - load_video - set gfxpayload=keep - insmod gzio -- insmod part_msdos -+ insmod part_gpt - insmod ext2 -- set root='hd0,msdos2' -+ set root='hd0,gpt2' - linux /boot/vmlinuz root=/dev/sda2 ro rootfstype=ext4 nomodeset quiet oops=panic softlockup_panic=1 nmi_watchdog=1 rd.shell=0 selinux=0 crashkernel=256M panic=3 - initrd /boot/initramfs.img - } -@@ -99,9 +99,9 @@ menuentry 'B' --class KubeOS --class gnu-linux --class gnu --class os --unrestri - load_video - set gfxpayload=keep - insmod gzio -- insmod part_msdos -+ insmod part_gpt - insmod ext2 -- set root='hd0,msdos3' -+ set root='hd0,gpt3' - linux /boot/vmlinuz root=/dev/sda3 ro rootfstype=ext4 nomodeset quiet oops=panic softlockup_panic=1 nmi_watchdog=1 rd.shell=0 selinux=0 crashkernel=256M panic=3 - initrd /boot/initramfs.img - } --- -2.33.0.windows.2 - diff --git a/0006-KubeOS-remove-grub2-legacy-install-add-error-handlin.patch b/0006-KubeOS-remove-grub2-legacy-install-add-error-handlin.patch deleted file mode 100644 index 8dab4ab06d5fe93bbbbf171411ddb805a886908c..0000000000000000000000000000000000000000 --- a/0006-KubeOS-remove-grub2-legacy-install-add-error-handlin.patch +++ /dev/null @@ -1,104 +0,0 @@ -From d638f26cdf8f22b258e97baec83a261a2de315ee Mon Sep 17 00:00:00 2001 -From: liyuanr -Date: Tue, 29 Nov 2022 16:39:20 +0800 -Subject: [PATCH] KubeOS: remove grub2 legacy install, add error handling for - opstype and add entry for unit test in Makefile - -Remove grub2 install for legacy setup to fix failure of x86 -vm images building. Add the error handling of the abnormal value -of the opstype. Add an entry for unit testing in Makefile. - -Signed-off-by: liyuanr ---- - Makefile | 3 +++ - cmd/agent/server/docker_image_test.go | 21 --------------------- - cmd/proxy/controllers/os_controller.go | 3 +++ - scripts/bootloader.sh | 8 -------- - 4 files changed, 6 insertions(+), 29 deletions(-) - -diff --git a/Makefile b/Makefile -index 38cc2ce..9d9fbea 100644 ---- a/Makefile -+++ b/Makefile -@@ -50,6 +50,9 @@ agent: - ${ENV} ${GO_BUILD} -tags "osusergo netgo static_build" -ldflags '$(LDFLAGS)' $(BUILDFLAGS) -o bin/os-agent cmd/agent/main.go - strip bin/os-agent - -+test: -+ $(GO) test $(shell go list ./... ) -race -cover -count=1 -timeout=300s -+ - # Install CRDs into a cluster - install: manifests - kubectl apply -f confg/crd -diff --git a/cmd/agent/server/docker_image_test.go b/cmd/agent/server/docker_image_test.go -index cc77a2b..9987939 100644 ---- a/cmd/agent/server/docker_image_test.go -+++ b/cmd/agent/server/docker_image_test.go -@@ -52,24 +52,3 @@ func TestpullOSImage(t *testing.T) { - } - defer os.RemoveAll("/persist") - } -- --func TestrandStringBytesRmndr(t *testing.T) { -- type args struct { -- n int -- } -- tests := []struct { -- name string -- args args -- want string -- }{ -- {name: "normal", args: args{n: 6}, want: ""}, -- } -- for _, tt := range tests { -- t.Run(tt.name, func(t *testing.T) { -- if got := randStringBytesRmndr(tt.args.n); got == "" { -- t.Errorf("randStringBytesRmndr() not generatre random string") -- } -- -- }) -- } --} -diff --git a/cmd/proxy/controllers/os_controller.go b/cmd/proxy/controllers/os_controller.go -index 09e58f9..fdd31ea 100644 ---- a/cmd/proxy/controllers/os_controller.go -+++ b/cmd/proxy/controllers/os_controller.go -@@ -15,6 +15,7 @@ package controllers - - import ( - "context" -+ "fmt" - "os" - - corev1 "k8s.io/api/core/v1" -@@ -123,6 +124,8 @@ func (r *OSReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Re - if err := r.Connection.RollbackSpec(); err != nil { - return values.RequeueNow, err - } -+ default: -+ return values.RequeueNow, fmt.Errorf("operation %s cannot be recognized", opsType) - } - } - return values.Requeue, nil -diff --git a/scripts/bootloader.sh b/scripts/bootloader.sh -index 5760f3d..16c5713 100644 ---- a/scripts/bootloader.sh -+++ b/scripts/bootloader.sh -@@ -6,14 +6,6 @@ ARCH=`arch` - - function install_grub2_x86 () - { -- # make boot.img/core.img and setup, to support legacy boot mode -- GRUBNAME=$(which grub2-install) -- echo "Installing GRUB2..." -- GRUB_OPTS=${GRUB_OPTS:-"--force"} -- GRUB_OPTS="$GRUB_OPTS --target=i386-pc" -- -- $GRUBNAME --modules="biosdisk part_msdos" $GRUB_OPTS $DEVICE -- - # make efi file, and save in FAT16 partition, to support UEFI boot mode - cp -r /usr/lib/grub/x86_64-efi boot/efi/EFI/openEuler - eval "grub2-mkimage -d /usr/lib/grub/x86_64-efi -O x86_64-efi --output=/boot/efi/EFI/openEuler/grubx64.efi '--prefix=(,gpt1)/EFI/openEuler' fat part_gpt part_msdos linux" --- -2.37.1.windows.1 - diff --git a/0007-KubeOS-fix-usage-does-not-print-when-an-error-occurs.patch b/0007-KubeOS-fix-usage-does-not-print-when-an-error-occurs.patch deleted file mode 100644 index b17ed40f9d6736aea0e51dfed04aa6bdfd5b61a8..0000000000000000000000000000000000000000 --- a/0007-KubeOS-fix-usage-does-not-print-when-an-error-occurs.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 20f66b28ea95e262f54cad1a9b65d564f91b8d12 Mon Sep 17 00:00:00 2001 -From: liyuanr -Date: Thu, 8 Dec 2022 15:08:52 +0800 -Subject: [PATCH] KubeOS:fix usage does not print when an error occurs in the - upgrade image creation - -Fix the bug that the usage does not print -when the upgrade image has parameter errors - -Signed-off-by: liyuanr ---- - scripts/kbimg.sh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/scripts/kbimg.sh b/scripts/kbimg.sh -index a623e3d..a860c06 100644 ---- a/scripts/kbimg.sh -+++ b/scripts/kbimg.sh -@@ -125,6 +125,7 @@ function verify_upgrade_image_input() { - echo "$@" | grep -q "\-$i " - if [ "$?" -ne 0 ];then - log_error_print "option -$i is mandatory, please check input" -+ show_upgrade_image_usage - exit 3 - fi - done --- -2.33.0.windows.2 - diff --git a/KubeOS.spec b/KubeOS.spec index 3edcca5cea75f6d6b02e05ac342b1d939360d8ac..52453ab18eeefafb63b542e98f63fdd652cae327 100644 --- a/KubeOS.spec +++ b/KubeOS.spec @@ -1,18 +1,12 @@ # Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved. Name: KubeOS -Version: 1.0.2 -Release: 8 +Version: 1.0.4 +Release: 1 Summary: O&M platform used to update the whole OS as an entirety License: Mulan PSL v2 Source0: https://gitee.com/openeuler/KubeOS/repository/archive/v%{version}.tar.gz -Patch1: 0001-Write-a-tool-to-support-KubeOS-deployment-on-physica.patch -Patch2: 0002-KubeOS-fix-the-kbimg.sh-exception-and-pxe-installati.patch -Patch3: 0003-KubeOS-fixed-the-issue-of-VMs-images-and-add-check-o.patch -Patch4: 0004-KubeOS-add-the-clearing-of-space-before-the-upgrade-.patch -Patch5: 0005-KubeOS-add-the-configuration-of-etc-resolv.conf-and-.patch -Patch6: 0006-KubeOS-remove-grub2-legacy-install-add-error-handlin.patch -Patch7: 0007-KubeOS-fix-usage-does-not-print-when-an-error-occurs.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: make BuildRequires: golang >= 1.13 @@ -23,11 +17,15 @@ it should be running in kubernetes environment. %prep %autosetup -n %{name}-v%{version} -p1 -%package scripts -Summary: Scripts to build the os image and binaries of os-proxy and os-operator -Requires: qemu-img, parted, bc, tar, docker, dosfstools -%description scripts -The scripts package includes scripts which could build the os image and binaries of os-proxy and os-operator +%package agent +Summary: agent provides os-agent and related service files which are needed on nodes +%description agent +The agent package includes os-agent and service files + +%package admin-container +Summary: admin-container contains hostshell and set-ssh-pub-key script and service file +%description admin-container +The agent package includes hostshell and set-ssh-pub-key script and service file %define debug_package %{nil} %define __debug_install_post \ @@ -38,81 +36,64 @@ The scripts package includes scripts which could build the os image and binaries make %install -install -d %{buildroot}%{_bindir} -#install binary install -d -m 0740 %{buildroot}/opt/kubeOS/bin -install -p -m 0500 ./bin/os-agent %{buildroot}/opt/kubeOS/bin install -p -m 0500 ./bin/proxy %{buildroot}/opt/kubeOS/bin install -p -m 0500 ./bin/operator %{buildroot}/opt/kubeOS/bin -#install artifacts -install -d -m 0740 %{buildroot}/opt/kubeOS/scripts -install -p -m 0600 ./scripts/rpmlist %{buildroot}/opt/kubeOS/scripts -install -p -m 0500 ./scripts/kbimg.sh %{buildroot}/opt/kubeOS/scripts -install -p -m 0500 ./scripts/set_in_chroot.sh %{buildroot}/opt/kubeOS/scripts -install -p -m 0600 ./scripts/grub.cfg %{buildroot}/opt/kubeOS/scripts -install -p -m 0500 ./scripts/bootloader.sh %{buildroot}/opt/kubeOS/scripts -install -p -m 0500 ./scripts/Dockerfile %{buildroot}/opt/kubeOS/scripts - -install -d -m 0740 %{buildroot}/opt/kubeOS/scripts/common -install -p -m 0500 ./scripts/common/globalVariables.sh %{buildroot}/opt/kubeOS/scripts/common -install -p -m 0500 ./scripts/common/log.sh %{buildroot}/opt/kubeOS/scripts/common -install -p -m 0500 ./scripts/common/utils.sh %{buildroot}/opt/kubeOS/scripts/common - -install -d -m 0740 %{buildroot}/opt/kubeOS/scripts/create -install -p -m 0500 ./scripts/create/imageCreate.sh %{buildroot}/opt/kubeOS/scripts/create -install -p -m 0500 ./scripts/create/rootfsCreate.sh %{buildroot}/opt/kubeOS/scripts/create - -install -d -m 0740 %{buildroot}/opt/kubeOS/scripts/00bootup -install -p -m 0600 ./scripts/00bootup/Global.cfg %{buildroot}/opt/kubeOS/scripts/00bootup -install -p -m 0500 ./scripts/00bootup/module-setup.sh %{buildroot}/opt/kubeOS/scripts/00bootup -install -p -m 0500 ./scripts/00bootup/mount.sh %{buildroot}/opt/kubeOS/scripts/00bootup - -install -d -m 0740 %{buildroot}/opt/kubeOS/files -install -p -m 0600 ./files/boot-efi.mount %{buildroot}/opt/kubeOS/files -install -p -m 0600 ./files/etc.mount %{buildroot}/opt/kubeOS/files -install -p -m 0600 ./files/persist.mount %{buildroot}/opt/kubeOS/files -install -p -m 0600 ./files/var.mount %{buildroot}/opt/kubeOS/files -install -p -m 0600 ./files/os-agent.service %{buildroot}/opt/kubeOS/files -install -p -m 0600 ./files/os-release %{buildroot}/opt/kubeOS/files +#kubeos-agent +install -d %{buildroot}%{_bindir} +install -d %{buildroot}%{_prefix}/lib/systemd/system +install -p -m 0500 ./bin/os-agent %{buildroot}%{_bindir} +install -p -m 0600 ./files/boot-efi.mount %{buildroot}%{_prefix}/lib/systemd/system +install -p -m 0600 ./files/etc.mount %{buildroot}%{_prefix}/lib/systemd/system +install -p -m 0600 ./files/persist.mount %{buildroot}%{_prefix}/lib/systemd/system +install -p -m 0600 ./files/var.mount %{buildroot}%{_prefix}/lib/systemd/system +install -p -m 0600 ./files/os-agent.service %{buildroot}%{_prefix}/lib/systemd/system +install -p -m 0600 ./files/os-release %{buildroot}%{_prefix}/lib/ + +#kubeos-admin-container +install -p -m 0500 ./bin/hostshell %{buildroot}%{_bindir} +install -d %{buildroot}%{_prefix}/local/bin +install -p -m 0500 ./scripts/admin-container/set-ssh-pub-key.sh %{buildroot}%{_prefix}/local/bin +install -d %{buildroot}%{_prefix}/lib/sysmaster +install -p -m 0600 ./scripts/admin-container/set-ssh-pub-key.service %{buildroot}%{_prefix}/lib/sysmaster %files -%attr(0500,root,root) /opt/kubeOS/bin/os-agent -%defattr(-,root,root,0500) -%attr(0600,root,root) /opt/kubeOS/files/boot-efi.mount -%attr(0600,root,root) /opt/kubeOS/files/etc.mount -%attr(0600,root,root) /opt/kubeOS/files/persist.mount -%attr(0600,root,root) /opt/kubeOS/files/var.mount -%attr(0600,root,root) /opt/kubeOS/files/os-agent.service -%attr(0600,root,root) /opt/kubeOS/files/os-release - -%files scripts %attr(0500,root,root) /opt/kubeOS/bin/proxy %attr(0500,root,root) /opt/kubeOS/bin/operator -%defattr(-,root,root,0500) -%attr(0600,root,root) /opt/kubeOS/scripts/rpmlist -%attr(0500,root,root) /opt/kubeOS/scripts/kbimg.sh -%attr(0500,root,root) /opt/kubeOS/scripts/set_in_chroot.sh -%attr(0600,root,root) /opt/kubeOS/scripts/grub.cfg -%attr(0500,root,root) /opt/kubeOS/scripts/bootloader.sh -%attr(0500,root,root) /opt/kubeOS/scripts/Dockerfile - -%attr(0500,root,root) /opt/kubeOS/scripts/common/globalVariables.sh -%attr(0500,root,root) /opt/kubeOS/scripts/common/log.sh -%attr(0500,root,root) /opt/kubeOS/scripts/common/utils.sh - -%attr(0500,root,root) /opt/kubeOS/scripts/create/imageCreate.sh -%attr(0500,root,root) /opt/kubeOS/scripts/create/rootfsCreate.sh - -%attr(0600,root,root) /opt/kubeOS/scripts/00bootup/Global.cfg -%attr(0500,root,root) /opt/kubeOS/scripts/00bootup/module-setup.sh -%attr(0500,root,root) /opt/kubeOS/scripts/00bootup/mount.sh +%files agent +%attr(0500,root,root) %{_bindir}/os-agent +%defattr(-,root,root,0500) +%attr(0600,root,root) %{_prefix}/lib/systemd/system/boot-efi.mount +%attr(0600,root,root) %{_prefix}/lib/systemd/system/etc.mount +%attr(0600,root,root) %{_prefix}/lib/systemd/system/persist.mount +%attr(0600,root,root) %{_prefix}/lib/systemd/system/var.mount +%attr(0600,root,root) %{_prefix}/lib/systemd/system/os-agent.service +%attr(0600,root,root) %{_prefix}/lib/os-release + +%files admin-container +%attr(0500,root,root) %{_bindir}/hostshell +%defattr(-,root,root,0500) +%attr(0500,root,root) %{_prefix}/local/bin/set-ssh-pub-key.sh +%attr(0600,root,root) %{_prefix}/lib/sysmaster/set-ssh-pub-key.service %clean rm -rfv %{buildroot} %changelog +* Wed Aug 02 2023 liyuanrong - 1.0.4-1 +- Type:requirement +- CVE:NA +- SUG:restart +- DESC:update version to 1.0.4.1 + +* Thu Dec 08 2022 liyuanrong - 1.0.2-9 +- Type:requirement +- CVE:NA +- SUG:restart +- DESC:sync code from source, support containerd upgrade,settings and admin-container + * Thu Dec 08 2022 liyuanrong - 1.0.2-8 - Type:requirement - CVE:NA diff --git a/v1.0.2.tar.gz b/v1.0.4.tar.gz similarity index 40% rename from v1.0.2.tar.gz rename to v1.0.4.tar.gz index 941b5670b3d71931ec3b151323432bdefed68684..601b8bdd2a51b1a88a0ec93f83ff8a98513b2646 100644 Binary files a/v1.0.2.tar.gz and b/v1.0.4.tar.gz differ