Skip to content

Commit ec48421

Browse files
authored
copy edit pass on arch-controller.md (#93)
1 parent 185d516 commit ec48421

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

site/_pages/arch-controller.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,28 @@ Controller, a Workload Controller, and a Framework Controller.
1515
Kueue requires the definition of an Admission Controller that ensures
1616
that the `.spec.suspend` field of newly created AppWrapper instances is
1717
set to true. We also leverage the Admission Controller to ensure that
18-
the user creating the AppWrapper is also entitled to create the contained resources
18+
the user creating the AppWrapper is entitled to create all wrapped resources
1919
and to validate AppWrapper-specific invariants.
2020

2121
See [appwrapper_webhook.go]({{ site.gh_main_url }}/internal/webhook/appwrapper_webhook.go)
2222
for the implementation.
2323

2424
#### Workload Controller
2525

26-
An instantiation of Kueue’s GenericReconciller along with an
27-
implementation of Kueue’s GenericJob interface for the AppWrapper
28-
CRD. As is standard practice in Kueue, this controller will watch
29-
AppWrapper instances and their owned Workload instances to reconcile
30-
the two. This controller will make it possible for Kueue to suspend,
31-
resume, and constrain the placement of the AppWrapper. It will report
32-
the status of the AppWrapper to Kueue.
26+
The Workload Controller is an instantiation of Kueue’s JobReconciller
27+
along with an implementation of Kueue’s GenericJob interface for
28+
AppWrappers. As is standard practice in Kueue, this controller will
29+
watch AppWrapper instances and their owned Workload instances to
30+
reconcile the two. This controller makes it possible for Kueue to
31+
suspend and resume the AppWrapper and constrain the placement of pods
32+
created by the wrapped resources of the AppWrapper. It also translates
33+
the status of the AppWrapper to the format expected by Kueue.
3334

3435
See [workload_controller.go]({{ site.gh_main_url }}/internal/controller/workload/workload_controller.go)
3536
for the implementation.
3637

3738
A small additional piece of logic is currently needed to generalize
38-
Kueue's ability to recognize parent/children relationships and enforce
39+
Kueue's ability to recognize parent/children relationships and ensure
3940
that admission by Kueue of the parent AppWrapper will be propagated to
4041
its immediate children.
4142

@@ -44,7 +45,7 @@ for the implementation.
4445

4546
#### Framework Controller
4647

47-
A standard reconciliation loop that watches AppWrapper instances and
48+
The Framework Controller is a standard reconciliation loop that watches AppWrapper instances and
4849
is responsible for all AppWrapper-specific operations including
4950
creating, monitoring, and deleting the wrapped resources in response
5051
to the modifications of the AppWrapper instance’s specification and
@@ -96,7 +97,13 @@ stateDiagram-v2
9697
class s succeeded
9798
```
9899

99-
The state diagram above depicts the transitions between the Phases of an AppWrapper. These states are augmented by two orthogonal conditions:
100+
The state diagram above depicts the transitions between the Phases of
101+
an AppWrapper. A label on an edge indicates the state change that will
102+
trigger that transition. For example, if an AppWrapper is in the
103+
Suspended Phase and `spec.suspend` becomes False then the Framework Controller
104+
will transition the AppWrapper to the Resuming Phase.
105+
106+
These states are augmented by two orthogonal Conditions:
100107
+ **QuotaReserved** indicates whether the AppWrapper is considered Active by Kueue.
101108
+ **ResourcesDeployed** indicates whether wrapped resources may exist on the cluster.
102109

0 commit comments

Comments
 (0)