63 lines
2.5 KiB
Markdown
63 lines
2.5 KiB
Markdown
# 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` 快速跳过依赖检查。
|