From 33cc299cb4f6afb7a15d4484d13d5df53f1a24c1 Mon Sep 17 00:00:00 2001 From: Youhwan Seol Date: Wed, 8 Feb 2023 19:04:48 +0900 Subject: [PATCH] implementation of deployment controller Change-Id: Ife5a110405ab380a69df4c705a83df24f5619dbe Signed-off-by: Youhwan Seol --- pkg/api/v1/deployment/deployment.go | 14 ++++++-- pkg/controller/v1/adapter/controller.go | 59 +++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 pkg/controller/v1/adapter/controller.go diff --git a/pkg/api/v1/deployment/deployment.go b/pkg/api/v1/deployment/deployment.go index fbc4fd0..df1d85d 100644 --- a/pkg/api/v1/deployment/deployment.go +++ b/pkg/api/v1/deployment/deployment.go @@ -27,6 +27,7 @@ import ( "gerrit.o-ran-sc.org/r/aiml-fw/aihp/ips/kserve-adapter/pkg/api/commons/utils" "gerrit.o-ran-sc.org/r/aiml-fw/aihp/ips/kserve-adapter/pkg/commons/errors" "gerrit.o-ran-sc.org/r/aiml-fw/aihp/ips/kserve-adapter/pkg/commons/logger" + "gerrit.o-ran-sc.org/r/aiml-fw/aihp/ips/kserve-adapter/pkg/controller/v1/adapter" ) type Command interface { @@ -37,6 +38,12 @@ type Executor struct { Command } +var ipsAdapter adapter.Command + +func init() { + ipsAdapter = adapter.Executor{} +} + func (Executor) Deploy(c *gin.Context) { logger.Logging(logger.DEBUG, "IN") defer logger.Logging(logger.DEBUG, "OUT") @@ -53,7 +60,10 @@ func (Executor) Deploy(c *gin.Context) { return } - // kserve client deploy logic - + err := ipsAdapter.Deploy(name, version) + if err != nil { + utils.WriteError(c.Writer, err) + return + } utils.WriteSuccess(c.Writer, http.StatusCreated, nil) } diff --git a/pkg/controller/v1/adapter/controller.go b/pkg/controller/v1/adapter/controller.go new file mode 100644 index 0000000..6506f68 --- /dev/null +++ b/pkg/controller/v1/adapter/controller.go @@ -0,0 +1,59 @@ +/* +================================================================================== + +Copyright (c) 2023 Samsung Electronics Co., Ltd. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +================================================================================== +*/ + +package adapter + +import ( + "os" + + "gerrit.o-ran-sc.org/r/aiml-fw/aihp/ips/kserve-adapter/pkg/client/kserve" + "gerrit.o-ran-sc.org/r/aiml-fw/aihp/ips/kserve-adapter/pkg/client/onboard" + "gerrit.o-ran-sc.org/r/aiml-fw/aihp/ips/kserve-adapter/pkg/commons/logger" +) + +type Command interface { + Deploy(name string, version string) error +} + +type Executor struct { + Command +} + +var kserveClient kserve.Command +var onboardClient onboard.Command + +func init() { + kserveClient = &kserve.Client{} + onboardClient = onboard.Executor{} + + kubeconfigPath := os.Getenv("KUBECONFIG") + err := kserveClient.Init(kubeconfigPath) + if err != nil { + os.Exit(8) + } +} + +func (Executor) Deploy(name string, version string) error { + logger.Logging(logger.DEBUG, "IN") + defer logger.Logging(logger.DEBUG, "OUT") + + // TODO: Get object from onboard & Deploy using kserveClient + + return nil +} -- 2.16.6