Merge pull request #79081 from nikhita/generate-groups-executable

Fix update-codegen.sh for staging repos to not rely on scripts being executable
This commit is contained in:
Kubernetes Prow Robot 2019-07-12 00:47:05 -07:00 committed by GitHub
commit 1bf7103ea0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 50 additions and 11 deletions

View File

@ -25,7 +25,7 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-
# --output-base because this script should also be able to run inside the vendor dir of # --output-base because this script should also be able to run inside the vendor dir of
# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir # k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
# instead of the $GOPATH directly. For normal projects this can be dropped. # instead of the $GOPATH directly. For normal projects this can be dropped.
"${CODEGEN_PKG}/generate-groups.sh" all \ bash "${CODEGEN_PKG}/generate-groups.sh" all \
k8s.io/apiextensions-apiserver/examples/client-go/pkg/client k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis \ k8s.io/apiextensions-apiserver/examples/client-go/pkg/client k8s.io/apiextensions-apiserver/examples/client-go/pkg/apis \
cr:v1 \ cr:v1 \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../../../.." --output-base "$(dirname "${BASH_SOURCE[0]}")/../../../../.."

View File

@ -27,7 +27,7 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-
# instead of the $GOPATH directly. For normal projects this can be dropped. # instead of the $GOPATH directly. For normal projects this can be dropped.
CLIENTSET_NAME_VERSIONED=clientset \ CLIENTSET_NAME_VERSIONED=clientset \
CLIENTSET_NAME_INTERNAL=internalclientset \ CLIENTSET_NAME_INTERNAL=internalclientset \
"${CODEGEN_PKG}/generate-internal-groups.sh" all \ bash "${CODEGEN_PKG}/generate-internal-groups.sh" all \
k8s.io/apiextensions-apiserver/pkg/client k8s.io/apiextensions-apiserver/pkg/apis k8s.io/apiextensions-apiserver/pkg/apis \ k8s.io/apiextensions-apiserver/pkg/client k8s.io/apiextensions-apiserver/pkg/apis k8s.io/apiextensions-apiserver/pkg/apis \
"apiextensions:v1beta1" \ "apiextensions:v1beta1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \

View File

@ -23,7 +23,7 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-
CLIENTSET_NAME_VERSIONED=clientset \ CLIENTSET_NAME_VERSIONED=clientset \
CLIENTSET_PKG_NAME=clientset_generated \ CLIENTSET_PKG_NAME=clientset_generated \
"${CODEGEN_PKG}/generate-groups.sh" deepcopy,client,lister,informer \ bash "${CODEGEN_PKG}/generate-groups.sh" deepcopy,client,lister,informer \
k8s.io/kube-aggregator/pkg/client k8s.io/kube-aggregator/pkg/apis \ k8s.io/kube-aggregator/pkg/client k8s.io/kube-aggregator/pkg/apis \
"apiregistration:v1beta1,v1" \ "apiregistration:v1beta1,v1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \
@ -32,7 +32,7 @@ CLIENTSET_PKG_NAME=clientset_generated \
CLIENTSET_NAME_VERSIONED=clientset \ CLIENTSET_NAME_VERSIONED=clientset \
CLIENTSET_PKG_NAME=clientset_generated \ CLIENTSET_PKG_NAME=clientset_generated \
CLIENTSET_NAME_INTERNAL=internalclientset \ CLIENTSET_NAME_INTERNAL=internalclientset \
"${CODEGEN_PKG}/generate-internal-groups.sh" deepcopy,client,lister,informer,conversion \ bash "${CODEGEN_PKG}/generate-internal-groups.sh" deepcopy,client,lister,informer,conversion \
k8s.io/kube-aggregator/pkg/client k8s.io/kube-aggregator/pkg/apis k8s.io/kube-aggregator/pkg/apis \ k8s.io/kube-aggregator/pkg/client k8s.io/kube-aggregator/pkg/apis k8s.io/kube-aggregator/pkg/apis \
"apiregistration:v1beta1,v1" \ "apiregistration:v1beta1,v1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \

View File

@ -28,12 +28,12 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-
# #
# we skip informers and listers for metrics, because we don't quite support the requisite operations yet # we skip informers and listers for metrics, because we don't quite support the requisite operations yet
# we skip generating the internal clientset as it's not really needed # we skip generating the internal clientset as it's not really needed
"${CODEGEN_PKG}/generate-internal-groups.sh" deepcopy,conversion \ bash "${CODEGEN_PKG}/generate-internal-groups.sh" deepcopy,conversion \
k8s.io/metrics/pkg/client k8s.io/metrics/pkg/apis k8s.io/metrics/pkg/apis \ k8s.io/metrics/pkg/client k8s.io/metrics/pkg/apis k8s.io/metrics/pkg/apis \
"metrics:v1alpha1,v1beta1 custom_metrics:v1beta1 external_metrics:v1beta1" \ "metrics:v1alpha1,v1beta1 custom_metrics:v1beta1 external_metrics:v1beta1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \
--go-header-file "${SCRIPT_ROOT}/hack/boilerplate.go.txt" --go-header-file "${SCRIPT_ROOT}/hack/boilerplate.go.txt"
"${CODEGEN_PKG}/generate-groups.sh" client \ bash "${CODEGEN_PKG}/generate-groups.sh" client \
k8s.io/metrics/pkg/client k8s.io/metrics/pkg/apis \ k8s.io/metrics/pkg/client k8s.io/metrics/pkg/apis \
"metrics:v1alpha1,v1beta1" \ "metrics:v1alpha1,v1beta1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \

View File

@ -25,7 +25,7 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-
# --output-base because this script should also be able to run inside the vendor dir of # --output-base because this script should also be able to run inside the vendor dir of
# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir # k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
# instead of the $GOPATH directly. For normal projects this can be dropped. # instead of the $GOPATH directly. For normal projects this can be dropped.
"${CODEGEN_PKG}/generate-groups.sh" "deepcopy,client,informer,lister" \ bash "${CODEGEN_PKG}/generate-groups.sh" "deepcopy,client,informer,lister" \
k8s.io/node-api/pkg/client k8s.io/node-api/pkg/apis \ k8s.io/node-api/pkg/client k8s.io/node-api/pkg/apis \
"node:v1alpha1" \ "node:v1alpha1" \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \

View File

@ -55,7 +55,7 @@ Note, however, that if you intend to
[generate code](#changes-to-the-types) then you will also need the [generate code](#changes-to-the-types) then you will also need the
code-generator repo to exist in an old-style location. One easy way code-generator repo to exist in an old-style location. One easy way
to do this is to use the command `go mod vendor` to create and to do this is to use the command `go mod vendor` to create and
popdulate the `vendor` directory. populate the `vendor` directory.
### A Note on kubernetes/kubernetes ### A Note on kubernetes/kubernetes

View File

@ -31,6 +31,47 @@ The sample controller uses [client-go library](https://github.com/kubernetes/cli
The details of interaction points of the sample controller with various mechanisms from this library are The details of interaction points of the sample controller with various mechanisms from this library are
explained [here](docs/controller-client-go.md). explained [here](docs/controller-client-go.md).
## Fetch sample-controller and its dependencies
Like the rest of Kubernetes, sample-controller has used
[godep](https://github.com/tools/godep) and `$GOPATH` for years and is
now adopting go 1.11 modules. There are thus two alternative ways to
go about fetching this demo and its dependencies.
### Fetch with godep
When NOT using go 1.11 modules, you can use the following commands.
```sh
go get -d k8s.io/sample-controller
cd $GOPATH/src/k8s.io/sample-controller
godep restore
```
### When using go 1.11 modules
When using go 1.11 modules (`GO111MODULE=on`), issue the following
commands --- starting in whatever working directory you like.
```sh
git clone https://github.com/kubernetes/sample-controller.git
cd sample-controller
```
Note, however, that if you intend to
[generate code](#changes-to-the-types) then you will also need the
code-generator repo to exist in an old-style location. One easy way
to do this is to use the command `go mod vendor` to create and
populate the `vendor` directory.
### A Note on kubernetes/kubernetes
If you are developing Kubernetes according to
https://github.com/kubernetes/community/blob/master/contributors/guide/github-workflow.md
then you already have a copy of this demo in
`kubernetes/staging/src/k8s.io/sample-controller` and its dependencies
--- including the code generator --- are in usable locations
(valid for all Go versions).
## Purpose ## Purpose
@ -42,8 +83,6 @@ This is an example of how to build a kube-like controller with a single type.
```sh ```sh
# assumes you have a working kubeconfig, not required if operating in-cluster # assumes you have a working kubeconfig, not required if operating in-cluster
go get k8s.io/sample-controller
cd $GOPATH/src/k8s.io/sample-controller
go build -o sample-controller . go build -o sample-controller .
./sample-controller -kubeconfig=$HOME/.kube/config ./sample-controller -kubeconfig=$HOME/.kube/config

View File

@ -25,7 +25,7 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-
# --output-base because this script should also be able to run inside the vendor dir of # --output-base because this script should also be able to run inside the vendor dir of
# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir # k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
# instead of the $GOPATH directly. For normal projects this can be dropped. # instead of the $GOPATH directly. For normal projects this can be dropped.
"${CODEGEN_PKG}"/generate-groups.sh "deepcopy,client,informer,lister" \ bash "${CODEGEN_PKG}"/generate-groups.sh "deepcopy,client,informer,lister" \
k8s.io/sample-controller/pkg/generated k8s.io/sample-controller/pkg/apis \ k8s.io/sample-controller/pkg/generated k8s.io/sample-controller/pkg/apis \
samplecontroller:v1alpha1 \ samplecontroller:v1alpha1 \
--output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \ --output-base "$(dirname "${BASH_SOURCE[0]}")/../../.." \