Repository: kubernetes-sigs/kueue (Go)

Issue:
Unclear reason in Admitted condition when using admission checks
<!-- Please only use this template for submitting enhancement requests -->

**What would you like to be added**:

Currently, when a Workload has a quota reservation, but pending admission checks, the reason is `NoChecks`.

I suggest we `UnsatisfiedChecks` or `PendingChecks`. Similarly,
`NoReservationNoChecks` can be renamed to match the decision above.

The only tricky thing is that this is somewhat of a breaking change. Luckily, the strings didn't make it to the api package and both ProvisioningRequest and MultiKueue are alpha features.
I think we can change these.

**Why is this needed**:

`NoChecks` sounds ambiguous. There are checks, but they are not satisfied.

**Completion requirements**:

This enhancement requires the following artifacts:

- [ ] Design doc
- [ ] API change
- [ ] Docs update

The artifacts should be linked in subsequent comments.



Discussion: @tenzen-y thoughts?
Also it looks like the Admitted condition isn't always set:

https://github.com/kubernetes-sigs/kueue/blob/b088365f13ebc37d8e18d997b2a8d356b95c2d09/pkg/scheduler/scheduler.go#L517-L520

I saw this outcome in a real cluster running v0.6.2

```yaml
status:
  admission:
    clusterQueue: dws-cluster-queue
    podSetAssignments:
    - count: 1
      flavors:
        cpu: default-flavor
        memory: default-flavor
        nvidia.com/gpu: default-flavor
      name: main
      resourceUsage:
        cpu: 100m
        memory: 100Mi
        nvidia.com/gpu: "1"
  admissionChecks:
  - lastTransitionTime: "2024-05-03T20:01:59Z"
    message: ""
    name: dws-prov
    state: Pending
  conditions:
  - lastTransitionTime: "2024-05-03T20:01:59Z"
    message: Quota reserved in ClusterQueue dws-cluster-queue
    reason: QuotaReserved
    status: "True"
    type: QuotaReserved
```

/assign @trasc 
> @tenzen-y thoughts?

That makes sense. But, I believe that we should notify this change to users via `ACTION REQUIRED` because AdmissionCheck is not an alpha stage feature, although both MultiKueue and the ProvisioningACC are still alpha.




Fix (patch):
diff --git a/pkg/workload/admissionchecks.go b/pkg/workload/admissionchecks.go
index 12dd72e0965..526f4ce6b97 100644
--- a/pkg/workload/admissionchecks.go
+++ b/pkg/workload/admissionchecks.go
@@ -47,7 +47,7 @@ func SyncAdmittedCondition(w *kueue.Workload) bool {
 	switch {
 	case !hasReservation && !hasAllChecksReady:
 		newCondition.Status = metav1.ConditionFalse
-		newCondition.Reason = "NoReservationNoChecks"
+		newCondition.Reason = "NoReservationUnsatisfiedChecks"
 		newCondition.Message = "The workload has no reservation and not all checks ready"
 	case !hasReservation:
 		newCondition.Status = metav1.ConditionFalse
@@ -55,7 +55,7 @@ func SyncAdmittedCondition(w *kueue.Workload) bool {
 		newCondition.Message = "The workload has no reservation"
 	case !hasAllChecksReady:
 		newCondition.Status = metav1.ConditionFalse
-		newCondition.Reason = "NoChecks"
+		newCondition.Reason = "UnsatisfiedChecks"
 		newCondition.Message = "The workload has not all checks ready"
 	}