mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-13 01:50:55 +00:00
Scripts for adding psuedo modules
psuedo modules will contain modules copied from k8s where we cannot depend directly on the k8s modules
This commit is contained in:
90
pseudo/init-pseudo-module.sh
Executable file
90
pseudo/init-pseudo-module.sh
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user