@@ -24,16 +24,21 @@ import (
2424 "encoding/pem"
2525 "fmt"
2626 "net/http"
27+ "time"
2728
29+ "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions"
2830 "github.com/cert-manager/csi-lib/driver"
2931 "github.com/cert-manager/csi-lib/manager"
3032 "github.com/cert-manager/csi-lib/manager/util"
3133 "github.com/cert-manager/csi-lib/metadata"
34+ csimetrics "github.com/cert-manager/csi-lib/metrics"
3235 "github.com/cert-manager/csi-lib/storage"
36+ "github.com/prometheus/client_golang/prometheus"
3337 "github.com/spf13/cobra"
3438 "golang.org/x/sync/errgroup"
3539 "k8s.io/utils/clock"
3640 ctrl "sigs.k8s.io/controller-runtime"
41+ ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
3742 metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3843
3944 "github.com/cert-manager/csi-driver/cmd/app/options"
@@ -80,8 +85,19 @@ func NewCommand(ctx context.Context) *cobra.Command {
8085 clientForMeta = util .ClientForMetadataTokenRequestEmptyAud (opts .RestConfig )
8186 }
8287
88+ // DRAFT: demo for csi-lib metrics feature
89+ certRequestInformerFactory := externalversions .NewSharedInformerFactory (opts .CMClient , 5 * time .Second )
90+ certRequestInformer := certRequestInformerFactory .Certmanager ().V1 ().CertificateRequests ()
91+ metricsHandler := csimetrics .New (
92+ opts .NodeID ,
93+ & opts .Logr ,
94+ ctrlmetrics .Registry .(* prometheus.Registry ),
95+ store ,
96+ certRequestInformer .Lister (),
97+ )
98+
8399 mngrlog := opts .Logr .WithName ("manager" )
84- d , err := driver .New (opts .Endpoint , opts .Logr .WithName ("driver" ), driver.Options {
100+ d , err := driver .New (ctx , opts .Endpoint , opts .Logr .WithName ("driver" ), driver.Options {
85101 DriverName : opts .DriverName ,
86102 DriverVersion : version .AppVersion ,
87103 NodeID : opts .NodeID ,
@@ -97,6 +113,7 @@ func NewCommand(ctx context.Context) *cobra.Command {
97113 GenerateRequest : requestgen .RequestForMetadata ,
98114 SignRequest : signRequest ,
99115 WriteKeypair : writer .WriteKeypair ,
116+ Metrics : metricsHandler ,
100117 }),
101118 })
102119 if err != nil {
@@ -163,6 +180,13 @@ func NewCommand(ctx context.Context) *cobra.Command {
163180 g .Go (func () error {
164181 return metricsServer .Start (gCTX )
165182 })
183+
184+ // DRAFT: demo for csi-lib metrics feature
185+ g .Go (func () error {
186+ certRequestInformerFactory .Start (gCTX .Done ())
187+ certRequestInformerFactory .WaitForCacheSync (gCTX .Done ())
188+ return nil
189+ })
166190 }
167191 return g .Wait ()
168192 },
0 commit comments