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) RemoveImage(ctx context.Context, ref string) error }
type Runner ¶
type Runner interface { Close() error 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.
func DockerRunner ¶
DockerRunner returns a Docker Runner implementation.
Click to show internal directories.
Click to hide internal directories.