超大量更新

This commit is contained in:
zeaslity
2026-04-29 09:46:36 +08:00
parent ed945abdf1
commit e7c301023c
349 changed files with 83923 additions and 560 deletions

View File

@@ -0,0 +1,85 @@
#!/bin/bash
# ============================================================
# 脚本功能:收集指定命名空间下副本数 > 1 的 Deployment 信息
# 包含Deployment 名称、镜像名称、GIT 相关环境变量
# ============================================================
set -euo pipefail
# ── 配置区 ──────────────────────────────────────────────────
NAMESPACE="sd-wf-ga-fly-260327"
OUTPUT_FILE="deployment_info_$(date +%Y%m%d_%H%M%S).txt"
# ────────────────────────────────────────────────────────────
echo "=========================================="
echo " 命名空间 : $NAMESPACE"
echo " 输出文件 : $OUTPUT_FILE"
echo "=========================================="
# 创建(清空)输出文件
> "$OUTPUT_FILE"
# 获取所有 Deployment 名称(换行分隔)
DEPLOYMENTS=$(kubectl get deployments -n "$NAMESPACE" \
-o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' 2>/dev/null)
if [[ -z "$DEPLOYMENTS" ]]; then
echo "[ERROR] 命名空间 '$NAMESPACE' 下未发现任何 Deployment请检查命名空间是否正确。"
exit 1
fi
PROCESSED=0
SKIPPED=0
while IFS= read -r DEPLOY; do
[[ -z "$DEPLOY" ]] && continue
# ── 1. 获取期望副本数 ──────────────────────────────────────
REPLICAS=$(kubectl get deployment "$DEPLOY" -n "$NAMESPACE" \
-o jsonpath='{.spec.replicas}' 2>/dev/null)
REPLICAS="${REPLICAS:-0}"
if [[ "$REPLICAS" == 0 ]]; then
echo "[SKIP] $DEPLOY (副本数=${REPLICAS},≤ 1跳过)"
(( SKIPPED++ )) || true
continue
fi
echo "[INFO] 处理 Deployment: $DEPLOY (副本数=${REPLICAS})"
# ── 2. 获取第一个容器的镜像名称 ───────────────────────────
IMAGE=$(kubectl get deployment "$DEPLOY" -n "$NAMESPACE" \
-o jsonpath='{.spec.template.spec.containers[0].image}' 2>/dev/null)
IMAGE="${IMAGE:-<未获取到镜像>}"
# ── 3. 在第一个副本 Pod 中执行 env | grep GIT ─────────────
GIT_ENV=$(kubectl exec -n "$NAMESPACE" "deploy/$DEPLOY" \
-- sh -c "env | grep GIT" 2>/dev/null || echo "")
# ── 4. 写入输出文件 ───────────────────────────────────────
{
echo "deployment名称${DEPLOY}"
echo "镜像名称:${IMAGE}"
echo "环境变量:"
if [[ -n "$GIT_ENV" ]]; then
while IFS= read -r env_line; do
echo " ${env_line}"
done <<< "$GIT_ENV"
else
echo " (未发现 GIT 相关环境变量)"
fi
echo ""
echo "------------------------------------------"
echo ""
} >> "$OUTPUT_FILE"
(( PROCESSED++ )) || true
done <<< "$DEPLOYMENTS"
# ── 汇总输出 ──────────────────────────────────────────────
echo ""
echo "=========================================="
echo " 完成!已处理: ${PROCESSED} 个,已跳过: ${SKIPPED} 个"
echo " 结果文件: $OUTPUT_FILE"
echo "=========================================="

View File

@@ -0,0 +1,13 @@
你是一名精通k8s开发的超级专家非常善于撰写k8s相关的脚本请你根据下面的要求撰写一个k8s相关的脚本
1. 需要获取命令空间 sd-wf-ga-fly-260327 之下所有的deployment名称
2. 如果deployment有多余1个的副本
1. 那么需要在第一个副本的Pod中 执行命令 kubectl exec -n uavcloud-demofk deploy/cmii-uav-platform-lite -- sh -c "env | grep GIT"
2. 需要获取deployment的镜像名称deployment默认只有一个container所以直接获取即可
3. 将所有的结果输出到文件,文件格式如下:
deployment名称cmii-uav-platform-lite
镜像名称cmii-uav-platform-lite
环境变量:
GIT_COMMIT=cmii-uav-platform-lite
GIT_BRANCH=cmii-uav-platform-lite
GIT_TAG=cmii-uav-platform-lite