[ADH-8475] Support engine profiles#24
Open
tigrulya-exe wants to merge 2 commits into
Open
Conversation
iamlapa
reviewed
Jul 2, 2026
3293086 to
5f57edf
Compare
iamlapa
approved these changes
Jul 3, 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.
This PR adds named static engine profiles. An admin declares a profile once in Kyuubi server configuration (engine type + env + Kyuubi session vars + engine-native config); a client selects it by name (or gets one by user/group/engine-type default), and the server launches the right engine without the client setting any low-level details.
Backward compatible: with no profiles declared, behavior is unchanged.
Main changes
EngineProfile,EngineProfileRegistrymaterializekyuubi.engine.profile.<name>.*declarations into engine conf at startup.EngineProfileResolverpicks the profile at session open with precedence:explicit session param → user/group default → per-engine-type default → none.
KyuubiSessionImplapplies the profile as config defaults with client-suppliedoptions overrides.
EngineReffolds the profile name into the enginesubdomainpart, so enginesfrom different profiles never share an instance/lock/pool.
GET /api/v1/admin/engine/profileendpoint groups live engines by profile + enginetype. Idle (declared but not running) profiles are listed too.
Added configs
kyuubi.engine.profilekyuubi.engine.<TYPE>.profile.defaultkyuubi.engine.profiles.unknown.strategyFAILFAIL(error) orLOG(warn and apply none).Profiles themselves are declared (not config entries, but a namespace) as
kyuubi.engine.profile.<name>.<bucket>...:.typekyuubi.engine.type.env.<VAR>kyuubi.engineEnv.<VAR>.session.<rest>kyuubi.session.<rest>.conf.<rest><rest>verbatimUI changes
views/management/engine-profile— table of profiles (profile, engine type,version, instance count, status) with per-instance and per-profile Kill, and Refresh.
Example
Declare profiles in
kyuubi-defaults.conf:Connect and select a profile via the JDBC url: