Documentation
¶
Index ¶
Constants ¶
View Source
const ( // DefaultWorkspaceDir is the default path to the workspace directory in the runner's environment. DefaultWorkspaceDir = "/home/build" // DefaultCacheDir is the default path to the cache directory in the runner's environment. DefaultCacheDir = "/var/cache/melange" // DefaultResolvConfPath is the default path to the resolv.conf file in the runner's environment. DefaultResolvConfPath = "/etc/resolv.conf" )
View Source
const ( KubernetesName = "kubernetes" KubernetesConfigFileName = ".melange.k8s.yaml" )
View Source
const BubblewrapName = "bubblewrap"
View Source
const DockerName = "docker"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Capabilities ¶
type Capabilities struct {
Networking bool
}
type Config ¶
type Config struct {
PackageName string
Mounts []BindMount
Capabilities Capabilities
Environment map[string]string
ImgRef string
PodID string
Arch apko_types.Architecture
CPU, Memory string
Timeout time.Duration
}
type KubernetesRunnerConfig ¶ added in v0.4.0
type KubernetesRunnerConfig struct {
Provider string `json:"provider" yaml:"provider"`
Context string `json:"context" yaml:"context"`
Repo string `json:"repo" yaml:"repo"`
Namespace string `json:"namespace" yaml:"namespace"`
Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
StartTimeout metav1.Duration `json:"startTimeout" yaml:"startTimeout" split_words:"true"`
// This field and everything below it is ignored by the environment variable parser
PodTemplate *KubernetesRunnerConfigPodTemplate `json:"podTemplate,omitempty" yaml:"podTemplate,omitempty" ignored:"true"`
// contains filtered or unexported fields
}
KubernetesRunnerConfig handles the configuration for the Kubernetes runner It sources from various locations, in the following order of precedence:
- The "global" config file
- Defaults
TODO: Add loaders from package config and environment
func NewKubernetesConfig ¶ added in v0.4.0
func NewKubernetesConfig(opt ...KubernetesRunnerConfigOptions) (*KubernetesRunnerConfig, error)
NewKubernetesConfig returns a default Kubernetes runner config setup
type KubernetesRunnerConfigOptions ¶ added in v0.4.0
type KubernetesRunnerConfigOptions func(*KubernetesRunnerConfig)
func WithKubernetesRunnerConfigBaseConfigFile ¶ added in v0.4.0
func WithKubernetesRunnerConfigBaseConfigFile(path string) KubernetesRunnerConfigOptions
WithKubernetesRunnerConfigBaseConfigFile sets the path to a config file with KubernetesRunner-specific options
type KubernetesRunnerConfigPodTemplate ¶ added in v0.4.0
type KubernetesRunnerConfigPodTemplate struct {
ServiceAccountName string `json:"serviceAccountName,omitempty" yaml:"serviceAccountName,omitempty"`
NodeSelector map[string]string `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
Env []corev1.EnvVar `json:"env,omitempty" yaml:"env,omitempty"`
Affinity *corev1.Affinity `json:"affinity,omitempty" yaml:"affinity,omitempty"`
RuntimeClassName *string `json:"runtimeClassName,omitempty" yaml:"runtimeClassName,omitempty"`
Volumes []corev1.Volume `json:"volumes,omitempty" yaml:"volumes,omitempty"`
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty" yaml:"volumeMounts,omitempty"`
}
type Loader ¶ added in v0.4.0
type Loader interface {
LoadImage(ctx context.Context, layer v1.Layer, arch apko_types.Architecture, bc *apko_build.Context) (ref string, err error)
}
type Runner ¶
type Runner interface {
Name() string
TestUsability(ctx context.Context) bool
// OCIImageLoader returns a Loader that will load an OCI image from a stream.
// It should return the Loader, which will be used to load the provided image
// as a tar stream into the Loader. That image will be used as the root when StartPod() the container.
OCIImageLoader() Loader
StartPod(ctx context.Context, cfg *Config) error
Run(ctx context.Context, cfg *Config, cmd ...string) error
TerminatePod(ctx context.Context, cfg *Config) error
// TempDir returns the base for temporary directory, or "" if whatever is provided by the system is fine
TempDir() string
// WorkspaceTar returns an io.ReadCloser that can be used to read the status of the workspace.
// The io.ReadCloser itself is a tar stream, which can be written to an io.Writer as is,
// or passed to an fs.FS processor
WorkspaceTar(ctx context.Context, cfg *Config) (io.ReadCloser, error)
}
func BubblewrapRunner ¶
func BubblewrapRunner() Runner
BubblewrapRunner returns a Bubblewrap Runner implementation.
Click to show internal directories.
Click to hide internal directories.