Merge pull request #1315 from fcvarela/master
Addresses #1314 [nginx-ingress-controller ssl nginx reload abort]
This commit is contained in:
commit
a7570a8b37
1 changed files with 17 additions and 6 deletions
|
@ -45,17 +45,28 @@ type SSLCert struct {
|
||||||
|
|
||||||
// AddOrUpdateCertAndKey creates a .pem file wth the cert and the key with the specified name
|
// AddOrUpdateCertAndKey creates a .pem file wth the cert and the key with the specified name
|
||||||
func (nginx *Manager) AddOrUpdateCertAndKey(name string, cert string, key string) (SSLCert, error) {
|
func (nginx *Manager) AddOrUpdateCertAndKey(name string, cert string, key string) (SSLCert, error) {
|
||||||
pemFileName := config.SSLDirectory + "/" + name + ".pem"
|
temporaryPemFileName := fmt.Sprintf("%v.pem", name)
|
||||||
|
pemFileName := fmt.Sprintf("%v/%v.pem", config.SSLDirectory, name)
|
||||||
|
|
||||||
pem, err := os.Create(pemFileName)
|
temporaryPemFile, err := ioutil.TempFile("", temporaryPemFileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return SSLCert{}, fmt.Errorf("Couldn't create pem file %v: %v", pemFileName, err)
|
return SSLCert{}, fmt.Errorf("Couldn't create temp pem file %v: %v", temporaryPemFile.Name(), err)
|
||||||
}
|
}
|
||||||
defer pem.Close()
|
|
||||||
|
|
||||||
_, err = pem.WriteString(fmt.Sprintf("%v\n%v", cert, key))
|
_, err = temporaryPemFile.WriteString(fmt.Sprintf("%v\n%v", cert, key))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return SSLCert{}, fmt.Errorf("Couldn't write to pem file %v: %v", pemFileName, err)
|
return SSLCert{}, fmt.Errorf("Couldn't write to pem file %v: %v", temporaryPemFile.Name(), err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = temporaryPemFile.Close()
|
||||||
|
if err != nil {
|
||||||
|
return SSLCert{}, fmt.Errorf("Couldn't close temp pem file %v: %v", temporaryPemFile.Name(), err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = os.Rename(temporaryPemFile.Name(), pemFileName)
|
||||||
|
if err != nil {
|
||||||
|
os.Remove(temporaryPemFile.Name())
|
||||||
|
return SSLCert{}, fmt.Errorf("Couldn't move temp pem file %v to destination %v: %v", temporaryPemFile.Name(), pemFileName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
cn, err := nginx.commonNames(pemFileName)
|
cn, err := nginx.commonNames(pemFileName)
|
||||||
|
|
Loading…
Reference in a new issue