Signadot Operator
Overview
The Signadot Operator is the in-cluster component of the Signadot Platform. To
see a high-level view of all components, visit the
architecture page. The operator is installed into the
Kubernetes cluster using
Helm
into the signadot namespace. Once authorized, it connects and maintains a
persistent & TLS secured connection with the Signadot Control Plane.
It provides the following functionality:
- Creating and managing in-cluster workloads (Kubernetes Deployments, Rollouts, etc) associated with a Sandbox.
- Creating and managing resources associated with Sandboxes.
- Supporting workstation-local development by:
- Managing connections to workloads running on a workstation.
- Proxying requests from a local workstation to within the cluster.
- Serving a gRPC API for configuration and management of connections.
- Managing routing for requests between services within the cluster.
- Mananging Job Runner Groups within your cluster.
- Managing in-cluster execution of Smart Tests and Signadot Jobs.
Agent
The agent is a deployment which maintains a secure persistent connection to
the Signadot Control Plane at tunnel.signadot.com:443. This connection is used
to:
- Provide access to the Kubernetes API to the Signadot Control Plane.
- Proxy requests from Endpoint URLs to services within the cluster, including performing in-cluster DNS resolution.
Since the agent provides access to the cluster Kubernetes API server, it tends to have scaled down read-only permissions for resources not owned by Signadot, and read-write permissions for Signadot owned objects. You can learn more about the permissions that are requested by the agent here.
Controller Manager
The controller manager implements Kubernetes controllers for various Signadot Custom Resources, including
- Jobs (sdjb)
- JobRunnerGroups (sdjrg)
- Sandboxes (sds)
- Route Groups (sdrg)
- Forked Workloads (sdfw)
- External Workloads (sdxw)
- Resources (sdmr)
- RoutingConfig (sdrc)
- IstioRoutes (sdir)
- Signadot Object Lifecycle Methods (solm)
The high-level interactions between these objects are depicted below:


The controller-manager needs read-write permissions for any resources which are manipulated on behalf of sandboxes. You can learn more about the permissions that are requested by the controller manager here.
In versions of the operator prior < v0.14, there was an additional Signadot Routes (sdr) Custom Resource and Controller in use, which are now not in use anymore and scheduled for removal in a future release.
Signadot custom resource names are generally derived from concatenation, truncation where needed, and hashing for uniqueness. The names nonetheless often contain information provided in Sandboxes and RouteGroups at the control plane layer, including references to baseline workloads. We do not recommend using the custom resource Kubernetes object names to identify related objects, as this information can become lost. The presentation of such information in custom resource names is only best-effort and can not be relied upon.
JobRunnerGroup Custom Resource & Controller
The JobRunnerGroup Custom Resource (CR) manages associated Pods on which Jobs associated with the JobRunnerGroup run. It also manages a Service for addressing those Pods and provides information to the control plane for coordinating Job queues, which live on the control plane.
The Pods are automatically equipped with a GRPC service which handles Job execution on behalf of the Job controller. This service also provides support for accessing logs to the control plane.