mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 20:52:33 +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
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/yusing/go-proxy/agent/pkg/agent"
|
"github.com/yusing/go-proxy/agent/pkg/agent"
|
||||||
"github.com/yusing/go-proxy/agent/pkg/env"
|
"github.com/yusing/go-proxy/agent/pkg/env"
|
||||||
"github.com/yusing/go-proxy/agent/pkg/server"
|
"github.com/yusing/go-proxy/agent/pkg/server"
|
||||||
|
@ -13,14 +11,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
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{}
|
ca := &agent.PEMPair{}
|
||||||
err := ca.Load(env.AgentCACert)
|
err := ca.Load(env.AgentCACert)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -11,5 +11,4 @@ services:
|
||||||
AGENT_SSL_CERT: "{{.SSLCert}}"
|
AGENT_SSL_CERT: "{{.SSLCert}}"
|
||||||
volumes:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- ./compose.yml:/app/compose.yml
|
|
||||||
- ./data:/app/data
|
- ./data:/app/data
|
||||||
|
|
|
@ -2,38 +2,20 @@ package agent
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"os"
|
|
||||||
"path"
|
|
||||||
"strconv"
|
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
_ "embed"
|
_ "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
|
//go:embed agent.compose.yml
|
||||||
var agentComposeYAML []byte
|
var agentComposeYAML string
|
||||||
var agentComposeYAMLTemplate = template.Must(template.New("agent.compose.yml").Parse(string(agentComposeYAML)))
|
var agentComposeYAMLTemplate = template.Must(template.New("agent.compose.yml").Parse(agentComposeYAML))
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DockerImageProduction = "ghcr.io/yusing/godoxy-agent:latest"
|
DockerImageProduction = "ghcr.io/yusing/godoxy-agent:latest"
|
||||||
DockerImageNightly = "ghcr.io/yusing/godoxy-agent:nightly"
|
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) {
|
func (c *AgentComposeConfig) Generate() (string, error) {
|
||||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||||
if err := agentComposeYAMLTemplate.Execute(buf, c); err != nil {
|
if err := agentComposeYAMLTemplate.Execute(buf, c); err != nil {
|
||||||
|
@ -41,83 +23,3 @@ func (c *AgentComposeConfig) Generate() (string, error) {
|
||||||
}
|
}
|
||||||
return buf.String(), nil
|
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