apache / apache/solr-operator

Expose k8s topology labels to Solr PODs

Open
#556 8 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
283
Forks
148
PR merge metrics
No merged PRs in 30d

Description

We support topologySpreadConstraint in #350, so Solr PODs are spread across AZs. But for Solr to be able to place replicas across AZs with the [Affinity placement plugin](https://solr.apache.org/guide/solr/latest/configuration-guide/replica-placement-plugins.html#affinityplacementfactory), Solr needs access to *node label* `topology.kubernetes.io/zone` as a java sysprop `availability_zone`.

This is non-trivial, as node labels are not exposed to PODs, and you'd need special permissions to fetch it from ApiServer. Instead of each user going through hoops of setting up Init containers to pull in this info, let's have the operator handle it and inject `topology.kubernetes.io/zone` as a system property into Solr.

Elastic has done a similar thing, referenced in https://the-asf.slack.com/archives/C01JR8WE1M5/p1669108868939589?thread_ts=1668633426.926589&cid=C01JR8WE1M5

Contributor guide

No contributing guide indexed for this repository

Research direction

Read the existing topologySpreadConstraint support referenced in #350, then trace how the operator configures Solr pods and system properties. Confirm how the Kubernetes zone label can be supplied as availability_zone; done means Solr receives the zone property without user-managed init containers.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
infrastructure, search
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.