@@ -10,6 +10,7 @@ import (
1010 "github.com/ctrlplanedev/cli/internal/api"
1111 "github.com/spf13/cobra"
1212 "github.com/spf13/viper"
13+ appsv1 "k8s.io/api/apps/v1"
1314 corev1 "k8s.io/api/core/v1"
1415 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1516 "k8s.io/client-go/kubernetes"
@@ -40,6 +41,30 @@ func processNamespace(_ context.Context, clusterName string, namespace corev1.Na
4041 }
4142}
4243
44+ func processDeployment (_ context.Context , clusterName string , deployment appsv1.Deployment ) api.CreateResource {
45+ metadata := map [string ]string {}
46+ for key , value := range deployment .Labels {
47+ metadata [fmt .Sprintf ("tags/%s" , key )] = value
48+ }
49+ metadata ["deployment/name" ] = deployment .Name
50+ metadata ["deployment/id" ] = string (deployment .UID )
51+ metadata ["deployment/api-version" ] = deployment .APIVersion
52+ metadata ["deployment/namespace" ] = deployment .Namespace
53+
54+ return api.CreateResource {
55+ Version : "ctrlplane.dev/kubernetes/deployment/v1" ,
56+ Kind : "KubernetesDeployment" ,
57+ Name : fmt .Sprintf ("%s/%s/%s" , clusterName , deployment .Namespace , deployment .Name ),
58+ Identifier : string (deployment .UID ),
59+ Config : map [string ]any {
60+ "id" : string (deployment .UID ),
61+ "name" : deployment .Name ,
62+ "namespace" : deployment .Namespace ,
63+ },
64+ Metadata : metadata ,
65+ }
66+ }
67+
4368func NewSyncKubernetesCmd () * cobra.Command {
4469 var clusterIdentifier string
4570 var providerName string
@@ -64,16 +89,6 @@ func NewSyncKubernetesCmd() *cobra.Command {
6489
6590 log .Info ("Connected to cluster" , "name" , clusterName )
6691
67- clientset , err := kubernetes .NewForConfig (config )
68- if err != nil {
69- return err
70- }
71-
72- namespaces , err := clientset .CoreV1 ().Namespaces ().List (context .Background (), metav1.ListOptions {})
73- if err != nil {
74- return err
75- }
76-
7792 apiURL := viper .GetString ("url" )
7893 apiKey := viper .GetString ("api-key" )
7994 workspaceId := viper .GetString ("workspace" )
@@ -93,12 +108,32 @@ func NewSyncKubernetesCmd() *cobra.Command {
93108 clusterName = configClusterName
94109 }
95110
111+ clientset , err := kubernetes .NewForConfig (config )
112+ if err != nil {
113+ return err
114+ }
115+
116+ namespaces , err := clientset .CoreV1 ().Namespaces ().List (ctx , metav1.ListOptions {})
117+ if err != nil {
118+ return err
119+ }
120+
96121 resources := []api.CreateResource {}
97122 for _ , namespace := range namespaces .Items {
98123 resource := processNamespace (context .Background (), clusterName , namespace )
99124 resources = append (resources , resource )
100125 }
101126
127+ deployments , err := clientset .AppsV1 ().Deployments (metav1 .NamespaceAll ).List (ctx , metav1.ListOptions {})
128+ if err != nil {
129+ return err
130+ }
131+
132+ for _ , deployment := range deployments .Items {
133+ resource := processDeployment (context .Background (), clusterName , deployment )
134+ resources = append (resources , resource )
135+ }
136+
102137 if clusterResource .JSON200 != nil {
103138 for _ , resource := range resources {
104139 for key , value := range clusterResource .JSON200 .Metadata {
0 commit comments