Replace goimports python scripts with shell scripts, remove unnecessary .packages

This commit is contained in:
Peter Rifel 2020-12-10 18:52:09 -06:00
parent c954099355
commit a8a0b6783f
No known key found for this signature in database
GPG Key ID: BC6469E5B16DB2B6
8 changed files with 39 additions and 390 deletions

View File

@ -400,11 +400,11 @@ gofmt:
.PHONY: goimports
goimports:
hack/update-goimports
hack/update-goimports.sh
.PHONY: verify-goimports
verify-goimports:
hack/verify-goimports
hack/verify-goimports.sh
.PHONY: govet
govet: ${BINDATA_TARGETS}
@ -429,10 +429,6 @@ verify-gofmt:
verify-gomod:
hack/verify-gomod.sh
.PHONY: verify-packages
verify-packages: ${BINDATA_TARGETS}
hack/verify-packages.sh
# find release notes, remove PR titles and output the rest to .build, then run misspell on all files
.PHONY: verify-misspelling
verify-misspelling:
@ -481,14 +477,14 @@ verify-hashes:
# ci target is for developers, it aims to cover all the CI jobs
# verify-gendocs will call kops target
.PHONY: ci
ci: govet verify-gofmt verify-crds verify-gomod verify-goimports verify-boilerplate verify-bazel verify-misspelling verify-shellcheck verify-staticcheck verify-terraform verify-bindata nodeup examples test | verify-gendocs verify-packages verify-apimachinery
ci: govet verify-gofmt verify-crds verify-gomod verify-goimports verify-boilerplate verify-bazel verify-misspelling verify-shellcheck verify-staticcheck verify-terraform verify-bindata nodeup examples test | verify-gendocs verify-apimachinery
echo "Done!"
# we skip tasks that rely on bazel and are covered by other jobs
# verify-gofmt: uses bazel, covered by pull-kops-verify
# govet needs to be after verify-goimports because it generates bindata.go
.PHONY: quick-ci
quick-ci: verify-crds verify-goimports govet verify-boilerplate verify-bazel verify-misspelling verify-shellcheck verify-bindata | verify-gendocs verify-packages verify-apimachinery
quick-ci: verify-crds verify-goimports govet verify-boilerplate verify-bazel verify-misspelling verify-shellcheck verify-bindata | verify-gendocs verify-apimachinery
echo "Done!"
.PHONY: pr

View File

@ -1,213 +0,0 @@
k8s.io/kops
k8s.io/kops/channels/cmd/channels
k8s.io/kops/channels/pkg/api
k8s.io/kops/channels/pkg/channels
k8s.io/kops/channels/pkg/cmd
k8s.io/kops/cloudmock/aws/mockautoscaling
k8s.io/kops/cloudmock/aws/mockec2
k8s.io/kops/cloudmock/aws/mockelb
k8s.io/kops/cloudmock/aws/mockelbv2
k8s.io/kops/cloudmock/aws/mockiam
k8s.io/kops/cloudmock/aws/mockroute53
k8s.io/kops/cloudmock/openstack
k8s.io/kops/cloudmock/openstack/mockblockstorage
k8s.io/kops/cloudmock/openstack/mockcompute
k8s.io/kops/cloudmock/openstack/mockdns
k8s.io/kops/cloudmock/openstack/mockimage
k8s.io/kops/cloudmock/openstack/mockloadbalancer
k8s.io/kops/cloudmock/openstack/mocknetworking
k8s.io/kops/cmd/kops
k8s.io/kops/cmd/kops/util
k8s.io/kops/cmd/kops-controller
k8s.io/kops/cmd/kops-controller/controllers
k8s.io/kops/cmd/kops-controller/pkg/config
k8s.io/kops/cmd/kops-controller/pkg/server
k8s.io/kops/cmd/kube-apiserver-healthcheck
k8s.io/kops/cmd/nodeup
k8s.io/kops/dns-controller/cmd/dns-controller
k8s.io/kops/dns-controller/pkg/dns
k8s.io/kops/dns-controller/pkg/util
k8s.io/kops/dns-controller/pkg/watchers
k8s.io/kops/dnsprovider/pkg/dnsprovider
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/aws/route53
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/aws/route53/stubs
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/coredns
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/coredns/stubs
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/google/clouddns
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/google/clouddns/internal
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/google/clouddns/internal/interfaces
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/google/clouddns/internal/stubs
k8s.io/kops/dnsprovider/pkg/dnsprovider/providers/openstack/designate
k8s.io/kops/dnsprovider/pkg/dnsprovider/rrstype
k8s.io/kops/dnsprovider/pkg/dnsprovider/tests
k8s.io/kops/examples/kops-api-example
k8s.io/kops/node-authorizer/cmd/node-authorizer
k8s.io/kops/node-authorizer/pkg/authorizers/alwaysallow
k8s.io/kops/node-authorizer/pkg/authorizers/aws
k8s.io/kops/node-authorizer/pkg/client
k8s.io/kops/node-authorizer/pkg/server
k8s.io/kops/node-authorizer/pkg/utils
k8s.io/kops/nodeup/pkg/bootstrap
k8s.io/kops/nodeup/pkg/model
k8s.io/kops/nodeup/pkg/model/networking
k8s.io/kops/nodeup/pkg/model/resources
k8s.io/kops/pkg/acls
k8s.io/kops/pkg/acls/gce
k8s.io/kops/pkg/acls/s3
k8s.io/kops/pkg/apis/kops
k8s.io/kops/pkg/apis/kops/install
k8s.io/kops/pkg/apis/kops/model
k8s.io/kops/pkg/apis/kops/registry
k8s.io/kops/pkg/apis/kops/util
k8s.io/kops/pkg/apis/kops/v1alpha2
k8s.io/kops/pkg/apis/kops/validation
k8s.io/kops/pkg/apis/nodeup
k8s.io/kops/pkg/assets
k8s.io/kops/pkg/backoff
k8s.io/kops/pkg/client/clientset_generated/clientset
k8s.io/kops/pkg/client/clientset_generated/clientset/fake
k8s.io/kops/pkg/client/clientset_generated/clientset/scheme
k8s.io/kops/pkg/client/clientset_generated/clientset/typed/kops/internalversion
k8s.io/kops/pkg/client/clientset_generated/clientset/typed/kops/internalversion/fake
k8s.io/kops/pkg/client/clientset_generated/clientset/typed/kops/v1alpha2
k8s.io/kops/pkg/client/clientset_generated/clientset/typed/kops/v1alpha2/fake
k8s.io/kops/pkg/client/clientset_generated/internalclientset
k8s.io/kops/pkg/client/clientset_generated/internalclientset/fake
k8s.io/kops/pkg/client/clientset_generated/internalclientset/scheme
k8s.io/kops/pkg/client/clientset_generated/internalclientset/typed/kops/internalversion
k8s.io/kops/pkg/client/clientset_generated/internalclientset/typed/kops/internalversion/fake
k8s.io/kops/pkg/client/clientset_generated/internalclientset/typed/kops/v1alpha2
k8s.io/kops/pkg/client/clientset_generated/internalclientset/typed/kops/v1alpha2/fake
k8s.io/kops/pkg/client/simple
k8s.io/kops/pkg/client/simple/api
k8s.io/kops/pkg/client/simple/vfsclientset
k8s.io/kops/pkg/cloudinstances
k8s.io/kops/pkg/clusteraddons
k8s.io/kops/pkg/commands
k8s.io/kops/pkg/commands/commandutils
k8s.io/kops/pkg/commands/helpers
k8s.io/kops/pkg/configbuilder
k8s.io/kops/pkg/diff
k8s.io/kops/pkg/dns
k8s.io/kops/pkg/dump
k8s.io/kops/pkg/edit
k8s.io/kops/pkg/featureflag
k8s.io/kops/pkg/flagbuilder
k8s.io/kops/pkg/formatter
k8s.io/kops/pkg/instancegroups
k8s.io/kops/pkg/jsonutils
k8s.io/kops/pkg/k8scodecs
k8s.io/kops/pkg/k8sversion
k8s.io/kops/pkg/kopscodecs
k8s.io/kops/pkg/kubeconfig
k8s.io/kops/pkg/kubemanifest
k8s.io/kops/pkg/model
k8s.io/kops/pkg/model/alimodel
k8s.io/kops/pkg/model/awsmodel
k8s.io/kops/pkg/model/components
k8s.io/kops/pkg/model/components/addonmanifests
k8s.io/kops/pkg/model/components/addonmanifests/dnscontroller
k8s.io/kops/pkg/model/components/etcdmanager
k8s.io/kops/pkg/model/components/kubeapiserver
k8s.io/kops/pkg/model/components/node-authorizer
k8s.io/kops/pkg/model/defaults
k8s.io/kops/pkg/model/domodel
k8s.io/kops/pkg/model/gcemodel
k8s.io/kops/pkg/model/iam
k8s.io/kops/pkg/model/openstackmodel
k8s.io/kops/pkg/model/resources
k8s.io/kops/pkg/model/spotinstmodel
k8s.io/kops/pkg/nodeidentity
k8s.io/kops/pkg/nodeidentity/aws
k8s.io/kops/pkg/nodeidentity/do
k8s.io/kops/pkg/nodeidentity/gce
k8s.io/kops/pkg/nodeidentity/openstack
k8s.io/kops/pkg/nodelabels
k8s.io/kops/pkg/pki
k8s.io/kops/pkg/pretty
k8s.io/kops/pkg/rbac
k8s.io/kops/pkg/resources
k8s.io/kops/pkg/resources/ali
k8s.io/kops/pkg/resources/aws
k8s.io/kops/pkg/resources/digitalocean
k8s.io/kops/pkg/resources/digitalocean/dns
k8s.io/kops/pkg/resources/gce
k8s.io/kops/pkg/resources/openstack
k8s.io/kops/pkg/resources/ops
k8s.io/kops/pkg/resources/spotinst
k8s.io/kops/pkg/sshcredentials
k8s.io/kops/pkg/systemd
k8s.io/kops/pkg/templates
k8s.io/kops/pkg/testutils
k8s.io/kops/pkg/testutils/golden
k8s.io/kops/pkg/tokens
k8s.io/kops/pkg/try
k8s.io/kops/pkg/urls
k8s.io/kops/pkg/util/stringorslice
k8s.io/kops/pkg/util/subnet
k8s.io/kops/pkg/util/templater
k8s.io/kops/pkg/validation
k8s.io/kops/pkg/values
k8s.io/kops/pkg/wellknownports
k8s.io/kops/pkg/wellknownusers
k8s.io/kops/protokube/cmd/protokube
k8s.io/kops/protokube/pkg/etcd
k8s.io/kops/protokube/pkg/gossip
k8s.io/kops/protokube/pkg/gossip/ali
k8s.io/kops/protokube/pkg/gossip/aws
k8s.io/kops/protokube/pkg/gossip/dns
k8s.io/kops/protokube/pkg/gossip/dns/hosts
k8s.io/kops/protokube/pkg/gossip/dns/provider
k8s.io/kops/protokube/pkg/gossip/do
k8s.io/kops/protokube/pkg/gossip/gce
k8s.io/kops/protokube/pkg/gossip/memberlist
k8s.io/kops/protokube/pkg/gossip/mesh
k8s.io/kops/protokube/pkg/gossip/openstack
k8s.io/kops/protokube/pkg/hostmount
k8s.io/kops/protokube/pkg/protokube
k8s.io/kops/protokube/tests/integration/build_etcd_manifest
k8s.io/kops/tests/codecs
k8s.io/kops/tests/fuzz
k8s.io/kops/tests/integration/channel
k8s.io/kops/tests/integration/conversion
k8s.io/kops/upup/models
k8s.io/kops/upup/pkg/fi
k8s.io/kops/upup/pkg/fi/assettasks
k8s.io/kops/upup/pkg/fi/cloudup
k8s.io/kops/upup/pkg/fi/cloudup/alitasks
k8s.io/kops/upup/pkg/fi/cloudup/aliup
k8s.io/kops/upup/pkg/fi/cloudup/awstasks
k8s.io/kops/upup/pkg/fi/cloudup/awsup
k8s.io/kops/upup/pkg/fi/cloudup/cloudformation
k8s.io/kops/upup/pkg/fi/cloudup/do
k8s.io/kops/upup/pkg/fi/cloudup/dotasks
k8s.io/kops/upup/pkg/fi/cloudup/gce
k8s.io/kops/upup/pkg/fi/cloudup/gcetasks
k8s.io/kops/upup/pkg/fi/cloudup/openstack
k8s.io/kops/upup/pkg/fi/cloudup/openstacktasks
k8s.io/kops/upup/pkg/fi/cloudup/spotinsttasks
k8s.io/kops/upup/pkg/fi/cloudup/terraform
k8s.io/kops/upup/pkg/fi/fitasks
k8s.io/kops/upup/pkg/fi/loader
k8s.io/kops/upup/pkg/fi/nodeup
k8s.io/kops/upup/pkg/fi/nodeup/cloudinit
k8s.io/kops/upup/pkg/fi/nodeup/local
k8s.io/kops/upup/pkg/fi/nodeup/nodetasks
k8s.io/kops/upup/pkg/fi/secrets
k8s.io/kops/upup/pkg/fi/utils
k8s.io/kops/upup/pkg/kutil
k8s.io/kops/upup/tools/generators/fitask
k8s.io/kops/util/pkg/architectures
k8s.io/kops/util/pkg/distributions
k8s.io/kops/util/pkg/env
k8s.io/kops/util/pkg/exec
k8s.io/kops/util/pkg/hashing
k8s.io/kops/util/pkg/maps
k8s.io/kops/util/pkg/mirrors
k8s.io/kops/util/pkg/proxy
k8s.io/kops/util/pkg/reflectutils
k8s.io/kops/util/pkg/slice
k8s.io/kops/util/pkg/tables
k8s.io/kops/util/pkg/text
k8s.io/kops/util/pkg/ui
k8s.io/kops/util/pkg/vfs

View File

@ -1,17 +0,0 @@
#!/usr/bin/env python
# Copyright 2017 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.
__all__ = ["kubernetes"]

View File

@ -1,17 +0,0 @@
#!/usr/bin/env python
# Copyright 2017 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.
__all__ = ["devtools"]

View File

@ -1,47 +0,0 @@
#!/usr/bin/env python
# Copyright 2017 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.
import os
from os import path
import subprocess
import sys
from lib.kubernetes import devtools
gopath=os.environ['GOPATH']
repo_root = path.abspath(path.join(path.dirname(path.abspath(__file__)), '..'))
goimports = path.join(repo_root, '_output', 'bin', 'goimports')
packages = devtools.read_packages_file(repo_root)
paths = []
for package in packages:
if package == 'k8s.io/kops':
continue
paths.append(package)
print("packages %s" % paths)
process = subprocess.Popen(['go', 'build', '-o', goimports, 'golang.org/x/tools/cmd/goimports'], stdout=subprocess.PIPE, cwd=path.join(repo_root, 'hack'))
stdout, stderr = process.communicate()
if process.returncode != 0:
print("FAIL: installing goimports failed")
print(stderr)
sys.exit(1)
subprocess.call([goimports, '-w'] + paths, cwd=path.join(gopath, 'src'))

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
#!/usr/bin/env bash
# Copyright 2017 The Kubernetes Authors.
# Copyright 2020 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.
@ -14,12 +14,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import os
from os import path
set -o errexit
set -o nounset
set -o pipefail
def read_packages_file(repo_path):
packages = []
with open(path.join(repo_path, 'hack/.packages')) as packages_file:
for package in packages_file:
packages.append(package.replace('\n', ''))
return packages
. "$(dirname "${BASH_SOURCE[0]}")/common.sh"
cd "${KOPS_ROOT}/hack" || exit 1
go build -o "${TOOLS_BIN}/goimports" golang.org/x/tools/cmd/goimports
cd "${KOPS_ROOT}" || exit 1
mapfile -t files < <(find . -type f -name '*.go' -not -path "./vendor/*")
"${TOOLS_BIN}/goimports" -w "${files[@]}"

View File

@ -1,66 +0,0 @@
#!/usr/bin/env python
# Copyright 2017 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.
import os
from os import path
import subprocess
import sys
from lib.kubernetes import devtools
gopath=os.environ['GOPATH']
repo_root = path.abspath(path.join(path.dirname(path.abspath(__file__)), '..'))
goimports = path.join(repo_root, '_output', 'bin', 'goimports')
packages = devtools.read_packages_file(repo_root)
paths = []
for package in packages:
if package == 'k8s.io/kops':
continue
paths.append(package)
# Install goimports from vendor
print('installing goimports')
process = subprocess.Popen(['go', 'build', '-o', goimports, 'golang.org/x/tools/cmd/goimports'], stdout=subprocess.PIPE, cwd=path.join(repo_root, 'hack'))
stdout, stderr = process.communicate()
if process.returncode != 0:
print("FAIL: installing goimports failed")
print(stderr)
sys.exit(1)
print("packages %s" % paths)
env = os.environ
process = subprocess.Popen(
[goimports, '-l'] + paths,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd=path.join(gopath, 'src'),
env=env
)
stdout, stderr = process.communicate()
if stdout.strip().decode('ascii') != "" or stderr.strip().decode('ascii') != "":
print("FAIL: 'goimports -w' needs to be run on the following files: ")
print("STDOUT:\n" + stdout.decode('ascii'))
print("STDERR:\n" + stderr.decode('ascii'))
print('FAIL: Please run the following command: make goimports')
sys.exit(1)

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Copyright 2019 The Kubernetes Authors.
# Copyright 2020 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.
@ -14,18 +14,25 @@
# See the License for the specific language governing permissions and
# limitations under the License.
set -o errexit
set -o nounset
set -o pipefail
. "$(dirname "${BASH_SOURCE[0]}")/common.sh"
# Check that the .packages file contains all packages
packages_file="${KOPS_ROOT}/hack/.packages"
if ! diff -u "${packages_file}" <(go list k8s.io/kops/... | grep -v vendor); then
{
echo
echo "FAIL: ./hack/verify-packages.sh failed as the ./hack/.packages file is not in up to date."
echo
echo "FAIL: please execute the following command: 'go list k8s.io/kops/... | grep -v vendor > hack/.packages'"
echo
} >&2
false
cd "${KOPS_ROOT}/hack" || exit 1
go build -o "${TOOLS_BIN}/goimports" golang.org/x/tools/cmd/goimports
cd "${KOPS_ROOT}" || exit 1
mapfile -t files < <(find . -type f -name '*.go' -not -path "./vendor/*")
output=$("${TOOLS_BIN}/goimports" -l "${files[@]}")
if [ "${output}" != "" ]; then
echo "goimports failed"
echo "Please run the following command: make goimports"
exit 1
fi