Skip to content

Commit 0ce3cbc

Browse files
🥁 handle errors on fethcing api resources (#772)
* handle errors on fethcing api resources * ⚙️ update cyclops to v0.18.1-rc.1 * back to server preferred resources --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 193f616 commit 0ce3cbc

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

cyclops-ctrl/pkg/cluster/k8sclient/modules.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,13 +203,13 @@ func (k *KubernetesClient) getManagedGVRs(moduleName string) ([]schema.GroupVers
203203
return existing, nil
204204
}
205205

206-
apiResources, err := k.clientset.Discovery().ServerPreferredResources()
206+
clusterApiResources, err := k.clusterApiResources()
207207
if err != nil {
208208
return nil, err
209209
}
210210

211211
gvrs := make([]schema.GroupVersionResource, 0)
212-
for _, resource := range apiResources {
212+
for _, resource := range clusterApiResources.resourcesList {
213213
gvk, err := schema.ParseGroupVersion(resource.GroupVersion)
214214
if err != nil {
215215
continue

cyclops-ctrl/pkg/cluster/k8sclient/resources.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"k8s.io/apimachinery/pkg/runtime/schema"
1919
"k8s.io/apimachinery/pkg/version"
2020
"k8s.io/apimachinery/pkg/watch"
21+
"k8s.io/client-go/discovery"
2122
"k8s.io/client-go/tools/cache"
2223

2324
"github.com/cyclops-ui/cyclops/cyclops-ctrl/api/v1alpha1"
@@ -388,12 +389,12 @@ func (k *KubernetesClient) ListNamespaces() ([]string, error) {
388389
}
389390

390391
func (k *KubernetesClient) isResourceNamespaced(gvk schema.GroupVersionKind) (bool, error) {
391-
resourcesList, err := k.discovery.ServerPreferredResources()
392+
resourcesList, err := k.clusterApiResources()
392393
if err != nil {
393394
return false, err
394395
}
395396

396-
for _, resource := range resourcesList {
397+
for _, resource := range resourcesList.resourcesList {
397398
gv, err := schema.ParseGroupVersion(resource.GroupVersion)
398399
if err != nil {
399400
return false, err
@@ -412,12 +413,17 @@ func (k *KubernetesClient) isResourceNamespaced(gvk schema.GroupVersionKind) (bo
412413
}
413414

414415
func (k *KubernetesClient) clusterApiResources() (*apiResources, error) {
415-
resourcesList, err := k.discovery.ServerPreferredResources()
416+
resources, err := k.discovery.ServerPreferredResources()
416417
if err != nil {
417-
return nil, err
418+
var discoveryErr *discovery.ErrGroupDiscoveryFailed
419+
if errors.As(err, &discoveryErr) {
420+
fmt.Printf("Warning: Discovery failed for some resources: %v\n", err)
421+
} else {
422+
return nil, fmt.Errorf("failed to retrieve API resources: %w", err)
423+
}
418424
}
419425

420-
return &apiResources{resourcesList: resourcesList}, nil
426+
return &apiResources{resourcesList: resources}, nil
421427
}
422428

423429
func isDeployment(group, version, kind string) bool {

0 commit comments

Comments
 (0)