Skip to content

Commit

Permalink
Add SecretBinding informer to access the SecretBinding objects
Browse files Browse the repository at this point in the history
Co-authored-by: Istvan Zoltan Ballok <istvan.zoltan.ballok@sap.com>
Co-authored-by: Jeremy Rickards <jeremy.rickards@sap.com>
  • Loading branch information
rickardsjp and istvanballok committed Nov 18, 2022
1 parent 1d5356b commit adc099f
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 18 deletions.
12 changes: 7 additions & 5 deletions cmd/gardener-metrics-exporter/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,15 +102,16 @@ func run(ctx context.Context, o *options) error {

// Create informers.
var (
managedSeedInformer = gardenManagedSeedInformerFactory.Seedmanagement().V1alpha1().ManagedSeeds().Informer()
shootInformer = gardenInformerFactory.Core().V1beta1().Shoots().Informer()
seedInformer = gardenInformerFactory.Core().V1beta1().Seeds().Informer()
projectInformer = gardenInformerFactory.Core().V1beta1().Projects().Informer()
managedSeedInformer = gardenManagedSeedInformerFactory.Seedmanagement().V1alpha1().ManagedSeeds().Informer()
shootInformer = gardenInformerFactory.Core().V1beta1().Shoots().Informer()
seedInformer = gardenInformerFactory.Core().V1beta1().Seeds().Informer()
projectInformer = gardenInformerFactory.Core().V1beta1().Projects().Informer()
secretBindingInformer = gardenInformerFactory.Core().V1beta1().SecretBindings().Informer()
)

// Start the factories and wait until the informers have synced.
gardenInformerFactory.Start(stopCh)
if !cache.WaitForCacheSync(ctx.Done(), shootInformer.HasSynced, seedInformer.HasSynced, projectInformer.HasSynced) {
if !cache.WaitForCacheSync(ctx.Done(), shootInformer.HasSynced, seedInformer.HasSynced, projectInformer.HasSynced, secretBindingInformer.HasSynced) {
return errors.New("Timed out waiting for Garden caches to sync")
}

Expand All @@ -125,6 +126,7 @@ func run(ctx context.Context, o *options) error {
gardenInformerFactory.Core().V1beta1().Seeds(),
gardenInformerFactory.Core().V1beta1().Projects(),
gardenManagedSeedInformerFactory.Seedmanagement().V1alpha1().ManagedSeeds(),
gardenInformerFactory.Core().V1beta1().SecretBindings(),
log,
)

Expand Down
28 changes: 15 additions & 13 deletions pkg/metrics/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -240,12 +240,13 @@ func getGardenMetricsDefinitions() map[string]*prometheus.Desc {
}

type gardenMetricsCollector struct {
managedSeedInformer gardenmanagedseedinformers.ManagedSeedInformer
shootInformer gardencoreinformers.ShootInformer
seedInformer gardencoreinformers.SeedInformer
projectInformer gardencoreinformers.ProjectInformer
descs map[string]*prometheus.Desc
logger *logrus.Logger
managedSeedInformer gardenmanagedseedinformers.ManagedSeedInformer
shootInformer gardencoreinformers.ShootInformer
seedInformer gardencoreinformers.SeedInformer
projectInformer gardencoreinformers.ProjectInformer
secretBindingInformer gardencoreinformers.SecretBindingInformer
descs map[string]*prometheus.Desc
logger *logrus.Logger
}

// Describe implements the prometheus.Describe interface, which intends the gardenMetricsCollector to be a Prometheus collector.
Expand All @@ -266,14 +267,15 @@ func (c *gardenMetricsCollector) Collect(ch chan<- prometheus.Metric) {
}

// SetupMetricsCollector takes informers to configure the metrics collectors.
func SetupMetricsCollector(shootInformer gardencoreinformers.ShootInformer, seedInformer gardencoreinformers.SeedInformer, projectInformer gardencoreinformers.ProjectInformer, managedSeedInformer gardenmanagedseedinformers.ManagedSeedInformer, logger *logrus.Logger) {
func SetupMetricsCollector(shootInformer gardencoreinformers.ShootInformer, seedInformer gardencoreinformers.SeedInformer, projectInformer gardencoreinformers.ProjectInformer, managedSeedInformer gardenmanagedseedinformers.ManagedSeedInformer, secretBindingInformer gardencoreinformers.SecretBindingInformer, logger *logrus.Logger) {
metricsCollector := gardenMetricsCollector{
managedSeedInformer: managedSeedInformer,
shootInformer: shootInformer,
seedInformer: seedInformer,
projectInformer: projectInformer,
descs: getGardenMetricsDefinitions(),
logger: logger,
managedSeedInformer: managedSeedInformer,
shootInformer: shootInformer,
seedInformer: seedInformer,
projectInformer: projectInformer,
secretBindingInformer: secretBindingInformer,
descs: getGardenMetricsDefinitions(),
logger: logger,
}
prometheus.MustRegister(&metricsCollector)
prometheus.MustRegister(ScrapeFailures)
Expand Down

0 comments on commit adc099f

Please sign in to comment.