mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat(provisioner): add support for workspace_owner_rbac_roles (#16407)
Part of https://github.com/coder/terraform-provider-coder/pull/330 Adds support for the coder_workspace_owner.rbac_roles attribute
This commit is contained in:
@@ -242,6 +242,11 @@ func provisionEnv(
|
||||
return nil, xerrors.Errorf("marshal owner groups: %w", err)
|
||||
}
|
||||
|
||||
ownerRbacRoles, err := json.Marshal(metadata.GetWorkspaceOwnerRbacRoles())
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("marshal owner rbac roles: %w", err)
|
||||
}
|
||||
|
||||
env = append(env,
|
||||
"CODER_AGENT_URL="+metadata.GetCoderUrl(),
|
||||
"CODER_WORKSPACE_TRANSITION="+strings.ToLower(metadata.GetWorkspaceTransition().String()),
|
||||
@@ -254,6 +259,7 @@ func provisionEnv(
|
||||
"CODER_WORKSPACE_OWNER_SSH_PUBLIC_KEY="+metadata.GetWorkspaceOwnerSshPublicKey(),
|
||||
"CODER_WORKSPACE_OWNER_SSH_PRIVATE_KEY="+metadata.GetWorkspaceOwnerSshPrivateKey(),
|
||||
"CODER_WORKSPACE_OWNER_LOGIN_TYPE="+metadata.GetWorkspaceOwnerLoginType(),
|
||||
"CODER_WORKSPACE_OWNER_RBAC_ROLES="+string(ownerRbacRoles),
|
||||
"CODER_WORKSPACE_ID="+metadata.GetWorkspaceId(),
|
||||
"CODER_WORKSPACE_OWNER_ID="+metadata.GetWorkspaceOwnerId(),
|
||||
"CODER_WORKSPACE_OWNER_SESSION_TOKEN="+metadata.GetWorkspaceOwnerSessionToken(),
|
||||
|
||||
@@ -764,6 +764,53 @@ func TestProvision(t *testing.T) {
|
||||
}},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "workspace-owner-rbac-roles",
|
||||
SkipReason: "field will be added in provider version 2.2.0",
|
||||
Files: map[string]string{
|
||||
"main.tf": `terraform {
|
||||
required_providers {
|
||||
coder = {
|
||||
source = "coder/coder"
|
||||
version = "2.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "null_resource" "example" {}
|
||||
data "coder_workspace_owner" "me" {}
|
||||
resource "coder_metadata" "example" {
|
||||
resource_id = null_resource.example.id
|
||||
item {
|
||||
key = "rbac_roles_name"
|
||||
value = data.coder_workspace_owner.me.rbac_roles[0].name
|
||||
}
|
||||
item {
|
||||
key = "rbac_roles_org_id"
|
||||
value = data.coder_workspace_owner.me.rbac_roles[0].org_id
|
||||
}
|
||||
}
|
||||
`,
|
||||
},
|
||||
Request: &proto.PlanRequest{
|
||||
Metadata: &proto.Metadata{
|
||||
WorkspaceOwnerRbacRoles: []*proto.Role{{Name: "member", OrgId: ""}},
|
||||
},
|
||||
},
|
||||
Response: &proto.PlanComplete{
|
||||
Resources: []*proto.Resource{{
|
||||
Name: "example",
|
||||
Type: "null_resource",
|
||||
Metadata: []*proto.Resource_Metadata{{
|
||||
Key: "rbac_roles_name",
|
||||
Value: "member",
|
||||
}, {
|
||||
Key: "rbac_roles_org_id",
|
||||
Value: "",
|
||||
}},
|
||||
}},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, testCase := range testCases {
|
||||
|
||||
Reference in New Issue
Block a user