From 7b43fa19ff1fda6f16772a7e499425e46cc50c99 Mon Sep 17 00:00:00 2001 From: pb Date: Thu, 13 Mar 2025 16:39:50 +0100 Subject: [PATCH] Admiralty controller able to handle the setup of an admiralty connection between two peers --- controllers/admiralty.go | 19 ++++++++++++------- datacenter.json | 10 ++++++++++ infrastructure/kubernetes.go | 2 +- 3 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 datacenter.json diff --git a/controllers/admiralty.go b/controllers/admiralty.go index 1a1dd85..c3acb21 100644 --- a/controllers/admiralty.go +++ b/controllers/admiralty.go @@ -260,7 +260,7 @@ func(c *AdmiraltyController) GetKubeSecret() { // @Description Creat a secret from a Kubeconfig that will be associated to an Admiralty Target // @Param execution path string true "execution id of the workflow" -// @Param kubeconfig body controllers.Kubeconfig true "Kubeconfig to use when creating secret" +// @Param kubeconfig body controllers.RemoteKubeconfig true "Kubeconfig to use when creating secret" // @Success 201 // @router /secret/:execution [post] func (c *AdmiraltyController) CreateKubeSecret() { @@ -310,10 +310,8 @@ func (c *AdmiraltyController) CreateKubeSecret() { // @name GetAdmiraltyNodes // @description Allows user to test if an admiralty connection has already been established : Target and valid Secret set up on the local host and Source set up on remote host - // @Param execution path string true "execution id of the workflow" // @Success 200 -// @Success 203 // @router /node/:execution [get] func (c *AdmiraltyController) GetNodeReady(){ var secret v1.Secret @@ -380,7 +378,9 @@ func (c *AdmiraltyController) GetNodeReady(){ token, err := retrieveTokenFromKonfig(editedKubeconfig) if err != nil { - + fmt.Println("Error while trying to retrieve token for kubeconfing") + fmt.Println(err) + HandleControllerErrors(c.Controller,500,&err,nil) } // Decode token @@ -407,14 +407,19 @@ func (c *AdmiraltyController) GetNodeReady(){ func retrieveTokenFromKonfig(editedKubeconfig map[string]interface{}) (string,error) { var kubeUsers []KubeUser - b, err := json.Marshal(editedKubeconfig["users"]) + b, err := yaml.Marshal(editedKubeconfig["users"]) if err != nil { - fmt.Println() + fmt.Println("Error while retrieving the users attribute from the Kubeconfig") + fmt.Println(err) + return "", err } err = yaml.Unmarshal(b,&kubeUsers) if err != nil { - + fmt.Println("Error while unmarshalling users attribute from kubeconfig") + fmt.Println(err) + return "", nil } + fmt.Println(kubeUsers) token := kubeUsers[0].User.Token return token, nil diff --git a/datacenter.json b/datacenter.json new file mode 100644 index 0000000..8e206a4 --- /dev/null +++ b/datacenter.json @@ -0,0 +1,10 @@ +{ + "MONGO_URL": "mongodb://mongo:27017/", + "NATS_URL": "nats://localhost:4222", + "MONGO_DATABASE": "DC_myDC", + "KUBERNETES_SERVICE_HOST": "172.16.0.183", + "port": "8092", + "KUBE_CA": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTXpnNE5UazJNVFl3SGhjTk1qVXdNakEyTVRZek16TTJXaGNOTXpVd01qQTBNVFl6TXpNMgpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTXpnNE5UazJNVFl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFSbi9jVmNUb1orekZUdWZSL29qbG5JMnVpZXJYeTkxcWhxYWpHdWVobXYKV1A4NVQ1dXpkcE1rcFhrNnB5bTlFU0RlRjk1WDFkeTJqdjVFR3paZzZ2WWtvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVXJRK0xUR2NMNXBENnBxSEozaVh5CmZiMFRQUDR3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUlObXp3ejhOUVRCNFlURlZJd3BudDhpQjJ5alRlQjYKbkZxRUN6SWw0amUzQWlFQW04dzRma1h0UEhzUG1Yc0hhUXFGSkhkUm9SQ1pSa016akU3REdZY1lMNVE9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "KUBE_CERT": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQVRlZ0F3SUJBZ0lJYVlyeG5xbm54WEl3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOek00T0RVNU5qRTJNQjRYRFRJMU1ESXdOakUyTXpNek5sb1hEVEkyTURJdwpOakUyTXpNek5sb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJHeDVVb1Ura01obE9xeHgKTjhRV1FOOGF1ekxXRHpjZTBVbnRYWFdHUmFvWHdHdnlYUldkaFlQcVNoU0xJVGttMG5GV2t5cEZlNUdXTXJlVApZd0hReE9talNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCU0ZlbDVtUXNEaW1vMCtEUzZZZWM1QXdDRXFWREFLQmdncWhrak9QUVFEQWdOSUFEQkYKQWlFQWs3U3UrV3RmQks4SmVPazRreVFVdEFtMkxoak8zV25qOW5SdW9HbVpyTGdDSUJwdVNnNU5oMjUrYm1xMgpZQ2xEM3NLTGdQM1ZKUitCYytxS3h3UjVHbmJwCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUzTXpnNE5UazJNVFl3SGhjTk1qVXdNakEyTVRZek16TTJXaGNOTXpVd01qQTBNVFl6TXpNMgpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUzTXpnNE5UazJNVFl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFSTDJSZ1U5RHJZazhKUm4xeDlWSVI3eU5hdWVjaFZuK1pRdDVyeDZaalYKeFRSd0RFT0xXZ1MvbkNpYkp6eUVFNmhLUDVzczBPdnp0ZzlxeFZYU1orNzBvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVWhYcGVaa0xBNHBxTlBnMHVtSG5PClFNQWhLbFF3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnS09hYVMyczRSWWgrU3J0TXpXTnVtVHduajlKOTZuWUkKL0prdEhjNU5lQnNDSVFDbTY5a1U3cDA5V3hHYWdkNmRQbUlOQ09Fa2V2bzZoQ0dNQTNpd0ZlZ3BiQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "KUBE_DATA": "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU0yYUxXTmtPQ2ZGRTJxM2V1VE9kaHd0RXdxTWRaVUZTTlRPOG50OER0K1RvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFYkhsU2hUNlF5R1U2ckhFM3hCWkEzeHE3TXRZUE54N1JTZTFkZFlaRnFoZkFhL0pkRloyRgpnK3BLRklzaE9TYlNjVmFUS2tWN2taWXl0NU5qQWRERTZRPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=" +} \ No newline at end of file diff --git a/infrastructure/kubernetes.go b/infrastructure/kubernetes.go index 81c9bd5..f3ac221 100644 --- a/infrastructure/kubernetes.go +++ b/infrastructure/kubernetes.go @@ -391,7 +391,7 @@ func (k *KubernetesService) GetKubeconfigSecret(context context.Context,executio if err != nil { if(apierrors.IsNotFound(err)){ - fmt.Println("kube-secret not found for execution ", executionId) + fmt.Println("kube-secret not found for execution", executionId) return nil, nil } fmt.Println("Error while trying to contact API to get secret kube-secret-"+executionId)