diff --git a/cmd/spire-agent/cli/common/defaults_posix.go b/cmd/spire-agent/cli/common/defaults_posix.go index d28d8bde42..17569564b3 100644 --- a/cmd/spire-agent/cli/common/defaults_posix.go +++ b/cmd/spire-agent/cli/common/defaults_posix.go @@ -2,9 +2,37 @@ package common +import ( + "fmt" + "net/url" + "os" + + "github.com/spiffe/go-spiffe/v2/workloadapi" +) + const ( - // DefaultSocketPath is the SPIRE agent's default socket path - DefaultSocketPath = "/tmp/spire-agent/public/api.sock" + // DefaultRunSocketPath is the SPIRE agent's default socket path + DefaultRunSocketPath = "/tmp/spire-agent/public/api.sock" // DefaultAdminSocketPath is the SPIRE agent's default admin socket path DefaultAdminSocketPath = "/tmp/spire-agent/private/admin.sock" ) + +// DefaultSocketPath is the SPIRE agent's default socket path +var DefaultSocketPath string + +func init() { + DefaultSocketPath = DefaultRunSocketPath + ses := os.Getenv("SPIFFE_ENDPOINT_SOCKET") + if ses != "" { + var err error + ses, err = workloadapi.TargetFromAddress(ses) + if err != nil { + panic(err) + } + u, _ := url.Parse(ses) + if u.Scheme != "unix" { + panic(fmt.Sprintf("Unsupported scheme: %s", u.Scheme)) + } + DefaultSocketPath = u.Path + } +} diff --git a/cmd/spire-agent/cli/common/defaults_windows.go b/cmd/spire-agent/cli/common/defaults_windows.go index 4ce4d2a1b4..57da7a5ee4 100644 --- a/cmd/spire-agent/cli/common/defaults_windows.go +++ b/cmd/spire-agent/cli/common/defaults_windows.go @@ -2,9 +2,30 @@ package common +import ( + "os" + + "github.com/spiffe/go-spiffe/v2/workloadapi" +) + const ( - // DefaultNamedPipeName is the SPIRE agent's default named pipe name - DefaultNamedPipeName = "\\spire-agent\\public\\api" + // DefaultRunNamedPipeName is the SPIRE agent's default named pipe name + DefaultRunNamedPipeName = "\\spire-agent\\public\\api" // DefaultAdminNamedPipeName is the SPIRE agent's default admin named pipe name DefaultAdminNamedPipeName = "\\spire-agent\\private\\admin" ) + +// DefaultNamedPipeName is the SPIRE agent's default named pipe name +var DefaultNamedPipeName string + +func init() { + DefaultNamedPipeName = DefaultRunNamedPipeName + ses := os.Getenv("SPIFFE_ENDPOINT_SOCKET") + if ses != "" { + var err error + DefaultNamedPipeName, err = workloadapi.TargetFromAddress(ses) + if err != nil { + panic(err) + } + } +} diff --git a/cmd/spire-agent/cli/run/run_posix.go b/cmd/spire-agent/cli/run/run_posix.go index 4c8ddd9d03..9f730d9330 100644 --- a/cmd/spire-agent/cli/run/run_posix.go +++ b/cmd/spire-agent/cli/run/run_posix.go @@ -22,7 +22,7 @@ func (c *agentConfig) addOSFlags(flags *flag.FlagSet) { } func (c *agentConfig) setPlatformDefaults() { - c.SocketPath = common.DefaultSocketPath + c.SocketPath = common.DefaultRunSocketPath } func (c *agentConfig) getAddr() (net.Addr, error) { diff --git a/cmd/spire-agent/cli/run/run_windows.go b/cmd/spire-agent/cli/run/run_windows.go index 015bbc3420..4c2b1df2c7 100644 --- a/cmd/spire-agent/cli/run/run_windows.go +++ b/cmd/spire-agent/cli/run/run_windows.go @@ -17,7 +17,7 @@ func (c *agentConfig) addOSFlags(flags *flag.FlagSet) { } func (c *agentConfig) setPlatformDefaults() { - c.Experimental.NamedPipeName = common.DefaultNamedPipeName + c.Experimental.NamedPipeName = common.DefaultRunNamedPipeName } func (c *agentConfig) getAddr() (net.Addr, error) { diff --git a/go.mod b/go.mod index c695f00c98..be22097e82 100644 --- a/go.mod +++ b/go.mod @@ -71,7 +71,7 @@ require ( github.com/sigstore/rekor v1.3.9 github.com/sigstore/sigstore v1.8.12 github.com/sirupsen/logrus v1.9.3 - github.com/spiffe/go-spiffe/v2 v2.4.0 + github.com/spiffe/go-spiffe/v2 v2.5.0 github.com/spiffe/spire-api-sdk v1.2.5-0.20240916165922-16526993814a github.com/spiffe/spire-plugin-sdk v1.4.4-0.20240701180828-594312f4444d github.com/stretchr/testify v1.10.0 diff --git a/go.sum b/go.sum index 0d5f026991..6fb22ffd71 100644 --- a/go.sum +++ b/go.sum @@ -1397,8 +1397,8 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/spiffe/go-spiffe/v2 v2.1.6/go.mod h1:eVDqm9xFvyqao6C+eQensb9ZPkyNEeaUbqbBpOhBnNk= -github.com/spiffe/go-spiffe/v2 v2.4.0 h1:j/FynG7hi2azrBG5cvjRcnQ4sux/VNj8FAVc99Fl66c= -github.com/spiffe/go-spiffe/v2 v2.4.0/go.mod h1:m5qJ1hGzjxjtrkGHZupoXHo/FDWwCB1MdSyBzfHugx0= +github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE= +github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g= github.com/spiffe/spire-api-sdk v1.2.5-0.20240916165922-16526993814a h1:z4A5TA8JKmXQirhOfSv45mjo1DEtmpWH/VJW+uidGQA= github.com/spiffe/spire-api-sdk v1.2.5-0.20240916165922-16526993814a/go.mod h1:4uuhFlN6KBWjACRP3xXwrOTNnvaLp1zJs8Lribtr4fI= github.com/spiffe/spire-plugin-sdk v1.4.4-0.20240701180828-594312f4444d h1:Upcyq8u1aWFHTQSEskwxBE2PehobpY+M21LXXDS/mPw=