Documentation
¶
Overview ¶
SnapshotService — namespace-scoped gRPC handlers for Snapshot resources.
Package service — StorageClassService gRPC handlers ¶
VolumeService — namespace-scoped gRPC handlers for Volume resources.
Driver-capability lint for Volume resources at the API write path.
Today the storage drivers enforce capability invariants at provision time (Driver.Provision returns an error and the controller marks the Volume Failed/Stalled). Surfacing the same checks at the gRPC write path turns "operator submits cast → orchestrator quietly fails on next reconcile" into "operator submits cast → cast fails with a clear error". This file implements the cast-time half of that guarantee: AccessMode must be in driver Capabilities; local-host volumes must declare a parameters.hostPath that resolves inside the runefile allowlist. Anything we cannot determine without driver instantiation (e.g. block-device formatting) is intentionally left to the controller.
All checks fail OPEN: if the StorageClass is missing, if the driver is unregistered, or if driver instantiation errors, the lint defers to the controller. This keeps the unit-test surface small (callers that did not seed a StorageClass keep working) while the production path — where the controller seeds the built-in classes at boot — is fully covered.
Index ¶
- Constants
- func IsNotFound(err error) bool
- type AdminService
- func (s *AdminService) AddRegistry(ctx context.Context, req *generated.AddRegistryRequest) (*generated.AddRegistryResponse, error)
- func (s *AdminService) AdminBootstrap(ctx context.Context, _ *generated.AdminBootstrapRequest) (*generated.AdminBootstrapResponse, error)
- func (s *AdminService) BootstrapAuth(ctx context.Context, req *generated.BootstrapAuthRequest) (*generated.BootstrapAuthResponse, error)
- func (s *AdminService) GetRegistry(ctx context.Context, req *generated.GetRegistryRequest) (*generated.GetRegistryResponse, error)
- func (s *AdminService) ListRegistries(ctx context.Context, _ *generated.ListRegistriesRequest) (*generated.ListRegistriesResponse, error)
- func (s *AdminService) NetworkStatus(_ context.Context, _ *generated.NetworkStatusRequest) (*generated.NetworkStatusResponse, error)
- func (s *AdminService) PolicyAttachToSubject(ctx context.Context, req *generated.PolicyAttachToSubjectRequest) (*generated.PolicyAttachToSubjectResponse, error)
- func (s *AdminService) PolicyCreate(ctx context.Context, req *generated.PolicyCreateRequest) (*generated.PolicyCreateResponse, error)
- func (s *AdminService) PolicyDelete(ctx context.Context, req *generated.PolicyDeleteRequest) (*generated.PolicyDeleteResponse, error)
- func (s *AdminService) PolicyDetachFromSubject(ctx context.Context, req *generated.PolicyDetachFromSubjectRequest) (*generated.PolicyDetachFromSubjectResponse, error)
- func (s *AdminService) PolicyGet(ctx context.Context, req *generated.PolicyGetRequest) (*generated.PolicyGetResponse, error)
- func (s *AdminService) PolicyList(ctx context.Context, _ *generated.PolicyListRequest) (*generated.PolicyListResponse, error)
- func (s *AdminService) PolicyUpdate(ctx context.Context, req *generated.PolicyUpdateRequest) (*generated.PolicyUpdateResponse, error)
- func (s *AdminService) RegistriesStatus(ctx context.Context, _ *generated.RegistriesStatusRequest) (*generated.RegistriesStatusResponse, error)
- func (s *AdminService) RemoveRegistry(ctx context.Context, req *generated.RemoveRegistryRequest) (*generated.RemoveRegistryResponse, error)
- func (s *AdminService) SetNetworkStatusProvider(p NetworkStatusProvider)
- func (s *AdminService) TestRegistry(ctx context.Context, req *generated.TestRegistryRequest) (*generated.TestRegistryResponse, error)
- func (s *AdminService) TokenList(ctx context.Context, _ *generated.TokenListRequest) (*generated.TokenListResponse, error)
- func (s *AdminService) UpdateRegistry(ctx context.Context, req *generated.UpdateRegistryRequest) (*generated.UpdateRegistryResponse, error)
- func (s *AdminService) UserCreate(ctx context.Context, req *generated.UserCreateRequest) (*generated.UserCreateResponse, error)
- func (s *AdminService) UserList(ctx context.Context, _ *generated.UserListRequest) (*generated.UserListResponse, error)
- type AuditService
- type AuthService
- func (s *AuthService) CreateToken(ctx context.Context, req *generated.CreateTokenRequest) (*generated.CreateTokenResponse, error)
- func (s *AuthService) RevokeToken(ctx context.Context, req *generated.RevokeTokenRequest) (*generated.RevokeTokenResponse, error)
- func (s *AuthService) WhoAmI(ctx context.Context, _ *generated.WhoAmIRequest) (*generated.WhoAmIResponse, error)
- type ConfigmapService
- func (s *ConfigmapService) CreateConfigmap(ctx context.Context, req *generated.CreateConfigmapRequest) (*generated.ConfigmapResponse, error)
- func (s *ConfigmapService) DeleteConfigmap(ctx context.Context, req *generated.DeleteConfigmapRequest) (*generated.Status, error)
- func (s *ConfigmapService) GetConfigmap(ctx context.Context, req *generated.GetConfigmapRequest) (*generated.ConfigmapResponse, error)
- func (s *ConfigmapService) ListConfigmaps(ctx context.Context, req *generated.ListConfigmapsRequest) (*generated.ListConfigmapsResponse, error)
- func (s *ConfigmapService) UpdateConfigmap(ctx context.Context, req *generated.UpdateConfigmapRequest) (*generated.ConfigmapResponse, error)
- type ExecService
- type HealthService
- type InstanceService
- func (s *InstanceService) GetInstance(ctx context.Context, req *generated.GetInstanceRequest) (*generated.InstanceResponse, error)
- func (s *InstanceService) ListInstances(ctx context.Context, req *generated.ListInstancesRequest) (*generated.ListInstancesResponse, error)
- func (s *InstanceService) ProtoInstanceToInstanceModel(protoInstance *generated.Instance) (*types.Instance, error)
- func (s *InstanceService) RestartInstance(ctx context.Context, req *generated.InstanceActionRequest) (*generated.InstanceResponse, error)
- func (s *InstanceService) StartInstance(ctx context.Context, req *generated.InstanceActionRequest) (*generated.InstanceResponse, error)
- func (s *InstanceService) StopInstance(ctx context.Context, req *generated.InstanceActionRequest) (*generated.InstanceResponse, error)
- type LogService
- type MockExecServiceStream
- type NamespaceService
- func (s *NamespaceService) CreateNamespace(ctx context.Context, req *generated.CreateNamespaceRequest) (*generated.CreateNamespaceResponse, error)
- func (s *NamespaceService) DeleteNamespace(ctx context.Context, req *generated.DeleteNamespaceRequest) (*generated.DeleteNamespaceResponse, error)
- func (s *NamespaceService) GetNamespace(ctx context.Context, req *generated.GetNamespaceRequest) (*generated.GetNamespaceResponse, error)
- func (s *NamespaceService) ListNamespaces(ctx context.Context, req *generated.ListNamespacesRequest) (*generated.ListNamespacesResponse, error)
- func (s *NamespaceService) WatchNamespaces(req *generated.WatchNamespacesRequest, ...) error
- type NetworkStatusProvider
- type ResourceTarget
- type SecretService
- func (s *SecretService) CreateSecret(ctx context.Context, req *generated.CreateSecretRequest) (*generated.SecretResponse, error)
- func (s *SecretService) DeleteSecret(ctx context.Context, req *generated.DeleteSecretRequest) (*generated.Status, error)
- func (s *SecretService) GetSecret(ctx context.Context, req *generated.GetSecretRequest) (*generated.SecretResponse, error)
- func (s *SecretService) ListSecretVersions(ctx context.Context, req *generated.ListSecretVersionsRequest) (*generated.ListSecretVersionsResponse, error)
- func (s *SecretService) ListSecrets(ctx context.Context, req *generated.ListSecretsRequest) (*generated.ListSecretsResponse, error)
- func (s *SecretService) RevealSecret(ctx context.Context, req *generated.RevealSecretRequest) (*generated.SecretResponse, error)
- func (s *SecretService) RevealSecretVersion(ctx context.Context, req *generated.RevealSecretVersionRequest) (*generated.SecretResponse, error)
- func (s *SecretService) RollbackSecret(ctx context.Context, req *generated.RollbackSecretRequest) (*generated.SecretResponse, error)
- func (s *SecretService) UpdateSecret(ctx context.Context, req *generated.UpdateSecretRequest) (*generated.SecretResponse, error)
- type ServiceService
- func (s *ServiceService) CreateService(ctx context.Context, req *generated.CreateServiceRequest) (*generated.ServiceResponse, error)
- func (s *ServiceService) DeleteService(ctx context.Context, req *generated.DeleteServiceRequest) (*generated.DeleteServiceResponse, error)
- func (s *ServiceService) GetDeletionStatus(ctx context.Context, req *generated.GetDeletionStatusRequest) (*generated.GetDeletionStatusResponse, error)
- func (s *ServiceService) GetService(ctx context.Context, req *generated.GetServiceRequest) (*generated.ServiceResponse, error)
- func (s *ServiceService) ListDeletionOperations(ctx context.Context, req *generated.ListDeletionOperationsRequest) (*generated.ListDeletionOperationsResponse, error)
- func (s *ServiceService) ListServices(ctx context.Context, req *generated.ListServicesRequest) (*generated.ListServicesResponse, error)
- func (s *ServiceService) ScaleService(ctx context.Context, req *generated.ScaleServiceRequest) (*generated.ServiceResponse, error)
- func (s *ServiceService) SetVIPAllocator(a VIPAllocator)
- func (s *ServiceService) UpdateService(ctx context.Context, req *generated.UpdateServiceRequest) (*generated.ServiceResponse, error)
- func (s *ServiceService) WatchScaling(req *generated.WatchScalingRequest, ...) error
- func (s *ServiceService) WatchServices(req *generated.WatchServicesRequest, ...) error
- type SnapshotService
- func (s *SnapshotService) CreateSnapshot(ctx context.Context, req *generated.CreateSnapshotRequest) (*generated.SnapshotResponse, error)
- func (s *SnapshotService) DeleteSnapshot(ctx context.Context, req *generated.DeleteSnapshotRequest) (*generated.Status, error)
- func (s *SnapshotService) GetSnapshot(ctx context.Context, req *generated.GetSnapshotRequest) (*generated.SnapshotResponse, error)
- func (s *SnapshotService) ListSnapshots(ctx context.Context, req *generated.ListSnapshotsRequest) (*generated.ListSnapshotsResponse, error)
- func (s *SnapshotService) RestoreVolume(ctx context.Context, req *generated.RestoreVolumeRequest) (*generated.VolumeResponse, error)
- type SnapshotServiceOption
- type StorageClassService
- func (s *StorageClassService) CreateStorageClass(ctx context.Context, req *generated.CreateStorageClassRequest) (*generated.StorageClassResponse, error)
- func (s *StorageClassService) DeleteStorageClass(ctx context.Context, req *generated.DeleteStorageClassRequest) (*generated.Status, error)
- func (s *StorageClassService) GetStorageClass(ctx context.Context, req *generated.GetStorageClassRequest) (*generated.StorageClassResponse, error)
- func (s *StorageClassService) ListStorageClasses(ctx context.Context, req *generated.ListStorageClassesRequest) (*generated.ListStorageClassesResponse, error)
- func (s *StorageClassService) UpdateStorageClass(ctx context.Context, req *generated.UpdateStorageClassRequest) (*generated.StorageClassResponse, error)
- type VIPAllocator
- type VolumeService
- func (s *VolumeService) CreateVolume(ctx context.Context, req *generated.CreateVolumeRequest) (*generated.VolumeResponse, error)
- func (s *VolumeService) DeleteVolume(ctx context.Context, req *generated.DeleteVolumeRequest) (*generated.Status, error)
- func (s *VolumeService) DetachVolume(ctx context.Context, req *generated.DetachVolumeRequest) (*generated.VolumeResponse, error)
- func (s *VolumeService) GetVolume(ctx context.Context, req *generated.GetVolumeRequest) (*generated.VolumeResponse, error)
- func (s *VolumeService) ListVolumes(ctx context.Context, req *generated.ListVolumesRequest) (*generated.ListVolumesResponse, error)
- func (s *VolumeService) RetryProvisionVolume(ctx context.Context, req *generated.RetryProvisionVolumeRequest) (*generated.VolumeResponse, error)
- func (s *VolumeService) UpdateVolume(ctx context.Context, req *generated.UpdateVolumeRequest) (*generated.VolumeResponse, error)
- type VolumeServiceOption
Constants ¶
const (
// DefaultNamespace is the default namespace for services.
DefaultNamespace = "default"
)
const RestoreFromSnapshotParam = types.RestoreFromSnapshotParam
RestoreFromSnapshotParam is re-exported for compatibility; the canonical definition lives in pkg/types/snapshot.go.
Variables ¶
This section is empty.
Functions ¶
func IsNotFound ¶
IsNotFound returns true if the error is a "not found" error.
Types ¶
type AdminService ¶
type AdminService struct {
generated.UnimplementedAdminServiceServer
// contains filtered or unexported fields
}
AdminService implements generated.AdminServiceServer
func NewAdminService ¶
func NewAdminService(st store.Store, logger log.Logger) *AdminService
func (*AdminService) AddRegistry ¶
func (s *AdminService) AddRegistry(ctx context.Context, req *generated.AddRegistryRequest) (*generated.AddRegistryResponse, error)
func (*AdminService) AdminBootstrap ¶
func (s *AdminService) AdminBootstrap(ctx context.Context, _ *generated.AdminBootstrapRequest) (*generated.AdminBootstrapResponse, error)
AdminBootstrap creates the built-in root subject and returns a management token (opaque secret once)
func (*AdminService) BootstrapAuth ¶
func (s *AdminService) BootstrapAuth(ctx context.Context, req *generated.BootstrapAuthRequest) (*generated.BootstrapAuthResponse, error)
func (*AdminService) GetRegistry ¶
func (s *AdminService) GetRegistry(ctx context.Context, req *generated.GetRegistryRequest) (*generated.GetRegistryResponse, error)
func (*AdminService) ListRegistries ¶
func (s *AdminService) ListRegistries(ctx context.Context, _ *generated.ListRegistriesRequest) (*generated.ListRegistriesResponse, error)
Registry admin RPCs
func (*AdminService) NetworkStatus ¶
func (s *AdminService) NetworkStatus(_ context.Context, _ *generated.NetworkStatusRequest) (*generated.NetworkStatusResponse, error)
NetworkStatus returns the current ClusterNetwork CIDR plus VIP allocation summary. Returns Unavailable if the allocator hasn't been wired in (e.g. during startup or in tests that don't construct one).
func (*AdminService) PolicyAttachToSubject ¶
func (s *AdminService) PolicyAttachToSubject(ctx context.Context, req *generated.PolicyAttachToSubjectRequest) (*generated.PolicyAttachToSubjectResponse, error)
PolicyAttachToSubject attaches a policy to a user subject (MVP: users only)
func (*AdminService) PolicyCreate ¶
func (s *AdminService) PolicyCreate(ctx context.Context, req *generated.PolicyCreateRequest) (*generated.PolicyCreateResponse, error)
PolicyCreate creates or updates a policy
func (*AdminService) PolicyDelete ¶
func (s *AdminService) PolicyDelete(ctx context.Context, req *generated.PolicyDeleteRequest) (*generated.PolicyDeleteResponse, error)
PolicyDelete deletes a policy
func (*AdminService) PolicyDetachFromSubject ¶
func (s *AdminService) PolicyDetachFromSubject(ctx context.Context, req *generated.PolicyDetachFromSubjectRequest) (*generated.PolicyDetachFromSubjectResponse, error)
PolicyDetachFromSubject detaches a policy from a user subject (MVP: users only)
func (*AdminService) PolicyGet ¶
func (s *AdminService) PolicyGet(ctx context.Context, req *generated.PolicyGetRequest) (*generated.PolicyGetResponse, error)
PolicyGet fetches a policy
func (*AdminService) PolicyList ¶
func (s *AdminService) PolicyList(ctx context.Context, _ *generated.PolicyListRequest) (*generated.PolicyListResponse, error)
PolicyList lists policies
func (*AdminService) PolicyUpdate ¶
func (s *AdminService) PolicyUpdate(ctx context.Context, req *generated.PolicyUpdateRequest) (*generated.PolicyUpdateResponse, error)
PolicyUpdate updates a policy
func (*AdminService) RegistriesStatus ¶
func (s *AdminService) RegistriesStatus(ctx context.Context, _ *generated.RegistriesStatusRequest) (*generated.RegistriesStatusResponse, error)
func (*AdminService) RemoveRegistry ¶
func (s *AdminService) RemoveRegistry(ctx context.Context, req *generated.RemoveRegistryRequest) (*generated.RemoveRegistryResponse, error)
func (*AdminService) SetNetworkStatusProvider ¶
func (s *AdminService) SetNetworkStatusProvider(p NetworkStatusProvider)
SetNetworkStatusProvider plugs in the live VIP allocator. Calling NetworkStatus before this is invoked returns codes.Unavailable.
func (*AdminService) TestRegistry ¶
func (s *AdminService) TestRegistry(ctx context.Context, req *generated.TestRegistryRequest) (*generated.TestRegistryResponse, error)
func (*AdminService) TokenList ¶
func (s *AdminService) TokenList(ctx context.Context, _ *generated.TokenListRequest) (*generated.TokenListResponse, error)
TokenList lists tokens (admin-only). Does not return secrets.
func (*AdminService) UpdateRegistry ¶
func (s *AdminService) UpdateRegistry(ctx context.Context, req *generated.UpdateRegistryRequest) (*generated.UpdateRegistryResponse, error)
func (*AdminService) UserCreate ¶
func (s *AdminService) UserCreate(ctx context.Context, req *generated.UserCreateRequest) (*generated.UserCreateResponse, error)
UserCreate upserts a user and attaches policies (MVP)
func (*AdminService) UserList ¶
func (s *AdminService) UserList(ctx context.Context, _ *generated.UserListRequest) (*generated.UserListResponse, error)
UserList lists users (subjects)
type AuditService ¶
type AuditService struct {
generated.UnimplementedAuditServiceServer
// contains filtered or unexported fields
}
AuditService exposes the append-only security audit trail. RBAC is enforced upstream by the standard rbac interceptor — see methodToAction in pkg/api/server/utils.go (resource: "audit").
func NewAuditService ¶
func NewAuditService(coreStore store.Store, logger log.Logger) *AuditService
func (*AuditService) ListAuditEvents ¶
func (s *AuditService) ListAuditEvents(ctx context.Context, req *generated.ListAuditEventsRequest) (*generated.ListAuditEventsResponse, error)
type AuthService ¶
type AuthService struct {
generated.UnimplementedAuthServiceServer
// contains filtered or unexported fields
}
AuthService implements generated.AuthServiceServer
func NewAuthService ¶
func NewAuthService(st store.Store, logger log.Logger) *AuthService
func (*AuthService) CreateToken ¶
func (s *AuthService) CreateToken(ctx context.Context, req *generated.CreateTokenRequest) (*generated.CreateTokenResponse, error)
func (*AuthService) RevokeToken ¶
func (s *AuthService) RevokeToken(ctx context.Context, req *generated.RevokeTokenRequest) (*generated.RevokeTokenResponse, error)
func (*AuthService) WhoAmI ¶
func (s *AuthService) WhoAmI(ctx context.Context, _ *generated.WhoAmIRequest) (*generated.WhoAmIResponse, error)
AuthService implementation
type ConfigmapService ¶
type ConfigmapService struct {
generated.UnimplementedConfigmapServiceServer
// contains filtered or unexported fields
}
func NewConfigmapService ¶
func NewConfigmapService(st store.Store, logger log.Logger) *ConfigmapService
func (*ConfigmapService) CreateConfigmap ¶
func (s *ConfigmapService) CreateConfigmap(ctx context.Context, req *generated.CreateConfigmapRequest) (*generated.ConfigmapResponse, error)
func (*ConfigmapService) DeleteConfigmap ¶
func (s *ConfigmapService) DeleteConfigmap(ctx context.Context, req *generated.DeleteConfigmapRequest) (*generated.Status, error)
func (*ConfigmapService) GetConfigmap ¶
func (s *ConfigmapService) GetConfigmap(ctx context.Context, req *generated.GetConfigmapRequest) (*generated.ConfigmapResponse, error)
func (*ConfigmapService) ListConfigmaps ¶
func (s *ConfigmapService) ListConfigmaps(ctx context.Context, req *generated.ListConfigmapsRequest) (*generated.ListConfigmapsResponse, error)
func (*ConfigmapService) UpdateConfigmap ¶
func (s *ConfigmapService) UpdateConfigmap(ctx context.Context, req *generated.UpdateConfigmapRequest) (*generated.ConfigmapResponse, error)
type ExecService ¶
type ExecService struct {
generated.UnimplementedExecServiceServer
// contains filtered or unexported fields
}
ExecService implements the gRPC ExecService.
func NewExecService ¶
func NewExecService(logger log.Logger, orchestrator orchestrator.Orchestrator) *ExecService
NewExecService creates a new ExecService with the given runners, store, and logger.
func (*ExecService) StreamExec ¶
func (s *ExecService) StreamExec(stream generated.ExecService_StreamExecServer) error
StreamExec provides bidirectional streaming for exec operations.
type HealthService ¶
type HealthService struct {
generated.UnimplementedHealthServiceServer
// contains filtered or unexported fields
}
HealthService implements the gRPC HealthService.
func NewHealthService ¶
func NewHealthService(store store.Store, logger log.Logger) *HealthService
NewHealthService creates a new HealthService with the given store and logger.
func (*HealthService) DetectAndSetCapacity ¶
func (s *HealthService) DetectAndSetCapacity()
DetectAndSetCapacity runs capacity detection and caches the result in the service.
func (*HealthService) GetHealth ¶
func (s *HealthService) GetHealth(ctx context.Context, req *generated.GetHealthRequest) (*generated.GetHealthResponse, error)
GetHealth retrieves health status of platform components.
func (*HealthService) SetCapacity ¶
func (s *HealthService) SetCapacity(cpuCores float64, memBytes int64)
SetCapacity allows the API server to inject cached node capacity for reporting.
type InstanceService ¶
type InstanceService struct {
generated.UnimplementedInstanceServiceServer
// contains filtered or unexported fields
}
InstanceService implements the gRPC InstanceService.
func NewInstanceService ¶
func NewInstanceService(store store.Store, runnerManager manager.IRunnerManager, logger log.Logger) *InstanceService
NewInstanceService creates a new InstanceService with the given store, runners, and logger.
func (*InstanceService) GetInstance ¶
func (s *InstanceService) GetInstance(ctx context.Context, req *generated.GetInstanceRequest) (*generated.InstanceResponse, error)
GetInstance retrieves an instance by ID.
func (*InstanceService) ListInstances ¶
func (s *InstanceService) ListInstances(ctx context.Context, req *generated.ListInstancesRequest) (*generated.ListInstancesResponse, error)
ListInstances lists instances with optional filtering.
func (*InstanceService) ProtoInstanceToInstanceModel ¶
func (s *InstanceService) ProtoInstanceToInstanceModel(protoInstance *generated.Instance) (*types.Instance, error)
ProtoInstanceToInstanceModel converts a protobuf message to a domain model instance.
func (*InstanceService) RestartInstance ¶
func (s *InstanceService) RestartInstance(ctx context.Context, req *generated.InstanceActionRequest) (*generated.InstanceResponse, error)
RestartInstance restarts an instance.
func (*InstanceService) StartInstance ¶
func (s *InstanceService) StartInstance(ctx context.Context, req *generated.InstanceActionRequest) (*generated.InstanceResponse, error)
StartInstance starts an instance.
func (*InstanceService) StopInstance ¶
func (s *InstanceService) StopInstance(ctx context.Context, req *generated.InstanceActionRequest) (*generated.InstanceResponse, error)
StopInstance stops an instance.
type LogService ¶
type LogService struct {
generated.UnimplementedLogServiceServer
// contains filtered or unexported fields
}
LogService implements the gRPC LogService.
func NewLogService ¶
func NewLogService(store store.Store, logger log.Logger, orchestrator orchestrator.Orchestrator) *LogService
NewLogService creates a new LogService with the given runners, store, and logger.
func (*LogService) StreamLogs ¶
func (s *LogService) StreamLogs(stream generated.LogService_StreamLogsServer) error
StreamLogs provides bidirectional streaming for logs.
type MockExecServiceStream ¶
type MockExecServiceStream struct {
mock.Mock
grpc.ServerStream
// contains filtered or unexported fields
}
MockExecServiceStream is a mock implementation of the generated.ExecService_StreamExecServer interface
func NewMockExecServiceStream ¶
func NewMockExecServiceStream(ctx context.Context) *MockExecServiceStream
NewMockExecServiceStream creates a new MockExecServiceStream with the given context
func (*MockExecServiceStream) Context ¶
func (m *MockExecServiceStream) Context() context.Context
Context returns the context
func (*MockExecServiceStream) Recv ¶
func (m *MockExecServiceStream) Recv() (*generated.ExecRequest, error)
Recv mocks the Recv method
func (*MockExecServiceStream) Send ¶
func (m *MockExecServiceStream) Send(resp *generated.ExecResponse) error
Send mocks the Send method
type NamespaceService ¶
type NamespaceService struct {
generated.UnimplementedNamespaceServiceServer
// contains filtered or unexported fields
}
NamespaceService implements the gRPC NamespaceService.
func NewNamespaceService ¶
func NewNamespaceService(store store.Store, logger log.Logger) *NamespaceService
NewNamespaceService creates a new NamespaceService with the given store and logger.
func (*NamespaceService) CreateNamespace ¶
func (s *NamespaceService) CreateNamespace(ctx context.Context, req *generated.CreateNamespaceRequest) (*generated.CreateNamespaceResponse, error)
CreateNamespace creates a new namespace.
func (*NamespaceService) DeleteNamespace ¶
func (s *NamespaceService) DeleteNamespace(ctx context.Context, req *generated.DeleteNamespaceRequest) (*generated.DeleteNamespaceResponse, error)
DeleteNamespace removes a namespace.
func (*NamespaceService) GetNamespace ¶
func (s *NamespaceService) GetNamespace(ctx context.Context, req *generated.GetNamespaceRequest) (*generated.GetNamespaceResponse, error)
GetNamespace retrieves a namespace by name.
func (*NamespaceService) ListNamespaces ¶
func (s *NamespaceService) ListNamespaces(ctx context.Context, req *generated.ListNamespacesRequest) (*generated.ListNamespacesResponse, error)
ListNamespaces lists namespaces with optional filtering.
func (*NamespaceService) WatchNamespaces ¶
func (s *NamespaceService) WatchNamespaces(req *generated.WatchNamespacesRequest, stream generated.NamespaceService_WatchNamespacesServer) error
WatchNamespaces watches namespaces for changes.
type NetworkStatusProvider ¶
type NetworkStatusProvider interface {
Status() (cn types.ClusterNetwork, pendingReleases int)
}
NetworkStatusProvider is the minimal surface AdminService needs to answer NetworkStatus RPCs. The vip allocator implements it. The indirection keeps AdminService independent of the networking package so existing admin tests don't grow a transitive dep.
type ResourceTarget ¶
type ResourceTarget struct {
Type types.ResourceType
Resource interface{}
}
func (ResourceTarget) GetInstance ¶
func (r ResourceTarget) GetInstance() (*types.Instance, error)
func (ResourceTarget) GetService ¶
func (r ResourceTarget) GetService() (*types.Service, error)
type SecretService ¶
type SecretService struct {
generated.UnimplementedSecretServiceServer
// contains filtered or unexported fields
}
SecretService implements the gRPC SecretService.
As of dev.33, the read-side surface is split:
- GetSecret / ListSecrets return metadata only (no plaintext payload). They populate Secret.data_keys instead of data.
- RevealSecret returns the plaintext payload and requires the secrets:reveal RBAC verb.
Every Create / Update / Delete / Reveal / Get call emits an AuditEvent so that operators have a queryable trail separate from the structured app log.
func NewSecretService ¶
func NewSecretService(coreStore store.Store, logger log.Logger) *SecretService
func (*SecretService) CreateSecret ¶
func (s *SecretService) CreateSecret(ctx context.Context, req *generated.CreateSecretRequest) (*generated.SecretResponse, error)
func (*SecretService) DeleteSecret ¶
func (s *SecretService) DeleteSecret(ctx context.Context, req *generated.DeleteSecretRequest) (*generated.Status, error)
func (*SecretService) GetSecret ¶
func (s *SecretService) GetSecret(ctx context.Context, req *generated.GetSecretRequest) (*generated.SecretResponse, error)
func (*SecretService) ListSecretVersions ¶
func (s *SecretService) ListSecretVersions(ctx context.Context, req *generated.ListSecretVersionsRequest) (*generated.ListSecretVersionsResponse, error)
ListSecretVersions returns metadata for every historical version of a secret, newest first. Plaintext data is stripped; data_keys is populated. Use RevealSecretVersion to fetch the payload of a specific version.
func (*SecretService) ListSecrets ¶
func (s *SecretService) ListSecrets(ctx context.Context, req *generated.ListSecretsRequest) (*generated.ListSecretsResponse, error)
func (*SecretService) RevealSecret ¶
func (s *SecretService) RevealSecret(ctx context.Context, req *generated.RevealSecretRequest) (*generated.SecretResponse, error)
RevealSecret returns the plaintext payload of a single secret. It is rate limited identically to GetSecret and emits a `reveal` audit event on every call (success or denial).
func (*SecretService) RevealSecretVersion ¶
func (s *SecretService) RevealSecretVersion(ctx context.Context, req *generated.RevealSecretVersionRequest) (*generated.SecretResponse, error)
RevealSecretVersion returns the plaintext payload of a specific historical version of a secret. Gated by secrets:reveal.
func (*SecretService) RollbackSecret ¶
func (s *SecretService) RollbackSecret(ctx context.Context, req *generated.RollbackSecretRequest) (*generated.SecretResponse, error)
RollbackSecret rewrites HEAD to the contents of the given prior version, producing a new HEAD version. Old versions are retained in history. Gated by secrets:update; emits a `rollback` audit event whose metadata records fromVersion (previous head), toVersion (rollback target), and newVersion (the freshly written head).
func (*SecretService) UpdateSecret ¶
func (s *SecretService) UpdateSecret(ctx context.Context, req *generated.UpdateSecretRequest) (*generated.SecretResponse, error)
type ServiceService ¶
type ServiceService struct {
generated.UnimplementedServiceServiceServer
// contains filtered or unexported fields
}
ServiceService implements the gRPC ServiceService.
func NewServiceService ¶
func NewServiceService(store store.Store, orchestrator orchestrator.Orchestrator, runnerManager *manager.RunnerManager, logger log.Logger) *ServiceService
NewServiceService creates a new ServiceService with the given orchestrator and logger.
func (*ServiceService) CreateService ¶
func (s *ServiceService) CreateService(ctx context.Context, req *generated.CreateServiceRequest) (*generated.ServiceResponse, error)
CreateService creates a new service.
func (*ServiceService) DeleteService ¶
func (s *ServiceService) DeleteService(ctx context.Context, req *generated.DeleteServiceRequest) (*generated.DeleteServiceResponse, error)
DeleteService removes a service.
func (*ServiceService) GetDeletionStatus ¶
func (s *ServiceService) GetDeletionStatus(ctx context.Context, req *generated.GetDeletionStatusRequest) (*generated.GetDeletionStatusResponse, error)
GetDeletionStatus gets the status of a deletion operation.
func (*ServiceService) GetService ¶
func (s *ServiceService) GetService(ctx context.Context, req *generated.GetServiceRequest) (*generated.ServiceResponse, error)
GetService retrieves a service by name.
func (*ServiceService) ListDeletionOperations ¶
func (s *ServiceService) ListDeletionOperations(ctx context.Context, req *generated.ListDeletionOperationsRequest) (*generated.ListDeletionOperationsResponse, error)
ListDeletionOperations lists deletion operations with optional filtering.
func (*ServiceService) ListServices ¶
func (s *ServiceService) ListServices(ctx context.Context, req *generated.ListServicesRequest) (*generated.ListServicesResponse, error)
ListServices lists services with optional filtering.
func (*ServiceService) ScaleService ¶
func (s *ServiceService) ScaleService(ctx context.Context, req *generated.ScaleServiceRequest) (*generated.ServiceResponse, error)
ScaleService changes the scale of a service.
func (*ServiceService) SetVIPAllocator ¶
func (s *ServiceService) SetVIPAllocator(a VIPAllocator)
SetVIPAllocator wires in the cluster VIP allocator. Calling this is optional; when unset, services are created without a VIP (matching pre-RUNE-040 behavior). runed wires the live allocator in main.go.
func (*ServiceService) UpdateService ¶
func (s *ServiceService) UpdateService(ctx context.Context, req *generated.UpdateServiceRequest) (*generated.ServiceResponse, error)
UpdateService updates an existing service.
func (*ServiceService) WatchScaling ¶
func (s *ServiceService) WatchScaling(req *generated.WatchScalingRequest, stream generated.ServiceService_WatchScalingServer) error
WatchScaling watches a service for scaling status changes and streams updates to the client.
func (*ServiceService) WatchServices ¶
func (s *ServiceService) WatchServices(req *generated.WatchServicesRequest, stream generated.ServiceService_WatchServicesServer) error
WatchServices watches services for changes.
type SnapshotService ¶
type SnapshotService struct {
generated.UnimplementedSnapshotServiceServer
// contains filtered or unexported fields
}
SnapshotService implements generated.SnapshotServiceServer.
func NewSnapshotService ¶
func NewSnapshotService(st store.Store, logger log.Logger, opts ...SnapshotServiceOption) *SnapshotService
NewSnapshotService constructs a SnapshotService.
func (*SnapshotService) CreateSnapshot ¶
func (s *SnapshotService) CreateSnapshot(ctx context.Context, req *generated.CreateSnapshotRequest) (*generated.SnapshotResponse, error)
func (*SnapshotService) DeleteSnapshot ¶
func (s *SnapshotService) DeleteSnapshot(ctx context.Context, req *generated.DeleteSnapshotRequest) (*generated.Status, error)
func (*SnapshotService) GetSnapshot ¶
func (s *SnapshotService) GetSnapshot(ctx context.Context, req *generated.GetSnapshotRequest) (*generated.SnapshotResponse, error)
func (*SnapshotService) ListSnapshots ¶
func (s *SnapshotService) ListSnapshots(ctx context.Context, req *generated.ListSnapshotsRequest) (*generated.ListSnapshotsResponse, error)
func (*SnapshotService) RestoreVolume ¶
func (s *SnapshotService) RestoreVolume(ctx context.Context, req *generated.RestoreVolumeRequest) (*generated.VolumeResponse, error)
RestoreVolume provisions a new Volume from this Snapshot. The new Volume starts in Pending with a Parameters["rune.io/restoreFromSnapshot"] stamp; the VolumeController routes that to Driver.RestoreFromSnapshot instead of Driver.Provision on first reconcile.
type SnapshotServiceOption ¶
type SnapshotServiceOption func(*SnapshotService)
SnapshotServiceOption configures optional SnapshotService behaviour.
func WithSnapshotDriverConfigs ¶
func WithSnapshotDriverConfigs(cfg map[string]map[string]any) SnapshotServiceOption
WithSnapshotDriverConfigs supplies the runefile [storage.drivers] map so the service can perform driver-capability lint at the write path (reject CreateSnapshot when the source volume's driver does not declare Capabilities.Snapshots).
type StorageClassService ¶
type StorageClassService struct {
generated.UnimplementedStorageClassServiceServer
// contains filtered or unexported fields
}
StorageClassService implements generated.StorageClassServiceServer. StorageClass is cluster-scoped (no namespace).
The service enforces the at-most-one-Default invariant on the API write path: when a Create or Update lands a class with Default=true, the handler atomically demotes any other class that currently has Default=true (writes go through the repo with EventSourceAPI so the VolumeController's watch-side enforcer treats them as external and skips its own re-demote pass). The orchestrator-side enforcer in pkg/orchestrator/controllers/volume_controller.go remains as belt-and-braces for clusters whose StorageClass rows pre-date this API check.
func NewStorageClassService ¶
func NewStorageClassService(st store.Store, logger log.Logger) *StorageClassService
NewStorageClassService constructs a StorageClassService.
func (*StorageClassService) CreateStorageClass ¶
func (s *StorageClassService) CreateStorageClass(ctx context.Context, req *generated.CreateStorageClassRequest) (*generated.StorageClassResponse, error)
func (*StorageClassService) DeleteStorageClass ¶
func (s *StorageClassService) DeleteStorageClass(ctx context.Context, req *generated.DeleteStorageClassRequest) (*generated.Status, error)
func (*StorageClassService) GetStorageClass ¶
func (s *StorageClassService) GetStorageClass(ctx context.Context, req *generated.GetStorageClassRequest) (*generated.StorageClassResponse, error)
func (*StorageClassService) ListStorageClasses ¶
func (s *StorageClassService) ListStorageClasses(ctx context.Context, req *generated.ListStorageClassesRequest) (*generated.ListStorageClassesResponse, error)
func (*StorageClassService) UpdateStorageClass ¶
func (s *StorageClassService) UpdateStorageClass(ctx context.Context, req *generated.UpdateStorageClassRequest) (*generated.StorageClassResponse, error)
type VIPAllocator ¶
VIPAllocator is the minimal surface ServiceService needs to allocate a stable cluster VIP for each new service. Implemented by pkg/networking/vip.Allocator. The interface keeps service.go free of a dependency on the networking package and lets tests inject a fake.
type VolumeService ¶
type VolumeService struct {
generated.UnimplementedVolumeServiceServer
// contains filtered or unexported fields
}
VolumeService implements generated.VolumeServiceServer.
func NewVolumeService ¶
func NewVolumeService(st store.Store, logger log.Logger, opts ...VolumeServiceOption) *VolumeService
NewVolumeService constructs a VolumeService.
func (*VolumeService) CreateVolume ¶
func (s *VolumeService) CreateVolume(ctx context.Context, req *generated.CreateVolumeRequest) (*generated.VolumeResponse, error)
func (*VolumeService) DeleteVolume ¶
func (s *VolumeService) DeleteVolume(ctx context.Context, req *generated.DeleteVolumeRequest) (*generated.Status, error)
func (*VolumeService) DetachVolume ¶
func (s *VolumeService) DetachVolume(ctx context.Context, req *generated.DetachVolumeRequest) (*generated.VolumeResponse, error)
DetachVolume clears bind state on a volume so a replacement instance can attach it. Without force=true the volume must already be Released or have no BoundClaim (i.e. it's safe to clear). With force=true the caller assumes responsibility for any data-loss risk if the previous holder is still alive; bind state is cleared regardless of status and the volume is moved to Available.
func (*VolumeService) GetVolume ¶
func (s *VolumeService) GetVolume(ctx context.Context, req *generated.GetVolumeRequest) (*generated.VolumeResponse, error)
func (*VolumeService) ListVolumes ¶
func (s *VolumeService) ListVolumes(ctx context.Context, req *generated.ListVolumesRequest) (*generated.ListVolumesResponse, error)
func (*VolumeService) RetryProvisionVolume ¶
func (s *VolumeService) RetryProvisionVolume(ctx context.Context, req *generated.RetryProvisionVolumeRequest) (*generated.VolumeResponse, error)
RetryProvisionVolume resets a Failed/Stalled volume back to Pending so the controller will attempt provisioning again. Volumes already in any other state are rejected with FailedPrecondition.
func (*VolumeService) UpdateVolume ¶
func (s *VolumeService) UpdateVolume(ctx context.Context, req *generated.UpdateVolumeRequest) (*generated.VolumeResponse, error)
type VolumeServiceOption ¶
type VolumeServiceOption func(*VolumeService)
VolumeServiceOption configures optional VolumeService behaviour.
func WithDriverConfigs ¶
func WithDriverConfigs(cfg map[string]map[string]any) VolumeServiceOption
WithDriverConfigs supplies the runefile [storage.drivers] map so the service can perform driver-capability lint at the write path (e.g. reject Volumes whose AccessMode is not in the driver's Capabilities.AccessModes, or whose local-host hostPath is outside the runefile allowlist). Optional — when omitted, driver-capability lint is skipped and the controller surfaces capability errors at provision time instead.