/api

API definitions for the Istio project

Primary LanguageGoApache License 2.0Apache-2.0

Istio APIs and Common Configuration Definitions

This repository defines component-level APIs and common configuration formats for the Istio platform. These definitions are specified using the protobuf syntax.

This repository depends only on the tools repository for tools used during build. This repository will not depend on any other repositories. Except for tools, all other Istio repositories can take a dependency on the api repository.

API Guidelines

When making changes to the protos in this repository, your changes must comply with the API guidelines.

Updating

After the protobuf definitions are updated, the corresponding *pb.go, _pb2.py, *.json and Kubernetes Custom Resource Definition files must be generated by running make gen and submitted as part of the same PR as the updated definitions. Also make gen will update the proto.lock file with new changes.

Backwards Incompatible Changes

If a PR tries to make backwards incompatible changes, it will be blocked by buf breaking. If there are legitimate reasons to make these breaking changes forever, the configuration in buf.yaml can be changed. If it is a one-off case, the PR can be force approved skipping the test.