#!/bin/bash set -e echo "🚀 开始离线安装 Pulp Operator..." # 安装 nerdctl(如存在) if [ -f nerdctl.tar.gz ]; then echo "📦 解压 nerdctl..." tar xzvf nerdctl.tar.gz -C /usr/local/bin/ fi # 导入镜像 echo "🚀 导入 pulp-operator 镜像..." IMAGES=( "images/pulp-operator.tar" "images/kube-rbac-proxy.tar" ) if command -v docker &>/dev/null && docker info &>/dev/null; then for img in "${IMAGES[@]}"; do docker load -i "$img" done elif [ -S /run/k3s/containerd/containerd.sock ]; then export CONTAINERD_ADDRESS=/run/k3s/containerd/containerd.sock for img in "${IMAGES[@]}"; do nerdctl --namespace k8s.io load -i "$img" done elif [ -S /run/containerd/containerd.sock ]; then export CONTAINERD_ADDRESS=/run/containerd/containerd.sock for img in "${IMAGES[@]}"; do nerdctl --namespace k8s.io load -i "$img" done else echo "❌ 没有可用的容器运行时" exit 1 fi # 创建命名空间 kubectl create namespace pulp || true # 安装 chart echo "📦 安装本地 Helm Chart..." helm upgrade --install pulp-operator ./charts/pulp-operator/ -n pulp # 等待 CRD 注册 sleep 10 # 生成默认 CR yaml(可改为 values 覆盖渲染) echo "📝 生成 CR manifests/pulp-cr.yaml..." mkdir -p manifests cat > manifests/pulp-cr.yaml <