requirements

package
v0.64.3 Latest Latest
Warning

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

Go to latest
Published: May 25, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KindObservability Kind = "observability"
	KindWebAPI        Kind = "web_api"
	KindMessageBroker Kind = "message_broker"
	KindDatabase      Kind = "database"
	KindCache         Kind = "cache"
	KindStorage       Kind = "storage"

	RuntimeKubernetes              Runtime              = "kubernetes"
	RuntimeECS                     Runtime              = "ecs"
	RuntimeCloudRun                Runtime              = "cloud_run"
	RuntimeAzureContainerApps      Runtime              = "azure_container_apps"
	RuntimeDigitalOceanAppPlatform Runtime              = "digitalocean_app_platform"
	TelemetrySignalTraces          TelemetrySignal      = "traces"
	TelemetrySignalMetrics         TelemetrySignal      = "metrics"
	TelemetrySignalLogs            TelemetrySignal      = "logs"
	ObservabilityBackendOTel       ObservabilityBackend = "otel"
	ObservabilityBackendDatadog    ObservabilityBackend = "datadog"
	ObservabilityBackendPrometheus ObservabilityBackend = "prometheus"
	ObservabilityBackendLoki       ObservabilityBackend = "loki"
	ObservabilityBackendGrafana    ObservabilityBackend = "grafana"
	DeploymentModeSidecar          DeploymentMode       = "sidecar"
	DeploymentModeDaemonSet        DeploymentMode       = "daemonset"
	DeploymentModeSiblingService   DeploymentMode       = "sibling_service"
	DeploymentModeManaged          DeploymentMode       = "managed"
)

Variables

This section is empty.

Functions

func RequirementContextFromConfig

func RequirementContextFromConfig(cfg *config.WorkflowConfig, environment string) *pb.RequirementContext

Types

type DeploymentMode

type DeploymentMode string

type ExternalDiscoveryProvider

type ExternalDiscoveryProvider struct {
	Client           pb.IaCRequirementDiscoveryClient
	Context          *pb.RequirementContext
	ModuleConfigJSON []byte
}

func (ExternalDiscoveryProvider) IaCRequirements

func (p ExternalDiscoveryProvider) IaCRequirements(ctx context.Context, input Input) ([]Requirement, error)

type Input

type Input struct {
	Config      *config.WorkflowConfig
	Manifests   map[string]*config.PluginManifestFile
	Providers   []Provider
	Environment string
}

type Kind

type Kind string

type ObservabilityBackend

type ObservabilityBackend string

type Provider

type Provider interface {
	IaCRequirements(context.Context, Input) ([]Requirement, error)
}

type ProviderFunc

type ProviderFunc func(context.Context, Input) ([]Requirement, error)

func (ProviderFunc) IaCRequirements

func (f ProviderFunc) IaCRequirements(ctx context.Context, input Input) ([]Requirement, error)

type Requirement

type Requirement struct {
	Key                   string
	Kind                  Kind
	Source                string
	ResourceTypeHint      string
	Environment           string
	Runtimes              []Runtime
	TelemetrySignals      []TelemetrySignal
	ObservabilityBackends []ObservabilityBackend
	DeploymentModes       []DeploymentMode
	VendorFeatures        []string
	ParametersJSON        []byte
}

Requirement is Workflow's provider-neutral IaC requirement model. It mirrors the strict protobuf contract while staying pleasant to author in Go tests and plugin manifest adapters.

func Discover

func Discover(ctx context.Context, input Input) ([]Requirement, error)

func DiscoverManifestRequirements

func DiscoverManifestRequirements(cfg *config.WorkflowConfig, manifests map[string]*config.PluginManifestFile) ([]Requirement, error)

func FromManifestRequirement

func FromManifestRequirement(raw config.ModuleInfraRequirementV2) (Requirement, error)

func FromProto

func FromProto(in *pb.IaCRequirement) (Requirement, error)

func (Requirement) ToProto

func (r Requirement) ToProto() (*pb.IaCRequirement, error)

func (Requirement) Validate

func (r Requirement) Validate() error

type Runtime

type Runtime string

type TelemetrySignal

type TelemetrySignal string

Jump to

Keyboard shortcuts

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