feat: Allow workspace resources to attach multiple agents (#942)

This enables a "kubernetes_pod" to attach multiple agents that
could be for multiple services. Each agent is required to have
a unique name, so SSH syntax is:

`coder ssh <workspace>.<agent>`

A resource can have zero agents too, they aren't required.
This commit is contained in:
Kyle Carberry
2022-04-11 16:06:15 -05:00
committed by GitHub
parent 2835bb45e5
commit 19b4323512
47 changed files with 1550 additions and 1040 deletions

View File

@ -210,10 +210,10 @@ func TestTemplateVersionResources(t *testing.T) {
Resources: []*proto.Resource{{
Name: "some",
Type: "example",
Agent: &proto.Agent{
Agents: []*proto.Agent{{
Id: "something",
Auth: &proto.Agent_Token{},
},
}},
}, {
Name: "another",
Type: "example",
@ -229,7 +229,7 @@ func TestTemplateVersionResources(t *testing.T) {
require.Len(t, resources, 4)
require.Equal(t, "some", resources[0].Name)
require.Equal(t, "example", resources[0].Type)
require.NotNil(t, resources[0].Agent)
require.Len(t, resources[0].Agents, 1)
})
}
@ -255,12 +255,12 @@ func TestTemplateVersionLogs(t *testing.T) {
Resources: []*proto.Resource{{
Name: "some",
Type: "example",
Agent: &proto.Agent{
Agents: []*proto.Agent{{
Id: "something",
Auth: &proto.Agent_Token{
Token: uuid.NewString(),
},
},
}},
}, {
Name: "another",
Type: "example",