7
7
"strconv"
8
8
9
9
"github.com/golang/glog"
10
+ config "github.com/nginxinc/kubernetes-ingress/internal/configs"
10
11
"github.com/nginxinc/kubernetes-ingress/internal/nginx"
11
12
prometheusClient "github.com/nginxinc/nginx-prometheus-exporter/client"
12
13
nginxCollector "github.com/nginxinc/nginx-prometheus-exporter/collector"
@@ -59,12 +60,12 @@ func runServer(port string, registry prometheus.Gatherer, prometheusSecret *api_
59
60
// Write the cert and key to a temporary file. We create a unique file name to prevent collisions.
60
61
certFileName := "nginx-prometheus.cert"
61
62
keyFileName := "nginx-prometheus.key"
62
- certFile , err := writeTempFile (prometheusSecret .Data [api_v1 .TLSCertKey ], certFileName )
63
+ certFile , err := createTLSFile (prometheusSecret .Data [api_v1 .TLSCertKey ], certFileName )
63
64
if err != nil {
64
65
glog .Fatal ("failed to create cert file for prometheus: %w" , err )
65
66
}
66
67
67
- keyFile , err := writeTempFile (prometheusSecret .Data [api_v1 .TLSPrivateKeyKey ], keyFileName )
68
+ keyFile , err := createTLSFile (prometheusSecret .Data [api_v1 .TLSPrivateKeyKey ], keyFileName )
68
69
if err != nil {
69
70
glog .Fatal ("failed to create key file for prometheus: %w" , err )
70
71
}
@@ -73,8 +74,13 @@ func runServer(port string, registry prometheus.Gatherer, prometheusSecret *api_
73
74
}
74
75
}
75
76
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 )
78
84
if err != nil {
79
85
return nil , fmt .Errorf ("failed to create temp file: %w" , err )
80
86
}
0 commit comments