@@ -72,6 +72,19 @@ func extractResourceListFromReading(reading *api.DataReading) ([]*unstructured.U
7272 return resources , nil
7373}
7474
75+ func extractClusterUIDFromReading (reading * api.DataReading ) (string , error ) {
76+ resources , err := extractResourceListFromReading (reading )
77+ if err != nil {
78+ return "" , err
79+ }
80+ for _ , resource := range resources {
81+ if resource .GetName () == "kube-system" {
82+ return string (resource .GetUID ()), nil
83+ }
84+ }
85+ return "" , fmt .Errorf ("kube-system namespace UID not found in data reading: %v" , reading )
86+ }
87+
7588func extractServerVersionFromReading (reading * api.DataReading ) (string , error ) {
7689 data , ok := reading .Data .(* k8s.DiscoveryData )
7790 if ! ok {
@@ -88,6 +101,7 @@ func ConvertDataReadingsToCyberarkSnapshot(
88101 payload api.DataReadingsPost ,
89102) (_ * Snapshot , err error ) {
90103 k8sVersion := ""
104+ clusterID := ""
91105 resourceData := ResourceData {}
92106 for _ , reading := range payload .DataReadings {
93107 if reading .DataGatherer == "ark/discovery" {
@@ -96,6 +110,12 @@ func ConvertDataReadingsToCyberarkSnapshot(
96110 return nil , fmt .Errorf ("while extracting server version from data-reading: %s" , err )
97111 }
98112 }
113+ if reading .DataGatherer == "ark/namespaces" {
114+ clusterID , err = extractClusterUIDFromReading (reading )
115+ if err != nil {
116+ return nil , fmt .Errorf ("while extracting cluster UID from data-reading: %s" , err )
117+ }
118+ }
99119 if key , found := gathererNameToresourceDataKeyMap [reading .DataGatherer ]; found {
100120 var resources []* unstructured.Unstructured
101121 resources , err = extractResourceListFromReading (reading )
@@ -108,7 +128,7 @@ func ConvertDataReadingsToCyberarkSnapshot(
108128
109129 return & Snapshot {
110130 AgentVersion : payload .AgentMetadata .Version ,
111- ClusterID : payload . AgentMetadata . ClusterID ,
131+ ClusterID : clusterID ,
112132 K8SVersion : k8sVersion ,
113133 Secrets : resourceData ["secrets" ],
114134 ServiceAccounts : resourceData ["serviceaccounts" ],
0 commit comments