Service Limit Initialization
Understanding how the SPEKTRA Edge service limit initialized.
When Service boots up, it creates limits.edgelq.com/Plan
instances.
Limits controller, defined in limits/controller/v1
, has LimitsAssigner
processor, defined in
limits/controller/v1/limits_assigner/limits_assigner.go
. It is
created per each possible assigner, therefore, it is created per Service
and Organization. LimitsAssigner is typically responsible for creating
AcceptedPlan
instances for child entities, but, for Services, it makes
an exception: It creates an AcceptedPlan for itself! See file
limits/controller/v1/limits_assigner/default_plan_acceptor.go
, function
calculateSnapshot
computes plans for child entities, and for
the Service itself! This is booting things up, the Service can assign
any values it likes to itself.