mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 02:08:13 +00:00 
			
		
		
		
	generate clientset, external listers, and external informers to client-go directly
This commit is contained in:
		| @@ -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,17 +210,21 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	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)) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	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(), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Chao Xu
					Chao Xu