feat: 🏡 make apps
This commit is contained in:
@@ -2,8 +2,128 @@ 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) AppUser(ctx context.Context, replica int) error {
|
||||
const (
|
||||
_config = `Version: "3"
|
||||
Database:
|
||||
Elastic:
|
||||
Address: http://es-service.db-es:9200
|
||||
IPDB:
|
||||
Path: /etc/hs_user_management/ipdb/ip.ipdb
|
||||
Mysql:
|
||||
Address: mysql.db-mysql:3306
|
||||
DBName: mie
|
||||
Password: L0hMysql.
|
||||
UserName: root
|
||||
Redis:
|
||||
Address: redis-master.db-redis:6379
|
||||
Password: HybridScope0xRed1s.
|
||||
DisabledFeatureFilePath: /etc/yizhisec/disabled_features
|
||||
EnableTenant: false
|
||||
Key:
|
||||
Token: TtKVnSzEHO3jRv/GWg3f5k3H1OVfMnPZ1Ke9E6MSCXk=
|
||||
LicensePubKey: /etc/yizhisec/license/pub_key
|
||||
Log:
|
||||
Dir: ./log
|
||||
Level: 1
|
||||
Name: hs_user_management
|
||||
Sentry:
|
||||
TracesSampleRate: 1
|
||||
Sso:
|
||||
DingTalk:
|
||||
ApiHost: oapi.dingtalk.com
|
||||
LoginUrl: https://oapi.dingtalk.com/connect/qrconnect
|
||||
Feishu:
|
||||
ApiHost: open.feishu.cn
|
||||
LoginUrl: https://open.feishu.cn/open-apis/authen/v1/index
|
||||
Proxy:
|
||||
CallbackHost: hssso.yizhisec.com:33443
|
||||
Cert:
|
||||
ClientCrt: /etc/hs_user_management/proxy/certs/client.crt
|
||||
ClientKey: /etc/hs_user_management/proxy/certs/client.key
|
||||
ServiceHost: hssso.yizhisec.com:33444
|
||||
RedirectPath:
|
||||
BoundFailed: /#/accountSettings/thirdAccount
|
||||
BoundSuccess: /#/accountSettings/thirdAccount
|
||||
LoginFailed: /#/thirdError
|
||||
LoginNeedBoundUser: /#/bind
|
||||
LoginSuccess: /#/
|
||||
WorkWeiXin:
|
||||
ApiHost: qyapi.weixin.qq.com
|
||||
LoginUrl: https://login.work.weixin.qq.com/wwlogin/sso/login
|
||||
Storage:
|
||||
Avatar:
|
||||
ADSyncDir: ad
|
||||
Base: /data/storage/avatar
|
||||
LDAPSyncDir: ldap
|
||||
LocalDir: local
|
||||
SyncDir: sync
|
||||
TranslationPath: translation.csv
|
||||
Web:
|
||||
Host: 0.0.0.0
|
||||
Mode: release
|
||||
Port: 9013
|
||||
WorkDir: /yizhisec/hs_user_management/workspace
|
||||
YosGuard:
|
||||
Host: 172.17.0.1
|
||||
Port: 7788
|
||||
ElinkLogin: false`
|
||||
_upsert = `#!/bin/bash
|
||||
|
||||
kubectl create configmap config-user --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 user-deployment -n hsv2`
|
||||
)
|
||||
var (
|
||||
err error
|
||||
workdir = filepath.Join(opt.Cfg.Make.Dir, "app", "user")
|
||||
)
|
||||
|
||||
logger.Info("☑️ maker.AppUser: 开始构建 user 应用..., dir = %s", workdir)
|
||||
|
||||
logger.Debug("☑️ maker.AppUser: 开始创建工作目录 = %s", workdir)
|
||||
if err = os.MkdirAll(workdir, 0755); err != nil {
|
||||
logger.Debug("❌ maker.AppUser: 创建目录失败: %v", err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("✅ maker.AppUser: 创建工作目录成功 = %s", workdir)
|
||||
|
||||
if replica < 1 {
|
||||
replica = 1
|
||||
}
|
||||
|
||||
logger.Debug("☑️ maker.AppUser: 开始构建 yaml 资源文件")
|
||||
content := []byte(fmt.Sprintf(resource.YAMLAppUser, replica))
|
||||
if err = os.WriteFile(filepath.Join(workdir, "deployment.yaml"), []byte(content), 0644); err != nil {
|
||||
logger.Debug("❌ maker.AppUser: 写入 deployment.yaml 失败: %v", err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("✅ maker.AppUser: 开始 yaml 资源文件成功")
|
||||
|
||||
// 写入 config.yml
|
||||
logger.Debug("☑️ maker.AppUser: 开始构建 config 文件")
|
||||
if err = os.WriteFile(filepath.Join(workdir, "config.yml"), []byte(_config), 0644); err != nil {
|
||||
logger.Debug("❌ maker.AppUser: 写入 config.yml 失败: %v", err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("✅ maker.AppUser: 构建 config 文件成功")
|
||||
|
||||
logger.Debug("☑️ maker.AppUser: 开始构建 upsert.sh 脚本")
|
||||
if err = os.WriteFile(filepath.Join(workdir, "upsert.sh"), []byte(_upsert), 0755); err != nil {
|
||||
logger.Debug("❌ maker.AppUser: 写入 upsert.sh 失败: %v", err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("✅ maker.AppUser: 构建 upsert.sh 脚本成功")
|
||||
|
||||
logger.Info("✅ maker.AppUser: 构建 user 应用成功!!!")
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user