77 "strconv"
88
99 "github.com/golang/glog"
10+ config "github.com/nginxinc/kubernetes-ingress/internal/configs"
1011 "github.com/nginxinc/kubernetes-ingress/internal/nginx"
1112 prometheusClient "github.com/nginxinc/nginx-prometheus-exporter/client"
1213 nginxCollector "github.com/nginxinc/nginx-prometheus-exporter/collector"
@@ -59,12 +60,12 @@ func runServer(port string, registry prometheus.Gatherer, prometheusSecret *api_
5960 // Write the cert and key to a temporary file. We create a unique file name to prevent collisions.
6061 certFileName := "nginx-prometheus.cert"
6162 keyFileName := "nginx-prometheus.key"
62- certFile , err := writeTempFile (prometheusSecret .Data [api_v1 .TLSCertKey ], certFileName )
63+ certFile , err := createTLSFile (prometheusSecret .Data [api_v1 .TLSCertKey ], certFileName )
6364 if err != nil {
6465 glog .Fatal ("failed to create cert file for prometheus: %w" , err )
6566 }
6667
67- keyFile , err := writeTempFile (prometheusSecret .Data [api_v1 .TLSPrivateKeyKey ], keyFileName )
68+ keyFile , err := createTLSFile (prometheusSecret .Data [api_v1 .TLSPrivateKeyKey ], keyFileName )
6869 if err != nil {
6970 glog .Fatal ("failed to create key file for prometheus: %w" , err )
7071 }
@@ -73,8 +74,13 @@ func runServer(port string, registry prometheus.Gatherer, prometheusSecret *api_
7374 }
7475}
7576
76- func writeTempFile (data []byte , name string ) (* os.File , error ) {
77- f , err := os .CreateTemp ("" , name )
77+ func createTLSFile (data []byte , name string ) (* os.File , error ) {
78+ _ , err := os .Stat (config .DefaultSecretPath )
79+ if err != nil {
80+ return nil , fmt .Errorf ("got error %w when attempting access %s" , err , config .DefaultSecretPath )
81+ }
82+
83+ f , err := os .CreateTemp (config .DefaultSecretPath , name )
7884 if err != nil {
7985 return nil , fmt .Errorf ("failed to create temp file: %w" , err )
8086 }
0 commit comments