Versions in this module Expand all Collapse all v0 v0.1.0 Aug 13, 2026 Changes in this version + const CDIHookCommand + const DefaultAdvertisedIPLabel + const DefaultCABundlePath + const DefaultCDIKind + const DefaultCDISpecDir + const DefaultDRADriverName + const DefaultDRAEnabled + const DefaultDriverName + const DefaultHostRoot + const DefaultHostTargetPID + const DefaultKubeletPluginDir + const DefaultKubeletRegistrarDir + const DefaultLibCUDAPath + const DefaultLibNVMLPath + const DefaultNVSMIPath + const DefaultThunderClientNS + const DefaultThunderClientNamespace + const DefaultThunderInstallURL + const DefaultThunderTelemetryURL + const DefaultZoneLabel + const EnvAdvertisedIP + const EnvAdvertisedIPLabel + const EnvArtifactBaseURL + const EnvCABundlePath + const EnvCDISpecDir + const EnvDRADriverName + const EnvDRAEnabled + const EnvHostRoot + const EnvHostTargetPID + const EnvKubeletPluginDir + const EnvKubeletRegistrarDir + const EnvLibCUDAPath + const EnvLibNVMLPath + const EnvLibthunderSHA256 + const EnvLibthunderURL + const EnvMinNVDriverVersion + const EnvNVSMIPath + const EnvNode + const EnvThunderAPIToken + const EnvThunderAPIURL + const EnvThunderClientNS + const EnvThunderInstallURL + const EnvThunderTelemetryURL + const EnvZone + const EnvZoneLabel + const GPUTypeAttributeName + const ServiceAccountCA + const ServiceAccountToken + const ThunderClientInstallCommandEnv + const ThunderEnrollmentTokenEnv + const ThunderGuestDir + const ThunderGuestInstallScriptKey + const ThunderGuestSecretTokenKey + const ThunderGuestTokenPath + const ThunderReconcileInterval + const ThunderReconcileMaxBackoff + const ZoneAttributeName + var ErrNotFound = errors.New("not found") + var ThunderClientGVR = thunderclient.GVR + func IsNotFoundError(err error) bool + func Quantity(value int64) apiresource.Quantity + func Run(ctx context.Context, cfg Config) error + func RunCDIHook(ctx context.Context, opts CDIHookOptions, stdin io.Reader) error + func StageHookBinary(pluginDir string) (string, error) + func StartNodePlugin(ctx context.Context, driver *Driver, kube kubernetes.Interface, ...) (*kubeletplugin.Helper, error) + func ThunderClientName(claimUID types.UID) string + func ThunderGuestSetupSecretName(claimName string) string + type AllocatedDevice struct + DeviceName string + PoolName string + RequestName string + ShareID *types.UID + type Allocation struct + ClaimName string + ClaimNamespace string + ClaimUID types.UID + Consumer ResourceConsumer + DeviceName string + Devices []AllocatedDevice + GPUCount int64 + GPUType string + NodeName string + PoolName string + RequestName string + ShareID *types.UID + Zone string + type CDIDeviceStore interface + Create func(ctx context.Context, allocation Allocation, token string) (qualifiedName string, err error) + Remove func(ctx context.Context, qualifiedName string) error + StagedClientID func(qualifiedName string) string + type CDIHookOptions struct + ArtifactBaseURL string + CABundlePath string + CacheDir string + CentralURL string + ClientName string + InstallURL string + LibthunderSHA256 string + LibthunderURL string + StateDir string + TelemetryURL string + func ParseCDIHookArgs(args []string) (CDIHookOptions, error) + type Config struct + AdvertisedIP string + AdvertisedIPLabel string + ArtifactBaseURL string + CABundlePath string + CDISpecDir string + DRADriverName string + DRAEnabled bool + HostRoot string + HostTargetPID string + KubeletPluginDir string + KubeletRegistrarDir string + LibCUDAPath string + LibNVMLPath string + LibthunderSHA256 string + LibthunderURL string + MinDriverVersion string + NVSMIPath string + Node string + ThunderAPIToken string + ThunderAPIURL string + ThunderClientNS string + ThunderInstallURL string + ThunderTelemetryURL string + Zone string + ZoneLabel string + func ConfigFromEnv() (Config, error) + type Driver struct + CDI CDIDeviceStore + Clients ThunderClientStore + DriverName string + Guest GuestConfigStore + Kube kubernetes.Interface + Logger *slog.Logger + NodeName string + Tokens TokenIssuer + func (d *Driver) CDIInstallCommand() string + func (d *Driver) HandleError(ctx context.Context, err error, msg string) + func (d *Driver) PrepareResourceClaims(ctx context.Context, claims []*resourcev1.ResourceClaim) (map[types.UID]kubeletplugin.PrepareResult, error) + func (d *Driver) UnprepareResourceClaims(ctx context.Context, claims []kubeletplugin.NamespacedObject) (map[types.UID]error, error) + type FileCDIDeviceStore struct + ArtifactBaseURL string + CABundlePath string + CacheDir string + CentralURL string + ClientInstallCommand string + HookPath string + InstallURL string + Kind string + LibCUDAPath string + LibNVMLPath string + LibthunderSHA256 string + LibthunderURL string + NVSMIPath string + SpecDir string + StateDir string + TelemetryURL string + func NewFileCDIDeviceStore(specDir string) *FileCDIDeviceStore + func (s *FileCDIDeviceStore) Create(ctx context.Context, allocation Allocation, token string) (string, error) + func (s *FileCDIDeviceStore) Remove(ctx context.Context, qualifiedName string) error + func (s *FileCDIDeviceStore) StagedClientID(qualifiedName string) string + type GuestArtifacts struct + Namespace string + SecretName string + type GuestConfigStore interface + Create func(ctx context.Context, allocation Allocation, token string, ...) (GuestArtifacts, error) + Remove func(ctx context.Context, artifacts GuestArtifacts) error + type KubernetesGuestConfigStore struct + Client kubernetes.Interface + func NewKubernetesGuestConfigStore(client kubernetes.Interface) *KubernetesGuestConfigStore + func (s *KubernetesGuestConfigStore) Create(ctx context.Context, allocation Allocation, token string, ...) (GuestArtifacts, error) + func (s *KubernetesGuestConfigStore) Remove(ctx context.Context, artifacts GuestArtifacts) error + type KubernetesThunderClientStore struct + Client dynamic.Interface + Namespace string + func NewKubernetesThunderClientStore(client dynamic.Interface, namespace string) *KubernetesThunderClientStore + func (s *KubernetesThunderClientStore) Delete(ctx context.Context, claimUID types.UID) error + func (s *KubernetesThunderClientStore) Get(ctx context.Context, claimUID types.UID) (*ThunderClient, error) + func (s *KubernetesThunderClientStore) Upsert(ctx context.Context, client ThunderClient) error + type LibthunderArtifact struct + SHA256 string + URL string + type LibthunderCache struct + ArtifactBaseURL string + Dir string + HTTP *http.Client + InstallURL string + SHA256 string + URL string + func (c *LibthunderCache) Ensure(ctx context.Context) (string, error) + func (c *LibthunderCache) Path(artifact LibthunderArtifact) string + func (c *LibthunderCache) Resolve(ctx context.Context) (LibthunderArtifact, error) + type NodeInfo struct + ExternalIP string + InternalIP string + Labels map[string]string + func (n NodeInfo) NodeIP() string + type PluginConfig struct + DriverName string + KubeletPluginDir string + NodeName string + RegistrarDir string + type ResourceConsumer struct + APIGroup string + Name string + Namespace string + Resource string + UID types.UID + type ThunderClient struct + CDIName string + ClaimName string + ClaimNamespace string + ClaimUID types.UID + Consumer ResourceConsumer + CreatedAt time.Time + DeviceName string + EnrollmentTokenID string + GPUCount int64 + GPUType string + GuestNamespace string + GuestSecret string + NodeName string + PoolName string + RequestName string + ShareID *types.UID + UpdatedAt time.Time + Zone string + type ThunderClientConfig struct + AuthToken string + CentralAPIURL string + Claims string + ClientID string + DeviceID string + EnableGRPCTLS bool + GPUCount int + GPUType string + OrgID string + TelemetryCollector string + ThunderdDiscoveryEnabled bool + func ExchangeClientEnrollment(ctx context.Context, httpClient *http.Client, ...) (ThunderClientConfig, error) + type ThunderClientStore interface + Delete func(ctx context.Context, claimUID types.UID) error + Get func(ctx context.Context, claimUID types.UID) (*ThunderClient, error) + Upsert func(ctx context.Context, client ThunderClient) error + type ThunderTokenIssuer struct + Client *thunder.Client + ZoneID string + func (i ThunderTokenIssuer) Mint(ctx context.Context, allocation Allocation) (string, string, time.Time, error) + func (i ThunderTokenIssuer) Revoke(ctx context.Context, tokenID string) error + func (i ThunderTokenIssuer) RevokeClient(ctx context.Context, clientID string) error + type TokenIssuer interface + Mint func(ctx context.Context, allocation Allocation) (tokenID string, token string, expiresAt time.Time, err error) + Revoke func(ctx context.Context, tokenID string) error + RevokeClient func(ctx context.Context, clientID string) error v0.1.0-rc.1 Aug 13, 2026