mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 12:42:34 +02:00
remove old code
This commit is contained in:
parent
a41107d021
commit
5e8e4fa4a1
3 changed files with 2 additions and 111 deletions
|
@ -1,8 +1,6 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/yusing/go-proxy/agent/pkg/agent"
|
||||
"github.com/yusing/go-proxy/agent/pkg/env"
|
||||
"github.com/yusing/go-proxy/agent/pkg/server"
|
||||
|
@ -13,14 +11,6 @@ import (
|
|||
)
|
||||
|
||||
func main() {
|
||||
args := os.Args
|
||||
if len(args) > 1 && args[1] == "migrate" {
|
||||
if err := agent.MigrateFromOld(); err != nil {
|
||||
gperr.LogFatal("failed to migrate from old docker compose", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
_ = os.Chmod("/app/compose.yml", 0600)
|
||||
ca := &agent.PEMPair{}
|
||||
err := ca.Load(env.AgentCACert)
|
||||
if err != nil {
|
||||
|
|
|
@ -11,5 +11,4 @@ services:
|
|||
AGENT_SSL_CERT: "{{.SSLCert}}"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./compose.yml:/app/compose.yml
|
||||
- ./data:/app/data
|
||||
|
|
|
@ -2,38 +2,20 @@ package agent
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
"text/template"
|
||||
|
||||
_ "embed"
|
||||
|
||||
"github.com/yusing/go-proxy/internal/gperr"
|
||||
"github.com/yusing/go-proxy/internal/logging"
|
||||
"github.com/yusing/go-proxy/internal/utils"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
//go:embed agent.compose.yml
|
||||
var agentComposeYAML []byte
|
||||
var agentComposeYAMLTemplate = template.Must(template.New("agent.compose.yml").Parse(string(agentComposeYAML)))
|
||||
var agentComposeYAML string
|
||||
var agentComposeYAMLTemplate = template.Must(template.New("agent.compose.yml").Parse(agentComposeYAML))
|
||||
|
||||
const (
|
||||
DockerImageProduction = "ghcr.io/yusing/godoxy-agent:latest"
|
||||
DockerImageNightly = "ghcr.io/yusing/godoxy-agent:nightly"
|
||||
)
|
||||
|
||||
type (
|
||||
AgentComposeConfig struct {
|
||||
Image string
|
||||
Name string
|
||||
Port int
|
||||
CACert string
|
||||
SSLCert string
|
||||
}
|
||||
)
|
||||
|
||||
func (c *AgentComposeConfig) Generate() (string, error) {
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||
if err := agentComposeYAMLTemplate.Execute(buf, c); err != nil {
|
||||
|
@ -41,83 +23,3 @@ func (c *AgentComposeConfig) Generate() (string, error) {
|
|||
}
|
||||
return buf.String(), nil
|
||||
}
|
||||
|
||||
func pemPairFromFile(path string) (*PEMPair, error) {
|
||||
cert, err := os.ReadFile(path + ".crt")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
key, err := os.ReadFile(path + ".key")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &PEMPair{
|
||||
Cert: cert,
|
||||
Key: key,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func rmOldCerts(p string) error {
|
||||
files, err := utils.ListFiles(p, 0)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, file := range files {
|
||||
if err := os.Remove(path.Join(p, file)); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type dockerCompose struct {
|
||||
Services struct {
|
||||
GodoxyAgent struct {
|
||||
Environment struct {
|
||||
AGENT_NAME string `yaml:"GODOXY_AGENT_NAME"`
|
||||
AGENT_PORT string `yaml:"GODOXY_AGENT_PORT"`
|
||||
} `yaml:"environment"`
|
||||
} `yaml:"godoxy-agent"`
|
||||
} `yaml:"services"`
|
||||
}
|
||||
|
||||
// TODO: remove this
|
||||
func MigrateFromOld() error {
|
||||
oldCompose, err := os.ReadFile("/app/compose.yml")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var compose dockerCompose
|
||||
if err := yaml.Unmarshal(oldCompose, &compose); err != nil {
|
||||
return err
|
||||
}
|
||||
ca, err := pemPairFromFile("/app/certs/ca")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
agentCert, err := pemPairFromFile("/app/certs/agent")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var composeConfig AgentComposeConfig
|
||||
composeConfig.Image = DockerImageNightly
|
||||
composeConfig.Name = compose.Services.GodoxyAgent.Environment.AGENT_NAME
|
||||
composeConfig.Port, err = strconv.Atoi(compose.Services.GodoxyAgent.Environment.AGENT_PORT) // ignore error, empty is fine
|
||||
if composeConfig.Port == 0 {
|
||||
composeConfig.Port = 8890
|
||||
}
|
||||
composeConfig.CACert = ca.String()
|
||||
composeConfig.SSLCert = agentCert.String()
|
||||
composeTemplate, err := composeConfig.Generate()
|
||||
if err != nil {
|
||||
return gperr.Wrap(err, "failed to generate new docker compose")
|
||||
}
|
||||
|
||||
if err := os.WriteFile("/app/compose.yml", []byte(composeTemplate), 0600); err != nil {
|
||||
return gperr.Wrap(err, "failed to write new docker compose")
|
||||
}
|
||||
|
||||
logging.Info().Msg("Migrated from old docker compose:")
|
||||
logging.Info().Msg(composeTemplate)
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue