Documentation
¶
Overview ¶
This file defines a set of experimental aliases for the purpose of getting a feel for the best naming conventions for the SDK.
Index ¶
- Constants
- Variables
- func GenerateTargetName(workerSlug string, provider ProviderType, toolchain workerapi.ToolchainType, ...) string
- func IsSupportedProvider(provider ProviderType) bool
- func IsValidDriftReconciliationMode(mode DriftReconciliationMode) bool
- func IsValidProviderType(provider ProviderType) bool
- func ValidateActionResultBaseMeta(arbm *ActionResultBaseMeta) error
- func ValidateActionResultData(ar *ActionResult) error
- func ValidateActionResultMeta(ar *ActionResult) error
- type Action
- type ActionResult
- type ActionResultBaseMeta
- type ActionResultMeta
- type ActionResultType
- type ActionStatus
- type ActionStatusType
- type ActionType
- type Bridge
- type BridgeContext
- type BridgeInfo
- type BridgeOption
- type BridgePayload
- type BridgeWorker
- type BridgeWorkerContext
- type BridgeWorkerEventRequest
- type BridgeWorkerID
- type BridgeWorkerInfo
- type BridgeWorkerPayload
- type ConfigType
- type ConfigTypeSignature
- type DriftReconciliationMode
- type EventMessage
- type FunctionWorker
- type FunctionWorkerContext
- type FunctionWorkerEventRequest
- type FunctionWorkerInfo
- type FunctionWorkerPayload
- type InfoOptions
- type ProviderType
- type RefreshParams
- type ResourceInfo
- type ResourceReadinessType
- type ResourceStatus
- type ResourceStatusMap
- type ResourceSyncStatusType
- type SupportedConfigType
- type Target
- type Toolchain
- type WatchableWorker
- type WorkerEventRequest
- type WorkerInfo
- type WorkerPayload
Constants ¶
const ( // EventWorker is the event type for worker-level events. EventWorker = "WorkerEvent" // EventBridgeWorker is the event type for bridge worker-level events. EventBridgeWorker = "BridgeWorkerEvent" // EventFunctionWorker is the event type for function worker-level events. EventFunctionWorker = "FunctionWorkerEvent" )
SSE event types
const BridgeHandlePrefixRegexpString = "^[A-Za-z0-9]([\\-_\\./\\:A-Za-z0-9]*[A-Za-z0-9])?"
const BridgeOptionNamePrefixRegexpString = "^[A-Za-z0-9]([\\-_A-Za-z0-9]{0,127})?"
const MaxActionResultMessageLength = 1024
const MaxBridgeDescriptionLength = 1024
const MaxBridgeHandleLength = 512
TODO: Validate these
const MaxBridgeOptionNameLength = 128
const MaxConfigDataLength = 64 * 1024 * 1024 // 64MB
const MaxParametersLength = 16384
Max size of marshaled parameters
const MaxProviderTypeLength = 128
Max length for 3P providers
Variables ¶
var SupportedProviders = map[ProviderType]bool{ ProviderConfigHub: true, ProviderKubernetes: true, ProviderFluxOCIWriter: true, ProviderFluxRenderer: true, ProviderArgoCDRenderer: true, ProviderArgoCDOCI: true, ProviderConfigMapRenderer: true, ProviderOpenTofuAWS: true, }
var ValidAction = map[ActionType]bool{ ActionNA: true, ActionApply: true, ActionDestroy: true, ActionRefresh: true, ActionImport: true, ActionFinalize: true, ActionHeartbeat: true, ActionCancel: true, ActionInvokeFunctions: true, ActionListFunctions: true, }
var ValidActionResult = map[ActionResultType]bool{ ActionResultNone: true, ActionResultApplyCompleted: true, ActionResultApplySynced: true, ActionResultApplyFailed: true, ActionResultApplyWaitFailed: true, ActionResultDestroyCompleted: true, ActionResultDestroyFailed: true, ActionResultDestroyWaitFailed: true, ActionResultRefreshFailed: true, ActionResultRefreshAndDrifted: true, ActionResultRefreshAndNoDrift: true, ActionResultImportCompleted: true, ActionResultImportFailed: true, ActionResultFunctionInvocationCompleted: true, ActionResultFunctionInvocationFailed: true, }
var ValidActionStatus = map[ActionStatusType]bool{ ActionStatusNone: true, ActionStatusPending: true, ActionStatusSubmitted: true, ActionStatusProgressing: true, ActionStatusCompleted: true, ActionStatusFailed: true, ActionStatusCanceled: true, ActionStatusAborted: true, }
Functions ¶
func GenerateTargetName ¶
func GenerateTargetName(workerSlug string, provider ProviderType, toolchain workerapi.ToolchainType, suffix string) string
func IsSupportedProvider ¶
func IsSupportedProvider(provider ProviderType) bool
func IsValidDriftReconciliationMode ¶ added in v0.1.1
func IsValidDriftReconciliationMode(mode DriftReconciliationMode) bool
func IsValidProviderType ¶ added in v0.1.1
func IsValidProviderType(provider ProviderType) bool
func ValidateActionResultBaseMeta ¶
func ValidateActionResultBaseMeta(arbm *ActionResultBaseMeta) error
func ValidateActionResultData ¶
func ValidateActionResultData(ar *ActionResult) error
func ValidateActionResultMeta ¶
func ValidateActionResultMeta(ar *ActionResult) error
Types ¶
type ActionResult ¶
type ActionResult struct {
UnitID uuid.UUID `description:"UUID of the Unit on which the action is performed"`
SpaceID uuid.UUID `description:"UUID of the Space of the Unit on which the action is performed"`
// OrganizationID comes from the worker
// QueuedOperationID links this result back to the original operation request.
QueuedOperationID uuid.UUID `description:"UUID of the operation corresponding to the action request"`
ActionResultBaseMeta
Data []byte `` /* 130-byte string literal not displayed */
LiveData []byte `` /* 138-byte string literal not displayed */
LiveState []byte `` /* 130-byte string literal not displayed */
// ResourceStatuses contains per-resource sync and readiness status.
// Key format: "apiVersion/kind#namespace/name" (e.g., "apps/v1/Deployment#default/my-app")
ResourceStatuses ResourceStatusMap `json:",omitempty" description:"Per-resource sync and readiness status"`
}
ActionResult is a result of action from the Bridgeworker
type ActionResultBaseMeta ¶
type ActionResultBaseMeta struct {
RevisionNum int64
Action ActionType `bun:",notnull" swaggertype:"string"`
Result ActionResultType `bun:",notnull,default:'None'" swaggertype:"string"`
Status ActionStatusType `bun:",notnull,default:'None'" swaggertype:"string"`
Message string `bun:"type:text"`
StartedAt time.Time `json:",omitempty" bun:"type:timestamptz"`
TerminatedAt *time.Time `json:",omitempty" bun:"type:timestamptz"`
}
type ActionResultMeta ¶
type ActionResultMeta = ActionResultBaseMeta
type ActionResultType ¶
type ActionResultType string
const ( ActionResultNone ActionResultType = "None" ActionResultApplyCompleted ActionResultType = "ApplyCompleted" ActionResultApplySynced ActionResultType = "ApplySynced" // Config pushed to target, waiting for resources to be ready ActionResultApplyFailed ActionResultType = "ApplyFailed" ActionResultApplyWaitFailed ActionResultType = "ApplyWaitFailed" ActionResultDestroyCompleted ActionResultType = "DestroyCompleted" ActionResultDestroyFailed ActionResultType = "DestroyFailed" ActionResultDestroyWaitFailed ActionResultType = "DestroyWaitFailed" ActionResultRefreshFailed ActionResultType = "RefreshFailed" ActionResultRefreshAndDrifted ActionResultType = "RefreshAndDrifted" ActionResultRefreshAndNoDrift ActionResultType = "RefreshAndNoDrift" ActionResultImportCompleted ActionResultType = "ImportCompleted" ActionResultImportFailed ActionResultType = "ImportFailed" ActionResultFunctionInvocationCompleted ActionResultType = "FunctionInvocationCompleted" ActionResultFunctionInvocationFailed ActionResultType = "FunctionInvocationFailed" )
Drift values
type ActionStatus ¶
type ActionStatus = ActionStatusType
type ActionStatusType ¶
type ActionStatusType string
const ( ActionStatusNone ActionStatusType = "None" ActionStatusPending ActionStatusType = "Pending" ActionStatusSubmitted ActionStatusType = "Submitted" ActionStatusProgressing ActionStatusType = "Progressing" ActionStatusCompleted ActionStatusType = "Completed" ActionStatusFailed ActionStatusType = "Failed" ActionStatusCanceled ActionStatusType = "Canceled" ActionStatusAborted ActionStatusType = "Aborted" // Operation superseded by a newer one )
Status values
type ActionType ¶
type ActionType string
const ( ActionNA ActionType = "N/A" ActionApply ActionType = "Apply" ActionDestroy ActionType = "Destroy" ActionRefresh ActionType = "Refresh" ActionImport ActionType = "Import" ActionFinalize ActionType = "Finalize" ActionHeartbeat ActionType = "Heartbeat" ActionCancel ActionType = "Cancel" ActionInvokeFunctions ActionType = "InvokeFunctions" ActionListFunctions ActionType = "ListFunctions" )
Action values
type BridgeContext ¶
type BridgeContext = BridgeWorkerContext
type BridgeOption ¶ added in v0.1.1
type BridgeOption struct {
Name string `description:"Name of the option in PascalCase"`
Description string `description:"Description of the option"`
Required bool `description:"Whether the option is required"`
DataType funcapi.DataType `swaggertype:"string" description:"Data type of the option"`
Example string `json:",omitempty" description:"Example value"`
}
BridgeOption specifies the option name, description, required vs optional, data type, and example. It is very similar to FunctionParameter and the two may be unified at some point.
type BridgePayload ¶
type BridgePayload = BridgeWorkerPayload
type BridgeWorker ¶
type BridgeWorker interface {
ID() BridgeWorkerID
Info(InfoOptions) BridgeWorkerInfo
Apply(BridgeWorkerContext, BridgeWorkerPayload) error
Refresh(BridgeWorkerContext, BridgeWorkerPayload) error
Import(BridgeWorkerContext, BridgeWorkerPayload) error
Destroy(BridgeWorkerContext, BridgeWorkerPayload) error
Finalize(BridgeWorkerContext, BridgeWorkerPayload) error
}
type BridgeWorkerContext ¶
type BridgeWorkerEventRequest ¶
type BridgeWorkerEventRequest struct {
Action ActionType `description:"The action requested"`
Payload BridgeWorkerPayload
}
type BridgeWorkerID ¶ added in v0.1.1
type BridgeWorkerID struct {
ProviderType ProviderType
ToolchainTypes []workerapi.ToolchainType
}
BridgeWorkerID identifies a bridge implementation by its ProviderType and the ToolchainTypes it supports. Each bridge returns this from ID() so that the worker can register it with the dispatcher without external mapping.
type BridgeWorkerInfo ¶
type BridgeWorkerInfo struct {
SupportedConfigTypes []*SupportedConfigType `json:",omitempty" description:"Configuration types of the bridges supported by the worker"`
}
type BridgeWorkerPayload ¶
type BridgeWorkerPayload struct {
QueuedOperationID uuid.UUID `description:"UUID of the operation corresponding to the requested action"`
ToolchainType workerapi.ToolchainType `description:"ToolchainType of the Unit on which the action was performed"`
ProviderType ProviderType `description:"ProviderType of the Target attached to the Unit on which the action was performed"`
BridgeHandle string `` /* 127-byte string literal not displayed */
// Keep relatively consistent with FunctionContext
UnitSlug string `description:"Slug of the Unit on which the action was performed"`
UnitID uuid.UUID `description:"UUID of the Unit on which the action was performed"`
UnitLabels map[string]string `description:"Labels of the Unit on which the action was performed"`
UnitAnnotations map[string]string `description:"Annotations of the Unit on which the action was performed"`
SpaceSlug string `description:"Slug of the Space of the Unit on which the action was performed"`
SpaceID uuid.UUID `description:"UUID of the Space of the Unit on which the action was performed"`
SpaceLabels map[string]string `description:"Labels of the Space of the Unit on which the action was performed"`
SpaceAnnotations map[string]string `description:"Annotations of the Space of the Unit on which the action was performed"`
OrganizationID uuid.UUID `description:"UUID of the Organization of the Unit on which the action was performed"`
TargetID uuid.UUID `description:"UUID of the Target attached to the Unit on which the action was performed"`
DryRun bool `description:"Whether the action is a dry run"`
Data []byte `swaggertype:"string" format:"byte" description:"Configuration data of the Unit on which the action was performed"`
LiveData []byte `swaggertype:"string" format:"byte" description:"Live Data corresponding to the Unit"`
LiveState []byte `swaggertype:"string" format:"byte" description:"Live State corresponding to the Unit"`
TargetOptions map[string]string `json:",omitempty" description:"Options from the matching ConfigType of the Target for the Unit's ToolchainType"`
TargetParams []byte `` /* 128-byte string literal not displayed */
ExtraParams []byte `swaggertype:"string" format:"byte" description:"Additional parameters associated with the action sent to the worker"`
RevisionNum int64 `description:"Sequence number of the revision of the Unit on which the action was performed"`
LiveRevisionNum int64 `description:"Sequence number of the current live revision of the Unit on which the action was performed"`
DriftReconciliationMode DriftReconciliationMode `description:"The drift reconciliation mode for the unit at the time of the operation"`
}
BridgeWorkerPayload is an input for the Bridgeworker
type ConfigType ¶
type ConfigType struct {
ProviderType ProviderType `swaggertype:"string" description:"Type identifying a bridge implementation supported by the worker"`
ToolchainType workerapi.ToolchainType `swaggertype:"string" description:"Configuration toolchain and format implemented by this bridge of the worker"`
LiveStateType workerapi.ToolchainType `` /* 172-byte string literal not displayed */
}
type ConfigTypeSignature ¶ added in v0.1.1
type ConfigTypeSignature struct {
ConfigType
Options []BridgeOption `json:",omitempty" description:"Supported bridge options"`
}
type DriftReconciliationMode ¶ added in v0.1.1
type DriftReconciliationMode string
const ( DriftReconciliationModeOnDemand DriftReconciliationMode = "OnDemand" DriftReconciliationModeContinuousApply DriftReconciliationMode = "ContinuousApply" DriftReconciliationModeContinuousRefresh DriftReconciliationMode = "ContinuousRefresh" )
type EventMessage ¶
type EventMessage struct {
Event string
Data interface{}
}
type FunctionWorker ¶
type FunctionWorker interface {
Info() FunctionWorkerInfo
Invoke(FunctionWorkerContext, funcApi.FunctionInvocationRequest) (funcApi.FunctionInvocationResponse, error)
}
type FunctionWorkerContext ¶
type FunctionWorkerEventRequest ¶
type FunctionWorkerEventRequest struct {
// Action defines the operation the function worker should perform.
Action ActionType `description:"Action defines the operation the function worker should perform."`
// Payload contains the data required for the action, primarily the function invocation details.
Payload FunctionWorkerPayload `description:"Payload contains the data required for the action, primarily the function invocation details."`
}
FunctionWorkerEventRequest encapsulates a request destined for the function worker plugin. It specifies the action to be performed and includes the necessary payload.
type FunctionWorkerInfo ¶
type FunctionWorkerInfo struct {
ToolchainTypes []workerapi.ToolchainType `description:"Supported ToolchainTypes"`
SupportedFunctions map[workerapi.ToolchainType]map[string]funcApi.FunctionSignature `description:"Signatures of supported functions by ToolchainType"`
}
type FunctionWorkerPayload ¶
type FunctionWorkerPayload struct {
// QueuedOperationID is the identifier of the original queued operation request.
QueuedOperationID uuid.UUID `description:"QueuedOperationID is the identifier of the original queued operation request."`
// InvocationRequest encapsulates the full request for invoking one or more functions,
// including context, configuration data, function calls, and execution options.
// This structure is defined in the functions plugin's API package.
InvocationRequest funcApi.FunctionInvocationRequest `` /* 175-byte string literal not displayed */
}
FunctionWorkerPayload holds the specific data for a function worker request.
type InfoOptions ¶
type InfoOptions struct {
WorkerSlug string
}
type ProviderType ¶
type ProviderType string
const ( ProviderConfigHub ProviderType = "ConfigHub" ProviderKubernetes ProviderType = "Kubernetes" ProviderFluxOCIWriter ProviderType = "FluxOCIWriter" ProviderFluxRenderer ProviderType = "FluxRenderer" ProviderArgoCDRenderer ProviderType = "ArgoCDRenderer" ProviderArgoCDOCI ProviderType = "ArgoCDOCI" ProviderConfigMapRenderer ProviderType = "ConfigMapRenderer" ProviderOpenTofuAWS ProviderType = "OpenTofu/AWS" )
ProviderType identifies a bridge implementation, including the API, authentication method, behavior, etc. It is used by the worker's dispatcher to route to the selected bridge.
type RefreshParams ¶
type RefreshParams struct {
BaseRevisionData []byte `description:"Data to diff with the live state for refresh"`
}
type ResourceInfo ¶
type ResourceInfo struct {
ResourceName string `` /* 206-byte string literal not displayed */
ResourceType string `` /* 214-byte string literal not displayed */
}
TODO unify this API with the function API package. This struct is redundant with that of function API.
type ResourceReadinessType ¶
type ResourceReadinessType string
ResourceReadinessType represents the readiness status of an individual resource. Readiness status is derived from kstatus polling and indicates whether the resource has reached a ready/healthy state in the target system.
const ( // ResourceReadinessReady indicates the resource is ready/healthy ResourceReadinessReady ResourceReadinessType = "Ready" // ResourceReadinessInProgress indicates the resource is progressing towards ready state ResourceReadinessInProgress ResourceReadinessType = "InProgress" // ResourceReadinessFailed indicates the resource failed to reach ready state ResourceReadinessFailed ResourceReadinessType = "Failed" // ResourceReadinessTerminating indicates the resource is being deleted ResourceReadinessTerminating ResourceReadinessType = "Terminating" // ResourceReadinessUnknown indicates the resource readiness cannot be determined ResourceReadinessUnknown ResourceReadinessType = "Unknown" )
type ResourceStatus ¶
type ResourceStatus struct {
// SyncStatus indicates whether config was pushed to the target
SyncStatus ResourceSyncStatusType `json:",omitempty" description:"Whether config was pushed to the target (Synced or NotSynced)"`
// Readiness indicates the health/ready state from kstatus
Readiness ResourceReadinessType `json:",omitempty" description:"Health state from kstatus (Ready, InProgress, Failed, Unknown)"`
// Message provides human-readable status details
Message string `json:",omitempty" description:"Human-readable status details or error message"`
// UpdatedAt is the timestamp when this resource status was last updated
UpdatedAt time.Time `json:",omitempty" description:"Timestamp when this resource status was last updated"`
}
ResourceStatus represents the sync and readiness status of a single resource. It tracks both whether configuration was pushed (SyncStatus) and whether the resource has become healthy/ready (Readiness), along with a timestamp for tracking progress duration.
type ResourceStatusMap ¶
type ResourceStatusMap map[funcApi.ResourceTypeAndName]ResourceStatus
ResourceStatusMap maps ResourceTypeAndName to ResourceStatus. Key format: "apiVersion/kind#namespace/name" following K8sResourceProviderType conventions Examples: "apps/v1/Deployment#default/my-app", "v1/ConfigMap#/my-config" This format includes namespace to distinguish resources with the same name in different namespaces.
type ResourceSyncStatusType ¶
type ResourceSyncStatusType string
ResourceSyncStatusType represents the sync status of an individual resource. Sync status indicates whether the configuration has been pushed to the target.
const ( // ResourceSyncStatusSynced indicates the config was successfully pushed to the target ResourceSyncStatusSynced ResourceSyncStatusType = "Synced" // ResourceSyncStatusPending indicates the resource is waiting to be synced ResourceSyncStatusPending ResourceSyncStatusType = "Pending" // ResourceSyncStatusFailed indicates the sync operation failed ResourceSyncStatusFailed ResourceSyncStatusType = "Failed" )
type SupportedConfigType ¶ added in v0.1.1
type SupportedConfigType struct {
ConfigTypeSignature
AvailableTargets []Target `json:",omitempty" description:"Targets known by the BridgeWorker. Optional."`
}
func (*SupportedConfigType) ScrubAvailableTargets ¶ added in v0.1.1
func (sct *SupportedConfigType) ScrubAvailableTargets()
ScrubAvailableTargets prepares AvailableTargets for storage by keeping only targets that have a BridgeHandle and clearing their Name and Params fields. Targets without a BridgeHandle are removed entirely.
func (*SupportedConfigType) Validate ¶ added in v0.1.1
func (sct *SupportedConfigType) Validate() error
type Target ¶
type Target struct {
BridgeHandle string `` /* 127-byte string literal not displayed */
Name string `json:",omitempty" description:"Used to set the Slug and DisplayName of the Target created in ConfigHub. Optional."`
Params map[string]interface{} `json:",omitempty" description:"Deprecated. Used to set the Parameters of the Target created in ConfigHub"`
}
type WatchableWorker ¶
type WatchableWorker interface {
WatchForApply(BridgeWorkerContext, BridgeWorkerPayload) error
WatchForDestroy(BridgeWorkerContext, BridgeWorkerPayload) error
}
type WorkerEventRequest ¶
type WorkerEventRequest struct {
Action ActionType `description:"The action requested"`
Payload WorkerPayload
}
type WorkerInfo ¶
type WorkerInfo struct {
BridgeWorkerInfo BridgeWorkerInfo `description:"BridgeWorker capabilities"`
FunctionWorkerInfo FunctionWorkerInfo `description:"FunctionWorker capabilities"`
}
type WorkerPayload ¶
type WorkerPayload struct {
Timestamp int64 `description:"Time the action was requested"`
}