mirror of https://github.com/k3s-io/k3s
kube-gen: unify update-codecgen.sh scripts
parent
34397721d6
commit
4b709e8485
|
@ -779,6 +779,18 @@ staging/src/k8s.io/kube-gen/cmd/informer-gen/generators
|
|||
staging/src/k8s.io/kube-gen/cmd/lister-gen/generators
|
||||
staging/src/k8s.io/kube-gen/test/apis/testgroup
|
||||
staging/src/k8s.io/kube-gen/test/apis/testgroup/v1
|
||||
staging/src/k8s.io/kube-gen/test/clientset/internal
|
||||
staging/src/k8s.io/kube-gen/test/clientset/internal/fake
|
||||
staging/src/k8s.io/kube-gen/test/clientset/internal/scheme
|
||||
staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion
|
||||
staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake
|
||||
staging/src/k8s.io/kube-gen/test/clientset/versioned
|
||||
staging/src/k8s.io/kube-gen/test/clientset/versioned/fake
|
||||
staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme
|
||||
staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1
|
||||
staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake
|
||||
staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces
|
||||
staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces
|
||||
staging/src/k8s.io/metrics/pkg/apis/custom_metrics
|
||||
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1
|
||||
staging/src/k8s.io/metrics/pkg/apis/metrics
|
||||
|
|
|
@ -60,7 +60,6 @@ GV_DIRS_CSV=$(IFS=',';echo "${GV_DIRS[*]// /,}";IFS=$)
|
|||
# This can be called with one flag, --verify-only, so it works for both the
|
||||
# update- and verify- scripts.
|
||||
${clientgen} "$@"
|
||||
${clientgen} -t "$@" --output-base "${KUBE_ROOT}/vendor"
|
||||
${clientgen} --output-base "${KUBE_ROOT}/vendor" --clientset-path="k8s.io/client-go" --clientset-name="kubernetes" --input-base="k8s.io/kubernetes/vendor/k8s.io/api" --input="${GV_DIRS_CSV}" "$@"
|
||||
# Clientgen for federation clientset.
|
||||
${clientgen} --clientset-name=federation_clientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input-base="k8s.io/kubernetes/vendor/k8s.io/api" --input="../../../federation/apis/federation/v1beta1","core/v1","extensions/v1beta1","batch/v1","autoscaling/v1" --included-types-overrides="core/v1/Service,core/v1/Namespace,extensions/v1beta1/ReplicaSet,core/v1/Secret,extensions/v1beta1/Ingress,extensions/v1beta1/Deployment,extensions/v1beta1/DaemonSet,core/v1/ConfigMap,core/v1/Event,batch/v1/Job,autoscaling/v1/HorizontalPodAutoscaler" "$@"
|
||||
|
@ -123,6 +122,7 @@ ${informergen} \
|
|||
# You may add additional calls of code generators like set-gen above.
|
||||
|
||||
# call generation on sub-project for now
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/kube-gen/hack/update-codegen.sh
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/kube-aggregator/hack/update-codegen.sh
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/sample-apiserver/hack/update-codegen.sh
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/apiextensions-apiserver/hack/update-codegen.sh
|
||||
|
|
|
@ -27,6 +27,7 @@ kube::golang::setup_env
|
|||
#
|
||||
# Note: these must be before the main script call because the later calls the sub-project's
|
||||
# update-codegen.sh scripts. We wouldn't see any error on changes then.
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/kube-gen/hack/verify-codegen.sh
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/kube-aggregator/hack/verify-codegen.sh
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/sample-apiserver/hack/verify-codegen.sh
|
||||
KUBEGEN_PKG=./vendor/k8s.io/kube-gen vendor/k8s.io/apiextensions-apiserver/hack/verify-codegen.sh
|
||||
|
|
|
@ -33,7 +33,6 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
test = flag.BoolP("test", "t", false, "set this flag to generate the client code for the testdata")
|
||||
inputVersions = flag.StringSlice("input", []string{
|
||||
"api/",
|
||||
"admissionregistration/",
|
||||
|
@ -170,47 +169,30 @@ func main() {
|
|||
"k8s.io/apimachinery/pkg/apimachinery/registered",
|
||||
}
|
||||
|
||||
if *test {
|
||||
arguments.InputDirs = append(dependencies, []string{
|
||||
"k8s.io/kube-gen/test/apis/testgroup",
|
||||
}...)
|
||||
arguments.CustomArgs = clientgenargs.Args{
|
||||
Groups: []types.GroupVersions{{Group: "testgroup", Versions: []types.Version{""}}},
|
||||
GroupVersionToInputPath: map[types.GroupVersion]string{
|
||||
{Group: "testgroup", Version: ""}: "k8s.io/kube-gen/test/apis/testgroup",
|
||||
},
|
||||
ClientsetName: "test_internalclientset",
|
||||
ClientsetOutputPath: "k8s.io/kube-gen/test/clientset/internal",
|
||||
ClientsetOnly: false,
|
||||
FakeClient: true,
|
||||
CmdArgs: cmdArgs,
|
||||
}
|
||||
} else {
|
||||
inputPath, groups, gvToPath, err := parseInputVersions()
|
||||
if err != nil {
|
||||
glog.Fatalf("Error: %v", err)
|
||||
}
|
||||
includedTypesOverrides, err := parseIncludedTypesOverrides()
|
||||
if err != nil {
|
||||
glog.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
glog.V(3).Infof("going to generate clientset from these input paths: %v", inputPath)
|
||||
arguments.InputDirs = append(inputPath, dependencies...)
|
||||
|
||||
arguments.CustomArgs = clientgenargs.Args{
|
||||
Groups: groups,
|
||||
GroupVersionToInputPath: gvToPath,
|
||||
ClientsetName: *clientsetName,
|
||||
ClientsetAPIPath: *clientsetAPIPath,
|
||||
ClientsetOutputPath: *clientsetPath,
|
||||
ClientsetOnly: *clientsetOnly,
|
||||
FakeClient: *fakeClient,
|
||||
CmdArgs: cmdArgs,
|
||||
IncludedTypesOverrides: includedTypesOverrides,
|
||||
}
|
||||
|
||||
glog.V(3).Infof("==arguments: %v\n", arguments)
|
||||
inputPath, groups, gvToPath, err := parseInputVersions()
|
||||
if err != nil {
|
||||
glog.Fatalf("Error: %v", err)
|
||||
}
|
||||
includedTypesOverrides, err := parseIncludedTypesOverrides()
|
||||
if err != nil {
|
||||
glog.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
glog.V(3).Infof("going to generate clientset from these input paths: %v", inputPath)
|
||||
arguments.InputDirs = append(inputPath, dependencies...)
|
||||
|
||||
arguments.CustomArgs = clientgenargs.Args{
|
||||
Groups: groups,
|
||||
GroupVersionToInputPath: gvToPath,
|
||||
ClientsetName: *clientsetName,
|
||||
ClientsetAPIPath: *clientsetAPIPath,
|
||||
ClientsetOutputPath: *clientsetPath,
|
||||
ClientsetOnly: *clientsetOnly,
|
||||
FakeClient: *fakeClient,
|
||||
CmdArgs: cmdArgs,
|
||||
IncludedTypesOverrides: includedTypesOverrides,
|
||||
}
|
||||
|
||||
glog.V(3).Infof("==arguments: %v\n", arguments)
|
||||
|
||||
if err := arguments.Execute(
|
||||
generators.NameSystems(),
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
SCRIPT_PACKAGE=k8s.io/kube-gen
|
||||
SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
SCRIPT_BASE=${SCRIPT_ROOT}/../..
|
||||
KUBEGEN_PKG=${KUBEGEN_PKG:-$(ls -d -1 ./vendor/k8s.io/kube-gen 2>/dev/null || echo "k8s.io/kube-gen")}
|
||||
|
||||
clientgen="${PWD}/client-gen-binary"
|
||||
listergen="${PWD}/lister-gen"
|
||||
informergen="${PWD}/informer-gen"
|
||||
# Register function to be called on EXIT to remove generated binary.
|
||||
function cleanup {
|
||||
rm -f "${clientgen:-}"
|
||||
rm -f "${listergen:-}"
|
||||
rm -f "${informergen:-}"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
function generate_group() {
|
||||
local GROUP_NAME=$1
|
||||
local VERSION=$2
|
||||
local CLIENT_PKG=${SCRIPT_PACKAGE}/test/clientset
|
||||
local LISTERS_PKG=${SCRIPT_PACKAGE}/test/listers
|
||||
local INFORMERS_PKG=${SCRIPT_PACKAGE}/test/informers
|
||||
local APIS_PKG=${SCRIPT_PACKAGE}/test/apis
|
||||
local INPUT_APIS=(
|
||||
${GROUP_NAME}/
|
||||
${GROUP_NAME}/${VERSION}
|
||||
)
|
||||
|
||||
echo "Building client-gen"
|
||||
go build -o "${clientgen}" ${KUBEGEN_PKG}/cmd/client-gen
|
||||
|
||||
echo "generating clientset for group ${GROUP_NAME} and version ${VERSION} at ${SCRIPT_BASE}/${CLIENT_PKG}"
|
||||
${clientgen} --clientset-name="internal" --input-base ${APIS_PKG} --input ${INPUT_APIS[@]} --clientset-path ${CLIENT_PKG} --output-base=${SCRIPT_BASE}
|
||||
${clientgen} --clientset-name="versioned" --input-base ${APIS_PKG} --input ${GROUP_NAME}/${VERSION} --clientset-path ${CLIENT_PKG} --output-base=${SCRIPT_BASE}
|
||||
|
||||
echo "Building lister-gen"
|
||||
go build -o "${listergen}" ${KUBEGEN_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}" ${KUBEGEN_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}/versioned \
|
||||
--internal-clientset-package ${CLIENT_PKG}/internal \
|
||||
--listers-package ${LISTERS_PKG} \
|
||||
--output-package ${INFORMERS_PKG} \
|
||||
--output-base ${SCRIPT_BASE}
|
||||
}
|
||||
|
||||
generate_group testgroup v1
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
SCRIPT_BASE=${SCRIPT_ROOT}/../..
|
||||
|
||||
DIFFROOT="${SCRIPT_ROOT}/test"
|
||||
TMP_DIFFROOT="${SCRIPT_ROOT}/_tmp/test"
|
||||
_tmp="${SCRIPT_ROOT}/_tmp"
|
||||
|
||||
cleanup() {
|
||||
rm -rf "${_tmp}"
|
||||
}
|
||||
trap "cleanup" EXIT SIGINT
|
||||
|
||||
cleanup
|
||||
|
||||
mkdir -p "${TMP_DIFFROOT}"
|
||||
cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}"
|
||||
|
||||
"${SCRIPT_ROOT}/hack/update-codegen.sh"
|
||||
echo "diffing ${DIFFROOT} against freshly generated codegen"
|
||||
ret=0
|
||||
diff -Naupr "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$?
|
||||
cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}"
|
||||
if [[ $ret -eq 0 ]]
|
||||
then
|
||||
echo "${DIFFROOT} up to date."
|
||||
else
|
||||
echo "${DIFFROOT} is out of date. Please run hack/update-codegen.sh"
|
||||
exit 1
|
||||
fi
|
|
@ -28,6 +28,11 @@ var (
|
|||
AddToScheme = SchemeBuilder.AddToScheme
|
||||
)
|
||||
|
||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
// Adds the list of known types to api.Scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||
|
|
|
@ -39,6 +39,11 @@ func init() {
|
|||
localSchemeBuilder.Register(addKnownTypes)
|
||||
}
|
||||
|
||||
// Resource takes an unqualified resource and returns a Group qualified GroupResource
|
||||
func Resource(resource string) schema.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
// Adds the list of known types to api.Scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||
|
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package test_internalclientset
|
||||
package internal
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
|
|
@ -40,7 +40,7 @@ function generate_group() {
|
|||
local CLIENT_PKG=${SCRIPT_PACKAGE}/pkg/client
|
||||
local LISTERS_PKG=${CLIENT_PKG}/listers_generated
|
||||
local INFORMERS_PKG=${CLIENT_PKG}/informers_generated
|
||||
local PREFIX=${SCRIPT_PACKAGE}/pkg/apis
|
||||
local APIS_PKG=${SCRIPT_PACKAGE}/pkg/apis
|
||||
local INPUT_APIS=(
|
||||
${GROUP_NAME}/
|
||||
${GROUP_NAME}/${VERSION}
|
||||
|
@ -50,21 +50,21 @@ function generate_group() {
|
|||
go build -o "${clientgen}" ${KUBEGEN_PKG}/cmd/client-gen
|
||||
|
||||
echo "generating clientset for group ${GROUP_NAME} and version ${VERSION} at ${SCRIPT_BASE}/${CLIENT_PKG}"
|
||||
${clientgen} --input-base ${PREFIX} --input ${INPUT_APIS[@]} --clientset-path ${CLIENT_PKG}/clientset_generated --output-base=${SCRIPT_BASE}
|
||||
${clientgen} --clientset-name="clientset" --input-base ${PREFIX} --input ${GROUP_NAME}/${VERSION} --clientset-path ${CLIENT_PKG}/clientset_generated --output-base=${SCRIPT_BASE}
|
||||
${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}" ${KUBEGEN_PKG}/cmd/lister-gen
|
||||
|
||||
echo "generating listers for group ${GROUP_NAME} and version ${VERSION} at ${SCRIPT_BASE}/${LISTERS_PKG}"
|
||||
${listergen} --input-dirs ${SCRIPT_PACKAGE}/pkg/apis/wardle --input-dirs ${SCRIPT_PACKAGE}/pkg/apis/${GROUP_NAME}/${VERSION} --output-package ${LISTERS_PKG} --output-base ${SCRIPT_BASE}
|
||||
${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}" ${KUBEGEN_PKG}/cmd/informer-gen
|
||||
|
||||
echo "generating informers for group ${GROUP_NAME} and version ${VERSION} at ${SCRIPT_BASE}/${INFORMERS_PKG}"
|
||||
${informergen} \
|
||||
--input-dirs ${SCRIPT_PACKAGE}/pkg/apis/${GROUP_NAME} --input-dirs ${SCRIPT_PACKAGE}/pkg/apis/${GROUP_NAME}/${VERSION} \
|
||||
--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} \
|
||||
|
|
Loading…
Reference in New Issue