From 71008247dcf816062596efe35f9cb36edcf43164 Mon Sep 17 00:00:00 2001 From: Stephen Augustus Date: Sat, 6 Feb 2021 18:29:12 -0500 Subject: [PATCH] hack: Use zeitgeist instead of cmd/verifydependencies Signed-off-by: Stephen Augustus --- cmd/verifydependencies/BUILD | 29 ------ cmd/verifydependencies/OWNERS | 8 -- cmd/verifydependencies/verifydependencies.go | 101 ------------------- hack/verify-external-dependencies-version.sh | 17 +++- 4 files changed, 15 insertions(+), 140 deletions(-) delete mode 100644 cmd/verifydependencies/BUILD delete mode 100644 cmd/verifydependencies/OWNERS delete mode 100644 cmd/verifydependencies/verifydependencies.go diff --git a/cmd/verifydependencies/BUILD b/cmd/verifydependencies/BUILD deleted file mode 100644 index 3dd9b2975b9..00000000000 --- a/cmd/verifydependencies/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") - -go_library( - name = "go_default_library", - srcs = ["verifydependencies.go"], - importpath = "k8s.io/kubernetes/cmd/verifydependencies", - visibility = ["//visibility:private"], - deps = ["//vendor/gopkg.in/yaml.v2:go_default_library"], -) - -go_binary( - name = "verifydependencies", - embed = [":go_default_library"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/cmd/verifydependencies/OWNERS b/cmd/verifydependencies/OWNERS deleted file mode 100644 index 18ed712ebb1..00000000000 --- a/cmd/verifydependencies/OWNERS +++ /dev/null @@ -1,8 +0,0 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -reviewers: -- neolit123 -- justaugustus -approvers: -- yastij -- dims diff --git a/cmd/verifydependencies/verifydependencies.go b/cmd/verifydependencies/verifydependencies.go deleted file mode 100644 index f8f159abadc..00000000000 --- a/cmd/verifydependencies/verifydependencies.go +++ /dev/null @@ -1,101 +0,0 @@ -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// verify that dependencies are up-to-date across different files -package main - -import ( - "flag" - "log" - "strings" - - "bufio" - "io/ioutil" - "os" - "regexp" - - "gopkg.in/yaml.v2" -) - -type dependencies struct { - Dependencies []*dependency `yaml:"dependencies"` -} - -type dependency struct { - Name string `yaml:"name"` - Version string `yaml:"version"` - RefPaths []*refPath `yaml:"refPaths"` -} - -type refPath struct { - Path string `yaml:"path"` - Match string `yaml:"match"` -} - -func main() { - - flag.Parse() - - args := flag.Args() - - if len(args) == 0 { - log.Fatalf("usage: verifydependency ") - } - externalDepsFilePath := args[0] - externalDepsFile, err := ioutil.ReadFile(externalDepsFilePath) - if err != nil { - panic(err) - } - - mismatchErrorMessage := "ERROR: %v indicates that %v should be at version %v, but the following files didn't match:\n\n" + - "%v\n\nif you are changing the version of %v, make sure all of the following files are updated with the newest version including %v\n" + - "then run ./hack/verify-external-dependencies-version.sh\n\n" - externalDeps := &dependencies{} - var pathsToUpdate []string - err = yaml.Unmarshal(externalDepsFile, externalDeps) - if err != nil { - panic(err) - } - - for _, dep := range externalDeps.Dependencies { - for _, refPath := range dep.RefPaths { - func() { - file, err := os.Open(refPath.Path) - if err != nil { - log.Fatalf("error opening file %v : %v", refPath.Path, err) - } - defer file.Close() - matcher := regexp.MustCompile(refPath.Match) - depFileScanner := bufio.NewScanner(file) - var found bool - for depFileScanner.Scan() { - line := depFileScanner.Text() - if matcher.MatchString(line) && strings.Contains(line, dep.Version) { - found = true - break - } - } - if !found { - pathsToUpdate = append(pathsToUpdate, refPath.Path) - } - }() - } - if len(pathsToUpdate) > 0 { - log.Fatalf(mismatchErrorMessage, externalDepsFilePath, dep.Name, dep.Version, strings.Join(pathsToUpdate, "\n"), dep.Name, externalDepsFilePath) - } - } - -} diff --git a/hack/verify-external-dependencies-version.sh b/hack/verify-external-dependencies-version.sh index 20f8bb158ed..1fe2e90fbef 100755 --- a/hack/verify-external-dependencies-version.sh +++ b/hack/verify-external-dependencies-version.sh @@ -26,6 +26,19 @@ source "${KUBE_ROOT}/hack/lib/init.sh" kube::golang::verify_go_version -cd "${KUBE_ROOT}" +# Ensure that we find the binaries we build before anything else. +export GOBIN="${KUBE_OUTPUT_BINPATH}" +PATH="${GOBIN}:${PATH}" -go run cmd/verifydependencies/verifydependencies.go "${KUBE_ROOT}"/build/dependencies.yaml +# Install zeitgeist +cd "${KUBE_ROOT}/hack/tools" +GO111MODULE=on go install sigs.k8s.io/zeitgeist +cd - + +# Prefer full path for running zeitgeist +ZEITGEIST_BIN="$(which zeitgeist)" + +"${ZEITGEIST_BIN}" validate \ + --local \ + --base-path "${KUBE_ROOT}" \ + --config "${KUBE_ROOT}"/build/dependencies.yaml