Skip to content

Common Packages

mtail edited this page Aug 2, 2019 · 2 revisions

Istio components written in Go take advantage of a common set of packages that delivers key functionality. Using these packages ensures consistency across our components, and in many cases help document our product better.

The common packages are located in the istio/pkg repo. Some packages are required and must be used by all components that part of the Istio product, others are utility libraries.

The set of required packages includes:

  • collateral. Handles the automated creation of reference documentation for individual components. It collects information coming from Cobra, from the annotation package, the log package, and the env package to produces documentation suitable for inclusion on our consumer istio.io.

  • ctrlz. Provides Istio's generic introspection facility. This makes it possible for users to directly connect to individual component running instances and poke around. You can augment what Ctrl-Z displays by adding component-specific information topics.

  • env. Records the environment variables used by your component, which is then incorporated in your component's documentation.

  • log. The logging library used by all Istio components, built as a layer on top of the Zap logger.

  • version. Standard way for Istio components to track and report their version.

In addition to the above, all Istio components are expected to parse command-line options using the Cobra package. This is required since we have full end-to-end integration for Cobra in our documentation pipeline.

The set of utility packages we have includes:

  • appsignals. Integration with OS signals.

  • attribute. Support for manipulating attributes.

  • cache. A high-performance in-memory cache.

  • filewatcher. Watches files for modifications.

  • pool. Highly efficient object pooling.

  • probe. Canonical implementation of health probes.

  • timedfn. Utility function to execute code with a timeout.

Dev Environment

Writing Code

Pull Requests

Testing

Performance

Releases

Misc

Central Istiod

Security

Mixer

Pilot

Telemetry

Clone this wiki locally