Skip to content

Commit a364732

Browse files
authored
Merge pull request #144 from gianlucam76/check-clusterapi
(bug) Running on clusters with no CAPI
2 parents 0c2554f + 98b3435 commit a364732

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

internal/server/http.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ import (
3030
"github.com/gin-gonic/gin"
3131
"github.com/go-logr/logr"
3232
corev1 "k8s.io/api/core/v1"
33+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
34+
apierrors "k8s.io/apimachinery/pkg/api/errors"
3335
"k8s.io/apimachinery/pkg/labels"
36+
"k8s.io/apimachinery/pkg/types"
3437
clusterv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
3538

3639
configv1beta1 "github.com/projectsveltos/addon-controller/api/v1beta1"
@@ -57,6 +60,26 @@ var (
5760
getManagedCAPIClusters = func(c *gin.Context) {
5861
ginLogger.V(logs.LogDebug).Info("get managed ClusterAPI Clusters")
5962

63+
manager := GetManagerInstance()
64+
65+
// Verify if CAPI CRD is deployed
66+
clusterCRD := &apiextensionsv1.CustomResourceDefinition{}
67+
err := manager.client.Get(c.Request.Context(), types.NamespacedName{Name: "clusters.cluster.x-k8s.io"}, clusterCRD)
68+
if err != nil {
69+
if apierrors.IsNotFound(err) {
70+
response := ClusterResult{
71+
TotalClusters: 0,
72+
ManagedClusters: []ManagedCluster{},
73+
}
74+
75+
// Return JSON response
76+
c.JSON(http.StatusOK, response)
77+
}
78+
79+
_ = c.AbortWithError(http.StatusBadRequest, err)
80+
return
81+
}
82+
6083
limit, skip := getLimitAndSkipFromQuery(c)
6184
ginLogger.V(logs.LogDebug).Info(fmt.Sprintf("limit %d skip %d", limit, skip))
6285
filters, err := getClusterFiltersFromQuery(c)
@@ -74,8 +97,6 @@ var (
7497
return
7598
}
7699

77-
manager := GetManagerInstance()
78-
79100
canListAll, err := manager.canListCAPIClusters(user)
80101
if err != nil {
81102
ginLogger.V(logs.LogInfo).Info(fmt.Sprintf("failed to verify permissions %s: %v", c.Request.URL, err))

0 commit comments

Comments
 (0)