-
Notifications
You must be signed in to change notification settings - Fork 79
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
Backward incompatibility in Reaper authentication when upgrading from 1.10 to 1.12 #1269
Comments
Hi @c3-clement, sorry for this, the problem we were trying to solve here is that it was impossible to distinguish the case where we wanted to disable auth in the Reaper UI and the case where we'd let the operator generate the credentials. |
Thanks for your reply, I understand your design choice.
I understand that you have to stick with this behavior (otherwise it would introduce a new backward incompatibility ahah) However, it would be great to have this behavior mentioned in CHANGELOG as a breaking change. Also, I'm wondering if it could be a security issue? Some k8ssandra-operator users might expose the reaper UI over the Internet (not my case). For potential future changes similar to #1163 , why not introduce a new boolean field |
I think we simply didn't realize that it would impact existing clusters.
I hope folks don't do this, but indeed it could be a security problem. @Miles-Garnsey, what's your take on this? |
I agree with @c3-clement in many ways, I don't know if it is a "security issue" but I think it is fair to say that it is "surprising behaviour with a potential impact on security" which probably amounts to the same thing... There are a few things going on here:
I am sorry for the inconvenience @c3-clement, and I'm glad that this change didn't lead to any ill effects for you in this case. I think I will add a release note about this now for future users who are upgrading. @adejanovski, I think the way to fix this is with a release notes entry. I'd be reluctant to build functionality in which inspects the state of the cluster for existing resources with a view to ensuring this sort of backwards compatibility. We've considered doing similar things a few times now (e.g. some of those malformed secrets that were created from pre-release versions of the closed source projects), and I think we'll end up with a lot of technical debt if we start trying to cater to every edge case. |
Fair enough 👍 |
Thanks for your reply and updating release notes @Miles-Garnsey
Agree with you, but we are deploying K8ssandra clusters from our own operator by importing So, Prior to Then, when upgrading to The fix I found to avoid this issue is to set explicitly I know this behavior is not gonna change, but I think it will be pretty useful if you guys are aware of how we use the Appreciate this discussion! |
That's fair enough, however I'd still suggest that leaving this nil would have avoided your issue in this particular case. The even more interesting thing is that you're operating on the Go structs directly, not the YAML API. We weren't aware that any users were doing this, and maybe we should be a little more respectful of that use case in future. Historically, we've been pretty free and easy about swapping pointer and value types, since this doesn't affect backwards compatibility for the YAML API. Thanks for alerting us to the fact that some folks are doing this!
This should indeed work. I believe that just the field absent entirely would also work, if that's a nicer solution. |
What happened?
We have multiple K8ssandra clusters running on k8ssandra-operator
v1.10
with the following Reaper spec:k8ssandra-operator
will generate a secret named<cluster-name>-reaper-ui
. I can use the username and password contained in this secret to log in to the Reaper UI.In the Reaper Deployment, the env var
REAPER_AUTH_ENABLED
is set to"true"
.After upgrading k8ssandra-operator to
v1.12
, it's possible to login into Reaper UI without authenticating.Accessing
/webui/
will not redirect the user to the login page.In the Reaper Deployment, the env var
REAPER_AUTH_ENABLED
is now set to"false"
.I believe that this backward incompatibility has been introduced in #1163 :
Prior to
v1.12
, settinguiUserSecretRef
to{}
will trigger Reaper UI secret reconciliation andREAPER_AUTH_ENABLED
will be settrue
.After
v1.12
,uiUserSecretRef
has to be set tonull
to trigger the same behavior.Did you expect to see something different?
I expect Reaper UI authentication to still be enabled when upgrading from
v1.10
tov1.12
.How to reproduce it (as minimally and precisely as possible):
v1.10
with the following Reaper spec:v1.12
without changing the k8ssandra cluster specEnvironment
K8ssandra Operator version:
v1.10
andv1.12
Kubernetes version information:
1.27
Kubernetes cluster kind:
AKS
Manifests:
The text was updated successfully, but these errors were encountered: