istio / istio/api

Better user-centric API documentation

Open
#3,280 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
519
Forks
612
Avg merge
18h 35m
Merged PRs (30d)
23

Description

Currently, our API docs (https://istio.io/latest/docs/reference/config/networking/virtual-service/) are not well suited for human consumption IMO.

The structure of the docs is based on proto. Users interacting with Istio, however, do not use proto - they use YAML. Something like [HTTPRouteDestination](https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRouteDestination) is confusing -- a user literally never sees this! The primary way a user can construct an actual YAML is by copying examples and tweaking them, as the docs themselves only loosely correlate to the YAML.

Additionally, we end up with multiple docs. For example, [HTTPRewrite](https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRewrite) object has one description, and the field [`rewrite`](https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRoute) has a different one -- to a user, logically these are the same.

Another minor issue is I cannot link to an individual field (hence I could not link to `rewrite` directly).

We have one column for "required" or not, but its not always accurate, and doesn't fully represent the api validation logic.

---

Prior art (not saying these are good or bad necessarily, just some examples(:

https://doc.crds.dev/github.com/istio/api/extensions.istio.io/WasmPlugin/v1alpha1@1.22.2

https://developer.hashicorp.com/consul/docs/connect/config-entries/ingress-gateway

https://linkerd.io/2.15/reference/httproute/

https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.HTTPRoute

https://github.com/kubernetes-sigs/gateway-api/pull/3204

https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener_components.proto

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.