apache / solr-operator

Official Kubernetes operator for Apache Solr
https://solr.apache.org/operator
Apache License 2.0
243 stars 112 forks source link

Add SessionAffinity and SessionAffinityConfig fields to ServiceOptions #571

Open trevorpburke opened 1 year ago

trevorpburke commented 1 year ago

Attempts to address: https://github.com/apache/solr-operator/issues/535

trevorpburke commented 1 year ago

This is a great start!

So what you have done is make the configuration available in the CRD. So the user can now provide it, however it doesn't actually set the configuration on the underlying Services that are created for the SolrCloud/PrometheusExporter.

So we still need to:

  • [ ] add the controller logic to set these fields when creating services
  • [ ] make sure the fields are copied correctly when updating the services
  • [ ] add tests to ensure the fields are propagated correctly
  • [ ] Add helm chart options

If you want an example of a PR that does something very similar, you can look here: #350

I'm happy to contribute too, I just don't want to step on your toes! Let me know how I can help 🙂

Thanks for the feedback. I think I addressed updating the helm/ files that were changed in the PR you linked. Can you share which of those files in #350 are generated vs manually written?

AFAICT it looks like I need to also update controllers/util/solr_util.go, controllers/util/prometheus_exporter_util.go, and controllers/util/common.go.

Also, make prepare is failing for me, but guessing that's because I need to add to the controllers/util/ files and the accompanying tests

HoustonPutman commented 1 year ago

Also just a thought, but we are giving users the option for the headlessService and podService, but those really don't need sessionAffinity, because they are meant to send requests to a single pod, so affinity doesn't matter. So I'm fine leaving those undocumented and unused.