Thanks for taking the time to contribute!
We will try to respond to every issue. The issues that get the quickest response are the ones that are easiest to respond to. The issues that are easiest to respond to usually include the following:
- A small self sufficient code example to reproduce the issue.
- For requests for help, a small self sufficient code example that illustrates what you're currently attempting to implement.
- For API feature requests, links to supporting API documentation or examples from Kubernetes clients in other languages (e.g., https://github.com/kubernetes/client-go).
The most useful PRs ensure the following:
- Include tests with your PR. Check out
test/
for adding unit tests and (possibly) integration tests. See the testing section in README.md for tips on running integration tests. - Run
npm test
andnpm run test-integration
locally. Fix any issues before submitting your PR. - After submitting a PR, Travis CI tests will run. Fix any issues Travis CI reports.
The Kubernetes developers periodically add support for new API groups. "Core" is the most commonly used API group and includes fundamental resources like Pods. "Extensions" is also a commonly used API group that introduced Deployments. If you'd like to implement support for a new group you can follow this rough guide:
- Add a new API group class. See
extensions.js
for an example API group class. - Add resource types to your new API group class. "Group resources" are resources that exist outside of namespaces. Nodes is one example. Pods is another example that has limited support outside namepaces (e.g., watching Pod events). "Namespace resources" are resources that require a namespace.
- Add unit tests and integration tests.
- Submit a PR with your changes.
- Add any specialized implementations of resources. See
deployments.js
for an example. - Submit another PR with your specialized implementations.
If you're a maintainer use npm run release
to start the release
process and follow the instructions printed to the console.