Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
Description
YUNIKORN-1273 added support to create unique application IDs instead of grouping pods within a given namespace into a single application. However, using this feature in combination with the YuniKorn admission controller results in a failure to accept pods, as the pod UID (used in the generated identifier) has not yet been created when admission controllers run.
For example, given a pod UID of deadbeefcafe running in namespace test, the expected application ID is test-deadbeefcafe. However, since the pod UID is not present when the admission controller runs, this evaluates to `test-` and results in the pod being rejected by Kubernetes since labels must contain only alphanumeric characters and "-", and must start end end with alphanumeric characters.
One way to solve this would be to set the applicationId label in the admission controller to something like test-uniqueautogen and then have the scheduler interpret the presence of the -uniqueautogen suffix as a request to use the pod UID as part of the name (since it will be available to the scheduler). This satisfies the original design of YUNIKORN-1273, which was to make the identifiers predictable (since they contain the pod UID), unique (as they still are UUIDs) and consistent between restarts of the scheduler. A drawback to this approach is that the applicationId label will not reflect the real applicationId used.
Attachments
Issue Links
- breaks
-
YUNIKORN-1856 Pod creation fails in certain cases when generateUniqueAppId is enabled
- Closed
- is caused by
-
YUNIKORN-2082 Make unique applicationIDs generated by YUNIKORN-1273 be reproducible
- Closed
- is duplicated by
-
YUNIKORN-2332 admissionController.filtering.generateUniqueAppId not work as expected
- Closed
- is related to
-
YUNIKORN-1273 Add option to have unique application ids in a namespace
- Closed
- links to