Skip to content

Commit 63e2ac1

Browse files
committed
process deployment
1 parent 9d11feb commit 63e2ac1

File tree

1 file changed

+45
-10
lines changed

1 file changed

+45
-10
lines changed

cmd/ctrlc/root/sync/kubernetes/kubernetes.go

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
4368
func 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

Comments
 (0)