builder

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package builder provides a Pulumi component for deploying a builder service to Kubernetes.

Index

Constants

View Source
const (
	// Port defaults
	DefaultBuilderPort = 8080
	MetricsPort        = 9000

	// Deployment defaults
	DefaultReplicas = 1

	// Resource allocation defaults
	DefaultCPULimit      = "2"
	DefaultMemoryLimit   = "2Gi"
	DefaultCPURequest    = "1"
	DefaultMemoryRequest = "1Gi"

	// Component kind
	ComponentKind = "signet:index:Builder"
)

Resource defaults

View Source
const (
	ServiceSuffix        = "-service"
	DeploymentSuffix     = "-deployment"
	ServiceAccountSuffix = "-sa"
	ConfigMapSuffix      = "-env"
	PodMonitorSuffix     = "-pod-monitor"
	ServiceMonitorSuffix = "-svcmon"
)

Resource name suffixes

View Source
const (
	HealthCheckPath = "/healthcheck"
	MetricsPath     = "/metrics"
)

Health check paths

View Source
const (
	ProbeInitialDelaySeconds = 5
	ProbePeriodSeconds       = 10
	LivenessProbePeriod      = 1
	ProbeTimeoutSeconds      = 1
	ProbeFailureThreshold    = 3
)

Probe settings

View Source
const (
	PrometheusScrapeAnnotation = "prometheus.io/scrape"
	PrometheusPortAnnotation   = "prometheus.io/port"
	PrometheusPathAnnotation   = "prometheus.io/path"
)

Prometheus annotations

Variables

This section is empty.

Functions

This section is empty.

Types

type AppLabels

type AppLabels struct {
	Labels pulumi.StringMap
}

AppLabels represents the Kubernetes labels to be applied to the builder resources.

func NewAppLabels

func NewAppLabels(app, name, partOf string, additionalLabels pulumi.StringMap) AppLabels

NewAppLabels creates a new AppLabels instance with consistent Kubernetes labels

type Builder

type Builder interface {
	GetServiceURL() pulumi.StringOutput
	GetMetricsURL() pulumi.StringOutput
}

type BuilderComponent

type BuilderComponent struct {
	pulumi.ResourceState
	BuilderComponentArgs BuilderComponentArgs
	Deployment           *appsv1.Deployment
	Service              *corev1.Service
	ServiceAccount       *corev1.ServiceAccount
	ConfigMap            *corev1.ConfigMap
}

BuilderComponent represents a Pulumi component that deploys a builder service.

func NewBuilder

NewBuilder creates a new builder component with the given configuration.

func (*BuilderComponent) GetMetricsURL

func (c *BuilderComponent) GetMetricsURL() pulumi.StringOutput

GetMetricsURL returns the URL of the builder metrics endpoint

func (*BuilderComponent) GetServiceURL

func (c *BuilderComponent) GetServiceURL() pulumi.StringOutput

GetServiceURL returns the URL of the builder service

type BuilderComponentArgs

type BuilderComponentArgs struct {
	Namespace  string     // k8s namespace to deploy the builder to
	AppLabels  AppLabels  // Labels to apply to the builder pod
	Name       string     // Builder name identifier
	Image      string     // Builder docker image
	BuilderEnv BuilderEnv // Builder environment variables
}

BuilderComponentArgs contains the configuration for deploying a builder service.

func (*BuilderComponentArgs) Validate

func (args *BuilderComponentArgs) Validate() error

Validate validates the BuilderComponentArgs

type BuilderEnv

type BuilderEnv struct {
	AuthTokenRefreshInterval pulumi.StringInput `pulumi:"authTokenRefreshInterval" validate:"required"`
	AwsAccountId             pulumi.StringInput `pulumi:"awsAccountId" validate:"required"`
	AwsAccessKeyId           pulumi.StringInput `pulumi:"awsAccessKeyId" validate:"required"`
	AwsRegion                pulumi.StringInput `pulumi:"awsRegion" validate:"required"`
	AwsSecretAccessKey       pulumi.StringInput `pulumi:"awsSecretAccessKey" validate:"required"`
	BlockConfirmationBuffer  pulumi.StringInput `pulumi:"blockConfirmationBuffer" validate:"required"`
	BlockQueryCutoff         pulumi.StringInput `pulumi:"blockQueryCutoff" validate:"required"`
	BlockQueryStart          pulumi.StringInput `pulumi:"blockQueryStart" validate:"required"`
	BuilderHelperAddress     pulumi.StringInput `pulumi:"builderHelperAddress" validate:"required"`
	BuilderKey               pulumi.StringInput `pulumi:"builderKey" validate:"required"`
	BuilderPort              pulumi.StringInput `pulumi:"builderPort" validate:"required"`
	BuilderRewardsAddress    pulumi.StringInput `pulumi:"builderRewardsAddress" validate:"required"`
	ChainOffset              pulumi.StringInput `pulumi:"chainOffset" validate:"required"`
	ConcurrentLimit          pulumi.StringInput `pulumi:"concurrentLimit" validate:"required"`
	HostChainId              pulumi.StringInput `pulumi:"hostChainId" validate:"required"`
	HostRpcUrl               pulumi.StringInput `pulumi:"hostRpcUrl" validate:"required"`
	OauthAudience            pulumi.StringInput `pulumi:"oauthAudience" validate:"required"`
	OauthAuthenticateUrl     pulumi.StringInput `pulumi:"oauthAuthenticateUrl" validate:"required"`
	OAuthClientId            pulumi.StringInput `pulumi:"oauthClientId" validate:"required"`
	OauthClientSecret        pulumi.StringInput `pulumi:"oauthClientSecret" validate:"required"`
	OauthIssuer              pulumi.StringInput `pulumi:"oauthIssuer" validate:"required"`
	OauthTokenUrl            pulumi.StringInput `pulumi:"oauthTokenUrl" validate:"required"`
	OtelExporterOtlpEndpoint pulumi.StringInput `pulumi:"otelExporterOtlpEndpoint"`
	QuinceyUrl               pulumi.StringInput `pulumi:"quinceyUrl" validate:"required"`
	RollupBlockGasLimit      pulumi.StringInput `pulumi:"rollupBlockGasLimit" validate:"required"`
	RollupChainId            pulumi.StringInput `pulumi:"rollupChainId" validate:"required"`
	RollupRpcUrl             pulumi.StringInput `pulumi:"rollupRpcUrl" validate:"required"`
	RustLog                  pulumi.StringInput `pulumi:"rustLog"`
	SlotOffset               pulumi.StringInput `pulumi:"slotOffset" validate:"required"`
	StartTimestamp           pulumi.StringInput `pulumi:"startTimestamp" validate:"required"`
	SubmitViaCallData        pulumi.StringInput `pulumi:"submitViaCallData" validate:"required"`
	TargetSlotTime           pulumi.StringInput `pulumi:"targetSlotTime" validate:"required"`
	TxBroadcastUrls          pulumi.StringInput `pulumi:"txBroadcastUrls" validate:"required"`
	TxPoolCacheDuration      pulumi.StringInput `pulumi:"txPoolCacheDuration" validate:"required"`
	TxPoolUrl                pulumi.StringInput `pulumi:"txPoolUrl" validate:"required"`
	ZenithAddress            pulumi.StringInput `pulumi:"zenithAddress" validate:"required"`
}

BuilderEnv contains all environment variables required by the builder service.

func (BuilderEnv) GetEnvMap

func (e BuilderEnv) GetEnvMap() pulumi.StringMap

GetEnvMap implements the utils.EnvProvider interface It creates a map of environment variables from the BuilderEnv struct

func (*BuilderEnv) Validate

func (env *BuilderEnv) Validate() error

Validate validates the BuilderEnv

Jump to

Keyboard shortcuts

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