v1alpha1

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: May 7, 2026 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// PatchTypeJSONPatch is the default patch type using JSON Patch (RFC 6902).
	PatchTypeJSONPatch = "jsonpatch"
)

Variables

This section is empty.

Functions

func JSONSchema added in v0.2.1

func JSONSchema() *jsonschema.Resolved

func Merge

func Merge(base, overrides any) error

func MergeCastingSpecAndStatus

func MergeCastingSpecAndStatus(base *Casting) error

Types

type Casting

type Casting struct {
	TypeVersion `json:",inline" yaml:",inline"`
	Metadata    TypeMetadata  `json:"metadata" yaml:"metadata" required:"true" description:"Metadata of the casting configuration"`
	Spec        CastingSpec   `json:"spec" yaml:"spec" required:"true" description:"Specification for the casting"`
	Status      CastingStatus `json:"status,omitzero" yaml:"status,omitempty" description:"Status of the casting"`
	// contains filtered or unexported fields
}

func DefaultCasting

func DefaultCasting() Casting

func ExampleCasting

func ExampleCasting() Casting

ExampleCasting returns a minimal casting with only the deployment spec set. The forge pipeline enriches and expands defaults; the full state is written to the lock file, not the casting.yaml.

func (Casting) TrackableProperties added in v0.2.1

func (c Casting) TrackableProperties() domain.Properties

type CastingSpec

type CastingSpec struct {
	Deployment      TypeDeployment  `json:"deployment" yaml:"deployment" required:"true" description:"Deployment configuration for the platform"`
	Infrastructure  Infrastructure  `` /* 163-byte string literal not displayed */
	Signoz          SigNoz          `json:"signoz,omitzero" yaml:"signoz,omitempty" description:"The configuration for the SigNoz molding"`
	TelemetryStore  TelemetryStore  `` /* 126-byte string literal not displayed */
	TelemetryKeeper TelemetryKeeper `` /* 129-byte string literal not displayed */
	MetaStore       MetaStore       `json:"metastore,omitzero" yaml:"metastore,omitempty" description:"The configuration for the meta store molding"`
	Ingester        Ingester        `json:"ingester,omitzero" yaml:"ingester,omitempty" description:"The configuration for the ingester molding"`
	Patches         []PatchEntry    `json:"patches,omitempty" yaml:"patches,omitempty" description:"Patch operations to apply to generated materials"`
	// contains filtered or unexported fields
}

type CastingStatus

type CastingStatus struct {
	// Checksum of the casting file.
	Checksum string `json:"checksum" yaml:"checksum" description:"Checksum of the casting file"`
	// contains filtered or unexported fields
}

type Flavor added in v0.2.1

type Flavor struct {
	// contains filtered or unexported fields
}
var (
	FlavorCompose   Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorSwarm     Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorBinary    Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorKustomize Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorHelm      Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorBlueprint Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorStack     Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorTemplate  Flavor = Flavor{/* contains filtered or unexported fields */}
	FlavorTerraform Flavor = Flavor{/* contains filtered or unexported fields */}
)

func Flavors added in v0.2.1

func Flavors() []Flavor

func (Flavor) Enum added in v0.2.1

func (flavor Flavor) Enum() []any

func (Flavor) MarshalJSON added in v0.2.1

func (flavor Flavor) MarshalJSON() ([]byte, error)

func (Flavor) MarshalText added in v0.2.1

func (flavor Flavor) MarshalText() ([]byte, error)

func (Flavor) MarshalYAML added in v0.2.1

func (flavor Flavor) MarshalYAML() (any, error)

func (Flavor) String added in v0.2.1

func (flavor Flavor) String() string

func (*Flavor) UnmarshalJSON added in v0.2.1

func (flavor *Flavor) UnmarshalJSON(text []byte) error

func (*Flavor) UnmarshalText added in v0.2.1

func (flavor *Flavor) UnmarshalText(text []byte) error

func (*Flavor) UnmarshalYAML added in v0.2.1

func (flavor *Flavor) UnmarshalYAML(node *yaml.Node) error

type Infrastructure added in v0.0.7

type Infrastructure struct {
	// Whether infrastructure manifest generation is enabled
	Enabled bool `json:"enabled" yaml:"enabled"`

	// Status holds the generated IaC file contents keyed by filename (e.g. "main.tf.json").
	// This is populated by foundry after generation and written to the lock file.
	Status map[string]string `json:"status,omitempty" yaml:"status,omitempty"`
	// contains filtered or unexported fields
}

Infrastructure holds the configuration for infrastructure manifest generation (e.g., Terraform). The cloud provider is resolved automatically from spec.deployment.platform — no provider field is needed here.

func DefaultInfrastructure added in v0.0.7

func DefaultInfrastructure() Infrastructure

DefaultInfrastructure returns the default Infrastructure configuration.

func (Infrastructure) MarshalJSON added in v0.0.7

func (i Infrastructure) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler. It manually omits Status when zero so that the strategic merge patch doesn't overwrite defaults with empty values.

type Ingester

type Ingester struct {
	// Specification for the ingester.
	Spec MoldingSpec `json:"spec" yaml:"spec" jsonschema:"description=Specification for the ingester"`

	// Status of the ingester.
	Status IngesterStatus `json:"status" yaml:"status,omitempty" jsonschema:"description=Status of the ingester"`
	// contains filtered or unexported fields
}

func DefaultIngester

func DefaultIngester() Ingester

type IngesterStatus

type IngesterStatus struct {
	MoldingStatus `json:",inline" yaml:",inline"`

	Addresses IngesterStatusAddresses `json:"addresses" yaml:"addresses,omitempty" jsonschema:"description=Addresses of the ingester"`
	// contains filtered or unexported fields
}

type IngesterStatusAddresses

type IngesterStatusAddresses struct {
	OTLP []string `json:"otlp" yaml:"otlp" jsonschema:"description=OTLP addresses"`
	// contains filtered or unexported fields
}

type MetaStore

type MetaStore struct {
	// Kind of the meta store to use.
	Kind MetaStoreKind `json:"kind,omitzero" yaml:"kind,omitempty" description:"Kind of the meta store to use" examples:"[\"postgres\",\"sqlite\"]"`

	// Specification for the meta store.
	Spec MoldingSpec `json:"spec" yaml:"spec" description:"Specification for the meta store"`

	// Status of the meta store.
	Status MetaStoreStatus `json:"status" yaml:"status,omitempty" description:"Status of the meta store"`
	// contains filtered or unexported fields
}

func DefaultMetaStore

func DefaultMetaStore() MetaStore

type MetaStoreKind

type MetaStoreKind struct {
	// contains filtered or unexported fields
}
var (
	MetaStoreKindPostgres MetaStoreKind = MetaStoreKind{/* contains filtered or unexported fields */}
	MetaStoreKindSQLite   MetaStoreKind = MetaStoreKind{/* contains filtered or unexported fields */}
)

func MetaStoreKinds

func MetaStoreKinds() []MetaStoreKind

func (MetaStoreKind) Enum added in v0.2.1

func (kind MetaStoreKind) Enum() []any

func (MetaStoreKind) MarshalJSON

func (kind MetaStoreKind) MarshalJSON() ([]byte, error)

func (MetaStoreKind) MarshalText

func (kind MetaStoreKind) MarshalText() ([]byte, error)

func (MetaStoreKind) MarshalYAML

func (kind MetaStoreKind) MarshalYAML() (any, error)

func (MetaStoreKind) String

func (kind MetaStoreKind) String() string

func (*MetaStoreKind) UnmarshalJSON

func (kind *MetaStoreKind) UnmarshalJSON(text []byte) error

func (*MetaStoreKind) UnmarshalText

func (kind *MetaStoreKind) UnmarshalText(text []byte) error

func (*MetaStoreKind) UnmarshalYAML

func (kind *MetaStoreKind) UnmarshalYAML(node *yaml.Node) error

type MetaStoreStatus

type MetaStoreStatus struct {
	MoldingStatus `json:",inline" yaml:",inline"`

	Addresses MetaStoreStatusAddresses `json:"addresses" yaml:"addresses,omitempty" description:"Addresses of the meta store"`
	// contains filtered or unexported fields
}

type MetaStoreStatusAddresses

type MetaStoreStatusAddresses struct {
	// DSN addresses.
	DSN []string `json:"dsn" yaml:"dsn" description:"DSN addresses"`
	// contains filtered or unexported fields
}

type Mode added in v0.2.1

type Mode struct {
	// contains filtered or unexported fields
}
var (
	ModeDocker     Mode = Mode{/* contains filtered or unexported fields */}
	ModeSystemd    Mode = Mode{/* contains filtered or unexported fields */}
	ModeKubernetes Mode = Mode{/* contains filtered or unexported fields */}
	ModeEC2        Mode = Mode{/* contains filtered or unexported fields */}
)

func Modes added in v0.2.1

func Modes() []Mode

func (Mode) Enum added in v0.2.1

func (mode Mode) Enum() []any

func (Mode) MarshalJSON added in v0.2.1

func (mode Mode) MarshalJSON() ([]byte, error)

func (Mode) MarshalText added in v0.2.1

func (mode Mode) MarshalText() ([]byte, error)

func (Mode) MarshalYAML added in v0.2.1

func (mode Mode) MarshalYAML() (any, error)

func (Mode) String added in v0.2.1

func (mode Mode) String() string

func (*Mode) UnmarshalJSON added in v0.2.1

func (mode *Mode) UnmarshalJSON(text []byte) error

func (*Mode) UnmarshalText added in v0.2.1

func (mode *Mode) UnmarshalText(text []byte) error

func (*Mode) UnmarshalYAML added in v0.2.1

func (mode *Mode) UnmarshalYAML(node *yaml.Node) error

type MoldingKind

type MoldingKind struct {
	// contains filtered or unexported fields
}
var (
	MoldingKindIngester        MoldingKind = MoldingKind{/* contains filtered or unexported fields */}
	MoldingKindTelemetryStore  MoldingKind = MoldingKind{/* contains filtered or unexported fields */}
	MoldingKindTelemetryKeeper MoldingKind = MoldingKind{/* contains filtered or unexported fields */}
	MoldingKindMetaStore       MoldingKind = MoldingKind{/* contains filtered or unexported fields */}
	MoldingKindSignoz          MoldingKind = MoldingKind{/* contains filtered or unexported fields */}
)

func MoldingKinds

func MoldingKinds() []MoldingKind

func (MoldingKind) MarshalText

func (kind MoldingKind) MarshalText() ([]byte, error)

func (MoldingKind) MarshalYAML

func (kind MoldingKind) MarshalYAML() (any, error)

func (MoldingKind) String

func (kind MoldingKind) String() string

func (*MoldingKind) UnmarshalText

func (kind *MoldingKind) UnmarshalText(text []byte) error

func (*MoldingKind) UnmarshalYAML

func (kind *MoldingKind) UnmarshalYAML(node *yaml.Node) error

type MoldingSpec

type MoldingSpec struct {
	// Whether the molding is enabled
	Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty" description:"Whether the molding is enabled" default:"true"`

	// Cluster configuration for the molding
	Cluster TypeCluster `json:"cluster" yaml:"cluster,omitempty" description:"Cluster configuration for the molding"`

	// The version of the molding to use
	Version string `json:"version,omitempty" yaml:"version,omitempty" description:"The version of the molding to use" example:"latest"`

	// Image of the molding
	Image string `` /* 232-byte string literal not displayed */

	// Environment variables for the molding
	Env map[string]string `json:"env,omitempty" yaml:"env,omitempty" description:"Environment variables for the molding"`

	// Configuration for the molding
	Config TypeConfig `json:"config" yaml:"config,omitempty" description:"Configuration for the molding"`
	// contains filtered or unexported fields
}

func (*MoldingSpec) IsEnabled added in v0.0.7

func (spec *MoldingSpec) IsEnabled() bool

IsEnabled returns whether the molding is enabled. Returns false if the receiver or Enabled is nil.

func (*MoldingSpec) MergeStatus

func (spec *MoldingSpec) MergeStatus(status MoldingStatus) error

type MoldingStatus

type MoldingStatus struct {
	// Extra information about the molding
	Extras map[string]string `json:"extras,omitempty" yaml:"extras,omitempty" description:"Extra information about the molding"`

	// Environment variables for the molding
	Env map[string]string `json:"env,omitempty" yaml:"env,omitempty" description:"Environment variables for the molding"`

	// Configuration for the molding
	Config TypeConfig `json:"config" yaml:"config,omitempty" description:"Configuration for the molding"`
	// contains filtered or unexported fields
}

type PatchEntry added in v0.0.2

type PatchEntry struct {
	// Type selects the patch driver. Defaults to "jsonpatch" if empty.
	Type string `` /* 157-byte string literal not displayed */

	// Target is the output file to patch, relative to the pours directory.
	Target string `` /* 225-byte string literal not displayed */

	// Operations is a list of JSON Patch (RFC 6902) operations to apply. Used by the jsonpatch driver.
	Operations []PatchOperation `` /* 151-byte string literal not displayed */
	// contains filtered or unexported fields
}

PatchEntry is a set of patch operations targeting a specific generated file.

func (PatchEntry) PatchType added in v0.0.2

func (pe PatchEntry) PatchType() string

PatchType returns the patch type, defaulting to PatchTypeJSONPatch if empty.

type PatchOperation added in v0.0.2

type PatchOperation struct {
	// Op is the JSON Patch (RFC 6902) operation type: add, remove, replace, move, copy, test.
	Op string `` /* 127-byte string literal not displayed */

	// Path is a JSON Pointer (RFC 6902) to the target location.
	Path string `` /* 154-byte string literal not displayed */

	// Value is the value for add, replace, or test operations.
	Value any `json:"value,omitempty" yaml:"value,omitempty" description:"Value for add, replace, or test operations"`

	// From is a JSON Pointer for the source location in move and copy operations.
	From string `` /* 160-byte string literal not displayed */
	// contains filtered or unexported fields
}

PatchOperation is a single JSON Patch (RFC 6902) operation. Used by the jsonpatch driver.

type Platform added in v0.2.1

type Platform struct {
	// contains filtered or unexported fields
}
var (
	PlatformRender  Platform = Platform{/* contains filtered or unexported fields */}
	PlatformCoolify Platform = Platform{/* contains filtered or unexported fields */}
	PlatformRailway Platform = Platform{/* contains filtered or unexported fields */}
	PlatformECS     Platform = Platform{/* contains filtered or unexported fields */}
	PlatformAWS     Platform = Platform{/* contains filtered or unexported fields */}
	PlatformGCP     Platform = Platform{/* contains filtered or unexported fields */}
	PlatformAzure   Platform = Platform{/* contains filtered or unexported fields */}
)

func Platforms added in v0.2.1

func Platforms() []Platform

func (Platform) Enum added in v0.2.1

func (platform Platform) Enum() []any

func (Platform) MarshalJSON added in v0.2.1

func (platform Platform) MarshalJSON() ([]byte, error)

func (Platform) MarshalText added in v0.2.1

func (platform Platform) MarshalText() ([]byte, error)

func (Platform) MarshalYAML added in v0.2.1

func (platform Platform) MarshalYAML() (any, error)

func (Platform) String added in v0.2.1

func (platform Platform) String() string

func (*Platform) UnmarshalJSON added in v0.2.1

func (platform *Platform) UnmarshalJSON(text []byte) error

func (*Platform) UnmarshalText added in v0.2.1

func (platform *Platform) UnmarshalText(text []byte) error

func (*Platform) UnmarshalYAML added in v0.2.1

func (platform *Platform) UnmarshalYAML(node *yaml.Node) error

type SigNoz

type SigNoz struct {
	// Specification for signoz.
	Spec MoldingSpec `json:"spec" yaml:"spec" jsonschema:"description=Specification for SigNoz"`

	// Status of signoz.
	Status SigNozStatus `json:"status" yaml:"status,omitempty" jsonschema:"description=Status of SigNoz"`
	// contains filtered or unexported fields
}

func DefaultSigNoz

func DefaultSigNoz() SigNoz

type SigNozStatus

type SigNozStatus struct {
	MoldingStatus `json:",inline" yaml:",inline"`

	Addresses SigNozStatusAddresses `json:"addresses" yaml:"addresses,omitempty" jsonschema:"description=Addresses of SigNoz"`
	// contains filtered or unexported fields
}

type SigNozStatusAddresses

type SigNozStatusAddresses struct {
	// API server addresses.
	APIServer []string `json:"apiserver" yaml:"apiserver" jsonschema:"description=API server addresses"`

	// Opamp server addresses.
	Opamp []string `json:"opamp" yaml:"opamp" jsonschema:"description=Opamp server addresses"`
	// contains filtered or unexported fields
}

type TelemetryKeeper

type TelemetryKeeper struct {
	// Kind of the telemetry keeper to use.
	Kind TelemetryKeeperKind `` /* 126-byte string literal not displayed */

	// Specification for the telemetry keeper.
	Spec MoldingSpec `json:"spec" yaml:"spec" description:"Specification for the telemetry keeper"`

	// Status of the telemetry keeper.
	Status TelemetryKeeperStatus `json:"status" yaml:"status,omitempty" description:"Status of the telemetry keeper"`
	// contains filtered or unexported fields
}

func DefaultTelemetryKeeper

func DefaultTelemetryKeeper() TelemetryKeeper

type TelemetryKeeperKind

type TelemetryKeeperKind struct {
	// contains filtered or unexported fields
}
var (
	TelemetryKeeperKindClickhouseKeeper TelemetryKeeperKind = TelemetryKeeperKind{/* contains filtered or unexported fields */}
)

func TelemetryKeeperKinds

func TelemetryKeeperKinds() []TelemetryKeeperKind

func (TelemetryKeeperKind) Enum added in v0.2.1

func (kind TelemetryKeeperKind) Enum() []any

func (TelemetryKeeperKind) MarshalJSON

func (kind TelemetryKeeperKind) MarshalJSON() ([]byte, error)

func (TelemetryKeeperKind) MarshalText

func (kind TelemetryKeeperKind) MarshalText() ([]byte, error)

func (TelemetryKeeperKind) MarshalYAML

func (kind TelemetryKeeperKind) MarshalYAML() (any, error)

func (TelemetryKeeperKind) String

func (kind TelemetryKeeperKind) String() string

func (*TelemetryKeeperKind) UnmarshalJSON

func (kind *TelemetryKeeperKind) UnmarshalJSON(text []byte) error

func (*TelemetryKeeperKind) UnmarshalText

func (kind *TelemetryKeeperKind) UnmarshalText(text []byte) error

func (*TelemetryKeeperKind) UnmarshalYAML

func (kind *TelemetryKeeperKind) UnmarshalYAML(node *yaml.Node) error

type TelemetryKeeperStatus

type TelemetryKeeperStatus struct {
	MoldingStatus `json:",inline" yaml:",inline"`

	// Addresses of the telemetry keeper.
	Addresses TelemetryKeeperStatusAddresses `json:"addresses" yaml:"addresses,omitempty" description:"Addresses of the telemetry keeper"`
	// contains filtered or unexported fields
}

type TelemetryKeeperStatusAddresses

type TelemetryKeeperStatusAddresses struct {
	// Raft addresses.
	Raft []string `json:"raft" yaml:"raft,omitempty" description:"Raft addresses"`

	// Client addresses.
	Client []string `json:"client" yaml:"client,omitempty" description:"Client addresses"`
	// contains filtered or unexported fields
}

type TelemetryStore

type TelemetryStore struct {
	// Kind of the telemetry store to use.
	Kind TelemetryStoreKind `json:"kind,omitzero" yaml:"kind,omitempty" description:"Kind of the telemetry store to use" examples:"[\"clickhouse\"]"`

	// Specification for the telemetry store.
	Spec MoldingSpec `json:"spec" yaml:"spec" description:"Specification for the telemetry store"`

	// Status of the telemetry store.
	Status TelemetryStoreStatus `json:"status" yaml:"status,omitempty" description:"Status of the telemetry store"`
	// contains filtered or unexported fields
}

func DefaultTelemetryStore

func DefaultTelemetryStore() TelemetryStore

type TelemetryStoreKind

type TelemetryStoreKind struct {
	// contains filtered or unexported fields
}
var (
	TelemetryStoreKindClickhouse TelemetryStoreKind = TelemetryStoreKind{/* contains filtered or unexported fields */}
)

func TelemetryStoreKinds

func TelemetryStoreKinds() []TelemetryStoreKind

func (TelemetryStoreKind) Enum added in v0.2.1

func (kind TelemetryStoreKind) Enum() []any

func (TelemetryStoreKind) MarshalJSON

func (kind TelemetryStoreKind) MarshalJSON() ([]byte, error)

func (TelemetryStoreKind) MarshalText

func (kind TelemetryStoreKind) MarshalText() ([]byte, error)

func (TelemetryStoreKind) MarshalYAML

func (kind TelemetryStoreKind) MarshalYAML() (any, error)

func (TelemetryStoreKind) String

func (kind TelemetryStoreKind) String() string

func (*TelemetryStoreKind) UnmarshalJSON

func (kind *TelemetryStoreKind) UnmarshalJSON(text []byte) error

func (*TelemetryStoreKind) UnmarshalText

func (kind *TelemetryStoreKind) UnmarshalText(text []byte) error

func (*TelemetryStoreKind) UnmarshalYAML

func (kind *TelemetryStoreKind) UnmarshalYAML(node *yaml.Node) error

type TelemetryStoreStatus

type TelemetryStoreStatus struct {
	MoldingStatus `json:",inline" yaml:",inline"`

	Addresses TelemetryStoreStatusAddresses `json:"addresses" yaml:"addresses,omitempty" description:"Addresses of the telemetry store"`
	// contains filtered or unexported fields
}

type TelemetryStoreStatusAddresses

type TelemetryStoreStatusAddresses struct {
	// TCP addresses.
	TCP []string `json:"tcp" yaml:"tcp" description:"TCP addresses"`
	// contains filtered or unexported fields
}

type TypeCluster

type TypeCluster struct {
	Replicas *int `json:"replicas,omitempty" yaml:"replicas,omitempty" minimum:"0" description:"Number of replicas for the molding." example:"1"`
	Shards   *int `json:"shards,omitempty" yaml:"shards,omitempty" minimum:"1" description:"Number of shards for the molding" example:"1"`
	// contains filtered or unexported fields
}

type TypeConfig

type TypeConfig struct {
	Data map[string]string `json:"data,omitempty" yaml:"data,omitempty" description:"Configuration data as key-value pairs."`
	// contains filtered or unexported fields
}

type TypeDeployment

type TypeDeployment struct {
	// Platform: cloud or hosting provider where an installation runs.
	Platform Platform `json:"platform,omitzero" yaml:"platform,omitempty" description:"Provider where an installation runs on"`

	// Mode: type of installation method (engine or technology behind the deployment).
	Mode Mode `json:"mode,omitzero" yaml:"mode,omitempty" description:"Type of installation method"`

	// Flavor: variant of the mode for the deployment.
	Flavor Flavor `json:"flavor,omitzero" yaml:"flavor,omitempty" description:"Flavor of mode for the deployment"`
	// contains filtered or unexported fields
}

type TypeMetadata

type TypeMetadata struct {
	Name        string            `` /* 240-byte string literal not displayed */
	Annotations map[string]string `` /* 209-byte string literal not displayed */
	// contains filtered or unexported fields
}

type TypeVersion

type TypeVersion struct {
	APIVersion string `` /* 177-byte string literal not displayed */
}

Jump to

Keyboard shortcuts

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