@@ -26,7 +26,8 @@ const (
2626 MaxCustomTagLength = 100
2727)
2828
29- type MetadataService struct {
29+ // Aggregator uses the Kubernetes metadata client to aggregate metadata for a pod and its ownership hierarchy.
30+ type Aggregator struct {
3031 metadataClient k8smetadata.Interface
3132}
3233
@@ -36,13 +37,15 @@ type AggregatePodMetadata struct {
3637 Tags map [string ]string
3738}
3839
39- func NewMetadataService (metadataClient k8smetadata.Interface ) * MetadataService {
40- return & MetadataService {
40+ // NewAggregator creates a new Aggregator with a Kubernetes metadata client.
41+ func NewAggregator (metadataClient k8smetadata.Interface ) * Aggregator {
42+ return & Aggregator {
4143 metadataClient : metadataClient ,
4244 }
4345}
4446
45- func (ms * MetadataService ) AggregatePodMetadata (ctx context.Context , obj * metav1.PartialObjectMetadata ) * AggregatePodMetadata {
47+ // AggregatePodMetadata takes a pod's partial object metadata and traverses its ownership hierarchy to return AggregatePodMetadata.
48+ func (m * Aggregator ) AggregatePodMetadata (ctx context.Context , obj * metav1.PartialObjectMetadata ) * AggregatePodMetadata {
4649 aggMetadata := & AggregatePodMetadata {
4750 RuntimeRisks : make (map [deploymentrecord.RuntimeRisk ]bool ),
4851 Tags : make (map [string ]string ),
@@ -64,19 +67,19 @@ func (ms *MetadataService) AggregatePodMetadata(ctx context.Context, obj *metav1
6467 visited [current .GetUID ()] = true
6568
6669 extractMetadataFromObject (current , aggMetadata )
67- ms .addOwnersToQueue (ctx , current , & queue )
70+ m .addOwnersToQueue (ctx , current , & queue )
6871 }
6972
7073 return aggMetadata
7174}
7275
7376// addOwnersToQueue takes a current object and looks up its owners, adding them to the queue for processing
7477// to collect their metadata.
75- func (ms * MetadataService ) addOwnersToQueue (ctx context.Context , current * metav1.PartialObjectMetadata , queue * []* metav1.PartialObjectMetadata ) {
78+ func (m * Aggregator ) addOwnersToQueue (ctx context.Context , current * metav1.PartialObjectMetadata , queue * []* metav1.PartialObjectMetadata ) {
7679 ownerRefs := current .GetOwnerReferences ()
7780
7881 for _ , owner := range ownerRefs {
79- ownerObj , err := ms .getOwnerMetadata (ctx , current .GetNamespace (), owner )
82+ ownerObj , err := m .getOwnerMetadata (ctx , current .GetNamespace (), owner )
8083 if err != nil {
8184 slog .Warn ("Failed to get owner object for metadata collection" ,
8285 "namespace" , current .GetNamespace (),
@@ -96,7 +99,7 @@ func (ms *MetadataService) addOwnersToQueue(ctx context.Context, current *metav1
9699}
97100
98101// getOwnerMetadata retrieves partial object metadata for an owner ref.
99- func (ms * MetadataService ) getOwnerMetadata (ctx context.Context , namespace string , owner metav1.OwnerReference ) (* metav1.PartialObjectMetadata , error ) {
102+ func (m * Aggregator ) getOwnerMetadata (ctx context.Context , namespace string , owner metav1.OwnerReference ) (* metav1.PartialObjectMetadata , error ) {
100103 gvr := schema.GroupVersionResource {
101104 Group : "apps" ,
102105 Version : "v1" ,
@@ -115,7 +118,7 @@ func (ms *MetadataService) getOwnerMetadata(ctx context.Context, namespace strin
115118 return nil , nil
116119 }
117120
118- obj , err := ms .metadataClient .Resource (gvr ).Namespace (namespace ).Get (ctx , owner .Name , metav1.GetOptions {})
121+ obj , err := m .metadataClient .Resource (gvr ).Namespace (namespace ).Get (ctx , owner .Name , metav1.GetOptions {})
119122 if err != nil {
120123 if k8serrors .IsNotFound (err ) {
121124 slog .Debug ("Owner object not found for metadata collection" ,
0 commit comments