Skip to content

Commit

Permalink
Introduced the tech onboarding guidelines.
Browse files Browse the repository at this point in the history
  • Loading branch information
mtail committed Oct 13, 2018
1 parent d0df31f commit 22018ae
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
41 changes: 41 additions & 0 deletions ONBOARDING-TECH-TO-ISTIO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Onboarding Technologies to Istio

On occasion, we encounter situations where software developed outside of the scope of the Istio project has
sufficient alignment with the main Istio mission that it should become an integral part of Istio proper.

This document describes a set of requirements that must be satisfied before externally developed software can
be folded into the Istio project.

## Forms of Integration

Externally developed software can be integrated into the Istio project in a number of ways, falling into three broad categories:

* **Augment**. Represents changes and additions to the main code base to introduce small new features and capabilities. These changes would typically
be introduced as normal PRs into the existing Istio repository, possibly within a feature branch.

* **Extend**. Represents bigger changes to the platform, including the addition of new components. An example of this could be introducing a standard
Open Service Broker implementation for Istio. This type of change would typically be added in a subdirectory of the main Istio repo, and introduced via
a feature branch. Technologies of this type are subject to Istio's normal release cadence.

* **Support**. Represents functionality that is peripheral to the main Istio product. These tools and other binaries can be added as
standalone repositories within the Istio GitHub organization. Technologies of this type may be have a different release cadence than
the Istio's normal release cadence.

## Prerequisites

* Based on technical merits and alignment, the TOC must agree to the integration, must establish the proper form of integration, and must determine the overall protocol to follow (feature branch vs. master branch, timeline, testing requirements, doc requirements, etc).

* Contributors of the new technology must be owners of the copyright of all subject material.

* The transitive dependencies for **Augment** and **Extend** integrations must all use one of the supported Istio dependency license types
(Apache, MIT, and BSD). **Support** integrations can have dependencies with additional license types (TBD: enumerate which ones)

* Copyright for all contributed material must be explicitly assigned in the source code to "Istio Authors" and must be licensed under the Apache license.

* Contributors must agree to whatever CLA the Istio project is currently subject to.

* Contributors must agree to supply the initial documentation for the technology to <https://istio.io> or to Istio’s developer wiki on GitHub, as appropriate.

* Contributors must agree to supply test suites that ensure the new technology functions properly and meets Istio’s testing and quality standards.

* Contributors must agree to update the technology's API surface to comply with Istio’s overall design guidelines.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Other Documents
- [Technical Oversight Committee](TECH-OVERSIGHT-COMMITTEE.md) - describes our technical oversight committee
- [Commutity Roles](ROLES.md) - describes the roles individuals can assume within the Istio community
- [Reviewing and Merging Pull Requests for Istio](REVIEWING.md) - how we manage pull requests
- [Onboarding Technologies to Istio](ONBOARDING-TECH-TO-ISTIO.md) - how we work to onboard new technologies to the Istio project
- [Feature Lifecycle](FEATURE-LIFECYCLE.md) - requirements for features to be labeled Alpha, Beta or Stable
- [Feature Lifecycle Checklist](FEATURE-LIFECYCLE-CHECKLIST.md) - checklist-form of requirements for features to be labeled Alpha, Beta or Stable
- [Rocket Chat](ROCKETCHAT.md) - describes the Istio community chat platform
Expand Down

0 comments on commit 22018ae

Please # to comment.