Documentation
¶
Index ¶
- type Address
- type AddressType
- type BootstrapInstance
- type InstanceStatus
- type OSArch
- type OSType
- type ProviderInstance
- type RunnerApplicationDownload
- func (r *RunnerApplicationDownload) GetArchitecture() string
- func (r *RunnerApplicationDownload) GetDownloadURL() string
- func (r *RunnerApplicationDownload) GetFilename() string
- func (r *RunnerApplicationDownload) GetOS() string
- func (r *RunnerApplicationDownload) GetSHA256Checksum() string
- func (r *RunnerApplicationDownload) GetTempDownloadToken() string
- type UserDataOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Address ¶
type Address struct {
Address string `json:"address"`
Type AddressType `json:"type"`
}
type AddressType ¶
type AddressType string
const ( PublicAddress AddressType = "public" PrivateAddress AddressType = "private" )
type BootstrapInstance ¶
type BootstrapInstance struct {
Name string `json:"name"`
Tools []RunnerApplicationDownload `json:"tools"`
// RepoURL is the URL the github runner agent needs to configure itself.
RepoURL string `json:"repo_url"`
// CallbackUrl is the URL where the instance can send a post, signaling
// progress or status.
CallbackURL string `json:"callback-url"`
// MetadataURL is the URL where instances can fetch information needed to set themselves up.
MetadataURL string `json:"metadata-url"`
// InstanceToken is the token that needs to be set by the instance in the headers
// in order to send updated back to the garm via CallbackURL.
InstanceToken string `json:"instance-token"`
// SSHKeys are the ssh public keys we may want to inject inside the runners, if the
// provider supports it.
SSHKeys []string `json:"ssh-keys"`
// ExtraSpecs is an opaque raw json that gets sent to the provider
// as part of the bootstrap params for instances. It can contain
// any kind of data needed by providers. The contents of this field means
// nothing to garm itself. We don't act on the information in this field at
// all. We only validate that it's a proper json.
ExtraSpecs json.RawMessage `json:"extra_specs,omitempty"`
// GitHubRunnerGroup is the github runner group in which the newly installed runner
// should be added to. The runner group must be created by someone with access to the
// enterprise.
GitHubRunnerGroup string `json:"github-runner-group"`
// CACertBundle is a CA certificate bundle which will be sent to instances and which
// will tipically be installed as a system wide trusted root CA. by either cloud-init
// or whatever mechanism the provider will use to set up the runner.
CACertBundle []byte `json:"ca-cert-bundle"`
// OSArch is the target OS CPU architecture of the runner.
OSArch OSArch `json:"arch"`
// OSType is the target OS platform of the runner (windows, linux).
OSType OSType `json:"os_type"`
// Flavor is the platform specific abstraction that defines what resources will be allocated
// to the runner (CPU, RAM, disk space, etc). This field is meaningful to the provider which
// handles the actual creation.
Flavor string `json:"flavor"`
// Image is the platform specific identifier of the operating system template that will be used
// to spin up a new machine.
Image string `json:"image"`
// Labels are a list of github runner labels that will be added to the runner.
Labels []string `json:"labels"`
// PoolID is the ID of the garm pool to which this runner belongs.
PoolID string `json:"pool_id"`
// UserDataOptions are the options for the user data generation.
UserDataOptions UserDataOptions `json:"user_data_options"`
// JitConfigEnabled is a flag that indicates if the runner should be configured to use
// just-in-time configuration. If set to true, providers must attempt to fetch the JIT configuration
// from the metadata service instead of the runner registration token. The runner registration token
// is not available if the runner is configured to use JIT.
JitConfigEnabled bool `json:"jit_config_enabled"`
}
type InstanceStatus ¶
type InstanceStatus string
const ( InstanceRunning InstanceStatus = "running" InstanceStopped InstanceStatus = "stopped" InstanceError InstanceStatus = "error" InstancePendingDelete InstanceStatus = "pending_delete" InstancePendingForceDelete InstanceStatus = "pending_force_delete" InstanceDeleting InstanceStatus = "deleting" InstanceDeleted InstanceStatus = "deleted" InstancePendingCreate InstanceStatus = "pending_create" InstanceCreating InstanceStatus = "creating" InstanceStatusUnknown InstanceStatus = "unknown" )
type ProviderInstance ¶
type ProviderInstance struct {
// PeoviderID is the unique ID the provider associated
// with the compute instance. We use this to identify the
// instance in the provider.
ProviderID string `json:"provider_id,omitempty"`
// Name is the name associated with an instance. Depending on
// the provider, this may or may not be useful in the context of
// the provider, but we can use it internally to identify the
// instance.
Name string `json:"name,omitempty"`
// OSType is the operating system type. For now, only Linux and
// Windows are supported.
OSType OSType `json:"os_type,omitempty"`
// OSName is the name of the OS. Eg: ubuntu, centos, etc.
OSName string `json:"os_name,omitempty"`
// OSVersion is the version of the operating system.
OSVersion string `json:"os_version,omitempty"`
// OSArch is the operating system architecture.
OSArch OSArch `json:"os_arch,omitempty"`
// Addresses is a list of IP addresses the provider reports
// for this instance.
Addresses []Address `json:"addresses,omitempty"`
// Status is the status of the instance inside the provider (eg: running, stopped, etc)
Status InstanceStatus `json:"status,omitempty"`
// ProviderFault holds any error messages captured from the IaaS provider that is
// responsible for managing the lifecycle of the runner.
ProviderFault []byte `json:"provider_fault,omitempty"`
}
type RunnerApplicationDownload ¶
type RunnerApplicationDownload struct {
OS *string `json:"os,omitempty"`
Architecture *string `json:"architecture,omitempty"`
DownloadURL *string `json:"download_url,omitempty"`
Filename *string `json:"filename,omitempty"`
TempDownloadToken *string `json:"temp_download_token,omitempty"`
SHA256Checksum *string `json:"sha256_checksum,omitempty"`
}
RunnerApplicationDownload represents a binary for the self-hosted runner application that can be downloaded. This is copied from the go-github package. It does not make sense to create a dependency on go-github just for this struct.
func (*RunnerApplicationDownload) GetArchitecture ¶
func (r *RunnerApplicationDownload) GetArchitecture() string
GetArchitecture returns the Architecture field if it's non-nil, zero value otherwise.
func (*RunnerApplicationDownload) GetDownloadURL ¶
func (r *RunnerApplicationDownload) GetDownloadURL() string
GetDownloadURL returns the DownloadURL field if it's non-nil, zero value otherwise.
func (*RunnerApplicationDownload) GetFilename ¶
func (r *RunnerApplicationDownload) GetFilename() string
GetFilename returns the Filename field if it's non-nil, zero value otherwise.
func (*RunnerApplicationDownload) GetOS ¶
func (r *RunnerApplicationDownload) GetOS() string
GetOS returns the OS field if it's non-nil, zero value otherwise.
func (*RunnerApplicationDownload) GetSHA256Checksum ¶
func (r *RunnerApplicationDownload) GetSHA256Checksum() string
GetSHA256Checksum returns the SHA256Checksum field if it's non-nil, zero value otherwise.
func (*RunnerApplicationDownload) GetTempDownloadToken ¶
func (r *RunnerApplicationDownload) GetTempDownloadToken() string
GetTempDownloadToken returns the TempDownloadToken field if it's non-nil, zero value otherwise.