package kubernetes import ( "context" "net" "git.acooldomain.co/server-manager/backend/instancemanager" "git.acooldomain.co/server-manager/backend/models" kubernetesoperator "git.acooldomain.co/server-manager/kubernetes-operator" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/kubernetes" controllerruntime "sigs.k8s.io/controller-runtime" ) type InstanceManager struct { instancemanager.InstanceManager client *kubernetes.Clientset } // General // Read Only func (i *InstanceManager) GetImage(ctx context.Context, imageId string) (*instancemanager.Image, error) { return nil, nil } func (i *InstanceManager) ListImages(ctx context.Context) ([]instancemanager.Image, error) { return nil, nil } func (i *InstanceManager) GetServer(ctx context.Context, serverId string) (*instancemanager.Server, error) { return nil, nil } func (i *InstanceManager) ListServers(ctx context.Context) ([]instancemanager.Server, error) { return nil, nil } // State Changing func (i *InstanceManager) StartServer(ctx context.Context, serverId string, imageId string, command string, ports []models.Port) error { return nil } func (i *InstanceManager) StopServer(ctx context.Context, serverId string) error { return nil } func (i *InstanceManager) CreateServer(ctx context.Context) (*instancemanager.Server, error) { return nil, nil } func (i *InstanceManager) DeleteServer(ctx context.Context, serverId string) error { return nil } // Terminal // Status Changing func (i *InstanceManager) InteractiveTerminal(ctx context.Context, serverId string) (*net.Conn, error) { return nil, nil } func (i *InstanceManager) ResizeTerminal(ctx context.Context, serverId string, width uint, height uint) error { return nil } // File Browser // Read Only func (i *InstanceManager) GetFileBrowser(ctx context.Context, serverId string) (*models.FileBrowser, error) { return nil, nil } func (i *InstanceManager) ListFileBrowsers(ctx context.Context) ([]models.FileBrowser, error) { return nil, nil } // Status Changing func (i *InstanceManager) StartFileBrowser(ctx context.Context, serverId string) (*models.FileBrowser, error) { return nil, nil } func (i *InstanceManager) StopFileBrowser(ctx context.Context, serverId string) error { return nil } func NewInstanceManager(config models.KubernetesInstanceManagerConfig) (*InstanceManager, error) { kubernetesConfig, err := controllerruntime.GetConfig() if err != nil { return nil, err } scheme := runtime.NewScheme() if scheme != nil { return nil, nil } client, err := kubernetes.NewForConfig(kubernetesConfig) if err != nil { return nil, err } kubernetesoperator.AddToscheme(scheme) return &InstanceManager{client: client}, nil }