kick out namespace creation
This commit is contained in:
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module oc-scheduler
|
|||||||
go 1.25.0
|
go 1.25.0
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.o-forge.io/core/oc-lib v0.0.0-20260317135927-72be3118b7af
|
cloud.o-forge.io/core/oc-lib v0.0.0-20260318143822-5976795d4406
|
||||||
github.com/beego/beego/v2 v2.3.8
|
github.com/beego/beego/v2 v2.3.8
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/robfig/cron v1.2.0
|
github.com/robfig/cron v1.2.0
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -30,6 +30,8 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20260317090440-1ac735cef10e h1:e/oYMPAqD27l3
|
|||||||
cloud.o-forge.io/core/oc-lib v0.0.0-20260317090440-1ac735cef10e/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA=
|
cloud.o-forge.io/core/oc-lib v0.0.0-20260317090440-1ac735cef10e/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA=
|
||||||
cloud.o-forge.io/core/oc-lib v0.0.0-20260317135927-72be3118b7af h1:IySCYxJrKUpmRa2R3hXSaYxfWf/cm28NRpmwluEmzBI=
|
cloud.o-forge.io/core/oc-lib v0.0.0-20260317135927-72be3118b7af h1:IySCYxJrKUpmRa2R3hXSaYxfWf/cm28NRpmwluEmzBI=
|
||||||
cloud.o-forge.io/core/oc-lib v0.0.0-20260317135927-72be3118b7af/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA=
|
cloud.o-forge.io/core/oc-lib v0.0.0-20260317135927-72be3118b7af/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20260318143822-5976795d4406 h1:FN1EtRWn228JprAbnY5K863Fzj+SzMqQtKRtwvECbLw=
|
||||||
|
cloud.o-forge.io/core/oc-lib v0.0.0-20260318143822-5976795d4406/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
|
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
|
||||||
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
|
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
package infrastructure
|
package infrastructure
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"oc-scheduler/conf"
|
|
||||||
|
|
||||||
oclib "cloud.o-forge.io/core/oc-lib"
|
|
||||||
"cloud.o-forge.io/core/oc-lib/models/booking"
|
"cloud.o-forge.io/core/oc-lib/models/booking"
|
||||||
"cloud.o-forge.io/core/oc-lib/models/resources/purchase_resource"
|
"cloud.o-forge.io/core/oc-lib/models/resources/purchase_resource"
|
||||||
"cloud.o-forge.io/core/oc-lib/models/utils"
|
"cloud.o-forge.io/core/oc-lib/models/utils"
|
||||||
@@ -40,7 +37,7 @@ func EmitNATS(peerID string, message tools.PropalgationMessage) {
|
|||||||
func ListenNATS() {
|
func ListenNATS() {
|
||||||
tools.NewNATSCaller().ListenNats(map[tools.NATSMethod]func(tools.NATSResponse){
|
tools.NewNATSCaller().ListenNats(map[tools.NATSMethod]func(tools.NATSResponse){
|
||||||
tools.PLANNER_EXECUTION: handlePlannerExecution,
|
tools.PLANNER_EXECUTION: handlePlannerExecution,
|
||||||
tools.PROPALGATION_EVENT: handlePropagationEvent,
|
tools.CONSIDERS_EVENT: handleConsidersEvent,
|
||||||
tools.REMOVE_RESOURCE: handleRemoveResource,
|
tools.REMOVE_RESOURCE: handleRemoveResource,
|
||||||
tools.CREATE_RESOURCE: handleCreateResource,
|
tools.CREATE_RESOURCE: handleCreateResource,
|
||||||
tools.CONFIRM_EVENT: handleConfirm,
|
tools.CONFIRM_EVENT: handleConfirm,
|
||||||
@@ -76,59 +73,3 @@ func draftTimeout(id string, dt tools.DataType) {
|
|||||||
}
|
}
|
||||||
fmt.Printf("draftTimeout: %s %s deleted (still draft after 10 min)\n", dt.String(), id)
|
fmt.Printf("draftTimeout: %s %s deleted (still draft after 10 min)\n", dt.String(), id)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
// Kubernetes namespace helper
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
func createNamespace(ns string) error {
|
|
||||||
/*
|
|
||||||
* This function is used to create a namespace.
|
|
||||||
* It takes the following parameters:
|
|
||||||
* - ns: the namespace you want to create
|
|
||||||
*/
|
|
||||||
logger := oclib.GetLogger()
|
|
||||||
serv, err := tools.NewKubernetesService(
|
|
||||||
conf.GetConfig().KubeHost+":"+conf.GetConfig().KubePort, conf.GetConfig().KubeCA,
|
|
||||||
conf.GetConfig().KubeCert, conf.GetConfig().KubeData)
|
|
||||||
if err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
c := context.Background()
|
|
||||||
|
|
||||||
ok, err := serv.GetNamespace(c, ns)
|
|
||||||
if ok != nil && err == nil {
|
|
||||||
logger.Debug().Msg("A namespace with name " + ns + " already exists")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
err = serv.CreateNamespace(c, ns)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = serv.CreateServiceAccount(c, ns)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
role := "argo-role"
|
|
||||||
err = serv.CreateRole(c, ns, role,
|
|
||||||
[][]string{
|
|
||||||
{"coordination.k8s.io"},
|
|
||||||
{""},
|
|
||||||
{""}},
|
|
||||||
[][]string{
|
|
||||||
{"leases"},
|
|
||||||
{"secrets"},
|
|
||||||
{"pods"}},
|
|
||||||
[][]string{
|
|
||||||
{"get", "create", "update"},
|
|
||||||
{"get"},
|
|
||||||
{"patch"}})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return serv.CreateRoleBinding(c, ns, "argo-role-binding", role)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -32,24 +32,14 @@ func handlePlannerExecution(resp tools.NATSResponse) {
|
|||||||
storePlanner(fmt.Sprintf("%v", m["peer_id"]), &p)
|
storePlanner(fmt.Sprintf("%v", m["peer_id"]), &p)
|
||||||
}
|
}
|
||||||
|
|
||||||
func handlePropagationEvent(resp tools.NATSResponse) {
|
func handleConsidersEvent(resp tools.NATSResponse) {
|
||||||
if resp.FromApp != "oc-discovery" {
|
fmt.Println("CONSIDERS_EVENT", resp.Datatype)
|
||||||
return
|
switch resp.Datatype {
|
||||||
}
|
|
||||||
var prop tools.PropalgationMessage
|
|
||||||
if err := json.Unmarshal(resp.Payload, &prop); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
switch prop.Action {
|
|
||||||
case tools.PB_CONSIDERS:
|
|
||||||
fmt.Println("PB_CONSIDERS")
|
|
||||||
switch tools.DataType(prop.DataType) {
|
|
||||||
case tools.BOOKING, tools.PURCHASE_RESOURCE:
|
case tools.BOOKING, tools.PURCHASE_RESOURCE:
|
||||||
fmt.Println("updateExecutionState", tools.DataType(prop.DataType))
|
fmt.Println("updateExecutionState", resp.Datatype)
|
||||||
updateExecutionState(prop.Payload, tools.DataType(prop.DataType))
|
updateExecutionState(resp.Payload, resp.Datatype)
|
||||||
case tools.WORKFLOW_EXECUTION:
|
case tools.WORKFLOW_EXECUTION:
|
||||||
confirmExecutionDrafts(prop.Payload)
|
confirmExecutionDrafts(resp.Payload)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,7 +229,6 @@ func confirmResource(id string, dt tools.DataType) {
|
|||||||
fmt.Printf("confirmResource: could not confirm booking %s: %v\n", id, err)
|
fmt.Printf("confirmResource: could not confirm booking %s: %v\n", id, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
createNamespace(bk.ExecutionsID) // create Namespace locally
|
|
||||||
self, err := oclib.GetMySelf()
|
self, err := oclib.GetMySelf()
|
||||||
if err == nil && self != nil {
|
if err == nil && self != nil {
|
||||||
go refreshSelfPlanner(self.PeerID, adminReq)
|
go refreshSelfPlanner(self.PeerID, adminReq)
|
||||||
|
|||||||
Reference in New Issue
Block a user