feat(front): add front app build command and minio support
- Add new command "front" with flags for replica count and vendor - Implement front app build logic in maker.AppFront method - Add minio to make command list - Add minio and minio-init images to image list - Change EMQX dependency path to "dependency/emqx" - Update app OEM logic to use model.GetVendor for vendor info - Fix app OEM download and rename logic with updated vendor fields - Modify nginx deployment manifest to allow configurable replicas - Update user app mysql address to mysql-cluster-mysql-master.db-mysql:3306 - Add server_license_init.conf generation script for configmap upsert - Clean and reformat imports across several files - Remove unused package files for make.mysql.go, make.redis.go, make.longhorn.go
This commit is contained in:
73
internal/controller/maker/app.front.go
Normal file
73
internal/controller/maker/app.front.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package maker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"yizhisec.com/hsv2/forge/pkg/model"
|
||||
"yizhisec.com/hsv2/forge/pkg/resource"
|
||||
)
|
||||
|
||||
func (m *maker) AppFront(ctx context.Context, vendor string, replica int) error {
|
||||
var (
|
||||
err error
|
||||
location = filepath.Join(m.workdir, "app", "front")
|
||||
bs []byte
|
||||
_vendor = model.GetVendor(vendor)
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.Front: 开始构建 front app..., workdir = %s", location)
|
||||
|
||||
if _vendor == nil {
|
||||
logger.Debug("❌ maker.Front: vendor not supported, vendor = %s", vendor)
|
||||
return fmt.Errorf("vendor not supported: %s", vendor)
|
||||
}
|
||||
|
||||
if err = os.MkdirAll(location, 0755); err != nil {
|
||||
logger.Debug("❌ maker.Front: 创建目录失败: path = %s, err = %v", location, err)
|
||||
return err
|
||||
}
|
||||
|
||||
path := filepath.Join(location, "front.user.yaml")
|
||||
logger.Debug("☑️ maker.Front: writing front.user.yaml, path = %s", path)
|
||||
bs = []byte(fmt.Sprintf(resource.YAMLAppFrontUser, replica))
|
||||
if err = os.WriteFile(path, bs, 0644); err != nil {
|
||||
logger.Debug("❌ maker.Front: 写入 front.user.yaml 失败: path = %s, err = %v", path, err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("✅ maker.Front: write front.user.yaml success, path = %s", path)
|
||||
|
||||
path = filepath.Join(location, "front.admin.yaml")
|
||||
logger.Debug("☑️ maker.Front: writing front.admin.yaml, path = %s", path)
|
||||
bs = []byte(fmt.Sprintf(resource.YAMLAppFrontAdmin, replica))
|
||||
if err = os.WriteFile(path, bs, 0644); err != nil {
|
||||
logger.Debug("❌ maker.Front: 写入 front.admin.yaml 失败: path = %s, err = %v", path, err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("✅ maker.Front: write front.admin.yaml success, path = %s", path)
|
||||
|
||||
// todo, pull front images
|
||||
// 1. make image dir
|
||||
imgDir := filepath.Join(m.workdir, "dependency", "image")
|
||||
if err = os.MkdirAll(imgDir, 0755); err != nil {
|
||||
logger.Debug("❌ maker.Front: 创建目录失败: path = %s, err = %v", imgDir, err)
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Debug("☑️ maker.Front: pulling front images, vendor = %s", vendor)
|
||||
if err = m.Image(ctx, _vendor.AppFrontUserImageName, WithImageSave(filepath.Join(imgDir, "app.front.user.tar")), WithImageForcePull(true)); err != nil {
|
||||
logger.Debug("❌ maker.Front: 拉取 front 用户镜像失败: %s, err = %v", _vendor.AppFrontUserImageName, err)
|
||||
return err
|
||||
}
|
||||
if err = m.Image(ctx, _vendor.AppFrontAdminImageName, WithImageSave(filepath.Join(imgDir, "app.front.admin.tar")), WithImageForcePull(true)); err != nil {
|
||||
logger.Debug("❌ maker.Front: 拉取 front 管理镜像失败: %s, err = %v", _vendor.AppFrontAdminImageName, err)
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Info("✅ maker.Front: 构建 front app 完成")
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user