-
Notifications
You must be signed in to change notification settings - Fork 7.9k
fix: remove hostname v1 handling from the operator #32485
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
closes: keycloak#32470 Signed-off-by: Steve Hawkins <[email protected]>
Unreported flaky test detectedIf the flaky tests below are affected by the changes, please review and update the changes accordingly. Otherwise, a maintainer should report the flaky tests prior to merging the PR. org.keycloak.testsuite.webauthn.WebAuthnIdlessTest#testWebAuthnIDLessLoginKeycloak CI - WebAuthn IT (chrome) org.keycloak.testsuite.forms.LoginTest#loginRememberMeExpiredMaxLifespanKeycloak CI - Forms IT (chrome) org.keycloak.testsuite.forms.LoginTest#loginMissingUsernameKeycloak CI - Forms IT (chrome) org.keycloak.testsuite.forms.ResetPasswordTest#resetPasswordBeforeUserIsDisabledKeycloak CI - Forms IT (chrome) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unreported flaky test detected, please review
|
@shawkins Thank you for creating the follow-up for the Operator. While I'd love to take this aggressive approach and just remove the no-longer-needed fields (as it's the last opportunity to do that for a long time as we can't do breaking changes in minor versions and 27 is more than a year away by the new release schema), but I'm afraid we can't do it since CRDs are a cluster-wide resource. That would mean e.g. Keycloak 25 and 26 could not exist in the same cluster, AFAIK. |
I'd say it's more nuanced than that. They can't upgrade until all Keycloaks no longer use the deprecated field. The case you might be worried about is that they won't be able to re-introduce those deprecated fields after the upgrade. I see this as somewhat similar to the problem we introduce for older versions once new CRD fields are available, but that aren't supported. |
This is the main issue I see. The typical scenario (for RHBK but upstream possibly as well) would be that user is using 24 in prod but want to try 26 in a different namespace. |
|
@shawkins I'd like to resurrect the discussion here. If we remove the fields, users can't install KC 24/25 alongside 26 in the same cluster, correct? If that's the case, I'm afraid we can't do it. :( |
It's probably important to deliniate between 24 and 25 wrt hostname. In 25 v1 was deprecated, so running 25 and 26 with the additional requirement that the deprecated fields are no longer used does not seem like a problem. However running 24 and 26 together is problematic because these options aren't deprecated in v24. This brings up a larger issue - when we moved up the removal of hostname v1 from the server to v26 from v27 that makes sense from a community perspective. However does seem problematic from a product perspective because the options had yet to have a product release where they were deprecated. |
|
Based upon our offline messages, we'll stick with the "do nothing" option for KC 26. We can revisit this once KC 24 is not expected to be in production use. |
closes: #32470
This is a draft of the most aggressive option, which is to completely remove hostname v1 fields from the cr. While this is a breaking change, it is allowable via an olm upgrade as long none of the Keycloaks on the cluster have these fields populated. This would be called out in the migration guide. Kubernetes itself takes this approach - deprecated fields are dropped from the same api version after a sufficient period of deprecation.
Other possible options:
cc @vmuzikar @mabartos