k8s导出所有helm

目标:导出所有helm values.yaml,chart信息,namespace,输入大restore.sh脚本当中,然后执行restore.sh脚本,部署到另外一个k8s,实现快速灾难恢复

#!/bin/bash
# 导出指定关键字的 helm release 配置
NAMESPACE_LIST=$(helm ls -A | egrep "java|golang|web" | awk '{print $2":"$1":"$9}')  # namespace:release

OUTPUT_DIR="./helm_export"
mkdir -p $OUTPUT_DIR

for ns_release in $NAMESPACE_LIST; do
  NAMESPACE=$(echo $ns_release | cut -d: -f1)
  RELEASE=$(echo $ns_release | cut -d: -f2)
  CHART=$(echo $ns_release | cut -d: -f3)
  CHART=${CHART%-*}

  echo "导出 release: $RELEASE (namespace: $NAMESPACE)"

  # 导出 values
  mkdir -pv $OUTPUT_DIR/$NAMESPACE
  helm -n $NAMESPACE get values $RELEASE -o yaml > $OUTPUT_DIR/$NAMESPACE/${RELEASE}-values.yaml
  sed -i 's/xxxx.xxx.xxx/xxx.xx.xxx/g' $OUTPUT_DIR/$NAMESPACE/${RELEASE}-values.yaml
  sed -i 's/master-.*/latest/g' $OUTPUT_DIR/$NAMESPACE/${RELEASE}-values.yaml
  echo "helm -n $NAMESPACE install $RELEASE bhpc/$CHART -f $OUTPUT_DIR/$NAMESPACE/${RELEASE}-values.yaml" >> restore.shdone

echo "导出完成"

 

posted @ 2025-10-14 16:20  力王7314  阅读(1)  评论(0)    收藏  举报