Kubernetes/File/Shell/helm-install.sh
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00

78 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
#############################################################################################
# 用途: 部署 Helm 工具脚本
# 作者: 丁辉
# 更新时间: 2024-03-26
#############################################################################################
function Init_env() {
# 定义颜色
RED='\033[0;31m'
NC='\033[0m'
GREEN='\033[32m'
YELLOW='\033[33m'
# 定义时间格式
TIME="+%Y-%m-%d %H:%M:%S"
# 定义函数 send_info
function SEND_INFO() {
info=$1
echo -e "${GREEN}$(date "$TIME") INFO: $info${NC}"
}
# 定义函数 send_warn
function SEND_WARN() {
warn=$1
echo -e "${YELLOW}$(date "$TIME") WARN: $warn${NC}"
}
# 定义函数 send_error
function SEND_ERROR() {
error=$1
echo -e "${RED}$(date "$TIME") ERROR: $error${NC}"
}
if [ $(arch) = "x86_64" ] || [ $(arch) = "amd64" ]; then
ARCH_TYPE=amd64
elif [ $(arch) = "aarch64" ] || [ $(arch) = "arm64" ]; then
ARCH_TYPE=arm64
elif [ $(arch) = "i386" ]; then
ARCH_TYPE=amd64
fi
}
function Install_helm() {
SEND_INFO "正在检查环境"
if ! which helm > /dev/null 2>&1; then
SEND_INFO "Helm 开始安装"
# 获取版本
HELM_VERSION=`(curl https://mirrors.huaweicloud.com/helm/ | awk -F '"' '{print $2}' | grep -E '[0-9]+' | sort -rV | awk 'NR==1 {print}' | awk -F '/' '{print $1}')`
HELM_PACKAGE_VERSION=`(curl https://mirrors.huaweicloud.com/helm/$HELM_VERSION/ | awk -F '"' '{print $2}' | grep -E '[0-9]+' | grep $ARCH_TYPE | grep linux | awk 'NR==1 {print}')`
# 下载 Helm 安装包
curl -O https://mirrors.huaweicloud.com/helm/$HELM_VERSION/$HELM_PACKAGE_VERSION
# 开始安装
tar -zxvf helm-$HELM_VERSION-linux-$ARCH_TYPE.tar.gz > /dev/null 2>&1
install -o root -g root -m 0755 linux-$ARCH_TYPE/helm /usr/local/bin/
# 清理安装包
rm -rf helm-$HELM_VERSION-linux-$ARCH_TYPE.tar.gz linux-$ARCH_TYPE
if ! which helm > /dev/null 2>&1; then
SEND_ERROR "Helm 安装失败"
exit 1
else
VERSION=$(helm version | awk -F '"' '{print $2}')
SEND_INFO "Helm 安装成功, 版本: $VERSION"
fi
else
VERSION=$(helm version | awk -F '"' '{print $2}')
SEND_INFO "Helm 已存在, 版本: $VERSION"
fi
}
function All() {
Init_env
Install_helm
}
All