backend/instancemanager/kubernetes/instance_manager.go

105 lines
2.6 KiB
Go

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
}