# hsv2/forge 一个用于构建与安装 HybridScope v2 相关依赖与资源的命令行工具。基于 Go 与 Cobra 构建,提供统一的 `make` 流程与简单的 `install` 占位命令。 ## 环境要求 - Go `1.25.2` - Linux 环境,能够访问外部下载源(如 `artifactory.yizhisec.com`、`docker.io` 等) ## 快速开始 ```bash # 构建 go build ./... # 查看帮助 ./forge --help # 进入 make 子命令的帮助 ./forge make --help # 示例:准备 Redis 资源 ./forge make redis --replica-count 2 --password ****** ``` 默认构建目录为 `/root/hsv2-installation`,可通过 `--dir` 修改。 ## 常用命令 - `forge`:根命令,支持全局调试开关 `--debug`(参考 `internal/cmd/root.go:12`)。 - `forge make`:构建依赖与资源(参考 `internal/cmd/make.go:13`)。 - 全局选项: - `--dir`:输出基础目录(默认 `/root/hsv2-installation`,参考 `internal/cmd/make.go:40`) - `--disable-dependency-check`:禁用依赖检查(参考 `internal/cmd/make.go:38`) - 子命令(节选): - `images`:准备镜像相关资源 - `binaries`:下载并解压 K8s 相关二进制 - `debs`:下载并解压 Debian 包(Docker) - `flannel`:生成 Flannel YAML(参考 `internal/cmd/make.flannel.go`) - `longhorn`:下载 Longhorn chart 并生成 `values.yaml` - `mysql`:下载 MySQL operator 并生成 `cluster.yaml`,支持 `--replica-count` 与 `--storage-size` - `redis`:下载 Redis chart 并生成 `values.yaml`,支持 `--replica-count` 与 `--password` - `emqx`:生成 EMQX 配置 - `es`:准备 Elasticsearch/Kibana 相关资源 - `yosguard`:生成 YOSGuard 配置与服务文件 - `less-dns`:生成 DNS 相关资源 - `hs-net`:占位命令,当前仅创建目录(参考 `internal/cmd/make.hsnet.go:23`) - `forge install`:安装占位命令(参考 `internal/cmd/install.go`)。 ## 目录结构(简要) - `internal/cmd`:命令行入口与各 `make` 子命令实现 - `internal/controller/maker`:构建流程控制 - `pkg/resource`:内置 YAML/SQL/bash 等资源模板 - `pkg/downloader`、`pkg/archiver`:下载与解压工具 ## 开发与维护 - 构建:`go build ./...` - 测试:`go test ./...` - 代码检查:`go vet ./...` - 格式化:`go fmt ./...` - 依赖清理:`go mod tidy` ## 注意事项 - 部分子命令会从公司内网仓库下载资源,请确保网络可达。 - 如果仅试运行流程,可使用 `--disable-dependency-check` 快速跳过依赖检查。