added a new parameter to the /admiralty/targets route to specify the peerId of the peer targeted, allowing to name differently peers targeted in a namespace

This commit is contained in:
pb 2025-05-05 16:13:49 +02:00
parent 03f81c66f9
commit 8e8d0d3e01
3 changed files with 12 additions and 4 deletions

View File

@ -168,13 +168,21 @@ func (c *AdmiraltyController) CreateAdmiraltySource() {
// @Title CreateAdmiraltyTarget // @Title CreateAdmiraltyTarget
// @Description Create an Admiralty Target in the namespace associated to the executionID // @Description Create an Admiralty Target in the namespace associated to the executionID
// @Param execution path string true "execution id of the workflow" // @Param execution path string true "execution id of the workflow"
// @Param peer path string true "peerId of the peer the target points to"
// @Success 201 // @Success 201
// @router /target/:execution [post] // @router /target/:execution [post]
func (c *AdmiraltyController) CreateAdmiraltyTarget(){ func (c *AdmiraltyController) CreateAdmiraltyTarget(){
var data map[string]interface{} var data map[string]interface{}
execution := c.Ctx.Input.Param(":execution") execution := c.Ctx.Input.Param(":execution")
peerId := c.Ctx.Input.Param(":peer")
if execution == "" || peerId == "" {
c.Ctx.Output.SetStatus(400)
c.Data["json"] = map[string]string{"error" : "parameters can be empty"}
c.ServeJSON()
return
}
serv, err := infrastructure.NewService() serv, err := infrastructure.NewService()
if err != nil { if err != nil {
@ -185,7 +193,7 @@ func (c *AdmiraltyController) CreateAdmiraltyTarget(){
return return
} }
resp, err := serv.CreateAdmiraltyTarget(c.Ctx.Request.Context(),execution) resp, err := serv.CreateAdmiraltyTarget(c.Ctx.Request.Context(),execution, peerId)
if err != nil { if err != nil {
// change code to 500 // change code to 500
c.Ctx.Output.SetStatus(500) c.Ctx.Output.SetStatus(500)

View File

@ -19,7 +19,7 @@ type Infrastructure interface {
CreateAdmiraltySource(context context.Context,executionId string) ([]byte, error) CreateAdmiraltySource(context context.Context,executionId string) ([]byte, error)
CreateKubeconfigSecret(context context.Context,kubeconfig string, executionId string) ([]byte, error) CreateKubeconfigSecret(context context.Context,kubeconfig string, executionId string) ([]byte, error)
GetKubeconfigSecret(context context.Context,executionId string) ([]byte, error) GetKubeconfigSecret(context context.Context,executionId string) ([]byte, error)
CreateAdmiraltyTarget(context context.Context,executionId string)([]byte,error) CreateAdmiraltyTarget(context context.Context,executionId string, peerId string)([]byte,error)
GetOneNode(context context.Context,executionID string) (*v1.Node, error) GetOneNode(context context.Context,executionID string) (*v1.Node, error)
} }

View File

@ -280,7 +280,7 @@ func (k *KubernetesService) GetTargets(ctx context.Context) ([]string, error) {
// - have declared the same namespace as the one where the pods are created in the local cluster // - have declared the same namespace as the one where the pods are created in the local cluster
// //
// - have delcared a serviceAccount with sufficient permission to create pods // - have delcared a serviceAccount with sufficient permission to create pods
func (k *KubernetesService) CreateAdmiraltyTarget(context context.Context, executionId string) ([]byte, error) { func (k *KubernetesService) CreateAdmiraltyTarget(context context.Context, executionId string, peerId string) ([]byte, error) {
exists, err := k.GetKubeconfigSecret(context, executionId) exists, err := k.GetKubeconfigSecret(context, executionId)
if err != nil { if err != nil {
fmt.Println("Error verifying kube-secret before creating target") fmt.Println("Error verifying kube-secret before creating target")
@ -297,7 +297,7 @@ func (k *KubernetesService) CreateAdmiraltyTarget(context context.Context, execu
"apiVersion": "multicluster.admiralty.io/v1alpha1", "apiVersion": "multicluster.admiralty.io/v1alpha1",
"kind": "Target", "kind": "Target",
"metadata": map[string]interface{}{ "metadata": map[string]interface{}{
"name": "target-"+executionId, "name": "target-" + peerId + "-" +executionId,
"namespace": executionId, "namespace": executionId,
}, },
"spec": map[string]interface{}{ "spec": map[string]interface{}{