Controller is the component that the client talks to. It contains CRUD APIs for functions, triggers, environments, Kubernetes event watches, etc. and proxy APIs to internal 3rd-party services.
All fission resources are stored in kubernetes CRDs. It needs to be able to talk to kubernetes API service. To access CRDs in all namespaces, a service account with cluster-wide admin permission is used by Controller.
- The clients send requests to the endpoints on Controller.
- (A) Controller operates the CRDs based on the request.
- (B) If a request is to the another internal service, proxy the request to the service.
See here for more details.
/v2/apidocs.json: The OpenAPI 2.0 (Swagger) doc of all CRUD APIs for Fission CRDs.
/proxy/*: The proxy APIs to internal services.
/v2/<resources>/*: The CRUD APIs for Fission CRDs.
/healthz: The health check endpoint.