mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
generate clientset, external listers, and external informers to client-go directly
This commit is contained in:
parent
ae1ff1a2d4
commit
a87ed3871d
@ -61,62 +61,65 @@ GV_DIRS_CSV=$(IFS=',';echo "${GV_DIRS[*]// /,}";IFS=$)
|
||||
# update- and verify- scripts.
|
||||
${clientgen} "$@"
|
||||
${clientgen} -t "$@" --output-base "${KUBE_ROOT}/vendor"
|
||||
${clientgen} --clientset-name="clientset" --input-base="k8s.io/kubernetes/vendor/k8s.io/api" --input="${GV_DIRS_CSV}" "$@"
|
||||
${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_internalclientset --clientset-path=k8s.io/kubernetes/federation/client/clientset_generated --input="../../federation/apis/federation/","api/","extensions/","batch/","autoscaling/" --included-types-overrides="api/Service,api/Namespace,extensions/ReplicaSet,api/Secret,extensions/Ingress,extensions/Deployment,extensions/DaemonSet,api/ConfigMap,api/Event,batch/Job,autoscaling/HorizontalPodAutoscaler" "$@"
|
||||
${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" "$@"
|
||||
|
||||
listergen_kubernetes_apis=(
|
||||
listergen_internal_apis=(
|
||||
pkg/api
|
||||
$(
|
||||
cd ${KUBE_ROOT}
|
||||
# because client-gen doesn't do policy/v1alpha1, we have to skip it too
|
||||
find pkg/apis -name types.go | xargs -n1 dirname | sort | grep -v pkg.apis.policy.v1alpha1
|
||||
find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort
|
||||
)
|
||||
)
|
||||
listergen_kubernetes_apis=(${listergen_kubernetes_apis[@]/#/k8s.io/kubernetes/})
|
||||
listergen_staging_apis=(
|
||||
listergen_internal_apis=(${listergen_internal_apis[@]/#/k8s.io/kubernetes/})
|
||||
listergen_internal_apis_csv=$(IFS=,; echo "${listergen_internal_apis[*]}")
|
||||
${listergen} --input-dirs "${listergen_internal_apis_csv}" "$@"
|
||||
|
||||
listergen_external_apis=(
|
||||
$(
|
||||
cd ${KUBE_ROOT}/staging/src
|
||||
# because client-gen doesn't do policy/v1alpha1, we have to skip it too
|
||||
find k8s.io/api -name types.go | xargs -n1 dirname | sort | grep -v pkg.apis.policy.v1alpha1
|
||||
)
|
||||
)
|
||||
listergen_external_apis_csv=$(IFS=,; echo "${listergen_external_apis[*]}")
|
||||
${listergen} --output-base "${KUBE_ROOT}/vendor" --output-package "k8s.io/client-go/listers" --input-dirs "${listergen_external_apis_csv}" "$@"
|
||||
|
||||
LISTERGEN_APIS=$(IFS=,; echo "${listergen_kubernetes_apis[*]}")
|
||||
LISTERGEN_APIS+=","
|
||||
LISTERGEN_APIS+=$(IFS=,; echo "${listergen_staging_apis[*]}")
|
||||
${listergen} --input-dirs "${LISTERGEN_APIS}" "$@"
|
||||
|
||||
informergen_kubernetes_apis=(
|
||||
informergen_internal_apis=(
|
||||
pkg/api
|
||||
$(
|
||||
cd ${KUBE_ROOT}
|
||||
# because client-gen doesn't do policy/v1alpha1, we have to skip it too
|
||||
find pkg/apis -name types.go | xargs -n1 dirname | sort | grep -v pkg.apis.policy.v1alpha1
|
||||
find pkg/apis -maxdepth 2 -name types.go | xargs -n1 dirname | sort
|
||||
)
|
||||
)
|
||||
informergen_kubernetes_apis=(${informergen_kubernetes_apis[@]/#/k8s.io/kubernetes/})
|
||||
informergen_staging_apis=(
|
||||
$(
|
||||
cd ${KUBE_ROOT}/staging/src
|
||||
# because client-gen doesn't do policy/v1alpha1, we have to skip it too
|
||||
find k8s.io/api -name types.go | xargs -n1 dirname | sort | grep -v pkg.apis.policy.v1alpha1
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
INFORMERGEN_APIS=$(IFS=,; echo "${informergen_kubernetes_apis[*]}")
|
||||
INFORMERGEN_APIS+=","
|
||||
INFORMERGEN_APIS+=$(IFS=,; echo "${informergen_staging_apis[*]}")
|
||||
|
||||
informergen_internal_apis=(${informergen_internal_apis[@]/#/k8s.io/kubernetes/})
|
||||
informergen_internal_apis_csv=$(IFS=,; echo "${informergen_internal_apis[*]}")
|
||||
${informergen} \
|
||||
--input-dirs "${INFORMERGEN_APIS}" \
|
||||
--versioned-clientset-package k8s.io/kubernetes/pkg/client/clientset_generated/clientset \
|
||||
--input-dirs "${informergen_internal_apis_csv}" \
|
||||
--internal-clientset-package k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset \
|
||||
--listers-package k8s.io/kubernetes/pkg/client/listers \
|
||||
"$@"
|
||||
|
||||
informergen_external_apis=(
|
||||
$(
|
||||
cd ${KUBE_ROOT}/staging/src
|
||||
# because client-gen doesn't do policy/v1alpha1, we have to skip it too
|
||||
find k8s.io/api -name types.go | xargs -n1 dirname | sort | grep -v pkg.apis.policy.v1alpha1
|
||||
)
|
||||
)
|
||||
|
||||
informergen_external_apis_csv=$(IFS=,; echo "${informergen_external_apis[*]}")
|
||||
|
||||
${informergen} \
|
||||
--output-base "${KUBE_ROOT}/vendor" \
|
||||
--output-package "k8s.io/client-go/informers" \
|
||||
--single-directory \
|
||||
--input-dirs "${informergen_external_apis_csv}" \
|
||||
--versioned-clientset-package k8s.io/client-go/kubernetes \
|
||||
--listers-package k8s.io/client-go/listers \
|
||||
"$@"
|
||||
|
||||
# You may add additional calls of code generators like set-gen above.
|
||||
|
||||
|
@ -22,10 +22,12 @@ type CustomArgs struct {
|
||||
VersionedClientSetPackage string
|
||||
InternalClientSetPackage string
|
||||
ListersPackage string
|
||||
SingleDirectory bool
|
||||
}
|
||||
|
||||
func (ca *CustomArgs) AddFlags(fs *pflag.FlagSet) {
|
||||
fs.StringVar(&ca.InternalClientSetPackage, "internal-clientset-package", ca.InternalClientSetPackage, "the full package name for the internal clientset to use")
|
||||
fs.StringVar(&ca.VersionedClientSetPackage, "versioned-clientset-package", ca.VersionedClientSetPackage, "the full package name for the versioned clientset to use")
|
||||
fs.StringVar(&ca.ListersPackage, "listers-package", ca.ListersPackage, "the full package name for the listers to use")
|
||||
fs.BoolVar(&ca.SingleDirectory, "single-directory", ca.SingleDirectory, "if true, omit the intermediate \"internalversion\" and \"externalversions\" subdirectories")
|
||||
}
|
||||
|
@ -120,8 +120,12 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
||||
glog.Fatalf("Wrong CustomArgs type: %T", arguments.CustomArgs)
|
||||
}
|
||||
|
||||
internalVersionPackagePath := filepath.Join(arguments.OutputPackagePath, "internalversion")
|
||||
externalVersionPackagePath := filepath.Join(arguments.OutputPackagePath, "externalversions")
|
||||
internalVersionPackagePath := filepath.Join(arguments.OutputPackagePath)
|
||||
externalVersionPackagePath := filepath.Join(arguments.OutputPackagePath)
|
||||
if !customArgs.SingleDirectory {
|
||||
internalVersionPackagePath = filepath.Join(arguments.OutputPackagePath, "internalversion")
|
||||
externalVersionPackagePath = filepath.Join(arguments.OutputPackagePath, "externalversions")
|
||||
}
|
||||
|
||||
var packageList generator.Packages
|
||||
typesForGroupVersion := make(map[clientgentypes.GroupVersion][]*types.Type)
|
||||
@ -206,16 +210,20 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
||||
}
|
||||
}
|
||||
|
||||
packageList = append(packageList, factoryInterfacePackage(externalVersionPackagePath, boilerplate, customArgs.VersionedClientSetPackage, typesForGroupVersion))
|
||||
packageList = append(packageList, factoryPackage(externalVersionPackagePath, boilerplate, externalGroupVersions, customArgs.VersionedClientSetPackage, typesForGroupVersion))
|
||||
for _, groupVersionsEntry := range externalGroupVersions {
|
||||
packageList = append(packageList, groupPackage(externalVersionPackagePath, groupVersionsEntry, boilerplate))
|
||||
if len(externalGroupVersions) != 0 {
|
||||
packageList = append(packageList, factoryInterfacePackage(externalVersionPackagePath, boilerplate, customArgs.VersionedClientSetPackage, typesForGroupVersion))
|
||||
packageList = append(packageList, factoryPackage(externalVersionPackagePath, boilerplate, externalGroupVersions, customArgs.VersionedClientSetPackage, typesForGroupVersion))
|
||||
for _, groupVersionsEntry := range externalGroupVersions {
|
||||
packageList = append(packageList, groupPackage(externalVersionPackagePath, groupVersionsEntry, boilerplate))
|
||||
}
|
||||
}
|
||||
|
||||
packageList = append(packageList, factoryInterfacePackage(internalVersionPackagePath, boilerplate, customArgs.InternalClientSetPackage, typesForGroupVersion))
|
||||
packageList = append(packageList, factoryPackage(internalVersionPackagePath, boilerplate, internalGroupVersions, customArgs.InternalClientSetPackage, typesForGroupVersion))
|
||||
for _, groupVersionsEntry := range internalGroupVersions {
|
||||
packageList = append(packageList, groupPackage(internalVersionPackagePath, groupVersionsEntry, boilerplate))
|
||||
if len(internalGroupVersions) != 0 {
|
||||
packageList = append(packageList, factoryInterfacePackage(internalVersionPackagePath, boilerplate, customArgs.InternalClientSetPackage, typesForGroupVersion))
|
||||
packageList = append(packageList, factoryPackage(internalVersionPackagePath, boilerplate, internalGroupVersions, customArgs.InternalClientSetPackage, typesForGroupVersion))
|
||||
for _, groupVersionsEntry := range internalGroupVersions {
|
||||
packageList = append(packageList, groupPackage(internalVersionPackagePath, groupVersionsEntry, boilerplate))
|
||||
}
|
||||
}
|
||||
|
||||
return packageList
|
||||
|
@ -31,6 +31,7 @@ func main() {
|
||||
VersionedClientSetPackage: "k8s.io/kubernetes/pkg/client/clientset_generated/clientset",
|
||||
InternalClientSetPackage: "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset",
|
||||
ListersPackage: "k8s.io/kubernetes/pkg/client/listers",
|
||||
SingleDirectory: false,
|
||||
}
|
||||
arguments := &args.GeneratorArgs{
|
||||
OutputBase: args.DefaultSourceTree(),
|
||||
|
Loading…
Reference in New Issue
Block a user