Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
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 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 KafkaMessaging ¶
type LogfileLogging ¶
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 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.