mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-18 20:52:22 +00:00
psuedo modules will contain modules copied from k8s where we cannot depend directly on the k8s modules
91 lines
2.5 KiB
Bash
Executable File
91 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
set -o xtrace
|
|
|
|
function clonePseudoRepo {
|
|
git clone -b kubernetes-1.16.2 --depth 1 \
|
|
https://github.com/kubernetes/$1.git
|
|
rm -rf $1/.git
|
|
find $1 -name go.mod | xargs rm
|
|
find $1 -name go.sum | xargs rm
|
|
find $1 -name OWNERS | xargs rm
|
|
}
|
|
|
|
function replacePseudoModuleName {
|
|
find . -name *.go | xargs sed -i -e "s!k8s.io/$1!sigs.k8s.io/kustomize/pseudo/k8s/$1!g"
|
|
find . -name *.proto | xargs sed -i -e "s!k8s.io/$1!sigs.k8s.io/kustomize/pseudo/k8s/$1!g"
|
|
}
|
|
|
|
function checkForForbiddenModules {
|
|
if find . -name '*.go' | xargs grep "k8s.io/$1" ; then
|
|
echo "forbidden dep k8s.io/$1 in *.go"
|
|
exit 1
|
|
fi
|
|
if find . -name 'go.*' | xargs grep "k8s.io/$1" ; then
|
|
echo "forbidden dep k8s.io/$1 in go.*"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# make sure we are running in the right spot
|
|
if [ ! -d "pseudo" ]; then
|
|
echo "must run script from kustomize root dir"
|
|
exit 1
|
|
fi
|
|
cd pseudo
|
|
|
|
# make the k8s deps dir
|
|
if [ -d "k8s" ]; then
|
|
echo "must remove existing k8s dir"
|
|
exit 1
|
|
fi
|
|
mkdir k8s
|
|
|
|
cd k8s
|
|
go mod init sigs.k8s.io/kustomize/pseudo/k8s
|
|
|
|
# setup the correct set of dependencies -- copied from the client-go repo
|
|
go mod edit \
|
|
-require=github.com/google/go-cmp@v0.3.1 \
|
|
-require=github.com/google/gofuzz@v1.0.0 \
|
|
-require=github.com/google/uuid@v1.1.1 \
|
|
-require=github.com/imdario/mergo@v0.3.5 \
|
|
-require=github.com/json-iterator/go@v1.1.8 \
|
|
-require=github.com/modern-go/reflect2@v1.0.1 \
|
|
-require=golang.org/x/crypto@v0.0.0-20190308221718-c2843e01d9a2 \
|
|
-require=golang.org/x/net@v0.0.0-20190620200207-3b0461eec859 \
|
|
-require=golang.org/x/oauth2@v0.0.0-20190604053449-0f29369cfe45 \
|
|
-require=golang.org/x/time@v0.0.0-20191024005414-555d28b269f0 \
|
|
-require=gopkg.in/yaml.v2@v2.2.4 \
|
|
-require=k8s.io/klog@v1.0.0 \
|
|
-require=k8s.io/kube-openapi@v0.0.0-20191107075043-30be4d16710a \
|
|
-require=k8s.io/utils@v0.0.0-20191030222137-2b95a09bc58d \
|
|
-require=sigs.k8s.io/yaml@v1.1.0
|
|
|
|
# setup the correct set of dependencies -- copied from the client-go repo
|
|
go mod edit \
|
|
-replace=golang.org/x/sys=golang.org/x/sys@v0.0.0-20190813064441-fde4db37ae7a \
|
|
-replace=golang.org/x/tools=golang.org/x/tools@v0.0.0-20190821162956-65e3620a7ae7
|
|
|
|
# fetch the k8s packages
|
|
for item in api apimachinery client-go
|
|
do
|
|
clonePseudoRepo $item
|
|
done
|
|
|
|
# fixup the package names
|
|
for item in api apimachinery client-go
|
|
do
|
|
replacePseudoModuleName $item
|
|
done
|
|
|
|
# test the pseudo packages
|
|
go test ./...
|
|
|
|
# verify the package dependencies
|
|
for item in api apimachinery client-go
|
|
do
|
|
checkForForbiddenModules $item
|
|
done
|