100 lines
2.9 KiB
Go
100 lines
2.9 KiB
Go
package maker
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
|
"yizhisec.com/hsv2/forge/internal/opt"
|
|
"yizhisec.com/hsv2/forge/pkg/resource"
|
|
)
|
|
|
|
func (m *maker) AppGateway(ctx context.Context, replica int) error {
|
|
const (
|
|
_config = `Version: "3"
|
|
Database:
|
|
Elastic:
|
|
Address: http://es-service.db-es:9200
|
|
Mysql:
|
|
Address: mysql.db-mysql:3306
|
|
DBName: mie
|
|
Password: L0hMysql.
|
|
UserName: root
|
|
Redis:
|
|
Address: redis-master.db-redis:6379
|
|
Password: HybridScope0xRed1s.
|
|
Gateway:
|
|
Cert:
|
|
ClientCrt: /yizhisec/ssl/client.crt
|
|
ClientKey: /yizhisec/ssl/client.key
|
|
TokenFilePath: /etc/yizhisec/token
|
|
Key:
|
|
Token: TtKVnSzEHO3jRv/GWg3f5k3H1OVfMnPZ1Ke9E6MSCXk=
|
|
Log:
|
|
Dir: ./log
|
|
Level: 1
|
|
Name: gateway_controller
|
|
Sentry:
|
|
TracesSampleRate: 1
|
|
UserManagement:
|
|
Host: user-service
|
|
Port: 9013
|
|
Web:
|
|
Host: 0.0.0.0
|
|
Mode: release
|
|
Port: 9012
|
|
WorkDir: /yizhisec/gateway_controller/workspace
|
|
YosGuard:
|
|
Host: 172.17.0.1
|
|
Port: 7788`
|
|
_upsert = `#!/bin/bash
|
|
|
|
kubectl create configmap config-gateway --namespace hsv2 --from-file=config.yml=./config.yml --dry-run=client -o yaml | kubectl apply -f -
|
|
kubectl apply -f deployment.yaml
|
|
kubectl rollout restart deployment gateway-deployment -n hsv2`
|
|
)
|
|
var (
|
|
err error
|
|
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "gateway")
|
|
)
|
|
|
|
logger.Info("☑️ maker.AppGateway: 开始构建 gateway 应用..., dir = %s", workdir)
|
|
logger.Debug("☑️ maker.AppGateway: 开始创建工作目录 = %s", workdir)
|
|
if err = os.MkdirAll(workdir, 0755); err != nil {
|
|
logger.Debug("❌ maker.AppGateway: 创建目录失败: %v", err)
|
|
return err
|
|
}
|
|
logger.Debug("✅ maker.AppGateway: 创建工作目录成功 = %s", workdir)
|
|
|
|
if replica < 1 {
|
|
replica = 1
|
|
}
|
|
|
|
logger.Debug("☑️ maker.AppGateway: 开始构建 yaml 资源文件")
|
|
content := []byte(fmt.Sprintf(resource.YAMLAppGateway, replica))
|
|
if err = os.WriteFile(filepath.Join(workdir, "deployment.yaml"), content, 0644); err != nil {
|
|
logger.Debug("❌ maker.AppGateway: 写入 deployment.yaml 失败: %v", err)
|
|
return err
|
|
}
|
|
logger.Debug("✅ maker.AppGateway: 开始 yaml 资源文件成功")
|
|
|
|
logger.Debug("☑️ maker.AppGateway: 开始构建 config 文件")
|
|
if err = os.WriteFile(filepath.Join(workdir, "config.yml"), []byte(_config), 0644); err != nil {
|
|
logger.Debug("❌ maker.AppGateway: 写入 config.yml 失败: %v", err)
|
|
return err
|
|
}
|
|
logger.Debug("✅ maker.AppGateway: 构建 config 文件成功")
|
|
|
|
logger.Debug("☑️ maker.AppGateway: 开始构建 upsert.sh 脚本")
|
|
if err = os.WriteFile(filepath.Join(workdir, "upsert.sh"), []byte(_upsert), 0755); err != nil {
|
|
logger.Debug("❌ maker.AppGateway: 写入 upsert.sh 失败: %v", err)
|
|
return err
|
|
}
|
|
logger.Debug("✅ maker.AppGateway: 构建 upsert.sh 脚本成功")
|
|
|
|
logger.Info("✅ maker.AppGateway: 构建 gateway 应用成功!!!")
|
|
return nil
|
|
}
|