k3s/docs/devel
Kubernetes Submit Queue c19569f03f Merge pull request #34502 from fabianofranz/cli_usability_improvements
Automatic merge from submit-queue

Improvements to CLI usability and maintainability

Improves `kubectl` from an usability perspective by

1. Fixing how we handle terminal width in help. Some sections like the flags use the entire available width, while others like long descriptions breaks lines but don't follow a well established max width (screenshot below). This PR adds a new responsive writer that will adjust to terminal width and set 80, 100, or 120 columns as the max width, but not more than that given POSIX best practices and recommendations for better readability.
![terminal_width](https://cloud.githubusercontent.com/assets/158611/19253184/b23a983e-8f1f-11e6-9bae-667dd5981485.png)
2. Adds our own normalizers for long descriptions and cmd examples which allows us better control about how things like lists, paragraphs, line breaks, etc are printed. Features markdown support. Looks like `templates.LongDesc` and `templates.Examples` instead of `dedent.Dedend`.
3. Allows simple reordering and reuse of help and usage sections.
3. Adds `verify-cli-conventions.sh` which intends to run tests to make sure cmd developers are using what we propose as [kubectl conventions](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/kubectl-conventions.md). Just a couple simple tests for now but the framework is there and it's easy to extend.
4. Update [kubectl conventions](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/kubectl-conventions.md) to use our own normalizers instead of `dedent.Dedent`.

**Release note**:
<!--  Steps to write your release note:
1. Use the release-note-* labels to set the release note state (if you have access) 
2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
-->
```release-note
Improves how 'kubectl' uses the terminal size when printing help and usage.
```

@kubernetes/kubectl
2016-10-17 23:41:23 -07:00
..
developer-guides Change minion to node 2016-09-28 10:53:30 -07:00
gubernator-images Add gubernator.md and image files 2016-08-19 10:05:33 -07:00
local-cluster Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
README.md Deprecate kubernetes/kubenetes release infrastructure and doc. 2016-09-09 17:51:20 -07:00
adding-an-APIGroup.md Doc API group suffix, add test to catch new groups 2016-09-09 15:56:08 -04:00
api-conventions.md Change minion to node 2016-09-28 10:53:30 -07:00
api_changes.md Generate and verify openapi specs in source tree at api/openapi-spec 2016-09-29 17:03:31 -07:00
automation.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
cherry-picks.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
cli-roadmap.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
client-libraries.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
coding-conventions.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
collab.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
community-expectations.md Add community expectations about conduct and reviewing. 2016-09-30 15:35:15 +00:00
development.md Merge pull request #31259 from rombit-be/update-dev-doc 2016-09-05 11:10:14 -07:00
e2e-node-tests.md Merge pull request #31102 from sttts/sttts-podclient-doc 2016-09-12 18:26:49 -07:00
e2e-tests.md Merge pull request #34239 from gnufied/update-e2e-docs 2016-10-09 17:46:10 -07:00
faster_reviews.md The VS and dot is seprated 2016-09-26 17:05:53 +08:00
flaky-tests.md docs: devel: tell people how to find flake tests 2016-09-15 06:37:53 -07:00
generating-clientset.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
getting-builds.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
git_workflow.png
go-code.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
godep.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
gubernator.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
how-to-doc.md Removed non-md files from docs. Moved doc yamls to test/fixtures. 2016-08-25 15:09:27 -07:00
instrumentation.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
issues.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
kubectl-conventions.md Use our own normalizers in the conventions doc 2016-10-17 11:50:02 -02:00
kubemark-guide.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
logging.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
mesos-style.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
node-performance-testing.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
on-call-build-cop.md clarify weekend responsibilities 2016-09-09 15:56:54 -07:00
on-call-rotations.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
on-call-user-support.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
owners.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
pr_workflow.dia
pr_workflow.png
profiling.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
pull-requests.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
running-locally.md local-up: Add option to guess binary path 2016-10-17 11:55:29 -07:00
scheduler.md Fix typo in scheduler doc 2016-09-15 16:23:40 +03:00
scheduler_algorithm.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
testing.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
update-release-docs.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
updating-docs-for-feature-changes.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
writing-a-getting-started-guide.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00
writing-good-e2e-tests.md Update the latestReleaseBranch to release-1.4 in the munger. 2016-09-01 14:40:55 -07:00

README.md

WARNING WARNING WARNING WARNING WARNING

PLEASE NOTE: This document applies to the HEAD of the source tree

If you are using a released version of Kubernetes, you should refer to the docs that go with that version.

The latest release of this document can be found [here](http://releases.k8s.io/release-1.4/docs/devel/README.md).

Documentation for other releases can be found at releases.k8s.io.

Kubernetes Developer Guide

The developer guide is for anyone wanting to either write code which directly accesses the Kubernetes API, or to contribute directly to the Kubernetes project. It assumes some familiarity with concepts in the User Guide and the Cluster Admin Guide.

The process of developing and contributing code to the Kubernetes project

  • On Collaborative Development (collab.md): Info on pull requests and code reviews.

  • GitHub Issues (issues.md): How incoming issues are reviewed and prioritized.

  • Pull Request Process (pull-requests.md): When and why pull requests are closed.

  • Kubernetes On-Call Rotations (on-call-rotations.md): Descriptions of on-call rotations for build and end-user support.

  • Faster PR reviews (faster_reviews.md): How to get faster PR reviews.

  • Getting Recent Builds (getting-builds.md): How to get recent builds including the latest builds that pass CI.

  • Automated Tools (automation.md): Descriptions of the automation that is running on our github repository.

Setting up your dev environment, coding, and debugging

  • Development Guide (development.md): Setting up your development environment.

  • Hunting flaky tests (flaky-tests.md): We have a goal of 99.9% flake free tests. Here's how to run your tests many times.

  • Logging Conventions (logging.md): Glog levels.

  • Profiling Kubernetes (profiling.md): How to plug in go pprof profiler to Kubernetes.

  • Instrumenting Kubernetes with a new metric (instrumentation.md): How to add a new metrics to the Kubernetes code base.

  • Coding Conventions (coding-conventions.md): Coding style advice for contributors.

  • Document Conventions (how-to-doc.md) Document style advice for contributors.

  • Running a cluster locally (running-locally.md): A fast and lightweight local cluster deployment for development.

Developing against the Kubernetes API

  • The REST API documentation explains the REST API exposed by apiserver.

  • Annotations (docs/user-guide/annotations.md): are for attaching arbitrary non-identifying metadata to objects. Programs that automate Kubernetes objects may use annotations to store small amounts of their state.

  • API Conventions (api-conventions.md): Defining the verbs and resources used in the Kubernetes API.

  • API Client Libraries (client-libraries.md): A list of existing client libraries, both supported and user-contributed.

Writing plugins

Building releases

See the kubernetes/release repository for details on creating releases and related tools and helper scripts.

Analytics