Skip to content

Commit cc4019a

Browse files
Arta AsadiArta Asadi
authored andcommitted
fix: add kubernetes resource
1 parent a4cb7b8 commit cc4019a

File tree

10 files changed

+1206
-105
lines changed

10 files changed

+1206
-105
lines changed

cloudql/kubernetes/plugin.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ func Plugin(ctx context.Context) *plugin.Plugin {
1919
},
2020
DefaultTransform: transform.FromCamel(),
2121
TableMap: map[string]*plugin.Table{
22+
"k8_resource": tableKubernetesResource(ctx),
2223
"k8_cluster": tableKubernetesCluster(ctx),
2324
"k8_cluster_role": tableKubernetesClusterRole(ctx),
2425
"k8_cluster_role_binding": tableKubernetesClusterRoleBinding(ctx),
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package kubernetes
2+
3+
import (
4+
"context"
5+
opengovernance "github.com/opengovern/og-describer-kubernetes/discovery/pkg/es"
6+
7+
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
8+
"github.com/turbot/steampipe-plugin-sdk/v5/plugin"
9+
"github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform"
10+
)
11+
12+
func tableKubernetesResource(ctx context.Context) *plugin.Table {
13+
return &plugin.Table{
14+
Name: "k8_resource",
15+
Description: "ClusterRole contains rules that represent a set of permissions.",
16+
List: &plugin.ListConfig{
17+
Hydrate: opengovernance.ListKubernetesCluster,
18+
},
19+
Columns: commonGeneralColumns([]*plugin.Column{
20+
{
21+
Name: "kind",
22+
Type: proto.ColumnType_STRING,
23+
Description: "Resource Kind",
24+
Transform: transform.FromField("Description.Kind"),
25+
},
26+
{
27+
Name: "object_name",
28+
Type: proto.ColumnType_STRING,
29+
Description: "object name.",
30+
Transform: transform.FromField("Description.ObjectName"),
31+
},
32+
{
33+
Name: "namespace",
34+
Type: proto.ColumnType_STRING,
35+
Description: "namespace.",
36+
Transform: transform.FromField("Description.Namespace"),
37+
},
38+
{
39+
Name: "uid",
40+
Type: proto.ColumnType_STRING,
41+
Description: "uid.",
42+
Transform: transform.FromField("Description.UID"),
43+
},
44+
{
45+
Name: "creation_timestamp",
46+
Type: proto.ColumnType_STRING,
47+
Description: "creation timestamp.",
48+
Transform: transform.FromField("Description.CreationTimestamp"),
49+
},
50+
{
51+
Name: "resource_version",
52+
Type: proto.ColumnType_STRING,
53+
Description: "resource version.",
54+
Transform: transform.FromField("Description.ResourceVersion"),
55+
},
56+
{
57+
Name: "resource_table",
58+
Type: proto.ColumnType_STRING,
59+
Description: "creation timestamp.",
60+
Transform: transform.FromField("Description.ResourceTable"),
61+
},
62+
{
63+
Name: "api_version",
64+
Type: proto.ColumnType_STRING,
65+
Description: "creation timestamp.",
66+
Transform: transform.FromField("Description.ApiVersion"),
67+
},
68+
}),
69+
}
70+
}

discovery/describers/kubernetes.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,33 @@ import (
1111
"k8s.io/apimachinery/pkg/runtime/schema"
1212
)
1313

14+
func KubernetesResources(ctx context.Context, client model.Client, extra string, stream *models.StreamSender) ([]models.Resource, error) {
15+
var allValues []models.Resource
16+
17+
resources, err := GetKubernetesResources(client.KubeConfig)
18+
if err != nil {
19+
return nil, err
20+
}
21+
22+
for _, r := range resources {
23+
resource := models.Resource{
24+
ID: r.UID,
25+
Name: r.ObjectName,
26+
Description: r,
27+
}
28+
29+
if stream != nil {
30+
if err := (*stream)(resource); err != nil {
31+
return allValues, fmt.Errorf("error streaming resource: %w", err)
32+
}
33+
} else {
34+
allValues = append(allValues, resource)
35+
}
36+
}
37+
38+
return allValues, nil
39+
}
40+
1441
func KubernetesCluster(ctx context.Context, client model.Client, extra string, stream *models.StreamSender) ([]models.Resource, error) {
1542
var allValues []models.Resource
1643

discovery/describers/kubernetes_cluster.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,6 @@ func DoDiscovery(kubeConfig string) (*model.KubernetesClusterDescription, error)
328328

329329
kubeconfigPath := "./kubeconfig.yaml"
330330

331-
fmt.Println("kubeConfig", kubeConfig)
332-
333331
// Write the string into the file with 0600 permissions
334332
err := os.WriteFile(kubeconfigPath, []byte(kubeConfig), 0600)
335333
if err != nil {

0 commit comments

Comments
 (0)