From cb39836ee01298d4f13ad8ecabd5d2375e1fdf6d Mon Sep 17 00:00:00 2001 From: Nikolay Edigaryev Date: Mon, 27 Mar 2023 17:30:54 +0400 Subject: [PATCH] Resources support (#63) * Resources support * Ability to provide VM and worker resources via the CLI * orchard dev: always listen on :6120 * orchard dev: support --resources * REST API: provide resource defaults when creating VM * OpenAPI: document "resources" field * orchard dev: serve Swagger API documentation on /v1/ * Integration guide --- IntegrationGuide.md | 16 +++ api/api.go | 6 + api/openapi.yaml | 16 +++ docs/orchard-api-documentation-browser.png | Bin 0 -> 215131 bytes go.mod | 23 ++- go.sum | 133 +++++++++++++++++- internal/command/create/vm.go | 24 +++- internal/command/dev/dev.go | 29 +++- internal/command/worker/run.go | 21 ++- internal/controller/api.go | 17 ++- internal/controller/api_vms.go | 8 ++ internal/controller/controller.go | 4 +- internal/controller/option.go | 6 + internal/controller/scheduler.go | 76 ---------- internal/controller/scheduler/scheduler.go | 77 ++++++++++ .../controller/scheduler/workertoresources.go | 26 ++++ .../scheduler/workertoresources_test.go | 24 ++++ internal/tests/integration_test.go | 2 +- internal/worker/option.go | 7 + internal/worker/worker.go | 16 ++- pkg/resource/v1/resources.go | 100 +++++++++++++ pkg/resource/v1/resources_test.go | 106 ++++++++++++++ pkg/resource/v1/v1.go | 6 + 23 files changed, 647 insertions(+), 96 deletions(-) create mode 100644 IntegrationGuide.md create mode 100644 api/api.go create mode 100644 docs/orchard-api-documentation-browser.png delete mode 100644 internal/controller/scheduler.go create mode 100644 internal/controller/scheduler/scheduler.go create mode 100644 internal/controller/scheduler/workertoresources.go create mode 100644 internal/controller/scheduler/workertoresources_test.go create mode 100644 pkg/resource/v1/resources.go create mode 100644 pkg/resource/v1/resources_test.go diff --git a/IntegrationGuide.md b/IntegrationGuide.md new file mode 100644 index 0000000..cb6b0c8 --- /dev/null +++ b/IntegrationGuide.md @@ -0,0 +1,16 @@ +# Integrating with Orchard + +Orchard has a REST API that follows [OpenAPI specification](https://swagger.io/specification/) and is described in `api/openapi.yaml`. + +You can run `orchard dev` locally and navigate to http://127.0.0.1:6120/v1/ for interactive documentation. + +![](docs/orchard-api-documentation-browser.png) + +## Resource management + +Some resources, such as `Worker` and `VM`, have a `resource` field which is a dictionary that maps between resource names and their amounts (amount requested or amount provided, depending on the resource) and is useful for scheduling. + +Well-known resources: + +* `org.cirruslabs.tart-vms` — number of Tart VM slots available on the machine or requested by the VM + * this number is `2` for workers and `1` for VMs by default diff --git a/api/api.go b/api/api.go new file mode 100644 index 0000000..59217ca --- /dev/null +++ b/api/api.go @@ -0,0 +1,6 @@ +package api + +import _ "embed" + +//go:embed openapi.yaml +var Spec []byte diff --git a/api/openapi.yaml b/api/openapi.yaml index 558cd58..1d33865 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -258,6 +258,14 @@ components: name: type: string description: Node name + resources: + type: object + description: | + Dictionary that maps the resource name to the + amount of this resource provided by the worker + for running VMs. + additionalProperties: + type: integer VM: title: Virtual Machine type: object @@ -265,6 +273,14 @@ components: name: type: string description: VM name + resources: + type: object + description: | + Dictionary that maps the resource name to the + amount of this resource required on the worker + for this VM to be scheduled + additionalProperties: + type: integer Events: title: Events type: object diff --git a/docs/orchard-api-documentation-browser.png b/docs/orchard-api-documentation-browser.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe1f6d34381410c69eb718a472ae06e7b801cd1 GIT binary patch literal 215131 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

f+S-&@%|JqX`(BU-f$^z&O? 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.GS37{>XSab+Od*wrDpZYOcB*hlFkPp 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") cmd.PersistentFlags().StringVar(&logFilePath, "log-file", "", "optional path to a file where logs (up to 100 Mb) will be written.") + cmd.PersistentFlags().StringToStringVar(&stringToStringResources, "resources", map[string]string{}, + "resources that this worker provides") + return cmd } @@ -44,6 +53,12 @@ func runWorker(cmd *cobra.Command, args []string) (err error) { return err } + // Convert resources + resources, err := v1.NewResourcesFromStringToString(stringToStringResources) + if err != nil { + return fmt.Errorf("%w: %v", ErrRunFailed, err) + } + controllerClient, err := client.New( client.WithAddress(controllerURL.String()), client.WithTrustedCertificate(bootstrapToken.Certificate()), @@ -65,7 +80,11 @@ func runWorker(cmd *cobra.Command, args []string) (err error) { } }() - workerInstance, err := worker.New(controllerClient, worker.WithLogger(logger)) + workerInstance, err := worker.New( + controllerClient, + worker.WithResources(resources), + worker.WithLogger(logger), + ) if err != nil { return err } diff --git a/internal/controller/api.go b/internal/controller/api.go index ba5a964..395e460 100644 --- a/internal/controller/api.go +++ b/internal/controller/api.go @@ -4,12 +4,14 @@ import ( "context" "crypto/subtle" "errors" + "github.com/cirruslabs/orchard/api" storepkg "github.com/cirruslabs/orchard/internal/controller/store" "github.com/cirruslabs/orchard/internal/responder" v1pkg "github.com/cirruslabs/orchard/pkg/resource/v1" "github.com/cirruslabs/orchard/rpc" "github.com/deckarep/golang-set/v2" "github.com/gin-gonic/gin" + "github.com/go-openapi/runtime/middleware" "google.golang.org/grpc/metadata" "net/http" ) @@ -29,9 +31,22 @@ func (controller *Controller) initAPI() *gin.Engine { // A way to for the clients to check that the API is working v1.GET("/", func(c *gin.Context) { - c.Status(http.StatusOK) + if controller.enableSwaggerDocs { + middleware.SwaggerUI(middleware.SwaggerUIOpts{ + Path: "/v1", + SpecURL: "/v1/openapi.yaml", + }, nil).ServeHTTP(c.Writer, c.Request) + } else { + c.Status(http.StatusOK) + } }) + if controller.enableSwaggerDocs { + v1.GET("/openapi.yaml", func(c *gin.Context) { + c.Data(200, "text/yaml", api.Spec) + }) + } + // Service accounts v1.POST("/service-accounts", func(c *gin.Context) { controller.createServiceAccount(c).Respond(c) diff --git a/internal/controller/api_vms.go b/internal/controller/api_vms.go index d6d90b8..b589555 100644 --- a/internal/controller/api_vms.go +++ b/internal/controller/api_vms.go @@ -30,6 +30,14 @@ func (controller *Controller) createVM(ctx *gin.Context) responder.Responder { vm.CreatedAt = time.Now() vm.UID = uuid.New().String() + // Provide resource defaults + if vm.Resources == nil { + vm.Resources = make(v1.Resources) + } + if _, ok := vm.Resources[v1.ResourceTartVMs]; !ok { + vm.Resources[v1.ResourceTartVMs] = 1 + } + return controller.storeUpdate(func(txn storepkg.Transaction) responder.Responder { // Does the VM resource with this name already exists? _, err := txn.GetVM(vm.Name) diff --git a/internal/controller/controller.go b/internal/controller/controller.go index a837ef4..335e6fb 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -7,6 +7,7 @@ import ( "fmt" "github.com/cirruslabs/orchard/internal/controller/notifier" "github.com/cirruslabs/orchard/internal/controller/proxy" + "github.com/cirruslabs/orchard/internal/controller/scheduler" storepkg "github.com/cirruslabs/orchard/internal/controller/store" "github.com/cirruslabs/orchard/internal/controller/store/badger" "github.com/cirruslabs/orchard/internal/netconstants" @@ -40,6 +41,7 @@ type Controller struct { grpcServer *grpc.Server workerNotifier *notifier.Notifier proxy *proxy.Proxy + enableSwaggerDocs bool rpc.UnimplementedControllerServer } @@ -137,7 +139,7 @@ func (controller *Controller) Run(ctx context.Context) error { // Run the scheduler so that each VM will eventually // be assigned to a specific Worker go func() { - err := runScheduler(controller.store) + err := scheduler.Run(controller.store) if err != nil { panic(err) } diff --git a/internal/controller/option.go b/internal/controller/option.go index a79f1b8..67f084d 100644 --- a/internal/controller/option.go +++ b/internal/controller/option.go @@ -31,6 +31,12 @@ func WithInsecureAuthDisabled() Option { } } +func WithSwaggerDocs() Option { + return func(controller *Controller) { + controller.enableSwaggerDocs = true + } +} + func WithLogger(logger *zap.Logger) Option { return func(controller *Controller) { controller.logger = logger.Sugar() diff --git a/internal/controller/scheduler.go b/internal/controller/scheduler.go deleted file mode 100644 index 4c47c69..0000000 --- a/internal/controller/scheduler.go +++ /dev/null @@ -1,76 +0,0 @@ -package controller - -import ( - storepkg "github.com/cirruslabs/orchard/internal/controller/store" - "github.com/cirruslabs/orchard/pkg/resource/v1" - "sort" - "time" -) - -const schedulerInterval = 5 * time.Second - -func runScheduler(store storepkg.Store) error { - ticker := time.NewTicker(schedulerInterval) - - for { - if err := runSchedulerInner(store); err != nil { - return err - } - - <-ticker.C - } -} - -func runSchedulerInner(store storepkg.Store) error { - var vms []v1.VM - var workers []v1.Worker - var err error - - err = store.View(func(txn storepkg.Transaction) error { - vms, err = txn.ListVMs() - if err != nil { - return err - } - - workers, err = txn.ListWorkers() - if err != nil { - return err - } - - return nil - }) - if err != nil { - return err - } - - // Sort VMs by date of creation - sort.Slice(vms, func(i, j int) bool { - return vms[i].CreatedAt.Before(vms[j].CreatedAt) - }) - - for _, vm := range vms { - vm := vm - - if vm.Worker != "" { - continue - } - - // Find an appropriate worker to run this VM on - for _, worker := range workers { - worker := worker - - vm.Worker = worker.Name - - err := store.Update(func(txn storepkg.Transaction) error { - return txn.SetVM(vm) - }) - if err != nil { - return err - } - - break - } - } - - return nil -} diff --git a/internal/controller/scheduler/scheduler.go b/internal/controller/scheduler/scheduler.go new file mode 100644 index 0000000..5ada296 --- /dev/null +++ b/internal/controller/scheduler/scheduler.go @@ -0,0 +1,77 @@ +package scheduler + +import ( + storepkg "github.com/cirruslabs/orchard/internal/controller/store" + "github.com/cirruslabs/orchard/pkg/resource/v1" + "sort" + "time" +) + +const schedulerInterval = 5 * time.Second + +func Run(store storepkg.Store) error { + ticker := time.NewTicker(schedulerInterval) + + for { + if err := runInner(store); err != nil { + return err + } + + <-ticker.C + } +} + +func runInner(store storepkg.Store) error { + return store.Update(func(txn storepkg.Transaction) error { + vms, err := txn.ListVMs() + if err != nil { + return err + } + unscheduledVMs, workerToResources := processVMs(vms) + + workers, err := txn.ListWorkers() + if err != nil { + return err + } + + for _, unscheduledVM := range unscheduledVMs { + // Find a worker that can run this VM + for _, worker := range workers { + resourcesUsed := workerToResources.Get(worker.Name) + resourcesRemaining := worker.Resources.Subtracted(resourcesUsed) + + if resourcesRemaining.CanFit(unscheduledVM.Resources) { + unscheduledVM.Worker = worker.Name + + if err := txn.SetVM(unscheduledVM); err != nil { + return err + } + + workerToResources.Add(worker.Name, unscheduledVM.Resources) + } + } + } + + return nil + }) +} + +func processVMs(vms []v1.VM) ([]v1.VM, WorkerToResources) { + var unscheduledVMs []v1.VM + workerToResources := make(WorkerToResources) + + for _, vm := range vms { + if vm.Worker == "" { + unscheduledVMs = append(unscheduledVMs, vm) + } else if !vm.TerminalState() { + workerToResources.Add(vm.Worker, vm.Resources) + } + } + + // Sort unscheduled VMs by the date of creation + sort.Slice(unscheduledVMs, func(i, j int) bool { + return unscheduledVMs[i].CreatedAt.Before(unscheduledVMs[j].CreatedAt) + }) + + return unscheduledVMs, workerToResources +} diff --git a/internal/controller/scheduler/workertoresources.go b/internal/controller/scheduler/workertoresources.go new file mode 100644 index 0000000..f794945 --- /dev/null +++ b/internal/controller/scheduler/workertoresources.go @@ -0,0 +1,26 @@ +package scheduler + +import v1 "github.com/cirruslabs/orchard/pkg/resource/v1" + +type WorkerToResources map[string]v1.Resources + +func (workerToResources WorkerToResources) Add(name string, other v1.Resources) { + workerResources, ok := workerToResources[name] + if !ok { + workerResources = make(v1.Resources) + } + + workerResources.Add(other) + + workerToResources[name] = workerResources +} + +func (workerToResources WorkerToResources) Get(name string) v1.Resources { + workerResources, ok := workerToResources[name] + if !ok { + workerResources = make(v1.Resources) + workerToResources[name] = workerResources + } + + return workerResources +} diff --git a/internal/controller/scheduler/workertoresources_test.go b/internal/controller/scheduler/workertoresources_test.go new file mode 100644 index 0000000..eb04715 --- /dev/null +++ b/internal/controller/scheduler/workertoresources_test.go @@ -0,0 +1,24 @@ +package scheduler_test + +import ( + "github.com/cirruslabs/orchard/internal/controller/scheduler" + v1 "github.com/cirruslabs/orchard/pkg/resource/v1" + "github.com/stretchr/testify/require" + "testing" +) + +func TestWorkerToResources(t *testing.T) { + workerToResources := make(scheduler.WorkerToResources) + require.Len(t, workerToResources, 0) + + workerToResources.Add("worker-name", v1.Resources{ + "tart-vms": 1, + }) + require.Len(t, workerToResources, 1) + + workerToResources.Add("worker-name", v1.Resources{ + "tart-vms": 1, + }) + require.Len(t, workerToResources, 1) + require.Equal(t, v1.Resources{"tart-vms": 2}, workerToResources.Get("worker-name")) +} diff --git a/internal/tests/integration_test.go b/internal/tests/integration_test.go index 9b701a0..3faeb02 100644 --- a/internal/tests/integration_test.go +++ b/internal/tests/integration_test.go @@ -151,7 +151,7 @@ func Wait(duration time.Duration, condition func() bool) bool { func StartIntegrationTestEnvironment(t *testing.T) *client.Client { t.Setenv("ORCHARD_HOME", t.TempDir()) - devController, devWorker, err := dev.CreateDevControllerAndWorker(t.TempDir()) + devController, devWorker, err := dev.CreateDevControllerAndWorker(t.TempDir(), ":0", nil) if err != nil { t.Fatal(err) } diff --git a/internal/worker/option.go b/internal/worker/option.go index dfff19b..4ea85d0 100644 --- a/internal/worker/option.go +++ b/internal/worker/option.go @@ -1,11 +1,18 @@ package worker import ( + v1 "github.com/cirruslabs/orchard/pkg/resource/v1" "go.uber.org/zap" ) type Option func(*Worker) +func WithResources(resources v1.Resources) Option { + return func(worker *Worker) { + worker.resources = resources + } +} + func WithLogger(logger *zap.Logger) Option { return func(worker *Worker) { worker.logger = logger.Sugar() diff --git a/internal/worker/worker.go b/internal/worker/worker.go index b1c966e..a85b2cc 100644 --- a/internal/worker/worker.go +++ b/internal/worker/worker.go @@ -23,10 +23,11 @@ var ErrPollFailed = errors.New("failed to poll controller") var ErrRegistrationFailed = errors.New("failed to register worker on the controller") type Worker struct { - name string - vmm *vmmanager.VMManager - client *client.Client - logger *zap.SugaredLogger + name string + vmm *vmmanager.VMManager + client *client.Client + resources v1.Resources + logger *zap.SugaredLogger } func New(client *client.Client, opts ...Option) (*Worker, error) { @@ -49,6 +50,12 @@ func New(client *client.Client, opts ...Option) (*Worker, error) { worker.name = hostname } + + defaultResources := v1.Resources{ + v1.ResourceTartVMs: 2, + } + worker.resources = defaultResources.Merged(worker.resources) + if worker.logger == nil { worker.logger = zap.NewNop().Sugar() } @@ -116,6 +123,7 @@ func (worker *Worker) registerWorker(ctx context.Context) error { Meta: v1.Meta{ Name: worker.name, }, + Resources: worker.resources, LastSeen: time.Now(), MachineID: platformUUID, }) diff --git a/pkg/resource/v1/resources.go b/pkg/resource/v1/resources.go new file mode 100644 index 0000000..28bcaa1 --- /dev/null +++ b/pkg/resource/v1/resources.go @@ -0,0 +1,100 @@ +package v1 + +import ( + "errors" + "fmt" + "strconv" +) + +var ErrInvalidResourceValue = errors.New("resource values should be 64-bit unsigned integers") + +const ( + ResourceTartVMs = "org.cirruslabs.tart-vms" +) + +type Resources map[string]uint64 + +func NewResourcesFromStringToString( + stringToStringResources map[string]string, +) (Resources, error) { + result := make(Resources) + + for key, value := range stringToStringResources { + typedValue, err := strconv.ParseUint(value, 10, 64) + if err != nil { + return nil, fmt.Errorf("%w: %v", ErrInvalidResourceValue, err) + } + + result[key] = typedValue + } + + return result, nil +} + +func (resources Resources) Copy() Resources { + result := make(Resources) + + for key, value := range resources { + result[key] = value + } + + return result +} + +func (resources Resources) Add(other Resources) { + for otherKey, otherValue := range other { + resources[otherKey] += otherValue + } +} + +func (resources Resources) Added(other Resources) Resources { + result := resources.Copy() + + for otherKey, otherValue := range other { + result[otherKey] += otherValue + } + + return result +} + +func (resources Resources) Subtract(other Resources) { + for otherKey, otherValue := range other { + resources[otherKey] -= otherValue + } +} + +func (resources Resources) Subtracted(other Resources) Resources { + result := resources.Copy() + + for otherKey, otherValue := range other { + result[otherKey] -= otherValue + } + + return result +} + +func (resources Resources) Merge(other Resources) { + for otherKey, otherValue := range other { + resources[otherKey] = otherValue + } +} + +func (resources Resources) Merged(other Resources) Resources { + result := resources.Copy() + + for otherKey, otherValue := range other { + result[otherKey] = otherValue + } + + return result +} + +func (resources Resources) CanFit(other Resources) bool { + for otherKey, otherValue := range other { + if otherValue > resources[otherKey] { + return false + } + } + + return true +} diff --git a/pkg/resource/v1/resources_test.go b/pkg/resource/v1/resources_test.go new file mode 100644 index 0000000..903ccfd --- /dev/null +++ b/pkg/resource/v1/resources_test.go @@ -0,0 +1,106 @@ +package v1_test + +import ( + v1 "github.com/cirruslabs/orchard/pkg/resource/v1" + "github.com/stretchr/testify/require" + "math" + "testing" +) + +func TestResourcesAdd(t *testing.T) { + resources := v1.Resources{ + v1.ResourceTartVMs: 1, + } + + resources.Add(v1.Resources{v1.ResourceTartVMs: 3}) + + require.Equal(t, v1.Resources{v1.ResourceTartVMs: 4}, resources) +} + +func TestResourcesAdded(t *testing.T) { + resources := v1.Resources{ + v1.ResourceTartVMs: 1, + } + + resources = resources.Added(v1.Resources{v1.ResourceTartVMs: 3}) + + require.Equal(t, v1.Resources{v1.ResourceTartVMs: 4}, resources) +} + +func TestResourcesSubtract(t *testing.T) { + resources := v1.Resources{ + v1.ResourceTartVMs: 2, + } + + resources.Subtract(v1.Resources{ + v1.ResourceTartVMs: 1, + }) + + require.False(t, resources.CanFit(v1.Resources{ + v1.ResourceTartVMs: 2, + })) +} + +func TestResourcesSubtracted(t *testing.T) { + resources := v1.Resources{ + v1.ResourceTartVMs: 2, + } + + resources = resources.Subtracted(v1.Resources{ + v1.ResourceTartVMs: 1, + }) + + require.False(t, resources.CanFit(v1.Resources{ + v1.ResourceTartVMs: 2, + })) +} + +func TestResourcesCanFit(t *testing.T) { + resources := v1.Resources{ + v1.ResourceTartVMs: 2, + } + + require.True(t, resources.CanFit(v1.Resources{ + v1.ResourceTartVMs: 0, + })) + require.True(t, resources.CanFit(v1.Resources{ + v1.ResourceTartVMs: 1, + })) + require.True(t, resources.CanFit(v1.Resources{ + v1.ResourceTartVMs: 2, + })) + + require.False(t, resources.CanFit(v1.Resources{ + v1.ResourceTartVMs: 3, + })) + require.False(t, resources.CanFit(v1.Resources{ + v1.ResourceTartVMs: math.MaxUint64, + })) +} + +func TestResourcesMerge(t *testing.T) { + resources := v1.Resources{ + v1.ResourceTartVMs: 2, + "some-other": 5, + } + resources.Merge(v1.Resources{ + v1.ResourceTartVMs: 4, + }) + require.Equal(t, v1.Resources{ + v1.ResourceTartVMs: 4, + "some-other": 5, + }, resources) +} + +func TestResourcesMerged(t *testing.T) { + resources := v1.Resources{ + v1.ResourceTartVMs: 2, + "some-other": 5, + } + require.Equal(t, v1.Resources{ + v1.ResourceTartVMs: 4, + "some-other": 5, + }, resources.Merged(v1.Resources{ + v1.ResourceTartVMs: 4, + })) +} diff --git a/pkg/resource/v1/v1.go b/pkg/resource/v1/v1.go index c75cba4..e2b3eb0 100644 --- a/pkg/resource/v1/v1.go +++ b/pkg/resource/v1/v1.go @@ -25,6 +25,9 @@ type Worker struct { MachineID string + // Resources available on this Worker. + Resources Resources `json:"resources"` + Meta } @@ -52,6 +55,9 @@ type VM struct { // It is populated by the Controller when receiving a POST request. UID string `json:"uid"` + // Resources required by this VM. + Resources Resources `json:"resources"` + Meta }