2022-01-06 23:34:37 +08:00
|
|
|
package deploy
|
|
|
|
|
|
|
|
import (
|
|
|
|
"embed"
|
|
|
|
_ "embed"
|
|
|
|
"os"
|
|
|
|
|
2022-01-10 20:26:14 +08:00
|
|
|
"git.icechen.cn/pkg/wujian_develop_tool/config"
|
|
|
|
|
2022-01-06 23:34:37 +08:00
|
|
|
"github.com/fatih/color"
|
|
|
|
|
|
|
|
"git.icechen.cn/pkg/wujian_develop_tool/util"
|
|
|
|
)
|
|
|
|
|
|
|
|
//go:embed "*"
|
|
|
|
var deployDir embed.FS
|
|
|
|
|
2022-01-10 20:26:14 +08:00
|
|
|
func GenDeploy(service config.Service) error {
|
2022-01-06 23:34:37 +08:00
|
|
|
color.Green("正在生成deploy...")
|
|
|
|
|
|
|
|
// deploy 文件夹
|
|
|
|
deployDirPath := service.Root + "/deploy"
|
|
|
|
err := os.MkdirAll(deployDirPath, os.ModePerm)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
data := map[string]string{
|
2022-01-11 00:03:14 +08:00
|
|
|
"NameSpace": service.Namespace,
|
2022-01-06 23:34:37 +08:00
|
|
|
"AppName": service.Name,
|
|
|
|
"AliasName": service.AliasName,
|
2022-01-10 20:26:14 +08:00
|
|
|
"Port": service.Port,
|
|
|
|
}
|
2022-01-06 23:34:37 +08:00
|
|
|
|
|
|
|
// value.yaml
|
|
|
|
valuesTemplate, err := deployDir.ReadFile("values.tpl")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = util.TemplateToFile(deployDirPath+"/values.yaml", string(valuesTemplate), data)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// Chart.yaml
|
|
|
|
chartTemplate, err := deployDir.ReadFile("Chart.tpl")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
err = util.TemplateToFile(deployDirPath+"/Chart.yaml", string(chartTemplate), data)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// templates 文件夹
|
|
|
|
templatesDirPath := service.Root + "/deploy/templates"
|
|
|
|
err = os.MkdirAll(templatesDirPath, os.ModePerm)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// .helmignore 文件
|
|
|
|
err = copyTo(".helmignore", deployDirPath+"/.helmignore")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// _helpers.tpl 文件
|
|
|
|
err = copyTo("templates/helpers.tpl", templatesDirPath+"/_helpers.tpl")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2022-01-09 22:23:28 +08:00
|
|
|
// application.yaml 文件
|
|
|
|
err = copyTo("templates/application.yaml", templatesDirPath+"/application.yaml")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2022-01-06 23:34:37 +08:00
|
|
|
// deployment.yaml 文件
|
|
|
|
err = copyTo("templates/deployment.yaml", templatesDirPath+"/deployment.yaml")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// NOTES.txt 文件
|
|
|
|
err = copyTo("templates/NOTES.txt", templatesDirPath+"/NOTES.txt")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
// service.yaml 文件
|
|
|
|
err = copyTo("templates/service.yaml", templatesDirPath+"/service.yaml")
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func copyTo(fileName string, toPath string) error {
|
|
|
|
fileContent, err := deployDir.ReadFile(fileName)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2022-01-10 20:26:14 +08:00
|
|
|
return util.WriteFile(toPath, fileContent)
|
2022-01-06 23:34:37 +08:00
|
|
|
}
|