Automatic merge from submit-queue Add "make help" to list all make targets and help info As discussed in [PR#29320comment](https://github.com/kubernetes/kubernetes/pull/29320#issuecomment-234420145), add a `make help` to make the use of `make` easy. Though it works well on my Ubuntu now (see the output as below, not sure if it still works on other systems), I believe the scripts are somewhat ugly, so, any suggestion for optimization is welcome. BTW, I intended to list targets by groups, but it's hard to do that automatically. So I just list them in alphabetical order. I think this may be enough. There are still some TODOs (also mentioned in the Makefile): 1. make EXCLUDE_TARGET auto-generated when there are other files in cmd/ 2. should we exclude the target "cmd/libs" but include "cmd/libs/go2idl/*"? 3. should we let `help` be the first/default target? It will show the help when we just type `make`. 1 and 2 are to exclude the invalid targets generated by `$(notdir $(abspath $(wildcard cmd/*/)))`: - OWNERS is just a file, it can't be a target - libs itself cannot be built /cc @thockin @jfrazelle @MHBauer @dims Output: ``` root@vm:/home/paas/zxp/code/k8s/fork/kubernetes# make help -------------------------------------------------------------------------------- all # Build code. # # Args: # WHAT: Directory names to build. If any of these directories has a 'main' # package, the build will produce executable files under _output/go/bin. # If not specified, "everything" will be built. # GOFLAGS: Extra flags to pass to 'go' when building. # GOLDFLAGS: Extra linking flags passed to 'go' when building. # GOGCFLAGS: Additional go compile flags passed to 'go' when building. # # Example: # make # make all # make all WHAT=cmd/kubelet GOFLAGS=-v # make all GOGCFLAGS="-N -l" # Note: Use the -N -l options to disable compiler optimizations an inlining. # Using these build options allows you to subsequently use source # debugging tools like delve. --------------------------------------------------------------------------------- check # Build and run tests. # # Args: # WHAT: Directory names to test. All *_test.go files under these # directories will be run. If not specified, "everything" will be tested. # TESTS: Same as WHAT. # GOFLAGS: Extra flags to pass to 'go' when building. # GOLDFLAGS: Extra linking flags to pass to 'go' when building. # GOGCFLAGS: Additional go compile flags passed to 'go' when building. # # Example: # make check # make test # make check WHAT=pkg/kubelet GOFLAGS=-v --------------------------------------------------------------------------------- clean # Remove all build artifacts. # # Example: # make clean # # TODO(thockin): call clean_generated when we stop committing generated code. --------------------------------------------------------------------------------- clean_generated # Remove all auto-generated artifacts. # # Example: # make clean_generated --------------------------------------------------------------------------------- clean_meta # Remove make-related metadata files. # # Example: # make clean_meta --------------------------------------------------------------------------------- cross # Cross-compile for all platforms # # Example: # make cross --------------------------------------------------------------------------------- federation-apiserver federation-controller-manager genfeddocs # Add rules for all directories in federation/cmd/ # # Example: # make federation-apiserver federation-controller-manager --------------------------------------------------------------------------------- gendocs genkubedocs genman genswaggertypedocs genutils genyaml hyperkube kube-apiserver kube-controller-manager kubectl kube-dns kubelet kubemark kube-proxy kubernetes-discovery libs linkcheck mungedocs # Add rules for all directories in cmd/ # # Example: # make kubectl kube-proxy --------------------------------------------------------------------------------- generated_files # Produce auto-generated files needed for the build. # # Example: # make generated_files --------------------------------------------------------------------------------- ginkgo # Build ginkgo # # Example: # make ginkgo --------------------------------------------------------------------------------- help # Print make targets and help info # # Example: # make help --------------------------------------------------------------------------------- quick-release # Build a release, but skip tests # # Example: # make release-skip-tests --------------------------------------------------------------------------------- release # Build a release # # Example: # make release --------------------------------------------------------------------------------- release-skip-tests # Build a release, but skip tests # # Example: # make release-skip-tests --------------------------------------------------------------------------------- test # Build and run tests. # # Args: # WHAT: Directory names to test. All *_test.go files under these # directories will be run. If not specified, "everything" will be tested. # TESTS: Same as WHAT. # GOFLAGS: Extra flags to pass to 'go' when building. # GOLDFLAGS: Extra linking flags to pass to 'go' when building. # GOGCFLAGS: Additional go compile flags passed to 'go' when building. # # Example: # make check # make test # make check WHAT=pkg/kubelet GOFLAGS=-v --------------------------------------------------------------------------------- test-cmd # Build and run cmdline tests. # # Example: # make test-cmd --------------------------------------------------------------------------------- test-e2e # Build and run end-to-end tests. # # Example: # make test-e2e --------------------------------------------------------------------------------- test-e2e-node # Build and run node end-to-end tests. # # Args: # FOCUS: Regexp that matches the tests to be run. Defaults to "". # SKIP: Regexp that matches the tests that needs to be skipped. Defaults # to "". # RUN_UNTIL_FAILURE: If true, pass --untilItFails to ginkgo so tests are run # repeatedly until they fail. Defaults to false. # REMOTE: If true, run the tests on a remote host instance on GCE. Defaults # to false. # IMAGES: For REMOTE=true only. Comma delimited list of images for creating # remote hosts to run tests against. Defaults to a recent image. # LIST_IMAGES: If true, don't run tests. Just output the list of available # images for testing. Defaults to false. # HOSTS: For REMOTE=true only. Comma delimited list of running gce hosts to # run tests against. Defaults to "". # DELETE_INSTANCES: For REMOTE=true only. Delete any instances created as # part of this test run. Defaults to false. # ARTIFACTS: For REMOTE=true only. Local directory to scp test artifacts into # from the remote hosts. Defaults to ""/tmp/_artifacts". # REPORT: For REMOTE=false only. Local directory to write juntil xml results # to. Defaults to "/tmp/". # CLEANUP: For REMOTE=true only. If false, do not stop processes or delete # test files on remote hosts. Defaults to true. # IMAGE_PROJECT: For REMOTE=true only. Project containing images provided to # IMAGES. Defaults to "kubernetes-node-e2e-images". # INSTANCE_PREFIX: For REMOTE=true only. Instances created from images will # have the name "-". Defaults to "test". # INSTANCE_METADATA: For REMOTE=true and running on GCE only. # # Example: # make test-e2e-node FOCUS=Kubelet SKIP=container # make test-e2e-node REMOTE=true DELETE_INSTANCES=true # make test-e2e-node TEST_ARGS="--cgroups-per-qos=true" # Build and run tests. --------------------------------------------------------------------------------- test-integration # Build and run integration tests. # # Example: # make test-integration --------------------------------------------------------------------------------- verify # Runs all the presubmission verifications. # # Args: # BRANCH: Branch to be passed to verify-godeps.sh script. # # Example: # make verify # make verify BRANCH=branch_x --------------------------------------------------------------------------------- vet # Run 'go vet'. # # Args: # WHAT: Directory names to vet. All *.go files under these # directories will be vetted. If not specified, "everything" will be # vetted. # # Example: # make vet # make vet WHAT=pkg/kubelet --------------------------------------------------------------------------------- ``` |
||
---|---|---|
.github | ||
api | ||
build-tools | ||
cluster | ||
cmd | ||
docs | ||
examples | ||
federation | ||
Godeps | ||
hack | ||
hooks | ||
logo | ||
pkg | ||
plugin | ||
staging | ||
test | ||
third_party | ||
vendor | ||
.gazelcfg.json | ||
.generated_docs | ||
.generated_files | ||
.gitattributes | ||
.gitignore | ||
BUILD | ||
CHANGELOG.md | ||
code-of-conduct.md | ||
CONTRIBUTING.md | ||
labels.yaml | ||
LICENSE | ||
Makefile | ||
Makefile.generated_files | ||
OWNERS | ||
OWNERS_ALIASES | ||
README.md | ||
Vagrantfile | ||
WORKSPACE |
Kubernetes

Introduction
Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. Kubernetes is hosted by the Cloud Native Computing Foundation (CNCF)
Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale using a system called Borg, combined with best-of-breed ideas and practices from the community.
Are you ...
- Interested in learning more about using Kubernetes?
- See see our documentation on kubernetes.io
- Try our interactive tutorial
- Take a free course on Scalable Microservices with Kubernetes.
- Interested in developing the core Kubernetes code base, developing tools using the Kubernetes API or helping in anyway possible ? Keep reading!
Code of Conduct
The Kubernetes community abides by the CNCF code of conduct. Here is an excerpt:
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
Community
Do you want to help "shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented? ". If you are a company, you should consider joining the CNCF. For details about who's involved in CNCF and how Kubernetes plays a role, read the announcement. For general information about our community see the website community page.
Join us on social media (Twitter, Google+) and read our blog
Ask questions and help answer them on Slack or Stack Overflow
Attend our key events (kubecon, cloudnativecon, weekly community meeting)
Join a Special Interest Group (SIG)
Contribute
If you're interested in being a contributor and want to get involved in developing Kubernetes, get started with with this reading:
- The community expectations
- The contributor guidelines
- The Kubernetes Developer Guide
You will then most certainly gain a lot from joining a SIG, attending the regular hangouts as well as the community meeting.
If you have an idea for a new feature, see the Kubernetes Features repository for a list of features that are coming in new releases as well as details on how to propose one.
Support
While there are many different channels that you can use to get hold of us (Slack, Stack Overflow, Issues, Forums/Mailing lists), you can help make sure that we are efficient in getting you the help that you need.
If you need support, start with the troubleshooting guide and work your way through the process that we've outlined.
That said, if you have questions, reach out to us one way or another. We don't bite!