105 lines
2.6 KiB
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
|
|
}
|