@@ -76,6 +76,23 @@ type NginxProvisioner struct {
7676
7777var apiChecker openshift.APIChecker = & openshift.APICheckerImpl {}
7878
79+ var labelCollectorFactory func (mgr manager.Manager , cfg Config ) AgentLabelCollector = defaultLabelCollectorFactory
80+
81+ func defaultLabelCollectorFactory (mgr manager.Manager , cfg Config ) AgentLabelCollector {
82+ return telemetry .NewLabelCollectorConfigImpl (telemetry.LabelCollectorConfig {
83+ K8sClientReader : mgr .GetAPIReader (),
84+ Version : cfg .GatewayPodConfig .Version ,
85+ PodNSName : types.NamespacedName {
86+ Namespace : cfg .GatewayPodConfig .Namespace ,
87+ Name : cfg .GatewayPodConfig .Name ,
88+ },
89+ })
90+ }
91+
92+ type AgentLabelCollector interface {
93+ Collect (ctx context.Context ) (telemetry.AgentLabels , error )
94+ }
95+
7996// NewNginxProvisioner returns a new instance of a Provisioner that will deploy nginx resources.
8097func NewNginxProvisioner (
8198 ctx context.Context ,
@@ -112,6 +129,13 @@ func NewNginxProvisioner(
112129 cfg .Logger .Error (err , "could not determine if running in openshift, will not create Role/RoleBinding" )
113130 }
114131
132+ agentLabelCollector := labelCollectorFactory (mgr , cfg )
133+ agentLabels , err := agentLabelCollector .Collect (ctx )
134+ if err != nil {
135+ return nil , nil , fmt .Errorf ("failed to collect agent labels: %w" , err )
136+ }
137+ cfg .AgentLabels = agentLabels
138+
115139 provisioner := & NginxProvisioner {
116140 k8sClient : mgr .GetClient (),
117141 store : store ,
0 commit comments