kick out namespace creation

This commit is contained in:
mr
2026-03-18 16:44:20 +01:00
parent e422efd267
commit 34be86b244
4 changed files with 16 additions and 84 deletions

View File

@@ -1,12 +1,9 @@
package infrastructure
import (
"context"
"encoding/json"
"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/resources/purchase_resource"
"cloud.o-forge.io/core/oc-lib/models/utils"
@@ -39,11 +36,11 @@ func EmitNATS(peerID string, message tools.PropalgationMessage) {
func ListenNATS() {
tools.NewNATSCaller().ListenNats(map[tools.NATSMethod]func(tools.NATSResponse){
tools.PLANNER_EXECUTION: handlePlannerExecution,
tools.PROPALGATION_EVENT: handlePropagationEvent,
tools.REMOVE_RESOURCE: handleRemoveResource,
tools.CREATE_RESOURCE: handleCreateResource,
tools.CONFIRM_EVENT: handleConfirm,
tools.PLANNER_EXECUTION: handlePlannerExecution,
tools.CONSIDERS_EVENT: handleConsidersEvent,
tools.REMOVE_RESOURCE: handleRemoveResource,
tools.CREATE_RESOURCE: handleCreateResource,
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)
}
// ---------------------------------------------------------------------------
// 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)
}

View File

@@ -32,24 +32,14 @@ func handlePlannerExecution(resp tools.NATSResponse) {
storePlanner(fmt.Sprintf("%v", m["peer_id"]), &p)
}
func handlePropagationEvent(resp tools.NATSResponse) {
if resp.FromApp != "oc-discovery" {
return
}
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:
fmt.Println("updateExecutionState", tools.DataType(prop.DataType))
updateExecutionState(prop.Payload, tools.DataType(prop.DataType))
case tools.WORKFLOW_EXECUTION:
confirmExecutionDrafts(prop.Payload)
}
func handleConsidersEvent(resp tools.NATSResponse) {
fmt.Println("CONSIDERS_EVENT", resp.Datatype)
switch resp.Datatype {
case tools.BOOKING, tools.PURCHASE_RESOURCE:
fmt.Println("updateExecutionState", resp.Datatype)
updateExecutionState(resp.Payload, resp.Datatype)
case tools.WORKFLOW_EXECUTION:
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)
return
}
createNamespace(bk.ExecutionsID) // create Namespace locally
self, err := oclib.GetMySelf()
if err == nil && self != nil {
go refreshSelfPlanner(self.PeerID, adminReq)