runner

package
v0.2.0-beta1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Overview

Copyright 2025 Cloudbase Solutions SRL

Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.

Copyright 2025 Cloudbase Solutions SRL

Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsSupportedArch

func IsSupportedArch(arch params.OSArch) bool

func IsSupportedOSType

func IsSupportedOSType(osType params.OSType) bool

Types

type AgentStoreOps

type AgentStoreOps interface {
	RecordAgentHeartbeat(ctx context.Context) error
	AddInstanceStatusMessage(ctx context.Context, param params.InstanceUpdateMessage) error
	SetInstanceToPendingDelete(ctx context.Context) error
	SetInstanceCapabilities(ctx context.Context, capabilities params.AgentCapabilities) error
}

type EnterprisePoolManager

type EnterprisePoolManager interface {
	CreateEnterprisePoolManager(ctx context.Context, enterprise params.Enterprise, providers map[string]common.Provider, store dbCommon.Store) (common.PoolManager, error)
	GetEnterprisePoolManager(enterprise params.Enterprise) (common.PoolManager, error)
	DeleteEnterprisePoolManager(enterprise params.Enterprise) error
	GetEnterprisePoolManagers() (map[string]common.PoolManager, error)
}

type HookTargetType

type HookTargetType string
const (
	RepoHook         HookTargetType = "repository"
	OrganizationHook HookTargetType = "organization"
	EnterpriseHook   HookTargetType = "business"
)

type OrgPoolManager

type OrgPoolManager interface {
	CreateOrgPoolManager(ctx context.Context, org params.Organization, providers map[string]common.Provider, store dbCommon.Store) (common.PoolManager, error)
	GetOrgPoolManager(org params.Organization) (common.PoolManager, error)
	DeleteOrgPoolManager(org params.Organization) error
	GetOrgPoolManagers() (map[string]common.PoolManager, error)
}

type PoolManagerController

type PoolManagerController interface {
	RepoPoolManager
	OrgPoolManager
	EnterprisePoolManager
}

type RepoPoolManager

type RepoPoolManager interface {
	CreateRepoPoolManager(ctx context.Context, repo params.Repository, providers map[string]common.Provider, store dbCommon.Store) (common.PoolManager, error)
	GetRepoPoolManager(repo params.Repository) (common.PoolManager, error)
	DeleteRepoPoolManager(repo params.Repository) error
	GetRepoPoolManagers() (map[string]common.PoolManager, error)
}

type Runner

type Runner struct {
	// contains filtered or unexported fields
}

func NewRunner

func NewRunner(ctx context.Context, cfg config.Config, db dbCommon.Store, token auth.InstanceTokenGetter) (*Runner, error)

func (*Runner) AddInstanceStatusMessage

func (r *Runner) AddInstanceStatusMessage(ctx context.Context, param params.InstanceUpdateMessage) error

func (*Runner) CreateEnterprise

func (r *Runner) CreateEnterprise(ctx context.Context, param params.CreateEnterpriseParams) (enterprise params.Enterprise, err error)

func (*Runner) CreateEnterprisePool

func (r *Runner) CreateEnterprisePool(ctx context.Context, enterpriseID string, param params.CreatePoolParams) (params.Pool, error)

func (*Runner) CreateEntityScaleSet

func (r *Runner) CreateEntityScaleSet(ctx context.Context, entityType params.ForgeEntityType, entityID string, param params.CreateScaleSetParams) (scaleSetRet params.ScaleSet, err error)

func (*Runner) CreateFileObject

func (r *Runner) CreateFileObject(ctx context.Context, param params.CreateFileObjectParams, reader io.Reader) (params.FileObject, error)

func (*Runner) CreateGARMTool

func (r *Runner) CreateGARMTool(ctx context.Context, param params.CreateGARMToolParams, reader io.Reader) (params.FileObject, error)

func (*Runner) CreateGiteaCredentials

func (r *Runner) CreateGiteaCredentials(ctx context.Context, param params.CreateGiteaCredentialsParams) (params.ForgeCredentials, error)

func (*Runner) CreateGiteaEndpoint

func (r *Runner) CreateGiteaEndpoint(ctx context.Context, param params.CreateGiteaEndpointParams) (params.ForgeEndpoint, error)

func (*Runner) CreateGithubCredentials added in v0.1.5

func (r *Runner) CreateGithubCredentials(ctx context.Context, param params.CreateGithubCredentialsParams) (params.ForgeCredentials, error)

func (*Runner) CreateGithubEndpoint added in v0.1.5

func (r *Runner) CreateGithubEndpoint(ctx context.Context, param params.CreateGithubEndpointParams) (params.ForgeEndpoint, error)

func (*Runner) CreateOrgPool

func (r *Runner) CreateOrgPool(ctx context.Context, orgID string, param params.CreatePoolParams) (params.Pool, error)

func (*Runner) CreateOrganization

func (r *Runner) CreateOrganization(ctx context.Context, param params.CreateOrgParams) (org params.Organization, err error)

func (*Runner) CreateRepoPool

func (r *Runner) CreateRepoPool(ctx context.Context, repoID string, param params.CreatePoolParams) (params.Pool, error)

func (*Runner) CreateRepository

func (r *Runner) CreateRepository(ctx context.Context, param params.CreateRepoParams) (repo params.Repository, err error)

func (*Runner) CreateTemplate

func (r *Runner) CreateTemplate(ctx context.Context, param params.CreateTemplateParams) (params.Template, error)

func (*Runner) DeleteEnterprise

func (r *Runner) DeleteEnterprise(ctx context.Context, enterpriseID string) error

func (*Runner) DeleteEnterprisePool

func (r *Runner) DeleteEnterprisePool(ctx context.Context, enterpriseID, poolID string) error

func (*Runner) DeleteFileObject

func (r *Runner) DeleteFileObject(ctx context.Context, objID uint) error

func (*Runner) DeleteFileObjectsByTags

func (r *Runner) DeleteFileObjectsByTags(ctx context.Context, tags []string) (int64, error)

func (*Runner) DeleteGarmTool

func (r *Runner) DeleteGarmTool(ctx context.Context, osType, osArch string) error

func (*Runner) DeleteGiteaCredentials

func (r *Runner) DeleteGiteaCredentials(ctx context.Context, id uint) error

func (*Runner) DeleteGiteaEndpoint

func (r *Runner) DeleteGiteaEndpoint(ctx context.Context, name string) error

func (*Runner) DeleteGithubCredentials added in v0.1.5

func (r *Runner) DeleteGithubCredentials(ctx context.Context, id uint) error

func (*Runner) DeleteGithubEndpoint added in v0.1.5

func (r *Runner) DeleteGithubEndpoint(ctx context.Context, name string) error

func (*Runner) DeleteOrgPool

func (r *Runner) DeleteOrgPool(ctx context.Context, orgID, poolID string) error

func (*Runner) DeleteOrganization

func (r *Runner) DeleteOrganization(ctx context.Context, orgID string, keepWebhook bool) error

func (*Runner) DeletePoolByID

func (r *Runner) DeletePoolByID(ctx context.Context, poolID string) error

func (*Runner) DeleteRepoPool

func (r *Runner) DeleteRepoPool(ctx context.Context, repoID, poolID string) error

func (*Runner) DeleteRepository

func (r *Runner) DeleteRepository(ctx context.Context, repoID string, keepWebhook bool) error

func (*Runner) DeleteRunner added in v0.1.4

func (r *Runner) DeleteRunner(ctx context.Context, instanceName string, forceDelete, bypassGithubUnauthorized bool) error

DeleteRunner removes a runner from a pool. If forceDelete is true, GARM will ignore any provider errors that may occur, and attempt to remove the runner from GitHub and then the database, regardless of provider errors.

func (*Runner) DeleteScaleSetByID

func (r *Runner) DeleteScaleSetByID(ctx context.Context, scaleSetID uint) error

func (*Runner) DeleteTemplate

func (r *Runner) DeleteTemplate(ctx context.Context, id uint) error

func (*Runner) DispatchWorkflowJob

func (r *Runner) DispatchWorkflowJob(hookTargetType, signature string, forgeType params.EndpointType, jobData []byte) error

func (*Runner) ForceToolsSync

func (r *Runner) ForceToolsSync(ctx context.Context) (params.ControllerInfo, error)

ForceToolsSync forces an immediate sync of GARM agent tools by resetting the cached timestamp. This triggers the garmToolsSync worker to fetch and sync tools on the next check.

func (*Runner) GenerateSystemdUnitFile added in v0.1.4

func (r *Runner) GenerateSystemdUnitFile(ctx context.Context, runAsUser string) ([]byte, error)

func (*Runner) GetAgentGARMTools

func (r *Runner) GetAgentGARMTools(ctx context.Context, page, pageSize uint64) (params.GARMAgentToolsPaginatedResponse, error)

GetAgentGARMTools lists GARM agent tools available for an instance, filtered by the instance's OS type and architecture. On the last page, upstream cached tools are merged to fill gaps for os/arch combos not present in the local object store.

func (*Runner) GetAgentJWTToken

func (r *Runner) GetAgentJWTToken(ctx context.Context, runnerName string) (string, error)

func (*Runner) GetControllerInfo

func (r *Runner) GetControllerInfo(ctx context.Context) (params.ControllerInfo, error)

GetControllerInfo returns the controller id and the hostname. This data might be used in metrics and logging.

func (*Runner) GetEnterpriseByID

func (r *Runner) GetEnterpriseByID(ctx context.Context, enterpriseID string) (params.Enterprise, error)

func (*Runner) GetEnterprisePoolByID

func (r *Runner) GetEnterprisePoolByID(ctx context.Context, enterpriseID, poolID string) (params.Pool, error)

func (*Runner) GetFileObject

func (r *Runner) GetFileObject(ctx context.Context, objID uint) (params.FileObject, error)

func (*Runner) GetFileObjectReader

func (r *Runner) GetFileObjectReader(ctx context.Context, objID uint) (io.ReadCloser, error)

func (*Runner) GetGARMTools

func (r *Runner) GetGARMTools(ctx context.Context, page, pageSize uint64, upstream bool) (params.GARMAgentToolsPaginatedResponse, error)

GetGARMTools lists GARM agent tools available to admin users. When upstream is false, it lists tools from the local object store. When upstream is true, it lists tools from the cached upstream release JSON.

func (*Runner) GetGARMToolsReadHandler

func (r *Runner) GetGARMToolsReadHandler(ctx context.Context, toolsID uint) (io.ReadCloser, error)

func (*Runner) GetGiteaCredentials

func (r *Runner) GetGiteaCredentials(ctx context.Context, id uint) (params.ForgeCredentials, error)

func (*Runner) GetGiteaEndpoint

func (r *Runner) GetGiteaEndpoint(ctx context.Context, name string) (params.ForgeEndpoint, error)

func (*Runner) GetGithubCredentials added in v0.1.5

func (r *Runner) GetGithubCredentials(ctx context.Context, id uint) (params.ForgeCredentials, error)

func (*Runner) GetGithubEndpoint added in v0.1.5

func (r *Runner) GetGithubEndpoint(ctx context.Context, name string) (params.ForgeEndpoint, error)

func (*Runner) GetInstance

func (r *Runner) GetInstance(ctx context.Context, instanceName string) (params.Instance, error)

func (*Runner) GetInstanceGithubRegistrationToken

func (r *Runner) GetInstanceGithubRegistrationToken(ctx context.Context) (string, error)

func (*Runner) GetInstanceMetadata

func (r *Runner) GetInstanceMetadata(ctx context.Context) (params.InstanceMetadata, error)

func (*Runner) GetJITConfigFile added in v0.1.4

func (r *Runner) GetJITConfigFile(ctx context.Context, file string) ([]byte, error)

func (*Runner) GetOrgPoolByID

func (r *Runner) GetOrgPoolByID(ctx context.Context, orgID, poolID string) (params.Pool, error)

func (*Runner) GetOrgWebhookInfo added in v0.1.4

func (r *Runner) GetOrgWebhookInfo(ctx context.Context, orgID string) (params.HookInfo, error)

func (*Runner) GetOrganizationByID

func (r *Runner) GetOrganizationByID(ctx context.Context, orgID string) (params.Organization, error)

func (*Runner) GetPoolByID

func (r *Runner) GetPoolByID(ctx context.Context, poolID string) (params.Pool, error)

func (*Runner) GetRepoPoolByID

func (r *Runner) GetRepoPoolByID(ctx context.Context, repoID, poolID string) (params.Pool, error)

func (*Runner) GetRepoWebhookInfo added in v0.1.4

func (r *Runner) GetRepoWebhookInfo(ctx context.Context, repoID string) (params.HookInfo, error)

func (*Runner) GetRepositoryByID

func (r *Runner) GetRepositoryByID(ctx context.Context, repoID string) (params.Repository, error)

func (*Runner) GetRootCertificateBundle added in v0.1.4

func (r *Runner) GetRootCertificateBundle(ctx context.Context) (params.CertificateBundle, error)

func (*Runner) GetRunnerInstallScript

func (r *Runner) GetRunnerInstallScript(ctx context.Context) ([]byte, error)

func (*Runner) GetRunnerServiceName added in v0.1.4

func (r *Runner) GetRunnerServiceName(ctx context.Context) (string, error)

func (*Runner) GetScaleSetByID

func (r *Runner) GetScaleSetByID(ctx context.Context, scaleSet uint) (params.ScaleSet, error)

func (*Runner) GetTemplate

func (r *Runner) GetTemplate(ctx context.Context, id uint) (params.Template, error)

func (*Runner) GetTemplateByName

func (r *Runner) GetTemplateByName(ctx context.Context, templateName string) (params.Template, error)

func (*Runner) InstallOrgWebhook added in v0.1.4

func (r *Runner) InstallOrgWebhook(ctx context.Context, orgID string, param params.InstallWebhookParams) (params.HookInfo, error)

func (*Runner) InstallRepoWebhook added in v0.1.4

func (r *Runner) InstallRepoWebhook(ctx context.Context, repoID string, param params.InstallWebhookParams) (params.HookInfo, error)

func (*Runner) ListAllGARMTools

func (r *Runner) ListAllGARMTools(ctx context.Context) ([]params.GARMAgentTool, error)

func (*Runner) ListAllInstances

func (r *Runner) ListAllInstances(ctx context.Context) ([]params.Instance, error)

func (*Runner) ListAllJobs added in v0.1.2

func (r *Runner) ListAllJobs(ctx context.Context) ([]params.Job, error)

func (*Runner) ListAllPools

func (r *Runner) ListAllPools(ctx context.Context) ([]params.Pool, error)

func (*Runner) ListAllScaleSets

func (r *Runner) ListAllScaleSets(ctx context.Context) ([]params.ScaleSet, error)

func (*Runner) ListCredentials

func (r *Runner) ListCredentials(ctx context.Context) ([]params.ForgeCredentials, error)

func (*Runner) ListEnterpriseInstances

func (r *Runner) ListEnterpriseInstances(ctx context.Context, enterpriseID string) ([]params.Instance, error)

func (*Runner) ListEnterprisePools

func (r *Runner) ListEnterprisePools(ctx context.Context, enterpriseID string) ([]params.Pool, error)

func (*Runner) ListEnterprises

func (r *Runner) ListEnterprises(ctx context.Context, filter params.EnterpriseFilter) ([]params.Enterprise, error)

func (*Runner) ListEntityScaleSets

func (r *Runner) ListEntityScaleSets(ctx context.Context, entityType params.ForgeEntityType, entityID string) ([]params.ScaleSet, error)

func (*Runner) ListFileObjects

func (r *Runner) ListFileObjects(ctx context.Context, page, pageSize uint64, tags []string) (params.FileObjectPaginatedResponse, error)

func (*Runner) ListGiteaCredentials

func (r *Runner) ListGiteaCredentials(ctx context.Context) ([]params.ForgeCredentials, error)

func (*Runner) ListGiteaEndpoints

func (r *Runner) ListGiteaEndpoints(ctx context.Context) ([]params.ForgeEndpoint, error)

func (*Runner) ListGithubEndpoints added in v0.1.5

func (r *Runner) ListGithubEndpoints(ctx context.Context) ([]params.ForgeEndpoint, error)

func (*Runner) ListOrgInstances

func (r *Runner) ListOrgInstances(ctx context.Context, orgID string) ([]params.Instance, error)

func (*Runner) ListOrgPools

func (r *Runner) ListOrgPools(ctx context.Context, orgID string) ([]params.Pool, error)

func (*Runner) ListOrganizations

func (r *Runner) ListOrganizations(ctx context.Context, filter params.OrganizationFilter) ([]params.Organization, error)

func (*Runner) ListPoolInstances

func (r *Runner) ListPoolInstances(ctx context.Context, poolID string, outdatedOnly bool) ([]params.Instance, error)

func (*Runner) ListProviders

func (r *Runner) ListProviders(ctx context.Context) ([]params.Provider, error)

func (*Runner) ListRepoInstances

func (r *Runner) ListRepoInstances(ctx context.Context, repoID string) ([]params.Instance, error)

func (*Runner) ListRepoPools

func (r *Runner) ListRepoPools(ctx context.Context, repoID string) ([]params.Pool, error)

func (*Runner) ListRepositories

func (r *Runner) ListRepositories(ctx context.Context, filter params.RepositoryFilter) ([]params.Repository, error)

func (*Runner) ListScaleSetInstances

func (r *Runner) ListScaleSetInstances(ctx context.Context, scalesetID uint, outdatedOnly bool) ([]params.Instance, error)

func (*Runner) ListTemplates

func (r *Runner) ListTemplates(ctx context.Context, osType *commonParams.OSType, forgeType *params.EndpointType, partialName *string) ([]params.Template, error)

func (*Runner) RecordAgentHeartbeat

func (r *Runner) RecordAgentHeartbeat(ctx context.Context) error

func (*Runner) ResolveForgeCredentialByName

func (r *Runner) ResolveForgeCredentialByName(ctx context.Context, credentialsName string) (params.ForgeCredentials, error)

func (*Runner) RestoreTemplate

func (r *Runner) RestoreTemplate(ctx context.Context, param params.RestoreTemplateRequest) error

func (*Runner) SetInstanceCapabilities

func (r *Runner) SetInstanceCapabilities(ctx context.Context, caps params.AgentCapabilities) error

func (*Runner) SetInstanceToPendingDelete

func (r *Runner) SetInstanceToPendingDelete(ctx context.Context) error

func (*Runner) ShowGARMTools

func (r *Runner) ShowGARMTools(ctx context.Context, toolsID uint) (params.GARMAgentTool, error)

func (*Runner) Start

func (r *Runner) Start() error

func (*Runner) Stop

func (r *Runner) Stop() error

func (*Runner) UninstallOrgWebhook added in v0.1.4

func (r *Runner) UninstallOrgWebhook(ctx context.Context, orgID string) error

func (*Runner) UninstallRepoWebhook added in v0.1.4

func (r *Runner) UninstallRepoWebhook(ctx context.Context, repoID string) error

func (*Runner) UpdateController added in v0.1.5

func (r *Runner) UpdateController(ctx context.Context, param params.UpdateControllerParams) (params.ControllerInfo, error)

UpdateController will update the controller settings.

func (*Runner) UpdateEnterprise

func (r *Runner) UpdateEnterprise(ctx context.Context, enterpriseID string, param params.UpdateEntityParams) (params.Enterprise, error)

func (*Runner) UpdateEnterprisePool

func (r *Runner) UpdateEnterprisePool(ctx context.Context, enterpriseID, poolID string, param params.UpdatePoolParams) (params.Pool, error)

func (*Runner) UpdateFileObject

func (r *Runner) UpdateFileObject(ctx context.Context, objID uint, param params.UpdateFileObjectParams) (params.FileObject, error)

func (*Runner) UpdateGiteaCredentials

func (r *Runner) UpdateGiteaCredentials(ctx context.Context, id uint, param params.UpdateGiteaCredentialsParams) (params.ForgeCredentials, error)

func (*Runner) UpdateGiteaEndpoint

func (r *Runner) UpdateGiteaEndpoint(ctx context.Context, name string, param params.UpdateGiteaEndpointParams) (params.ForgeEndpoint, error)

func (*Runner) UpdateGithubCredentials added in v0.1.5

func (r *Runner) UpdateGithubCredentials(ctx context.Context, id uint, param params.UpdateGithubCredentialsParams) (params.ForgeCredentials, error)

func (*Runner) UpdateGithubEndpoint added in v0.1.5

func (r *Runner) UpdateGithubEndpoint(ctx context.Context, name string, param params.UpdateGithubEndpointParams) (params.ForgeEndpoint, error)

func (*Runner) UpdateOrgPool

func (r *Runner) UpdateOrgPool(ctx context.Context, orgID, poolID string, param params.UpdatePoolParams) (params.Pool, error)

func (*Runner) UpdateOrganization

func (r *Runner) UpdateOrganization(ctx context.Context, orgID string, param params.UpdateEntityParams) (params.Organization, error)

func (*Runner) UpdatePoolByID

func (r *Runner) UpdatePoolByID(ctx context.Context, poolID string, param params.UpdatePoolParams) (params.Pool, error)

func (*Runner) UpdateRepoPool

func (r *Runner) UpdateRepoPool(ctx context.Context, repoID, poolID string, param params.UpdatePoolParams) (params.Pool, error)

func (*Runner) UpdateRepository

func (r *Runner) UpdateRepository(ctx context.Context, repoID string, param params.UpdateEntityParams) (params.Repository, error)

func (*Runner) UpdateScaleSetByID

func (r *Runner) UpdateScaleSetByID(ctx context.Context, scaleSetID uint, param params.UpdateScaleSetParams) (params.ScaleSet, error)

func (*Runner) UpdateSystemInfo added in v0.1.4

func (r *Runner) UpdateSystemInfo(ctx context.Context, param params.UpdateSystemInfoParams) error

func (*Runner) UpdateTemplate

func (r *Runner) UpdateTemplate(ctx context.Context, id uint, param params.UpdateTemplateParams) (params.Template, error)

func (*Runner) Wait

func (r *Runner) Wait() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL