diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3e3a48fa..e2042f4f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ jobs: build: strategy: matrix: - go-version: [1.18.x, 1.19.x] + go-version: [1.19.x, 1.20.x] platform: [windows-latest] runs-on: ${{ matrix.platform }} steps: @@ -24,7 +24,7 @@ jobs: test: strategy: matrix: - go-version: [1.18.x, 1.19.x] + go-version: [1.19.x, 1.20.x] platform: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.platform }} steps: @@ -47,7 +47,7 @@ jobs: - name: Lint run: | docker run --rm -v `pwd`:/go/src/k8s.io/klog -w /go/src/k8s.io/klog \ - golangci/golangci-lint:v1.46.2 golangci-lint run --disable-all -v \ + golangci/golangci-lint:v1.51.2 golangci-lint run --disable-all -v \ -E govet -E misspell -E gofmt -E ineffassign -E golint apidiff: runs-on: ubuntu-latest @@ -56,7 +56,7 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - go-version: 1.19.x + go-version: 1.20.x - name: Add GOBIN to PATH run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH - name: Install dependencies diff --git a/inotify/inotify_linux.go b/inotify/inotify_linux.go index fbb50c23..2b9eabbd 100644 --- a/inotify/inotify_linux.go +++ b/inotify/inotify_linux.go @@ -9,23 +9,23 @@ Package inotify implements a wrapper for the Linux inotify system. Example: - watcher, err := inotify.NewWatcher() - if err != nil { - log.Fatal(err) - } - err = watcher.Watch("/tmp") - if err != nil { - log.Fatal(err) - } - for { - select { - case ev := <-watcher.Event: - log.Println("event:", ev) - case err := <-watcher.Error: - log.Println("error:", err) - } - } + watcher, err := inotify.NewWatcher() + if err != nil { + log.Fatal(err) + } + err = watcher.Watch("/tmp") + if err != nil { + log.Fatal(err) + } + for { + select { + case ev := <-watcher.Event: + log.Println("event:", ev) + case err := <-watcher.Error: + log.Println("error:", err) + } + } */ package inotify // import "k8s.io/utils/inotify" diff --git a/nsenter/nsenter.go b/nsenter/nsenter.go index 237b636b..6f847db8 100644 --- a/nsenter/nsenter.go +++ b/nsenter/nsenter.go @@ -49,26 +49,28 @@ type Nsenter = NSEnter // // NSEnter requires: // -// 1. Docker >= 1.6 due to the dependency on the slave propagation mode +// 1. Docker >= 1.6 due to the dependency on the slave propagation mode // of the bind-mount of the kubelet root directory in the container. // Docker 1.5 used a private propagation mode for bind-mounts, so mounts // performed in the host's mount namespace do not propagate out to the // bind-mount in this docker version. -// 2. The host's root filesystem must be available at /rootfs -// 3. The nsenter binary must be on the Kubelet process' PATH in the container's +// 2. The host's root filesystem must be available at /rootfs +// 3. The nsenter binary must be on the Kubelet process' PATH in the container's // filesystem. -// 4. The Kubelet process must have CAP_SYS_ADMIN (required by nsenter); at +// 4. The Kubelet process must have CAP_SYS_ADMIN (required by nsenter); at // the present, this effectively means that the kubelet is running in a // privileged container. -// 5. The volume path used by the Kubelet must be the same inside and outside +// 5. The volume path used by the Kubelet must be the same inside and outside // the container and be writable by the container (to initialize volume) // contents. TODO: remove this requirement. -// 6. The host image must have "mount", "findmnt", "umount", "stat", "touch", +// 6. The host image must have "mount", "findmnt", "umount", "stat", "touch", // "mkdir", "ls", "sh" and "chmod" binaries in /bin, /usr/sbin, or /usr/bin -// 7. The host image should have systemd-run in /bin, /usr/sbin, or /usr/bin if +// 7. The host image should have systemd-run in /bin, /usr/sbin, or /usr/bin if // systemd is installed/enabled in the operating system. +// // For more information about mount propagation modes, see: -// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt +// +// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt type NSEnter struct { // a map of commands to their paths on the host filesystem paths map[string]string @@ -174,10 +176,13 @@ func (ne *NSEnter) SupportsSystemd() (string, bool) { // exist. When it's false, it evaluates symlinks of the existing part and // blindly adds the non-existing part: // pathname: /mnt/volume/non/existing/directory -// /mnt/volume exists -// non/existing/directory does not exist +// +// /mnt/volume exists +// non/existing/directory does not exist +// // -> It resolves symlinks in /mnt/volume to say /mnt/foo and returns -// /mnt/foo/non/existing/directory. +// +// /mnt/foo/non/existing/directory. // // BEWARE! EvalSymlinks is not able to detect symlink looks with mustExist=false! // If /tmp/link is symlink to /tmp/link, EvalSymlinks(/tmp/link/foo) returns /tmp/link/foo.