From 094de35cf46f19432d14f85872d20c15e3336599 Mon Sep 17 00:00:00 2001 From: Abirdcfly Date: Fri, 29 Dec 2023 09:22:06 +0800 Subject: [PATCH] feat: set creator value in apiserver Signed-off-by: Abirdcfly --- apiserver/pkg/common/common.go | 6 ++++++ apiserver/pkg/dataset/dataset.go | 1 + apiserver/pkg/datasource/datasource.go | 3 +++ apiserver/pkg/embedder/embedder.go | 3 +++ apiserver/pkg/knowledgebase/knowledgebase.go | 13 +++++++------ apiserver/pkg/llm/llm.go | 2 ++ apiserver/pkg/model/model.go | 1 + apiserver/pkg/versioneddataset/versioned_dataset.go | 1 + apiserver/pkg/worker/worker.go | 1 + 9 files changed, 25 insertions(+), 6 deletions(-) diff --git a/apiserver/pkg/common/common.go b/apiserver/pkg/common/common.go index 5f2764885..15fab8c98 100644 --- a/apiserver/pkg/common/common.go +++ b/apiserver/pkg/common/common.go @@ -20,6 +20,7 @@ import ( "context" "errors" + "github.com/kubeagi/arcadia/apiserver/pkg/auth" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/client-go/dynamic" @@ -192,3 +193,8 @@ func WithPageNodeConvertFunc(convertFunc PageNodeConvertFunc) ListOptionsFunc { option.ConvertFunc = convertFunc } } + +func SetCreator(ctx context.Context, common *v1alpha1.CommonSpec) { + currentUser, _ := ctx.Value(auth.UserNameContextKey).(string) + common.Creator = currentUser +} diff --git a/apiserver/pkg/dataset/dataset.go b/apiserver/pkg/dataset/dataset.go index 2ba8f4ede..a7fc709ab 100644 --- a/apiserver/pkg/dataset/dataset.go +++ b/apiserver/pkg/dataset/dataset.go @@ -83,6 +83,7 @@ func CreateDataset(ctx context.Context, c dynamic.Interface, input *generated.Cr } dataset.Labels = utils.MapAny2Str(input.Labels) dataset.Annotations = utils.MapAny2Str(input.Annotations) + common.SetCreator(ctx, &dataset.Spec.CommonSpec) u, err := runtime.DefaultUnstructuredConverter.ToUnstructured(dataset) if err != nil { diff --git a/apiserver/pkg/datasource/datasource.go b/apiserver/pkg/datasource/datasource.go index 2bf994c1d..42cc5d90f 100644 --- a/apiserver/pkg/datasource/datasource.go +++ b/apiserver/pkg/datasource/datasource.go @@ -31,6 +31,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/dynamic" + "k8s.io/utils/pointer" "github.com/kubeagi/arcadia/api/base/v1alpha1" "github.com/kubeagi/arcadia/apiserver/graph/generated" @@ -80,6 +81,7 @@ func datasource2model(obj *unstructured.Unstructured) *generated.Datasource { ID: &id, Name: datasource.Name, Namespace: datasource.Namespace, + Creator: pointer.String(datasource.Spec.Creator), Labels: graphqlutils.MapStr2Any(obj.GetLabels()), Annotations: graphqlutils.MapStr2Any(obj.GetAnnotations()), DisplayName: &datasource.Spec.DisplayName, @@ -121,6 +123,7 @@ func CreateDatasource(ctx context.Context, c dynamic.Interface, input generated. }, }, } + common.SetCreator(ctx, &datasource.Spec.CommonSpec) // make endpoint endpoint, err := common.MakeEndpoint(ctx, c, generated.TypedObjectReferenceInput{ diff --git a/apiserver/pkg/embedder/embedder.go b/apiserver/pkg/embedder/embedder.go index 0e9fdadeb..7a2ce1ba0 100644 --- a/apiserver/pkg/embedder/embedder.go +++ b/apiserver/pkg/embedder/embedder.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/dynamic" + "k8s.io/utils/pointer" "github.com/kubeagi/arcadia/api/base/v1alpha1" "github.com/kubeagi/arcadia/apiserver/graph/generated" @@ -76,6 +77,7 @@ func Embedder2model(ctx context.Context, c dynamic.Interface, obj *unstructured. ID: &id, Name: obj.GetName(), Namespace: obj.GetNamespace(), + Creator: pointer.String(embedder.Spec.Creator), CreationTimestamp: &creationtimestamp, Labels: graphqlutils.MapStr2Any(obj.GetLabels()), Annotations: graphqlutils.MapStr2Any(obj.GetAnnotations()), @@ -146,6 +148,7 @@ func CreateEmbedder(ctx context.Context, c dynamic.Interface, input generated.Cr Namespace: &input.Namespace, } } + common.SetCreator(ctx, &embedder.Spec.CommonSpec) unstructuredEmbedder, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&embedder) if err != nil { diff --git a/apiserver/pkg/knowledgebase/knowledgebase.go b/apiserver/pkg/knowledgebase/knowledgebase.go index 6d8afcf46..1a0b6b3b0 100644 --- a/apiserver/pkg/knowledgebase/knowledgebase.go +++ b/apiserver/pkg/knowledgebase/knowledgebase.go @@ -21,17 +21,16 @@ import ( "sort" "strings" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "github.com/kubeagi/arcadia/api/base/v1alpha1" "github.com/kubeagi/arcadia/apiserver/graph/generated" "github.com/kubeagi/arcadia/apiserver/pkg/common" graphqlutils "github.com/kubeagi/arcadia/apiserver/pkg/utils" "github.com/kubeagi/arcadia/pkg/utils" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/dynamic" ) func knowledgebase2model(obj *unstructured.Unstructured) *generated.KnowledgeBase { @@ -87,6 +86,7 @@ func knowledgebase2model(obj *unstructured.Unstructured) *generated.KnowledgeBas ID: &id, Name: obj.GetName(), Namespace: obj.GetNamespace(), + Creator: &knowledgebase.Spec.Creator, Labels: graphqlutils.MapStr2Any(obj.GetLabels()), Annotations: graphqlutils.MapStr2Any(obj.GetAnnotations()), DisplayName: &knowledgebase.Spec.DisplayName, @@ -140,6 +140,7 @@ func CreateKnowledgeBase(ctx context.Context, c dynamic.Interface, name, namespa FileGroups: filegroups, }, } + common.SetCreator(ctx, &knowledgebase.Spec.CommonSpec) unstructuredKnowledgeBase, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&knowledgebase) if err != nil { diff --git a/apiserver/pkg/llm/llm.go b/apiserver/pkg/llm/llm.go index 7cd8bab61..73414ece7 100644 --- a/apiserver/pkg/llm/llm.go +++ b/apiserver/pkg/llm/llm.go @@ -80,6 +80,7 @@ func LLM2model(ctx context.Context, c dynamic.Interface, obj *unstructured.Unstr ID: &id, Name: obj.GetName(), Namespace: obj.GetNamespace(), + Creator: &llm.Spec.Creator, CreationTimestamp: &creationtimestamp, Labels: graphqlutils.MapStr2Any(obj.GetLabels()), Annotations: graphqlutils.MapStr2Any(obj.GetAnnotations()), @@ -221,6 +222,7 @@ func CreateLLM(ctx context.Context, c dynamic.Interface, input generated.CreateL Type: llms.LLMType(APIType), }, } + common.SetCreator(ctx, &llm.Spec.CommonSpec) // create auth secret if input.Endpointinput.Auth != nil { diff --git a/apiserver/pkg/model/model.go b/apiserver/pkg/model/model.go index 44965063e..cdb6f09c7 100644 --- a/apiserver/pkg/model/model.go +++ b/apiserver/pkg/model/model.go @@ -108,6 +108,7 @@ func CreateModel(ctx context.Context, c dynamic.Interface, input generated.Creat Types: types, }, } + common.SetCreator(ctx, &model.Spec.CommonSpec) unstructuredModel, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&model) if err != nil { return nil, err diff --git a/apiserver/pkg/versioneddataset/versioned_dataset.go b/apiserver/pkg/versioneddataset/versioned_dataset.go index f4a0e4b43..df83d0c30 100644 --- a/apiserver/pkg/versioneddataset/versioned_dataset.go +++ b/apiserver/pkg/versioneddataset/versioned_dataset.go @@ -360,6 +360,7 @@ func CreateVersionedDataset(ctx context.Context, c dynamic.Interface, input *gen if input.Description != nil { vds.Spec.Description = *input.Description } + common.SetCreator(ctx, &vds.Spec.CommonSpec) vds.SetLabels(graphqlutils.MapAny2Str(input.Labels)) vds.SetAnnotations(graphqlutils.MapAny2Str(input.Annotations)) if len(input.FileGrups) > 0 { diff --git a/apiserver/pkg/worker/worker.go b/apiserver/pkg/worker/worker.go index f1a952719..372eb24d5 100644 --- a/apiserver/pkg/worker/worker.go +++ b/apiserver/pkg/worker/worker.go @@ -174,6 +174,7 @@ func CreateWorker(ctx context.Context, c dynamic.Interface, input generated.Crea }, }, } + common.SetCreator(ctx, &worker.Spec.CommonSpec) // cpu & memory resources := v1.ResourceRequirements{