diff --git a/agent/cmd/main.go b/agent/cmd/main.go index 2369706..0640b14 100644 --- a/agent/cmd/main.go +++ b/agent/cmd/main.go @@ -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 { diff --git a/agent/pkg/agent/agent.compose.yml b/agent/pkg/agent/agent.compose.yml index 90bea22..1397640 100644 --- a/agent/pkg/agent/agent.compose.yml +++ b/agent/pkg/agent/agent.compose.yml @@ -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 diff --git a/agent/pkg/agent/docker_compose.go b/agent/pkg/agent/docker_compose.go index e13c9c8..841fcb4 100644 --- a/agent/pkg/agent/docker_compose.go +++ b/agent/pkg/agent/docker_compose.go @@ -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 -}