Skip to content

Commit

Permalink
Remove go-bindata
Browse files Browse the repository at this point in the history
  • Loading branch information
aledbf committed May 17, 2018
1 parent ee7a63d commit 692ab5e
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 632 deletions.
3 changes: 0 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ jobs:
&& git clone --depth=1 https://go.googlesource.com/lint $GOPATH/src/golang.org/x/lint
&& go get golang.org/x/lint/golint
- go get github.com/vbatts/git-validation
- go get -u github.com/jteeuwen/go-bindata/...
- make verify-all
- stage: Lua Unit Test
before_script:
Expand All @@ -57,11 +56,9 @@ jobs:
# start minikube
- test/e2e/up.sh
script:
- go get github.com/jteeuwen/go-bindata/...
- make cover
- stage: e2e
before_script:
- go get github.com/jteeuwen/go-bindata/...
- go get github.com/onsi/ginkgo/ginkgo
- test/e2e/up.sh
- make dev-env
Expand Down
5 changes: 0 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -135,11 +135,6 @@ endif
clean:
$(DOCKER) rmi -f $(MULTI_ARCH_IMG):$(TAG) || true

.PHONE: code-generator
code-generator:
@go-bindata -version || go get -u github.com/jteeuwen/go-bindata/...
go-bindata -nometadata -o internal/file/bindata.go -prefix="rootfs" -pkg=file -ignore=Dockerfile -ignore=".DS_Store" rootfs/...

.PHONY: build
build: clean
CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} go build -a -installsuffix cgo \
Expand Down
40 changes: 0 additions & 40 deletions hack/verify-bindata.sh

This file was deleted.

504 changes: 0 additions & 504 deletions internal/file/bindata.go

This file was deleted.

115 changes: 42 additions & 73 deletions internal/file/filesystem.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ limitations under the License.
package file

import (
"fmt"
"os"
"path/filepath"

"github.com/golang/glog"
"strings"

"k8s.io/kubernetes/pkg/util/filesystem"
)
Expand All @@ -34,9 +34,11 @@ type Filesystem interface {
func NewLocalFS() (Filesystem, error) {
fs := filesystem.DefaultFs{}

err := initialize(false, fs)
if err != nil {
return nil, err
for _, directory := range directories {
err := fs.MkdirAll(directory, 0655)
if err != nil {
return nil, err
}
}

return fs, nil
Expand All @@ -46,94 +48,61 @@ func NewLocalFS() (Filesystem, error) {
// paths used by the ingress controller.
// This allows running test without polluting the local machine.
func NewFakeFS() (Filesystem, error) {
fs := filesystem.NewFakeFs()
osFs := filesystem.DefaultFs{}
fakeFs := filesystem.NewFakeFs()

err := initialize(true, fs)
if err != nil {
return nil, err
}

return fs, nil
}
//TODO: find another way to do this
rootFS := filepath.Clean(fmt.Sprintf("%v/%v", os.Getenv("GOPATH"), "src/k8s.io/ingress-nginx/rootfs"))

// initialize creates the required directory structure and when
// runs as virtual filesystem it copies the local files to it
func initialize(isVirtual bool, fs Filesystem) error {
for _, directory := range directories {
err := fs.MkdirAll(directory, 0655)
var fileList []string
err := filepath.Walk(rootFS, func(path string, f os.FileInfo, err error) error {
if err != nil {
return err
}
}

if !isVirtual {
return nil
}

for _, file := range files {
f, err := fs.Create(file)
if err != nil {
return err
if f.IsDir() {
return nil
}

_, err = f.Write([]byte(""))
if err != nil {
return err
file := strings.TrimPrefix(path, rootFS)
if file == "" {
return nil
}

err = f.Close()
if err != nil {
return err
}
}
fileList = append(fileList, file)

return nil
})

err := fs.MkdirAll("/proc", 0655)
if err != nil {
return err
return nil, err
}

glog.Info("Restoring generated (go-bindata) assets in virtual filesystem...")
for _, assetName := range AssetNames() {
err := restoreAsset("/", assetName, fs)
for _, file := range fileList {
realPath := fmt.Sprintf("%v%v", rootFS, file)

data, err := osFs.ReadFile(realPath)
if err != nil {
return err
return nil, err
}
}

return nil
}

// restoreAsset restores an asset under the given directory
func restoreAsset(dir, name string, fs Filesystem) error {
data, err := Asset(name)
if err != nil {
return err
}
info, err := AssetInfo(name)
if err != nil {
return err
}
err = fs.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
if err != nil {
return err
}

f, err := fs.Create(_filePath(dir, name))
if err != nil {
return err
}
fakeFile, err := fakeFs.Create(file)
if err != nil {
return nil, err
}

_, err = f.Write(data)
if err != nil {
return err
_, err = fakeFile.Write(data)
if err != nil {
return nil, err
}
}

err = f.Close()
if err != nil {
return err
}
fakeFs.MkdirAll("/run", 0655)
fakeFs.MkdirAll("/proc", 0655)
fakeFs.MkdirAll("/etc/nginx/template", 0655)

//Missing info.Mode()
fakeFs.MkdirAll(DefaultSSLDirectory, 0655)
fakeFs.MkdirAll(AuthDirectory, 0655)

return fs.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
return fakeFs, nil
}
8 changes: 1 addition & 7 deletions internal/file/structure.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,12 @@ const (
// This directory contains all the SSL certificates that are specified in Ingress rules.
// The name of each file is <namespace>-<secret name>.pem. The content is the concatenated
// certificate and key.
DefaultSSLDirectory = "/ingress-controller/ssl"
DefaultSSLDirectory = "/etc/ingress-controller/ssl"
)

var (
directories = []string{
"/etc/nginx/template",
"/run",
DefaultSSLDirectory,
AuthDirectory,
}

files = []string{
"/run/nginx.pid",
}
)
2 changes: 2 additions & 0 deletions rootfs/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ FROM BASEIMAGE

CROSS_BUILD_COPY qemu-QEMUARCH-static /usr/bin/

WORKDIR /etc/nginx

RUN clean-install \
diffutils \
dumb-init
Expand Down

0 comments on commit 692ab5e

Please sign in to comment.