Proto commits in hobbyfarm/gargantua

These 19 commits are when the Protocol Buffers files have changed:

Commit:6739435
Author:Jan-Gerrit Göbel
Committer:GitHub

Draft: Better handling of provisioning (#232) * Better handling of provisioning * Add Error Status to VMClaim * Update Makefile

The documentation is generated from this commit.

Commit:2a8d0e4
Author:marcus-sva
Committer:GitHub

Quiz (#227) * add basic quiz service * refactor quiz and add quiz evaluation * add quiz to scenario step * refactor quiz and quiz evaluation * feat: rename unused type field to issuer --------- Co-authored-by: PhilipAB <philip.aguilarbremer@sva.de>

Commit:e178ca5
Author:Jan-Gerrit Göbel
Committer:GitHub

471: Delete VM and remove finalizers if needed (#228) * Delete VM and remove finalizers if needed * Also return creation date when sourcing VMs * VMService should return the creationTimestamp

Commit:78dac2a
Author:Jan-Gerrit Göbel
Committer:GitHub

Add Learnpaths, Course Catalog, Course Header Images (#205) * Add learnpath, catalog flag, header image path to courses * Retreive course catalog endpoint * fix: use correct variables in course update func --------- Co-authored-by: Philip Prinz <Philip.Prinz@sva.de>

Commit:aa3fe24
Author:marcus-sva
Committer:GitHub

Add service for cost-tracking (#212) * Add service for cost-tracking * Cleanup types in service for cost-tracking and cost calc via builder * Refactor cost tracking labels and add pointer util * Hook-up cost tracking via vmtemplate service * Cost base price is float64 * Add cost-service route /a/cost/detail/{cost_group}

Commit:c50d1df
Author:Philip Aguilar Bremer
Committer:GitHub

Change architecture to microservices (#194) * Implement missing OTAC RPCs * Remove TODO Command * Add labels field for otacs. We need this property in the future * Implement missing ac service functions * Refactor gRPC errors * Introduce general proto message definitions * Change proto package name * Add dbconfig proto type definitions * Refactoring * Expose HobbyfarmCRD function * Add crd config for dbconfig service * Add Dockerfile for dbconfig service * Refactoring crd generation * Fix mistake * Remove update of labels and restricted bind value. Since resources contain an owner reference, labels and restricted bind values should not be updated but rather inferred from the resource object's owner reference. * Implement dbconfig service * Minor changes * Add vm claim service * Add vmset service * Add progress service * Remove CRD installation of migrated services * Remove unused function * Add new grpc error helper functions * Fix error and add progress svc go module * Improve error handling for not found errors * Introduce caching for get/list and improve error handling * Implement caching for get/list * Add generic functions for Get and OwnerReferences * log error for unspecified IDs * Use generic getter function Improving code quality... * implement and use util function to delete hf resources further improving code quality ... * Implement generic unmarshall function * Fix integer typing * Add generic function to convert maps of type map[string] int/uint32 * Apply map conversion * Remove redundant imports * Add docker files * Implement internal part of vm template service * Rm CRDs, add generic func for CRD installation The CRDs removed here are migrated towards their respective microservice * Use generic function to generate CRDs * Implement vm service * move labels from util to labels package * Add GrpcBadRequestError * Add .proto definitions for vm service * Implement internal scheduled event service * Update proto definitions, use scheduled event service * Update proto go gen version * Add internal course and scenario service * Update proto definitions * Add internal environment service * Use correct label package and generic func to install CRDs * Use correct labels and generic func to install CRDs * Use correct label package * Use generic function to install CRDs * Add internal session service * Use session client, correct labels and generic CRD installer * Use generic CRD installer * Use correct labels package * Use generic CRD installer * Update to latest proto gen go version * Fix retrieval of setting values * Add new services to go.work * Update proto gen go version * Add missing microservices to MicroService type * Minor fix * Add deletion time stamp * Add deletion time stamp * Update function signatures * Add uid in proto definitions * Add uid to PreparedListSetting * Add uid * Return (list/get) annotations for environments and vms * provide ID to vm service * Add vmclaim controller * Simplify code * remove todo comment * Update proto-gen version * Implement vm controller * Add parameter to optionally pass workqueue directly to controller * Add deletion timestamp for vms * Fix typo * Add util function to add items to workqueue * Add util function to remove finalizers * Add wrapper type for string slices * Add parameter to enable the option updating finalizers on vms * Update error message * Add controller logic for vm sets * Remove old controller logic * Add controller logic to scheduledevent service * Rename scheduled event controller * Use new scheduled event controller logic * Remove old scheduled event controller logic * Add session controller logic to session service * Remove old session controller logic * Implement terraform service * Make GrpcNotFoundError function a generic function * Return NotFoundError if to be deleted item is not found * Add terraform service * Add terraform client to vm svc and its controller * Readd ContainsFinalizer utility function * Add option to update secret name for vm * Update tf service to return resource id after state creation * Fix typo * Add utility function to watch/verify object deletion * Add proto file change to allow vm updates for secret name * Move terraform controller logic into vm controller * Remove old controller logic * Add vm tasks to protobuf specification * change property types * Add vm tasks to scenario service * Add missing route to authn service * Remove old authserver logic * Update package names for protobuf modules * Simplify api server creation for user service * Add function to safely extract grpc error details * Add function to convert []*generalpb.StringMap to []map[string]string * Simplify and improve grpc error handling * Migrate course api server logic * Start api server via course service * Minor fix * Rename rbac import name * Rename function name. Add conversion functions. * Migrate environment api server logic * Start environment api logic in environment service * Migrate progress api server logic * Run go mod tidy * Add comment explaining why progress api server is using progress k8s client directly * Rename imports * move course utility func to util module This is needed because the AppendDynamicScenariosByCategories function is also used inside the scenario service * Improve error handling * Remove redundant return statements * Simplify if expression * Add utility functions to filter for sessions/scheduled events * Change VMTask property name * Add copy function to grpc server * Migrate scenario API server logic * Make struct map conversion generic * Rename function * Add max duration param for grpc OTAC creation func * Migrate and apply scheduled event api server logic * minor refactoring * Rename field name * Change return type * Change return type * Implement the option to update a collection of progress data * Add comment * Migrate session api server logic * Change proto message field name * Run go.mod tidy * Migrate vm claim server logic * Implement vmset api server logic * Refactor wait group logic * Run go.mod tidy * Migrate vm api server logic * Migrate vm template api logic * Refactor shell service * Refactor gargantua main.go and remove legacy code * Add jobs for new services * Run go.mod tidy * Fix index out of bounds error * Bug fixes * Set WorkScheduler in controllers * Fix typos/bugs * Minor refactoring * Minor bug fix * Use fixed version for protoc-gen-go-grpc module * Fix deletion of vm sets for finished scheduled events

Commit:fb2d394
Author:Jan-Gerrit Göbel
Committer:GitHub

Last login timestamp & Method to retrieve it for the admin ui (#182)

Commit:32e7fa6
Author:Jan-Gerrit Göbel
Committer:GitHub

Add OTAC MaxDuration (#177) * Add OTAC MaxDuration * Update generate-protos for v3, Add MaxDuration to OTAC proto * Change OTAC Creation to POST

Commit:5426f0a
Author:Eamon Bauman
Committer:GitHub

Fix codegen to work with v3 module, non GOPATH location (#171) * mod to v3 with proper dir * fixed generate-client.sh to work with v3 mod * moved protos and services under v3 * updated path for build workflow

Commit:1c2c747
Author:Jan-Gerrit Göbel
Committer:GitHub

Add setting for strict validation of accesscodes (#167)

Commit:48ff91b
Author:Philip Aguilar Bremer
Committer:GitHub

Microservices for authentication and authorization (#148) * Initial commit - microservices for authr and authn * Clean up, refactoring, migrating to auth services * Fallback to gargantua for scheduled events * delete unused * Enable forward compatibility for grpc services * Roles/Rolebindings can now be accessed internally * Use indexer to retrieve users by email * Add flags to enable/disable reflection * Add shell script to generate proto files * Update (generated) proto files * Only return rolebindings managed by hobbyfarm * Use marshaller for protobuf msg wherever possible * Fix update user function * Fix UpdateSettings function * Remove the not updated properties from user object * Merging (part 2) + bug fixes * Undo changes in Makefile * Specify version (latest) for go proto/grpc plugins * Return empty slices/maps instead of nil * Different resource locks for different pods * Remove debug logs * Introduce setting service * Introduce microservices string type * Move interal folder and Dockerfile into service folder * Increase to k8s-client to 0.28.2, add sumbodules for each service * change comments, clean up dockerfiles * Use shared grpc client * Remove getk8sDNSServer Util function * Remove LeaderElection, change authService to use shared client * Introduce round robin for grpc, clean up main.go files * Refactor TLS Certificate builder, hfclient builder * More shared functions to reduce duplicate code * Remove duplicate flag.Parse * Add grpc connection watchdog, connecto to multiple services while waiting for state READY * Add common http API Start method * Add default api port * Improve watchdog to print all states until an error is resolved * Change comment about watchdog * reusable workflow for services * Change workflow trigger * Change path for gargantua * Define inputs * Inhterit secrets * Add quotes * Add missing dollar * set entrypoint to app, add missing services * Resolve circular dependency * Improve watchdog * Improve logs when fatal * Fix 384 * Add gorilla/mux to go.mod * Change makefile to only use Dockerfile, change Dockerfile to use app entrypoint * Fix logging error in watchdog where Ready was never logged * Add ko to gitignore, remove .cluster.local * Delete multiple access codes and also delete the last one --------- Co-authored-by: Jan-Gerrit Goebel <Jan-Gerrit.Goebel@sva.de>

Commit:e246613
Author:Gaurav Mehta
Committer:GitHub

Bump k8s client-go to v0.20.2 (#83) * Changed ratelimiter for scheduled events * Updated to client-go v0.20.2 * Updated to v0.20.2. Removed vendored code * cleanup * removed vendored code * tmp changes * Added a dockerfile and Makefile Co-authored-by: Gaurav Mehta <gaurav.mehta@suse.com>

This commit does not contain any .proto files.

Commit:dc3430c
Author:Bryton Hall

Merge branch 'master' into course-object

Commit:5ab6a01
Author:Luther Monson
Committer:Chris Kim

k8s.io/code-generator vendoring (#35) * adding tools vendoring trick * vendor * generate

Commit:1af7392
Author:Bryton Hall

hardcode code-generator to release-1.14

Commit:6ca6f7d
Author:Bryton Hall

update vendor modules Just ran these commands: rm -r vendor go mod tidy go mod vendor git commit . . .

Commit:b73fb75
Author:Chris Kim

initial work with informer and indexer

Commit:c59a2e9
Author:Chris Kim

adding initial k8s client

Commit:5540e39
Author:Chris Kim

initial types commit