sample-apiserver: port to k8s.io/code-generator/generate-internal-groups.sh

This commit is contained in:
Dr. Stefan Schimanski 2017-09-20 15:38:48 +02:00
parent cba2c0967f
commit abfb658d76
10 changed files with 51 additions and 66 deletions

View File

@ -765,8 +765,18 @@ staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake
staging/src/k8s.io/sample-apiserver/pkg/apis/wardle staging/src/k8s.io/sample-apiserver/pkg/apis/wardle
staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1 staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1
staging/src/k8s.io/sample-apiserver/pkg/apiserver staging/src/k8s.io/sample-apiserver/pkg/apiserver
staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces staging/src/k8s.io/sample-apiserver/pkg/client/clientset/internalversion
staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces staging/src/k8s.io/sample-apiserver/pkg/client/clientset/internalversion/fake
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/internalversion/scheme
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/internalversion/typed/wardle/internalversion
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/internalversion/typed/wardle/internalversion/fake
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/versioned
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/versioned/fake
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/versioned/scheme
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/versioned/typed/wardle/v1alpha1
staging/src/k8s.io/sample-apiserver/pkg/client/clientset/versioned/typed/wardle/v1alpha1/fake
staging/src/k8s.io/sample-apiserver/pkg/client/informers/externalversions/internalinterfaces
staging/src/k8s.io/sample-apiserver/pkg/client/informers/internalversion/internalinterfaces
staging/src/k8s.io/sample-apiserver/pkg/cmd/server staging/src/k8s.io/sample-apiserver/pkg/cmd/server
staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer
staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder

View File

@ -0,0 +1,16 @@
/*
Copyright YEAR The Kubernetes sample-apiserver 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.
*/

View File

@ -18,58 +18,17 @@ set -o errexit
set -o nounset set -o nounset
set -o pipefail set -o pipefail
SCRIPT_PACKAGE=k8s.io/sample-apiserver SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/..
SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/.. CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
SCRIPT_BASE=${SCRIPT_ROOT}/../..
CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo k8s.io/code-generator)}
clientgen="${PWD}/client-gen-binary" # generate the code with:
listergen="${PWD}/lister-gen" # --output-base because this script should also be able to run inside the vendor dir of
informergen="${PWD}/informer-gen" # k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
# Register function to be called on EXIT to remove generated binary. # instead of the $GOPATH directly. For normal projects this can be dropped.
function cleanup { ${CODEGEN_PKG}/generate-internal-groups.sh all \
rm -f "${clientgen:-}" k8s.io/sample-apiserver/pkg/client k8s.io/sample-apiserver/pkg/apis k8s.io/sample-apiserver/pkg/apis \
rm -f "${listergen:-}" wardle:v1alpha1 \
rm -f "${informergen:-}" --output-base "$(dirname ${BASH_SOURCE})/../../.."
}
trap cleanup EXIT
function generate_group() { # To use your own boilerplate text append:
local GROUP_NAME=$1 # --go-header-file ${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt
local VERSION=$2
local CLIENT_PKG=${SCRIPT_PACKAGE}/pkg/client
local LISTERS_PKG=${CLIENT_PKG}/listers_generated
local INFORMERS_PKG=${CLIENT_PKG}/informers_generated
local APIS_PKG=${SCRIPT_PACKAGE}/pkg/apis
local INPUT_APIS=(
${GROUP_NAME}/
${GROUP_NAME}/${VERSION}
)
echo "Building client-gen"
go build -o "${clientgen}" ${CODEGEN_PKG}/cmd/client-gen
echo "generating clientset for group ${GROUP_NAME} and version ${VERSION} at ${SCRIPT_BASE}/${CLIENT_PKG}"
${clientgen} --input-base ${APIS_PKG} --input ${INPUT_APIS[@]} --clientset-path ${CLIENT_PKG}/clientset_generated --output-base=${SCRIPT_BASE}
${clientgen} --clientset-name="clientset" --input-base ${APIS_PKG} --input ${GROUP_NAME}/${VERSION} --clientset-path ${CLIENT_PKG}/clientset_generated --output-base=${SCRIPT_BASE}
echo "Building lister-gen"
go build -o "${listergen}" ${CODEGEN_PKG}/cmd/lister-gen
echo "generating listers for group ${GROUP_NAME} and version ${VERSION} at ${SCRIPT_BASE}/${LISTERS_PKG}"
${listergen} --input-dirs ${APIS_PKG}/${GROUP_NAME} --input-dirs ${APIS_PKG}/${GROUP_NAME}/${VERSION} --output-package ${LISTERS_PKG} --output-base ${SCRIPT_BASE}
echo "Building informer-gen"
go build -o "${informergen}" ${CODEGEN_PKG}/cmd/informer-gen
echo "generating informers for group ${GROUP_NAME} and version ${VERSION} at ${SCRIPT_BASE}/${INFORMERS_PKG}"
${informergen} \
--input-dirs ${APIS_PKG}/${GROUP_NAME} --input-dirs ${APIS_PKG}/${GROUP_NAME}/${VERSION} \
--versioned-clientset-package ${CLIENT_PKG}/clientset_generated/clientset \
--internal-clientset-package ${CLIENT_PKG}/clientset_generated/internalclientset \
--listers-package ${LISTERS_PKG} \
--output-package ${INFORMERS_PKG} \
--output-base ${SCRIPT_BASE}
}
generate_group wardle v1alpha1

View File

@ -26,8 +26,8 @@ import (
"k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission"
"k8s.io/sample-apiserver/pkg/admission/wardleinitializer" "k8s.io/sample-apiserver/pkg/admission/wardleinitializer"
"k8s.io/sample-apiserver/pkg/apis/wardle" "k8s.io/sample-apiserver/pkg/apis/wardle"
informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" informers "k8s.io/sample-apiserver/pkg/client/informers/internalversion"
listers "k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion" listers "k8s.io/sample-apiserver/pkg/client/listers/wardle/internalversion"
) )
// Register registers a plugin // Register registers a plugin

View File

@ -28,8 +28,8 @@ import (
"k8s.io/sample-apiserver/pkg/admission/plugin/banflunder" "k8s.io/sample-apiserver/pkg/admission/plugin/banflunder"
"k8s.io/sample-apiserver/pkg/admission/wardleinitializer" "k8s.io/sample-apiserver/pkg/admission/wardleinitializer"
"k8s.io/sample-apiserver/pkg/apis/wardle" "k8s.io/sample-apiserver/pkg/apis/wardle"
"k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/sample-apiserver/pkg/client/clientset/internalversion/fake"
informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" informers "k8s.io/sample-apiserver/pkg/client/informers/internalversion"
) )
// TestBanfluderAdmissionPlugin tests various test cases against // TestBanfluderAdmissionPlugin tests various test cases against

View File

@ -18,7 +18,7 @@ package wardleinitializer
import ( import (
"k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission"
informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" informers "k8s.io/sample-apiserver/pkg/client/informers/internalversion"
) )
// WantsInternalWardleInformerFactory defines a function which sets InformerFactory for admission plugins that need it // WantsInternalWardleInformerFactory defines a function which sets InformerFactory for admission plugins that need it

View File

@ -18,7 +18,7 @@ package wardleinitializer
import ( import (
"k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission"
informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" informers "k8s.io/sample-apiserver/pkg/client/informers/internalversion"
) )
type pluginInitializer struct { type pluginInitializer struct {

View File

@ -22,8 +22,8 @@ import (
"k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission"
"k8s.io/sample-apiserver/pkg/admission/wardleinitializer" "k8s.io/sample-apiserver/pkg/admission/wardleinitializer"
"k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake" "k8s.io/sample-apiserver/pkg/client/clientset/internalversion/fake"
informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" informers "k8s.io/sample-apiserver/pkg/client/informers/internalversion"
) )
// TestWantsInternalWardleInformerFactory ensures that the informer factory is injected // TestWantsInternalWardleInformerFactory ensures that the informer factory is injected

View File

@ -15,7 +15,7 @@ limitations under the License.
*/ */
// +k8s:deepcopy-gen=package,register // +k8s:deepcopy-gen=package,register
// +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/sample-apiserver/pkg/apis/wardle // +k8s:conversion-gen=k8s.io/sample-apiserver/pkg/apis/wardle
// Package v1alpha1 is the v1alpha1 version of the API. // Package v1alpha1 is the v1alpha1 version of the API.
// +groupName=wardle.k8s.io // +groupName=wardle.k8s.io

View File

@ -30,8 +30,8 @@ import (
"k8s.io/sample-apiserver/pkg/admission/wardleinitializer" "k8s.io/sample-apiserver/pkg/admission/wardleinitializer"
"k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1" "k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1"
"k8s.io/sample-apiserver/pkg/apiserver" "k8s.io/sample-apiserver/pkg/apiserver"
clientset "k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset" clientset "k8s.io/sample-apiserver/pkg/client/clientset/internalversion"
informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" informers "k8s.io/sample-apiserver/pkg/client/informers/internalversion"
) )
const defaultEtcdPathPrefix = "/registry/wardle.kubernetes.io" const defaultEtcdPathPrefix = "/registry/wardle.kubernetes.io"