Documentation
¶
Index ¶
- Constants
- func VerifyProviderConformance(spec ConformanceSpec) error
- type ConformanceSpec
- type ContentPeer
- type LifecycleEvent
- type ProviderCatalog
- type ProviderDescriptor
- type ProviderEvidence
- type ProviderStatus
- type SidecarCloseRequest
- type SidecarCloseResponse
- type SidecarPrepareRequest
- type SidecarPrepareResponse
- type TeardownEvidence
Constants ¶
View Source
const ( ProviderCatalogVersion = "network-provider-contracts.v1" SidecarProtocolVersion = "compute-network-sidecar.v1" )
Variables ¶
This section is empty.
Functions ¶
func VerifyProviderConformance ¶
func VerifyProviderConformance(spec ConformanceSpec) error
Types ¶
type ConformanceSpec ¶
type ConformanceSpec struct {
Descriptor ProviderDescriptor `json:"descriptor"`
PrepareRequest SidecarPrepareRequest `json:"prepare_request"`
PrepareResponse SidecarPrepareResponse `json:"prepare_response"`
CloseRequest SidecarCloseRequest `json:"close_request"`
CloseResponse SidecarCloseResponse `json:"close_response"`
ExpectedMode core.NetworkMode `json:"expected_mode"`
ExpectedContentRefs []string `json:"expected_content_refs,omitempty"`
RequireSupported bool `json:"require_supported,omitempty"`
RequireLifecycleAudit bool `json:"require_lifecycle_audit,omitempty"`
RequireUrgentTeardown bool `json:"require_urgent_teardown,omitempty"`
ObservedAt time.Time `json:"observed_at,omitempty"`
}
type ContentPeer ¶
type ContentPeer struct {
PeerID string `json:"peer_id"`
BaseURL string `json:"base_url"`
ContentRefs []string `json:"content_refs,omitempty"`
IdentitySHA256 string `json:"identity_sha256,omitempty"`
}
func (ContentPeer) Validate ¶
func (p ContentPeer) Validate() error
type LifecycleEvent ¶
type LifecycleEvent struct {
Event string `json:"event"`
ObservedAt time.Time `json:"observed_at"`
DetailRef string `json:"detail_ref,omitempty"`
}
func (LifecycleEvent) Validate ¶
func (e LifecycleEvent) Validate() error
type ProviderCatalog ¶
type ProviderCatalog struct {
Version string `json:"version"`
Providers []ProviderDescriptor `json:"providers"`
}
func (ProviderCatalog) Validate ¶
func (c ProviderCatalog) Validate() error
type ProviderDescriptor ¶
type ProviderDescriptor struct {
ProtocolVersion string `json:"protocol_version"`
PluginID string `json:"plugin_id"`
ProviderID string `json:"provider_id"`
ContractID string `json:"contract_id"`
Version string `json:"version"`
DisplayName string `json:"display_name,omitempty"`
Modes []core.NetworkMode `json:"modes"`
SidecarProtocol string `json:"sidecar_protocol"`
EvidenceSchemaRef string `json:"evidence_schema_ref"`
RequiresDaemon bool `json:"requires_daemon"`
SupportsIngress bool `json:"supports_ingress"`
SupportsContent bool `json:"supports_content"`
ManagedPackageRequired bool `json:"managed_package_required"`
}
func (ProviderDescriptor) SupportsMode ¶
func (d ProviderDescriptor) SupportsMode(mode core.NetworkMode) bool
func (ProviderDescriptor) Validate ¶
func (d ProviderDescriptor) Validate() error
type ProviderEvidence ¶
type ProviderEvidence struct {
ProtocolVersion string `json:"protocol_version"`
ProviderID string `json:"provider_id"`
ProviderVersion string `json:"provider_version"`
Mode core.NetworkMode `json:"mode"`
Status ProviderStatus `json:"status"`
OS string `json:"os,omitempty"`
Arch string `json:"arch,omitempty"`
NATPosture string `json:"nat_posture,omitempty"`
DiscoverySource string `json:"discovery_source,omitempty"`
KeyExchange string `json:"key_exchange,omitempty"`
PeerCount int `json:"peer_count,omitempty"`
BytesTx int64 `json:"bytes_tx,omitempty"`
BytesRx int64 `json:"bytes_rx,omitempty"`
Lifecycle []LifecycleEvent `json:"lifecycle,omitempty"`
UrgentTeardown *TeardownEvidence `json:"urgent_teardown,omitempty"`
UnsupportedReason string `json:"unsupported_reason,omitempty"`
ArtifactDigest string `json:"artifact_digest,omitempty"`
}
func (ProviderEvidence) Validate ¶
func (e ProviderEvidence) Validate() error
type ProviderStatus ¶
type ProviderStatus string
const ( ProviderStatusSupported ProviderStatus = "supported" ProviderStatusDegraded ProviderStatus = "degraded" ProviderStatusUnsupported ProviderStatus = "unsupported" )
type SidecarCloseRequest ¶
type SidecarCloseRequest struct {
ProtocolVersion string `json:"protocol_version"`
RequestID string `json:"request_id"`
SessionID string `json:"session_id"`
ProviderID string `json:"provider_id"`
Mode core.NetworkMode `json:"mode"`
Urgent bool `json:"urgent,omitempty"`
Reason string `json:"reason,omitempty"`
}
func (SidecarCloseRequest) Validate ¶
func (r SidecarCloseRequest) Validate() error
type SidecarCloseResponse ¶
type SidecarCloseResponse struct {
ProtocolVersion string `json:"protocol_version"`
RequestID string `json:"request_id"`
SessionID string `json:"session_id"`
ProviderID string `json:"provider_id"`
Mode core.NetworkMode `json:"mode"`
Closed bool `json:"closed"`
Evidence ProviderEvidence `json:"evidence"`
}
func (SidecarCloseResponse) ValidateAgainst ¶
func (r SidecarCloseResponse) ValidateAgainst(req SidecarCloseRequest) error
type SidecarPrepareRequest ¶
type SidecarPrepareRequest struct {
ProtocolVersion string `json:"protocol_version"`
RequestID string `json:"request_id"`
Descriptor ProviderDescriptor `json:"descriptor"`
WorkerID string `json:"worker_id"`
TaskID string `json:"task_id"`
LeaseID string `json:"lease_id"`
OrgID string `json:"org_id"`
PoolID string `json:"pool_id"`
RequestedMode core.NetworkMode `json:"requested_mode"`
NetworkPolicy core.NetworkPolicy `json:"network_policy"`
P2PSessionPolicy *core.P2PSessionPolicy `json:"p2p_session_policy,omitempty"`
AllowedProtocols []string `json:"allowed_protocols,omitempty"`
}
type SidecarPrepareResponse ¶
type SidecarPrepareResponse struct {
ProtocolVersion string `json:"protocol_version"`
RequestID string `json:"request_id"`
SessionID string `json:"session_id"`
ProviderID string `json:"provider_id"`
Mode core.NetworkMode `json:"mode"`
WorkerID string `json:"worker_id"`
PeerIDs []string `json:"peer_ids,omitempty"`
PeerIdentitiesSHA256 map[string]string `json:"peer_identities_sha256,omitempty"`
BoundDestinations []core.NetworkDestination `json:"bound_destinations,omitempty"`
ContentPeers []ContentPeer `json:"content_peers,omitempty"`
Evidence ProviderEvidence `json:"evidence"`
}
func (SidecarPrepareResponse) ValidateAgainst ¶
func (r SidecarPrepareResponse) ValidateAgainst(req SidecarPrepareRequest, now time.Time) error
type TeardownEvidence ¶
type TeardownEvidence struct {
Completed bool `json:"completed"`
ObservedAt time.Time `json:"observed_at"`
ProcessStopped bool `json:"process_stopped"`
WorkspaceClean bool `json:"workspace_clean"`
OpenPeers int `json:"open_peers,omitempty"`
OpenSockets int `json:"open_sockets,omitempty"`
}
func (TeardownEvidence) Validate ¶
func (e TeardownEvidence) Validate() error
Click to show internal directories.
Click to hide internal directories.