From 8a25158d77311eec27d1fb3dc41e16bfbfceebcc Mon Sep 17 00:00:00 2001 From: "Igor D.C" Date: Fri, 25 Sep 2020 05:28:09 +0000 Subject: Implement Kubeconfig endpoint in DCM The /kubeconfig API path allows a client to retrieve a kubeconfig file for a specified cluster reference of a logical cloud. - includes CA cert, address, user private key and signed cert. This commit includes the "lazy-loading" implementation of certificate retrieval per cluster from Rsync (which happens when clients call). The certificate is read from the cluster status in appcontext. Thus, Monitor and Rsync need to be configured and running. Issue-ID: MULTICLOUD-1143 Change-Id: Ie94cd128e14c8a944861eced2bdc886d95fab6ed Signed-off-by: Igor D.C --- src/dcm/api/api.go | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'src/dcm/api/api.go') diff --git a/src/dcm/api/api.go b/src/dcm/api/api.go index 0f68a517..cd8589dd 100644 --- a/src/dcm/api/api.go +++ b/src/dcm/api/api.go @@ -71,18 +71,8 @@ func NewRouter( lcRouter.HandleFunc( "/logical-clouds/{logical-cloud-name}/terminate", logicalCloudHandler.terminateHandler).Methods("POST") - // To Do - // get kubeconfig - /*lcRouter.HandleFunc( - "/logical-clouds/{name}/kubeconfig?cluster-reference={cluster}", - logicalCloudHandler.getConfigHandler).Methods("GET") - //get status - lcRouter.HandleFunc( - "/logical-clouds/{name}/cluster-references/", - logicalCloudHandler.associateHandler).Methods("GET")*/ // Set up Cluster API - clusterHandler := clusterHandler{client: clusterClient} clusterRouter := router.PathPrefix("/v2/projects/{project-name}").Subrouter() clusterRouter.HandleFunc( @@ -100,6 +90,10 @@ func NewRouter( clusterRouter.HandleFunc( "/logical-clouds/{logical-cloud-name}/cluster-references/{cluster-reference}", clusterHandler.deleteHandler).Methods("DELETE") + // Get kubeconfig for cluster of logical cloud + clusterRouter.HandleFunc( + "/logical-clouds/{logical-cloud-name}/cluster-references/{cluster-reference}/kubeconfig", + clusterHandler.getConfigHandler).Methods("GET") // Set up User Permission API if userPermissionClient == nil { @@ -121,7 +115,6 @@ func NewRouter( userPermissionHandler.deleteHandler).Methods("DELETE") // Set up Quota API - quotaHandler := quotaHandler{client: quotaClient} quotaRouter := router.PathPrefix("/v2/projects/{project-name}").Subrouter() quotaRouter.HandleFunc( -- cgit 1.2.3-korg