refactor: 整理结构和 maker 构建方式
This commit is contained in:
@@ -35,7 +35,7 @@ func makeCmd() *cobra.Command {
|
||||
return nil
|
||||
}
|
||||
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
if err = mk.DependencyCheck(cmd.Context()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
1
internal/cmd/make.longhorn.go
Normal file
1
internal/cmd/make.longhorn.go
Normal file
@@ -0,0 +1 @@
|
||||
package cmd
|
||||
1
internal/cmd/make.mysql.go
Normal file
1
internal/cmd/make.mysql.go
Normal file
@@ -0,0 +1 @@
|
||||
package cmd
|
||||
1
internal/cmd/make.redis.go
Normal file
1
internal/cmd/make.redis.go
Normal file
@@ -0,0 +1 @@
|
||||
package cmd
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func App() *cobra.Command {
|
||||
@@ -32,7 +33,7 @@ func appUser() *cobra.Command {
|
||||
Use: "user",
|
||||
Short: "Make User App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppUser(cmd.Context(), replica)
|
||||
},
|
||||
}
|
||||
@@ -51,7 +52,7 @@ func appClient() *cobra.Command {
|
||||
Use: "client",
|
||||
Short: "Make Client App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppClient(cmd.Context(), replica)
|
||||
},
|
||||
}
|
||||
@@ -70,7 +71,7 @@ func appGateway() *cobra.Command {
|
||||
Use: "gateway",
|
||||
Short: "Make Gateway App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppGateway(cmd.Context(), replica)
|
||||
},
|
||||
}
|
||||
@@ -89,7 +90,7 @@ func appMie() *cobra.Command {
|
||||
Use: "mie",
|
||||
Short: "Make Mie App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppMie(cmd.Context(), replica)
|
||||
},
|
||||
}
|
||||
@@ -109,7 +110,7 @@ func appOEM() *cobra.Command {
|
||||
Use: "oem",
|
||||
Short: "Make OEM App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppOEM(cmd.Context(), replica, vendor)
|
||||
},
|
||||
}
|
||||
@@ -136,7 +137,7 @@ func appNginx() *cobra.Command {
|
||||
if disableSeafile {
|
||||
opts = append(opts, maker.WithoutNginxSeafile())
|
||||
}
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppNginx(cmd.Context(), opts...)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Binaries() *cobra.Command {
|
||||
@@ -12,7 +13,7 @@ func Binaries() *cobra.Command {
|
||||
Short: "Build binary files",
|
||||
Long: `Build all required binary files for the project.`,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Binary(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func ConfigMap() *cobra.Command {
|
||||
@@ -11,7 +12,7 @@ func ConfigMap() *cobra.Command {
|
||||
Aliases: []string{"cm"},
|
||||
Short: "构建 ConfigMap",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.ConfigMap(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func EMQX() *cobra.Command {
|
||||
@@ -10,7 +11,7 @@ func EMQX() *cobra.Command {
|
||||
Use: "emqx",
|
||||
Short: "Make EMQX",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.EMQX(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func ES() *cobra.Command {
|
||||
@@ -18,7 +19,7 @@ func ES() *cobra.Command {
|
||||
Use: "es",
|
||||
Aliases: []string{"elastic", "elasticsearch"},
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Elastic(
|
||||
cmd.Context(),
|
||||
maker.WithElasticMakeHelper(makeHelper),
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Flannel() *cobra.Command {
|
||||
@@ -15,7 +16,7 @@ func Flannel() *cobra.Command {
|
||||
Short: "Build Flannel resources",
|
||||
Long: `Build and prepare Flannel network resources.`,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Flannel(cmd.Context(), _mode)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func HSNet() *cobra.Command {
|
||||
@@ -11,7 +12,7 @@ func HSNet() *cobra.Command {
|
||||
Short: "Build hs-net",
|
||||
Long: `Build hs-net`,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.HSNet(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ func Images() *cobra.Command {
|
||||
return err
|
||||
}
|
||||
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
|
||||
return mk.Images(cmd.Context())
|
||||
},
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func LessDNS() *cobra.Command {
|
||||
@@ -11,7 +12,7 @@ func LessDNS() *cobra.Command {
|
||||
Short: "Build lessdns",
|
||||
Long: `Build lessdns`,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.LessDNS(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Longhorn() *cobra.Command {
|
||||
@@ -15,7 +16,7 @@ func Longhorn() *cobra.Command {
|
||||
Short: "Build Longhorn resources",
|
||||
Long: `Build and prepare Longhorn storage resources.`,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Longhorn(cmd.Context(), replicaCount)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Mysql() *cobra.Command {
|
||||
@@ -23,7 +24,7 @@ func Mysql() *cobra.Command {
|
||||
maker.WithMySQLStorage(fmt.Sprintf("%dGi", storage)),
|
||||
}
|
||||
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.MySQL(cmd.Context(), opts...)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Proxy() *cobra.Command {
|
||||
@@ -10,7 +11,7 @@ func Proxy() *cobra.Command {
|
||||
Use: "proxy",
|
||||
Short: "Make Proxy(by caddy)",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Proxy(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Redis() *cobra.Command {
|
||||
@@ -17,7 +18,7 @@ func Redis() *cobra.Command {
|
||||
Short: "Build Redis resources",
|
||||
Long: `Build and prepare Redis cache resources.`,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Redis(
|
||||
cmd.Context(),
|
||||
maker.WithRedisReplicaCount(replicas),
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Seafile() *cobra.Command {
|
||||
@@ -15,7 +16,7 @@ func Seafile() *cobra.Command {
|
||||
Use: "seafile",
|
||||
Short: "make seafile dependency",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Seafile(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package makecmd
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func Yosguard() *cobra.Command {
|
||||
@@ -11,7 +12,7 @@ func Yosguard() *cobra.Command {
|
||||
Aliases: []string{"YOS"},
|
||||
Short: "Make Yosguard",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker()
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Yosguard(cmd.Context())
|
||||
},
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ import (
|
||||
)
|
||||
|
||||
type installer struct {
|
||||
target string
|
||||
workdir string
|
||||
target string
|
||||
}
|
||||
|
||||
func (i *installer) targetOK(ctx context.Context) error {
|
||||
@@ -34,6 +35,6 @@ func (i *installer) targetOK(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewInstaller(target string) *installer {
|
||||
return &installer{target: target}
|
||||
func NewInstaller(workdir, target string) *installer {
|
||||
return &installer{workdir: workdir, target: target}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
@@ -204,7 +203,7 @@ kubectl rollout restart deployment client-deployment -n hsv2`
|
||||
)
|
||||
var (
|
||||
err error
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "client")
|
||||
workdir = filepath.Join(m.workdir, "app", "client")
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.AppClient: 开始构建 client 应用..., dir = %s", workdir)
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
@@ -57,7 +56,7 @@ kubectl rollout restart deployment gateway-deployment -n hsv2`
|
||||
)
|
||||
var (
|
||||
err error
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "gateway")
|
||||
workdir = filepath.Join(m.workdir, "app", "gateway")
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.AppGateway: 开始构建 gateway 应用..., dir = %s", workdir)
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
@@ -134,7 +133,7 @@ kubectl rollout restart deployment api-deployment -n hsv2`
|
||||
)
|
||||
var (
|
||||
err error
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "mie")
|
||||
workdir = filepath.Join(m.workdir, "app", "mie")
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.AppMie: 开始构建 mie ... workdir = %s", workdir)
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"github.com/samber/lo"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
@@ -65,7 +64,7 @@ kubectl rollout restart deployment nginx-deployment -n hsv2`
|
||||
)
|
||||
var (
|
||||
err error
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "nginx")
|
||||
workdir = filepath.Join(m.workdir, "app", "nginx")
|
||||
o = nginxOpt{
|
||||
WithoutSeafile: false,
|
||||
Replica: 2,
|
||||
|
||||
@@ -9,7 +9,6 @@ import (
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"github.com/samber/lo"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/archiver"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
@@ -69,7 +68,7 @@ CMD ["nginx", "-g", "daemon off;"]`
|
||||
err error
|
||||
_vendor *Vendor
|
||||
ok bool
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "oem")
|
||||
workdir = filepath.Join(m.workdir, "app", "oem")
|
||||
output []byte
|
||||
)
|
||||
|
||||
@@ -142,7 +141,19 @@ CMD ["nginx", "-g", "daemon off;"]`
|
||||
}
|
||||
logger.Debug("✅ maker.AppOEM: docker image 构建成功, image = %s", imageName)
|
||||
|
||||
// 6. render oem.yaml
|
||||
// 6. save docker image to image dir
|
||||
logger.Debug("☑️ maker.AppOEM: 开始保存 docker image = %s 到 %s", imageName, filepath.Join(m.workdir, "image", imageName))
|
||||
if err = os.MkdirAll(filepath.Join(m.workdir, "dependency", "image"), 0o755); err != nil {
|
||||
logger.Debug("❌ maker.AppOEM: image 目录创建失败, err = %v", err)
|
||||
return err
|
||||
}
|
||||
if err = exec.CommandContext(ctx, "docker", "save", "-o", filepath.Join(m.workdir, "dependency", "image", "app.oem.tar"), imageName).Run(); err != nil {
|
||||
logger.Debug("❌ maker.AppOEM: docker image 保存失败, err = %v", err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("✅ maker.AppOEM: docker image 保存成功, image = %s", imageName)
|
||||
|
||||
// 7. render oem.yaml
|
||||
logger.Debug("☑️ maker.AppOEM: 开始渲染 deployment.yaml")
|
||||
oemYAML := fmt.Sprintf(resource.YAMLAppOEM, replica, imageName)
|
||||
if err = os.WriteFile(
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
@@ -85,7 +84,7 @@ kubectl rollout restart deployment user-deployment -n hsv2`
|
||||
)
|
||||
var (
|
||||
err error
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "user")
|
||||
workdir = filepath.Join(m.workdir, "app", "user")
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.AppUser: 开始构建 user 应用..., dir = %s", workdir)
|
||||
|
||||
@@ -5,14 +5,13 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/archiver"
|
||||
)
|
||||
|
||||
func (m *maker) Binary(ctx context.Context) error {
|
||||
var (
|
||||
tarURL = "https://artifactory.yizhisec.com:443/artifactory/filestore/hsv3/k8s-bin.tar"
|
||||
binDir = filepath.Join(opt.Cfg.Make.Dir, "dependency")
|
||||
binDir = filepath.Join(m.workdir, "dependency")
|
||||
)
|
||||
|
||||
logger.Info("☑️ 开始准备 k8s 二进制文件...")
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
package maker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"github.com/samber/lo"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/downloader"
|
||||
"yizhisec.com/hsv2/forge/pkg/extractor"
|
||||
"yizhisec.com/hsv2/forge/pkg/tool/random"
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"github.com/samber/lo"
|
||||
"yizhisec.com/hsv2/forge/pkg/downloader"
|
||||
"yizhisec.com/hsv2/forge/pkg/extractor"
|
||||
"yizhisec.com/hsv2/forge/pkg/tool/random"
|
||||
)
|
||||
|
||||
type ConfigMapOpt func(*configMapOpt)
|
||||
@@ -101,7 +100,7 @@ kubectl create configmap ssl-web-crt --namespace hsv2 --from-file=web.server.crt
|
||||
|
||||
var (
|
||||
err error
|
||||
dir = filepath.Join(opt.Cfg.Make.Dir, "configmap")
|
||||
dir = filepath.Join(m.workdir, "configmap")
|
||||
vendorUrlMap = map[string]string{
|
||||
"standard": "https://artifactory.yizhisec.com/artifactory/yizhisec-release/oem/release/2.1.0-std/oem.tar.gz",
|
||||
"elink": "https://artifactory.yizhisec.com/artifactory/yizhisec-release/oem/release/2.1.0-std/oem_csgElink.tar.gz",
|
||||
|
||||
@@ -65,8 +65,8 @@ RUN chmod +x /data/create_index.sh
|
||||
var (
|
||||
err error
|
||||
output []byte
|
||||
location = filepath.Join(opt.Cfg.Make.Dir, "dependency", "elastic")
|
||||
helperTarLocation = filepath.Join(opt.Cfg.Make.Dir, "dependency", "image", "es-init-helper.alpine-3.22.2.tar")
|
||||
location = filepath.Join(m.workdir, "dependency", "elastic")
|
||||
helperTarLocation = filepath.Join(m.workdir, "dependency", "image", "es-init-helper.alpine-3.22.2.tar")
|
||||
)
|
||||
|
||||
opt := &elasticOpt{
|
||||
|
||||
@@ -6,14 +6,13 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
func (m *maker) EMQX(ctx context.Context) error {
|
||||
var (
|
||||
err error
|
||||
location = filepath.Join(opt.Cfg.Make.Dir, "emqx")
|
||||
location = filepath.Join(m.workdir, "emqx")
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.EMQX: 开始构建 emqx(mqtt) 依赖...")
|
||||
|
||||
@@ -7,14 +7,13 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
func (m *maker) Flannel(ctx context.Context, mode string) error {
|
||||
var (
|
||||
err error
|
||||
location = filepath.Join(opt.Cfg.Make.Dir, "dependency", "flannel")
|
||||
location = filepath.Join(m.workdir, "dependency", "flannel")
|
||||
)
|
||||
|
||||
logger.Info("☑️ 开始构建 flannel 资源...")
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
)
|
||||
|
||||
func (m *maker) HSNet(ctx context.Context) error {
|
||||
@@ -67,7 +66,7 @@ WantedBy=multi-user.target`
|
||||
)
|
||||
var (
|
||||
err error
|
||||
location = filepath.Join(opt.Cfg.Make.Dir, "dependency", "hs-net")
|
||||
location = filepath.Join(m.workdir, "dependency", "hs-net")
|
||||
)
|
||||
|
||||
if err = os.MkdirAll(location, 0755); err != nil {
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"github.com/samber/lo"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/model"
|
||||
)
|
||||
|
||||
@@ -160,7 +159,7 @@ func (m *maker) Images(ctx context.Context) error {
|
||||
}
|
||||
|
||||
for _, image := range images {
|
||||
image.Save = filepath.Join(opt.Cfg.Make.Dir, "dependency", "image", image.Save)
|
||||
image.Save = filepath.Join(m.workdir, "dependency", "image", image.Save)
|
||||
}
|
||||
|
||||
logger.Info("☑️ 开始获取镜像(s)...")
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
|
||||
func TestImage(t *testing.T) {
|
||||
logger.SetLogLevel(logger.LogLevelDebug)
|
||||
m := NewMaker()
|
||||
m := NewMaker("./x-data")
|
||||
m.Image(t.Context(), "docker.io/nginx:1.29.3-alpine3.22",
|
||||
WithImageFallback("swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.29.3-alpine3.22"),
|
||||
WithImageSave("/root/nginx.tar"),
|
||||
|
||||
@@ -6,14 +6,13 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
func (m *maker) LessDNS(ctx context.Context) error {
|
||||
var (
|
||||
err error
|
||||
location = filepath.Join(opt.Cfg.Make.Dir, "dependency", "less-dns")
|
||||
location = filepath.Join(m.workdir, "dependency", "less-dns")
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.LessDNS: 开始构建 less-dns...")
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/downloader"
|
||||
)
|
||||
|
||||
@@ -26,7 +25,7 @@ persistence:
|
||||
var (
|
||||
err error
|
||||
chartURL = "https://artifactory.yizhisec.com:443/artifactory/filestore/hsv3/charts/longhorn-1.10.0.tgz"
|
||||
longhornDir = filepath.Join(opt.Cfg.Make.Dir, "dependency", "longhorn")
|
||||
longhornDir = filepath.Join(m.workdir, "dependency", "longhorn")
|
||||
chartFile = filepath.Join(longhornDir, "longhorn-1.10.0.tgz")
|
||||
valuesFile = filepath.Join(longhornDir, "values.yaml")
|
||||
)
|
||||
@@ -35,7 +34,7 @@ persistence:
|
||||
logger.Debug("下载地址: %s", chartURL)
|
||||
logger.Debug("目标目录: %s", longhornDir)
|
||||
|
||||
if err = os.MkdirAll(filepath.Join(opt.Cfg.Make.Dir, "dependency", "longhorn"), 0755); err != nil {
|
||||
if err = os.MkdirAll(filepath.Join(m.workdir, "dependency", "longhorn"), 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package maker
|
||||
|
||||
type maker struct{}
|
||||
|
||||
func NewMaker() *maker {
|
||||
return &maker{}
|
||||
type maker struct {
|
||||
workdir string
|
||||
}
|
||||
|
||||
func NewMaker(workdir string) *maker {
|
||||
return &maker{workdir: workdir}
|
||||
}
|
||||
|
||||
@@ -73,14 +73,14 @@ spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: %s
|
||||
podSpec:
|
||||
resources:
|
||||
requests:
|
||||
cpu: "250m"
|
||||
memory: "250Mi"
|
||||
limits:
|
||||
cpu: "2"
|
||||
memory: "4Gi"
|
||||
podSpec:
|
||||
resources:
|
||||
requests:
|
||||
cpu: "250m"
|
||||
memory: "250Mi"
|
||||
limits:
|
||||
cpu: "2"
|
||||
memory: "4Gi"
|
||||
# affinity:
|
||||
# podAntiAffinity:
|
||||
# requiredDuringSchedulingIgnoredDuringExecution: # 强制规则
|
||||
@@ -94,7 +94,6 @@ spec:
|
||||
# values: ["mysql-cluster"]
|
||||
# topologyKey: "kubernetes.io/hostname" # 确保不同节点
|
||||
---
|
||||
|
||||
apiVersion: mysql.presslabs.org/v1alpha1
|
||||
kind: MysqlDatabase
|
||||
metadata:
|
||||
@@ -117,7 +116,7 @@ spec:
|
||||
|
||||
err error
|
||||
chartURL = "https://artifactory.yizhisec.com:443/artifactory/filestore/hsv3/charts/mysql-operator-0.6.3.tgz"
|
||||
mysqlDir = filepath.Join(opt.Cfg.Make.Dir, "dependency", "mysql")
|
||||
mysqlDir = filepath.Join(m.workdir, "dependency", "mysql")
|
||||
chartFile = filepath.Join(mysqlDir, "mysql-operator-0.6.3.tgz")
|
||||
clusterFile = filepath.Join(mysqlDir, "cluster.yaml")
|
||||
)
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/downloader"
|
||||
)
|
||||
|
||||
@@ -46,7 +45,7 @@ RestartSec=5
|
||||
WantedBy=multi-user.target`
|
||||
)
|
||||
|
||||
location := filepath.Join(opt.Cfg.Make.Dir, "dependency", "proxy")
|
||||
location := filepath.Join(m.workdir, "dependency", "proxy")
|
||||
|
||||
logger.Info("☑️ maker.Proxy: 开始构建 caddy 反向代理...")
|
||||
logger.Debug("☑️ maker.Proxy: 创建目录 %s", location)
|
||||
|
||||
@@ -90,7 +90,7 @@ metrics:
|
||||
fn(o)
|
||||
}
|
||||
|
||||
redisDir := filepath.Join(opt.Cfg.Make.Dir, "dependency", "redis")
|
||||
redisDir := filepath.Join(m.workdir, "dependency", "redis")
|
||||
chartFile := filepath.Join(redisDir, chartFilename)
|
||||
valuesFile := filepath.Join(redisDir, "values.yaml")
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ kubectl rollout restart deployment backup-seafile-deployment -n seafile`
|
||||
ServerHostname: "cloud.hybridscope.com",
|
||||
Storage: "50Gi",
|
||||
}
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "dependency", "seafile")
|
||||
workdir = filepath.Join(m.workdir, "dependency", "seafile")
|
||||
)
|
||||
|
||||
for _, fn := range opts {
|
||||
@@ -187,7 +187,7 @@ kubectl rollout restart deployment backup-seafile-deployment -n seafile`
|
||||
|
||||
// 7. prepare images
|
||||
logger.Debug("☑️ make.Seafile: 准备 images")
|
||||
imgDir := filepath.Join(opt.Cfg.Make.Dir, "dependency", "image")
|
||||
imgDir := filepath.Join(m.workdir, "dependency", "image")
|
||||
if err = os.MkdirAll(imgDir, 0755); err != nil {
|
||||
logger.Error("❌ make.Seafile: 准备 images 目录: %s 失败, err = %v", imgDir, err)
|
||||
return err
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/downloader"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
@@ -64,7 +63,7 @@ WantedBy=multi-user.target`
|
||||
binURL = "https://artifactory.yizhisec.com:443/artifactory/filestore/hsv2/bin/yosguard"
|
||||
)
|
||||
|
||||
location := filepath.Join(opt.Cfg.Make.Dir, "dependency", "yosguard")
|
||||
location := filepath.Join(m.workdir, "dependency", "yosguard")
|
||||
|
||||
logger.Info("☑️ maker.Yosguard: 开始构建 yosguard...")
|
||||
logger.Debug("☑️ maker.Yosguard: 创建目录 %s", location)
|
||||
|
||||
Reference in New Issue
Block a user