Controller
The Controller is deprecated and is no longer part of the Fission architecture. It was deprecated in 1.18.0 and removed from the default install in 1.20.0. This page is kept for reference and migration guidance only.
The Controller was a standalone REST API server that the Fission CLI used to talk to. It exposed CRUD endpoints for Fission resources and proxied requests to internal services.
Every Fission resource has always been stored as a Kubernetes Custom Resource, so the Controller was an extra hop in front of the Kubernetes API server. That hop has been removed.
What replaced it
The Fission CLI and all Fission components now talk to the Kubernetes API server directly. You create, read, update, and delete Fission resources as native CRDs, and the API server handles authentication, authorization (RBAC), and validation.
Validation that the Controller used to perform now runs at the API server through CEL rules on the CRDs and a focused admission webhook.
The Helm chart no longer has a controller.enabled flag — the component was removed entirely, not merely disabled by default.
Migration
If you have tooling or scripts that called the old Controller REST endpoints, switch them to the Kubernetes API.
- Use the
fissionCLI for everyday operations. It speaks to the Kubernetes API server using your kubeconfig. - Use
kubectl(or any Kubernetes client) to manage Fission resources as CRDs directly — for examplekubectl get functions.fission.ioorkubectl apply -f function.yaml. - Apply Kubernetes RBAC to Fission CRDs to control who can manage which resources.
Related
- Architecture overview — the current set of Fission components.
- Admission Webhook — how Fission resources are validated today.
- Reconcilers — how components act on the CRDs you create.