config

package
v0.13.3 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CompressionMethod string

Functions

This section is empty.

Types

type AMQPMessaging

type AMQPMessaging struct {
	URL      string `json:"url" yaml:"url"`
	Exchange string `json:"exchange" yaml:"exchange"`
	Queue    string `json:"queue" yaml:"queue"`
}

func (*AMQPMessaging) MarshalJSON added in v0.1.17

func (m *AMQPMessaging) MarshalJSON() ([]byte, error)

type Buildkit

type Buildkit struct {
	// Namespace where the StatefulSet is deployed.
	Namespace string `json:"namespace" yaml:"namespace"`
	// PodLabels assigned to pods by the StatefulSet.
	PodLabels map[string]string `json:"podLabels" yaml:"podLabels"`
	// DaemonPort used to communicate with buildkitd over gRPC.
	DaemonPort int32 `json:"daemonPort" yaml:"daemonPort"`
	// ServiceName for the headless service.
	ServiceName string `json:"serviceName" yaml:"serviceName"`
	// StatefulSetName for the supervising workload.
	StatefulSetName string `json:"statefulSetName" yaml:"statefulSetName"`
	// PoolSyncWaitTime controls how often the worker pool is reconciled.
	PoolSyncWaitTime *time.Duration `json:"poolSyncWaitTime" yaml:"poolSyncWaitTime"`
	// PoolMaxIdleTime controls how long a pod will be allowed to remain unleased before it's terminated.
	PoolMaxIdleTime *time.Duration `json:"poolMaxIdleTime" yaml:"poolMaxIdleTime"`
	// PoolEndpointWatchTimeout is the time limit used when waiting for new pods to become "ready" for traffic.
	PoolEndpointWatchTimeout *int64 `json:"poolEndpointWatchTimeout" yaml:"poolEndpointWatchTimeout"`
	// MTLS parameters.
	MTLS *BuildkitMTLS `json:"mtls,omitempty" yaml:"mtls,omitempty"`
	// Global secrets provided to buildkitd during the build process for all image builds.
	Secrets map[string]string `json:"secrets" yaml:"secrets,omitempty"`
	// Registries parameters.
	Registries map[string]RegistryConfig `json:"registries,omitempty" yaml:"registries,omitempty"`
	// FetchAndExtractTimeout used when processing the remote Docker context tarball.
	// Fetch retries have a hard timeout limit of 4.25 mins because, come on, don't be ridiculous.
	FetchAndExtractTimeout time.Duration `json:"fetchAndExtractTimeout" yaml:"fetchAndExtractTimeout"`
	// PlatformPools declares one or more named buildkit pools and the platforms each serves, natively
	// or via emulation set up out-of-band on their nodes. When empty, a single pool named "default" is
	// synthesized from the Namespace/PodLabels/StatefulSetName/ServiceName fields above, preserving the
	// pre-multi-arch behavior of this config exactly.
	PlatformPools []PlatformPool `json:"platformPools,omitempty" yaml:"platformPools,omitempty"`
}

Buildkit communication and discovery configuration.

func (Buildkit) PlatformCapabilities added in v0.13.0

func (b Buildkit) PlatformCapabilities() hephv1.PlatformCapabilities

PlatformCapabilities builds the webhook/dispatcher-facing capability set from Pools(), the single source of truth for which platforms are servable by this configuration.

func (Buildkit) Pools added in v0.13.0

func (b Buildkit) Pools() []PlatformPool

Pools returns the configured platform pools, synthesizing a single "default" pool from the legacy flat fields when PlatformPools is empty. This is what guarantees an upgrade with no values changes behaves identically to the pre-multi-arch single-pool topology.

func (Buildkit) WithPool added in v0.13.0

func (b Buildkit) WithPool(pool PlatformPool) Buildkit

WithPool returns a copy of b with its worker-identity fields (Namespace/PodLabels/ StatefulSetName/ServiceName) replaced by the given pool's, preserving every other setting (DaemonPort, MTLS, Secrets, Registries, etc.) which is shared across all pools. This lets each pool be constructed as an independent worker.Pool via the existing single-pool NewPool.

type BuildkitMTLS

type BuildkitMTLS struct {
	CACertPath string `json:"caCertPath" yaml:"caCertPath"`
	CertPath   string `json:"certPath" yaml:"certPath"`
	KeyPath    string `json:"keyPath" yaml:"keyPath"`
}

BuildkitMTLS server configuration.

type ContainerLogging

type ContainerLogging struct {
	Encoder  string `json:"encoder" yaml:"encoder"`
	LogLevel string `json:"level" yaml:"level"`
}

type Controller

type Controller struct {
	Logging   Logging   `json:"logging" yaml:"logging"`
	Manager   Manager   `json:"manager" yaml:"manager"`
	Buildkit  Buildkit  `json:"buildkit" yaml:"buildkit"`
	Messaging Messaging `json:"messaging" yaml:"messaging"`
	NewRelic  NewRelic  `json:"newRelic" yaml:"newRelic"`
}

func LoadFromFile

func LoadFromFile(filename string) (Controller, error)

func (Controller) Validate

func (c Controller) Validate() error

type ImageBuild added in v0.7.0

type ImageBuild struct {
	Concurrency  int `json:"concurrency" yaml:"concurrency"`
	HistoryLimit int `json:"historyLimit" yaml:"historyLimit"`
	Interval     int `json:"interval" yaml:"interval"`
}

type KafkaMessaging

type KafkaMessaging struct {
	Servers   []string `json:"servers" yaml:"servers"`
	Topic     string   `json:"topic" yaml:"topic"`
	Partition string   `json:"partition" yaml:"partition"`
}

type LogfileLogging

type LogfileLogging struct {
	Enabled  bool   `json:"enabled" yaml:"enabled"`
	Filepath string `json:"filepath" yaml:"filepath"`
	LogLevel string `json:"level" yaml:"level"`
}

type Logging

type Logging struct {
	StacktraceLevel string `json:"stacktraceLevel" yaml:"stacktraceLevel"`

	Container ContainerLogging `json:"container" yaml:"container"`
	Logfile   LogfileLogging   `json:"logfile" yaml:"logfile"`
}

type Manager

type Manager struct {
	HealthProbeAddr      string     `json:"healthProbeAddr" yaml:"healthProbeAddr"`
	MetricsAddr          string     `json:"metricsAddr" yaml:"metricsAddr"`
	WebhookPort          int        `json:"webhookPort" yaml:"webhookPort"`
	WatchNamespaces      []string   `json:"watchNamespaces" yaml:"watchNamespaces,omitempty"`
	EnableLeaderElection bool       `json:"enableLeaderElection" yaml:"enableLeaderElection"`
	ImageBuild           ImageBuild `json:"imageBuild" yaml:"imageBuild"`
}

type Messaging

type Messaging struct {
	Enabled bool            `json:"enabled" yaml:"enabled"`
	AMQP    *AMQPMessaging  `json:"amqp" yaml:"amqp"`
	Kafka   *KafkaMessaging `json:"kafka" yaml:"kafka"`
}

type NewRelic added in v0.1.10

type NewRelic struct {
	Enabled    bool              `json:"enabled" yaml:"enabled"`
	AppName    string            `json:"appName" yaml:"appName"`
	Labels     map[string]string `json:"labels" yaml:"labels,omitempty"`
	LicenseKey string            `json:"licenseKey" yaml:"licenseKey"`
}

type PlatformPool added in v0.13.0

type PlatformPool struct {
	// Name uniquely identifies this pool.
	Name string `json:"name" yaml:"name"`
	// Namespace where the StatefulSet is deployed.
	Namespace string `json:"namespace" yaml:"namespace"`
	// PodLabels assigned to pods by the StatefulSet.
	PodLabels map[string]string `json:"podLabels" yaml:"podLabels"`
	// StatefulSetName for the supervising workload.
	StatefulSetName string `json:"statefulSetName" yaml:"statefulSetName"`
	// ServiceName for the headless service.
	ServiceName string `json:"serviceName" yaml:"serviceName"`
	// Platforms this pool can serve, in "os/arch[/variant]" syntax (e.g. "linux/amd64").
	Platforms []string `json:"platforms" yaml:"platforms"`
}

PlatformPool describes a single buildkit worker pool and the platforms it can serve.

type RegistryConfig added in v0.1.14

type RegistryConfig struct {
	// Insecure will allow self-signed certificates.
	Insecure bool `json:"insecure,omitempty" yaml:"insecure,omitempty"`
	// HTTP will allow non-TLS connections.
	HTTP bool `json:"http,omitempty" yaml:"http,omitempty"`
}

RegistryConfig options used to relax registry push/pull restrictions.

Jump to

Keyboard shortcuts

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