mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat(coderd): add support for external agents to API's and provisioner (#19286)
This pull request introduces support for external workspace management, allowing users to register and manage workspaces that are provisioned and managed outside of the Coder. Depends on: https://github.com/coder/terraform-provider-coder/pull/424 * GET /api/v2/init-script - Gets the agent initialization script * By default, it returns a script for Linux (amd64), but with query parameters (os and arch) you can get the init script for different platforms * GET /api/v2/workspaces/{workspace}/external-agent/{agent}/credentials - Gets credentials for an external agent **(enterprise)** * Updated queries to filter workspaces/templates by the has_external_agent field
This commit is contained in:
@@ -600,8 +600,9 @@ func (r *Runner) runTemplateImport(ctx context.Context) (*proto.CompletedJob, *p
|
||||
// ModuleFiles are not on the stopProvision. So grab from the startProvision.
|
||||
ModuleFiles: startProvision.ModuleFiles,
|
||||
// ModuleFileHash will be populated if the file is uploaded async
|
||||
ModuleFilesHash: []byte{},
|
||||
HasAiTasks: startProvision.HasAITasks,
|
||||
ModuleFilesHash: []byte{},
|
||||
HasAiTasks: startProvision.HasAITasks,
|
||||
HasExternalAgents: startProvision.HasExternalAgents,
|
||||
},
|
||||
},
|
||||
}, nil
|
||||
@@ -666,6 +667,7 @@ type templateImportProvision struct {
|
||||
Plan json.RawMessage
|
||||
ModuleFiles []byte
|
||||
HasAITasks bool
|
||||
HasExternalAgents bool
|
||||
}
|
||||
|
||||
// Performs a dry-run provision when importing a template.
|
||||
@@ -807,6 +809,7 @@ func (r *Runner) runTemplateImportProvisionWithRichParameters(
|
||||
Plan: c.Plan,
|
||||
ModuleFiles: moduleFilesData,
|
||||
HasAITasks: c.HasAiTasks,
|
||||
HasExternalAgents: c.HasExternalAgents,
|
||||
}, nil
|
||||
default:
|
||||
return nil, xerrors.Errorf("invalid message type %q received from provisioner",
|
||||
|
||||
Reference in New Issue
Block a user