fix: 注入执行器 SPIFFE socket
This commit is contained in:
@@ -16,4 +16,4 @@ jobs:
|
||||
-audience ci-smoke \
|
||||
-socketPath /run/spire/agent-sockets/spire-agent.sock \
|
||||
>/dev/null
|
||||
test "$(id -u)" = 0
|
||||
test "$(id -u)" = 2000
|
||||
|
||||
@@ -93,6 +93,7 @@ func runController(ctx context.Context) error {
|
||||
}
|
||||
bootstrap := runnerbootstrap.Bootstrap{
|
||||
Capabilities: capabilities, FacadeURL: config.FacadeURL, FacadeSPIFFEID: config.FacadeSPIFFEID,
|
||||
WorkloadAPIAddr: config.WorkloadAPIAddr,
|
||||
}
|
||||
|
||||
labels := []string{"self-hosted"}
|
||||
|
||||
@@ -24,13 +24,14 @@ const (
|
||||
// Bootstrap emits assignment-scoped launch configuration. FacadeURL is the
|
||||
// controller endpoint reached by the local SPIFFE proxy, not by Runner itself.
|
||||
type Bootstrap struct {
|
||||
Capabilities runnerfacade.Capabilities
|
||||
FacadeURL string
|
||||
FacadeSPIFFEID string
|
||||
Capabilities runnerfacade.Capabilities
|
||||
FacadeURL string
|
||||
FacadeSPIFFEID string
|
||||
WorkloadAPIAddr string
|
||||
}
|
||||
|
||||
func (b Bootstrap) Environment(assignment taskassignment.Assignment) (map[string]string, error) {
|
||||
if assignment.ID == "" || assignment.Identity.SPIFFEID == "" || b.FacadeSPIFFEID == "" {
|
||||
if assignment.ID == "" || assignment.Identity.SPIFFEID == "" || b.FacadeSPIFFEID == "" || b.WorkloadAPIAddr == "" {
|
||||
return nil, errors.New("assignment ID and SPIFFE ID are required")
|
||||
}
|
||||
parsed, err := url.Parse(b.FacadeURL)
|
||||
@@ -42,12 +43,13 @@ func (b Bootstrap) Environment(assignment taskassignment.Assignment) (map[string
|
||||
return nil, errors.New("runner capability issuer is not configured")
|
||||
}
|
||||
return map[string]string{
|
||||
EnvAssignmentID: assignment.ID,
|
||||
EnvCapability: capability,
|
||||
EnvFacadeURL: b.FacadeURL,
|
||||
EnvFacadeID: b.FacadeSPIFFEID,
|
||||
EnvSPIFFEID: assignment.Identity.SPIFFEID,
|
||||
EnvBackend: string(assignment.Backend),
|
||||
EnvAssignmentID: assignment.ID,
|
||||
EnvCapability: capability,
|
||||
EnvFacadeURL: b.FacadeURL,
|
||||
EnvFacadeID: b.FacadeSPIFFEID,
|
||||
EnvSPIFFEID: assignment.Identity.SPIFFEID,
|
||||
EnvBackend: string(assignment.Backend),
|
||||
"SPIFFE_ENDPOINT_SOCKET": b.WorkloadAPIAddr,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,10 @@ func testBootstrap(t *testing.T) Bootstrap {
|
||||
t.Fatal(err)
|
||||
}
|
||||
return Bootstrap{
|
||||
Capabilities: capabilities,
|
||||
FacadeURL: "https://runner-facade.gitea-actions.svc:8443",
|
||||
FacadeSPIFFEID: "spiffe://ddupan.top/ns/gitea-actions/sa/gitea-dynamic-runner",
|
||||
Capabilities: capabilities,
|
||||
FacadeURL: "https://runner-facade.gitea-actions.svc:8443",
|
||||
FacadeSPIFFEID: "spiffe://ddupan.top/ns/gitea-actions/sa/gitea-dynamic-runner",
|
||||
WorkloadAPIAddr: "unix:///run/spire/agent-sockets/spire-agent.sock",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +49,9 @@ func TestEnvironmentIsDeterministicAndAssignmentScoped(t *testing.T) {
|
||||
if first[EnvBackend] != "pod" || first[EnvFacadeID] == "" {
|
||||
t.Fatalf("environment = %#v", first)
|
||||
}
|
||||
if first["SPIFFE_ENDPOINT_SOCKET"] != "unix:///run/spire/agent-sockets/spire-agent.sock" {
|
||||
t.Fatalf("environment = %#v", first)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegistrationMatchesOfficialRunnerSchema(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user