62 lines
2.1 KiB
Go
62 lines
2.1 KiB
Go
package maker
|
|
|
|
import (
|
|
"context"
|
|
"path/filepath"
|
|
|
|
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
|
"yizhisec.com/hsv2/forge/pkg/archiver"
|
|
"yizhisec.com/hsv2/forge/pkg/model"
|
|
)
|
|
|
|
func (m *maker) K0s(ctx context.Context) error {
|
|
var (
|
|
tarURL = "https://artifactory.yizhisec.com:443/artifactory/filestore/hsv3/k8s-bin.tar"
|
|
location = filepath.Join(m.workdir, "dependency", "k0s")
|
|
)
|
|
|
|
logger.Info("☑️ 开始准备 k0s...")
|
|
logger.Debug("下载地址: %s", tarURL)
|
|
logger.Debug("目标目录: %s", location)
|
|
|
|
if err := archiver.DownloadAndExtract(
|
|
ctx,
|
|
tarURL,
|
|
location,
|
|
archiver.WithInsecureSkipVerify(),
|
|
archiver.WithGzipCompression(true),
|
|
); err != nil {
|
|
logger.Info("❌ 下载并解压二进制文件失败")
|
|
return err
|
|
}
|
|
|
|
logger.Debug("☑️ maker.K0s: 开始准备相关镜像...")
|
|
var images = []*model.Image{
|
|
{Name: "quay.io/k0sproject/apiserver-network-proxy-agent:v0.32.0", Fallback: "hub.yizhisec.com/external/apiserver-network-proxy-agent:v0.32.0", Save: "k0s.apiserver-network-proxy-agent.tar"},
|
|
{Name: "quay.io/k0sproject/cni-node:1.7.1-k0s.0", Fallback: "", Save: "k0s.cni-node.tar"},
|
|
{Name: "quay.io/k0sproject/coredns:1.12.2", Fallback: "", Save: "k0s.coredns.tar"},
|
|
{Name: "quay.io/k0sproject/kube-proxy:v1.33.4", Fallback: "", Save: "k0s.kube-proxy.tar"},
|
|
{Name: "quay.io/k0sproject/kube-router:v2.5.0-iptables1.8.11-0", Fallback: "", Save: "k0s.kube-router.tar"},
|
|
{Name: "quay.io/k0sproject/metrics-server:v0.7.2-0", Fallback: "", Save: "k0s.metrics-server.tar"},
|
|
{Name: "quay.io/k0sproject/pause:3.10.1", Fallback: "", Save: "k0s.pause.tar"},
|
|
}
|
|
for _, image := range images {
|
|
opts := []ImageOpt{
|
|
WithImageFallback(image.Fallback),
|
|
WithImageSave(filepath.Join(location, image.Save)),
|
|
WithImageForcePull(image.Force),
|
|
}
|
|
|
|
if err := m.Image(ctx, image.Name, opts...); err != nil {
|
|
logger.Error("❌ maker.K0s: 获取镜像失败: %s, 可以手动获取后重试", image.Name)
|
|
logger.Debug("❌ maker.K0s: 获取镜像失败: %s, %v", image.Name, err)
|
|
return err
|
|
}
|
|
}
|
|
logger.Debug("✅ maker.K0s: 准备相关镜像成功!!!")
|
|
|
|
logger.Info("✅ 准备 k0s 成功!!!")
|
|
|
|
return nil
|
|
}
|