CILogon COmanage Provisioner Integration - #487
Merged
Merged
Conversation
…the cluster username
…e POSIX allocator
lahirujayathilake
marked this pull request as draft
June 3, 2026 01:41
lahirujayathilake
marked this pull request as ready for review
June 3, 2026 02:08
Contributor
|
LGTM |
This was referenced Jul 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a POSIX username allocator under
pkg/posix, switches AMIE account provisioning to use it, and introduces the COmanage Identity-Provisioner connector. The connector listens onComputeClusterUserCreateEventand ensures each user has a CoPerson, a per-user CoGroup, and a UnixClusterAccount in a COmanage Registry.Changes
pkg/posix-BuildBasederives a POSIX username from the user's name, normalises to ASCII, and stays within the 32-char POSIX login cap. Empty first + last name returnsErrUnbuildableUsernameinstead of a silent placeholder.request_account_createandrequest_project_create(PI provisioning) now go through a singleallocateAndCreateClusterUserhelper that retries on collisions against the new(compute_cluster_id, local_username)UNIQUE.connectors/COmanage/Identity-Provisioner/. HTTP client with 5xx retry, Core API + REST wrappers, orchestrator that invokes the services end-to-end (lookup-or-create CoPerson, store comanage_id, per-user CoGroup, Identifiers, group membership, UnixCluster bind, UnixClusterAccount PUT). Idempotent on re-run.internal/connectors/loader.goregisters the new connector. If the seven required env vars are missing, the loader skips registration silently.Audit events added
PosixUsernameTruncatedPosixUsernameUnbuildablePosixUsernameAllocatorExhaustedComanageCoPersonCreatedComanageClusterAccountAttachedComanageProvisioningFailedstep=anderr=Configuration
Required env vars (loader skips silently if any is missing):
See
connectors/COmanage/Identity-Provisioner/README.mdandconfig.example.yamlfor the full list including optional attrs.Source of truth
Custos owns the user records. CoPerson and UnixClusterAccount records for users provisioned by this connector must not be edited directly in COmanage. There is no drift reconciliation.