Fix file permissions to support volumes

This commit is contained in:
Manuel Alejandro de Brito Fontes 2019-08-15 20:25:35 -04:00
parent f4da014907
commit 23ed3ba4c4
No known key found for this signature in database
GPG key ID: 786136016A8BA02A
7 changed files with 148 additions and 18 deletions

View file

@ -17,4 +17,4 @@ limitations under the License.
package file
// ReadWriteByUser defines linux permission to read and write files for the owner user
const ReadWriteByUser = 0660
const ReadWriteByUser = 0700

View file

@ -16,6 +16,12 @@ limitations under the License.
package file
import (
"os"
"github.com/pkg/errors"
)
const (
// AuthDirectory default directory used to store files
// to authenticate request
@ -34,3 +40,25 @@ var (
AuthDirectory,
}
)
// CreateRequiredDirectories verifies if the required directories to
// start the ingress controller exist and creates the missing ones.
func CreateRequiredDirectories() error {
for _, directory := range directories {
_, err := os.Stat(directory)
if err != nil {
if os.IsNotExist(err) {
err = os.MkdirAll(directory, ReadWriteByUser)
if err != nil {
return errors.Wrapf(err, "creating directory '%v'", directory)
}
continue
}
return errors.Wrapf(err, "checking directory %v", directory)
}
}
return nil
}

View file

@ -37,7 +37,7 @@ func TestNginxCheck(t *testing.T) {
listener, err := net.Listen("unix", nginx.StatusSocket)
if err != nil {
t.Errorf("crating unix listener: %s", err)
t.Fatalf("crating unix listener: %s", err)
}
defer listener.Close()
defer os.Remove(nginx.StatusSocket)

View file

@ -37,6 +37,7 @@ import (
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/ingress-nginx/internal/file"
"k8s.io/ingress-nginx/internal/ingress"
"k8s.io/ingress-nginx/internal/ingress/annotations"
"k8s.io/ingress-nginx/internal/ingress/annotations/canary"
@ -154,6 +155,11 @@ func TestCheckIngress(t *testing.T) {
})
}()
err := file.CreateRequiredDirectories()
if err != nil {
t.Fatal(err)
}
// Ensure no panic with wrong arguments
var nginx *NGINXController
nginx.CheckIngress(nil)

View file

@ -53,22 +53,6 @@ const (
fakeCertificateName = "default-fake-certificate"
)
func init() {
_, err := os.Stat(file.DefaultSSLDirectory)
if err != nil {
if os.IsNotExist(err) {
err = os.MkdirAll(file.DefaultSSLDirectory, file.ReadWriteByUser)
if err != nil {
klog.Fatalf("Unexpected error checking for default SSL directory: %v", err)
}
return
}
klog.Fatalf("Unexpected error checking for default SSL directory: %v", err)
}
}
// getPemFileName returns absolute file path and file name of pem cert related to given fullSecretName
func getPemFileName(fullSecretName string) (string, string) {
pemName := fmt.Sprintf("%v.pem", fullSecretName)