From d482ecde9b1d48b6d7575112414a945c2a887b03 Mon Sep 17 00:00:00 2001 From: fumingwei Date: Thu, 24 Oct 2024 14:54:09 +0800 Subject: [PATCH] feature: add tsg-os target to archive tsg-os images. --- .../{traffic-engine => tsg-os}/build.mk | 6 ++- helmcharts/tsg-os/build.mk | 4 ++ installer/app_bundle_install.sh | 50 ++++++++++--------- installer/install.sh | 1 + make/Makefile.x86_64_COTS_APP_BUNDLE | 24 +++++---- 5 files changed, 51 insertions(+), 34 deletions(-) rename containers/{traffic-engine => tsg-os}/build.mk (71%) create mode 100644 helmcharts/tsg-os/build.mk diff --git a/containers/traffic-engine/build.mk b/containers/tsg-os/build.mk similarity index 71% rename from containers/traffic-engine/build.mk rename to containers/tsg-os/build.mk index 4caa49d6..9006935c 100644 --- a/containers/traffic-engine/build.mk +++ b/containers/tsg-os/build.mk @@ -1,5 +1,7 @@ -requisites_images_name := firewall proxy proxy-certstore sce sce-bfdd shaping -rule_target := traffic-engine +requisites_images_name := firewall proxy proxy-certstore sce sce-bfdd shaping \ + packet-io-engine inject-adapter trex nic-uio-binder \ + log-collector dp-trace-telemetry +rule_target := tsg-os rule_prerequisites := $(foreach name,$(requisites_images_name),$(BUILD_DIR)/$(name)/$(BUILD_DONE_FILE)) rule_recipes := rm -rf $(IMAGE_TAR_DIR)/$(rule_target)-$(IMAGE_TAG)-$(IMAGE_ARCH)-docker.tar;\ podman save \ diff --git a/helmcharts/tsg-os/build.mk b/helmcharts/tsg-os/build.mk new file mode 100644 index 00000000..0146f5e7 --- /dev/null +++ b/helmcharts/tsg-os/build.mk @@ -0,0 +1,4 @@ +rule_target := tsg-os +rule_prerequisites := traffic-engine packet-io-engine inject-adapter trex \ + nic-uio-binder log-collector dp-trace-telemetry +rule_recipes := \ No newline at end of file diff --git a/installer/app_bundle_install.sh b/installer/app_bundle_install.sh index de56f5f7..8210c904 100644 --- a/installer/app_bundle_install.sh +++ b/installer/app_bundle_install.sh @@ -1,16 +1,15 @@ #!/bin/sh -CONTAINER_IMAGES_TAR="%%CONTAINER_IMAGES_TAR%%" TRAFFIC_ENGINE_HELM_CHART_TAR="%%TRAFFIC_ENGINE_HELM_CHART_TAR%%" INJECT_HELM_CHART_TAR="%%INJECT_HELM_CHART_TAR%%" MRZCPD_HELM_CHART_TAR="%%MRZCPD_HELM_CHART_TAR%%" TREX_HELM_CHART_TAR="%%TREX_HELM_CHART_TAR%%" DP_TRACE_HELM_CHART_TAR="%%DP_TRACE_HELM_CHART_TAR%%" TSG_CM_HELM_CHART_TAR="%%TSG_CM_HELM_CHART_TAR%%" -TSG_CM_CONTAINER_IMAGE_TAR="%%TSG_CM_CONTAINER_IMAGE_TAR%%" charts_dest_dir="/var/lib/rancher/k3s/server/static/charts" images_dest_dir="/var/lib/rancher/k3s/agent/images" +manifests_dest_dir="/var/lib/rancher/k3s/server/manifests" clixon_conf_path="/opt/tsg/clixon/etc/mgnt-srv.conf" load_images_switch="on" @@ -31,6 +30,13 @@ function read_images_dest_dir_from_env() fi } +function read_manifests_dest_dir_from_env() +{ + if [ ! -z "${APP_BUNDLE_MANIFESTS_DEST_DIR}" ]; then + manifests_dest_dir="${APP_BUNDLE_MANIFESTS_DEST_DIR}" + fi +} + function read_clixon_conf_path_from_env() { if [ ! -z "${APP_BUNDLE_CLIXON_CONF_PATH}" ]; then @@ -45,29 +51,31 @@ function read_load_images_switch_from_env() fi } -function copy_charts_to_dest() +function install_helmcharts() { if [ -d "${charts_dest_dir}" ]; then mkdir -p "${charts_dest_dir}" fi - cp -r ${src_dir}/${TRAFFIC_ENGINE_HELM_CHART_TAR} ${charts_dest_dir} - cp -r ${src_dir}/${INJECT_HELM_CHART_TAR} ${charts_dest_dir} - cp -r ${src_dir}/${MRZCPD_HELM_CHART_TAR} ${charts_dest_dir} - cp -r ${src_dir}/${TREX_HELM_CHART_TAR} ${charts_dest_dir} - cp -r ${src_dir}/${DP_TRACE_HELM_CHART_TAR} ${charts_dest_dir} - + cp -r ${src_dir}/helmcharts/* ${charts_dest_dir} } -function copy_images_to_dest() +function install_images() { if [ -d "${images_dest_dir}" ]; then mkdir -p "${images_dest_dir}" fi - cp -r ${src_dir}/${CONTAINER_IMAGES_TAR} ${images_dest_dir} + cp -r ${src_dir}/images/* ${images_dest_dir} } +function install_mainfests() +{ + if [ -d "${manifests_dest_dir}" ]; then + mkdir -p "${manifests_dest_dir}" + fi + cp -arf ${src_dir}/manifests/* ${manifests_dest_dir} +} function replace_clixon_chart_name() { @@ -81,32 +89,28 @@ function replace_clixon_chart_name() sed -ie "s/^mrzcpd_chart_name=.*/mrzcpd_chart_name=${MRZCPD_HELM_CHART_TAR}/g" ${clixon_conf_path} sed -ie "s/^trex_chart_name=.*/trex_chart_name=${TREX_HELM_CHART_TAR}/g" ${clixon_conf_path} sed -ie "s/^datapath_trace_chart_name=.*/datapath_trace_chart_name=${DP_TRACE_HELM_CHART_TAR}/g" ${clixon_conf_path} + sed -ie "s/^tsg_cm_chart_name=.*/tsg_cm_chart_name=${TSG_CM_HELM_CHART_TAR}/g" ${clixon_conf_path} } function load_images() { if [ "${load_images_switch}" = "on" ]; then - /usr/bin/k3s ctr image import ${images_dest_dir}/${CONTAINER_IMAGES_TAR} + for image_tar_name in $(ls ${src_dir}/images/*.tar 2>/dev/null | sed 's#.*/##'); do + /usr/bin/k3s ctr image import ${images_dest_dir}/${image_tar_name} + done fi } -#function define end - -function install_tsg_cm() -{ - sed -ie "s/^tsg_cm_chart_name=.*/tsg_cm_chart_name=${TSG_CM_HELM_CHART_TAR}/g" ${clixon_conf_path} - cp -r ${src_dir}/${TSG_CM_HELM_CHART_TAR} ${charts_dest_dir} - cp -r ${src_dir}/${TSG_CM_CONTAINER_IMAGE_TAR} ${images_dest_dir} -} #function exec start read_charts_dest_dir_from_env read_images_dest_dir_from_env +read_manifests_dest_dir_from_env read_clixon_conf_path_from_env read_load_images_switch_from_env -copy_charts_to_dest -copy_images_to_dest replace_clixon_chart_name -install_tsg_cm +install_helmcharts +install_images +install_mainfests load_images #function exec end diff --git a/installer/install.sh b/installer/install.sh index ff51ab93..02c0e5c4 100755 --- a/installer/install.sh +++ b/installer/install.sh @@ -368,6 +368,7 @@ if [ -f ${APP_BUNDLE_BIN} ]; then chmod 0755 ${APP_BUNDLE_BIN} export APP_BUNDLE_CHARTS_DEST_DIR="${distro_mnt}/data/var/lib/rancher/k3s/server/static/charts" export APP_BUNDLE_IMAGES_DEST_DIR="${distro_mnt}/data/var/lib/rancher/k3s/agent/images" + export APP_BUNDLE_MANIFESTS_DEST_DIR="${distro_mnt}/data/var/lib/rancher/k3s/server/manifests" export APP_BUNDLE_CLIXON_CONF_PATH="${distro_mnt}/opt/tsg/clixon/etc/mgnt-srv.conf" export APP_BUNDLE_LOAD_IMAGES_SWITCH="off" ./${APP_BUNDLE_BIN} diff --git a/make/Makefile.x86_64_COTS_APP_BUNDLE b/make/Makefile.x86_64_COTS_APP_BUNDLE index cae51086..db56e622 100644 --- a/make/Makefile.x86_64_COTS_APP_BUNDLE +++ b/make/Makefile.x86_64_COTS_APP_BUNDLE @@ -6,15 +6,19 @@ # app bin dir #./installer # install.sh -# helmcharts.tgz -# images.tar -# mainfest.yaml +# /helmcharts/*.tgz +# /images/*.tar +# /manifests/*.yaml PROFILE_ID := x86_64_COTS PROFILE_ID_IN_SHORT := $(subst -,$e,$(PROFILE_ID)) TARGET_BUILD_DIR := $(BUILDDIR_BASE)/$(PROFILE_ID)/app-bundle TARGET_INSTALLER_DIR := $(TARGET_BUILD_DIR)/installer +TARGET_MANIFESTS_DIR := $(TARGET_INSTALLER_DIR)/manifests +TARGET_HELMCHARTS_DIR := $(TARGET_INSTALLER_DIR)/helmcharts +TARGET_IMAGES_DIR := $(TARGET_INSTALLER_DIR)/images + COOK_BITS_DIR := $(TARGET_BUILD_DIR)/cook-bits APP_BUNDLE_BIN := tsg-os-$(OS_RELEASE_VER)-$(PROFILE_ID_IN_SHORT)-APP-BUNDLE.bin @@ -39,28 +43,30 @@ install-scripts: cp $(INSTALLERDIR)/app_bundle_install.sh $(TARGET_INSTALLER_DIR)/install.sh chmod +x $(TARGET_INSTALLER_DIR)/install.sh - sed -i -e "s/%%CONTAINER_IMAGES_TAR%%/traffic-engine-${OS_RELEASE_VER}-docker.tar/" $(TARGET_INSTALLER_DIR)/install.sh sed -i -e "s/%%TRAFFIC_ENGINE_HELM_CHART_TAR%%/traffic-engine-$(HELM_CHART_VER).tgz/" $(TARGET_INSTALLER_DIR)/install.sh sed -i -e "s/%%INJECT_HELM_CHART_TAR%%/inject-adapter-$(HELM_CHART_VER).tgz/" $(TARGET_INSTALLER_DIR)/install.sh sed -i -e "s/%%MRZCPD_HELM_CHART_TAR%%/mrzcpd-$(HELM_CHART_VER).tgz/" $(TARGET_INSTALLER_DIR)/install.sh sed -i -e "s/%%TREX_HELM_CHART_TAR%%/trex-$(HELM_CHART_VER).tgz/" $(TARGET_INSTALLER_DIR)/install.sh sed -i -e "s/%%DP_TRACE_HELM_CHART_TAR%%/datapath-trace-$(HELM_CHART_VER).tgz/" $(TARGET_INSTALLER_DIR)/install.sh sed -i -e "s/%%TSG_CM_HELM_CHART_TAR%%/tsg-cm-chart-0.1.0.tgz/" $(TARGET_INSTALLER_DIR)/install.sh - sed -i -e "s/%%TSG_CM_CONTAINER_IMAGE_TAR%%/tsg-cm-docker.tar/" $(TARGET_INSTALLER_DIR)/install.sh build-container-images: + mkdir -p $(TARGET_IMAGES_DIR) $(MAKE) -j -C $(PROJECTDIR)/containers \ IMAGE_TAG=$(OS_RELEASE_VER) \ YUM_REPO_FILE=$(CONFDIR)/yum-RockyLinux-8.conf \ - traffic-engine tsg-cm - cp -af $(PROJECTDIR)/containers/build/images/*.tar $(TARGET_INSTALLER_DIR) + tsg-os tsg-cm + cp -af $(PROJECTDIR)/containers/build/images/*.tar $(TARGET_IMAGES_DIR) build-helmcharts: + mkdir -p $(TARGET_HELMCHARTS_DIR) + mkdir -p $(TARGET_MANIFESTS_DIR) $(MAKE) -j -C $(PROJECTDIR)/helmcharts \ VERSION=$(HELM_CHART_VER) \ APP_VERSION=$(OS_RELEASE_VER) \ - traffic-engine tsg-cm - cp -af $(PROJECTDIR)/helmcharts/build/helmcharts/*.tgz $(TARGET_INSTALLER_DIR) + tsg-os tsg-cm + cp -af $(PROJECTDIR)/helmcharts/build/helmcharts/*.tgz $(TARGET_HELMCHARTS_DIR) + cp -af $(PROJECTDIR)/helmcharts/build/manifests/*.yaml $(TARGET_MANIFESTS_DIR) clean: rm -rf $(TARGET_BUILD_DIR)