implementation of deployment controller 90/11190/1
authorYouhwan Seol <yh.seol@samsung.com>
Wed, 8 Feb 2023 10:04:48 +0000 (19:04 +0900)
committerYouhwan Seol <yh.seol@samsung.com>
Tue, 23 May 2023 03:14:12 +0000 (12:14 +0900)
Change-Id: Ife5a110405ab380a69df4c705a83df24f5619dbe
Signed-off-by: Youhwan Seol <yh.seol@samsung.com>
pkg/api/v1/deployment/deployment.go
pkg/controller/v1/adapter/controller.go [new file with mode: 0644]

index fbc4fd0..df1d85d 100644 (file)
@@ -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 (file)
index 0000000..6506f68
--- /dev/null
@@ -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
+}