This is an automated email from the ASF dual-hosted git repository.

gerlowskija pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr-operator.git


The following commit(s) were added to refs/heads/main by this push:
     new 99363aa  Ensure initContainer sets SOLR_TOOL_OPTS based on SOLR_OPTS 
value (#804)
99363aa is described below

commit 99363aa28abf9d2adf70b3d10e64259215d98f8f
Author: Jason Gerlowski <[email protected]>
AuthorDate: Tue Nov 4 09:11:55 2025 -0500

    Ensure initContainer sets SOLR_TOOL_OPTS based on SOLR_OPTS value (#804)
---
 controllers/solrcloud_controller_basic_auth_test.go |  9 +++++----
 controllers/solrcloud_controller_zk_test.go         |  6 +++---
 controllers/util/solr_util.go                       | 13 +++++++------
 helm/solr-operator/Chart.yaml                       |  7 +++++++
 4 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/controllers/solrcloud_controller_basic_auth_test.go 
b/controllers/solrcloud_controller_basic_auth_test.go
index 54b309e..f01fe91 100644
--- a/controllers/solrcloud_controller_basic_auth_test.go
+++ b/controllers/solrcloud_controller_basic_auth_test.go
@@ -324,10 +324,11 @@ func expectBasicAuthConfigOnPodTemplateWithGomega(g 
Gomega, solrCloud *solrv1bet
                        // if the zookeeperRef has ACLs set, verify the env 
vars were set correctly for this initContainer
                        allACL, _ := solrCloud.Spec.ZookeeperRef.GetACLs()
                        if allACL != nil {
-                               g.Expect(expInitContainer.Env).To(HaveLen(10), 
"Wrong number of env vars using ACLs and Basic Auth")
-                               
g.Expect(expInitContainer.Env[len(expInitContainer.Env)-2].Name).To(Equal("SOLR_OPTS"),
 "Env var SOLR_OPTS is misplaced the Solr Pod env vars")
-                               
g.Expect(expInitContainer.Env[len(expInitContainer.Env)-1].Name).To(Equal("SECURITY_JSON"),
 "Env var SECURITY_JSON is misplaced the Solr Pod env vars")
-                               testACLEnvVarsWithGomega(g, 
expInitContainer.Env[3:len(expInitContainer.Env)-2], true)
+                               g.Expect(expInitContainer.Env).To(HaveLen(11), 
"Wrong number of env vars using ACLs and Basic Auth")
+                               
g.Expect(expInitContainer.Env[len(expInitContainer.Env)-3].Name).To(Equal("SOLR_OPTS"),
 "Env var SOLR_OPTS is misplaced among the initContainer env vars")
+                               
g.Expect(expInitContainer.Env[len(expInitContainer.Env)-2].Name).To(Equal("SOLR_TOOL_OPTS"),
 "Env var SOLR_TOOL_OPTS is misplaced among the initContainer env vars")
+                               
g.Expect(expInitContainer.Env[len(expInitContainer.Env)-1].Name).To(Equal("SECURITY_JSON"),
 "Env var SECURITY_JSON is misplaced among the initContainer env vars")
+                               testACLEnvVarsWithGomega(g, 
expInitContainer.Env[3:len(expInitContainer.Env)-3], true)
                        } // else this ref not using ACLs
 
                        expectPutSecurityJsonInZkCmd(g, expInitContainer)
diff --git a/controllers/solrcloud_controller_zk_test.go 
b/controllers/solrcloud_controller_zk_test.go
index 78d070d..7193420 100644
--- a/controllers/solrcloud_controller_zk_test.go
+++ b/controllers/solrcloud_controller_zk_test.go
@@ -583,9 +583,9 @@ var _ = FDescribe("SolrCloud controller - Zookeeper", 
func() {
                        testPodEnvVariables(expectedEnvVars, 
statefulSet.Spec.Template.Spec.Containers[0].Env)
 
                        expectedInitContainerEnvVars := map[string]string{
-                               "SOLR_ZK_OPTS":    testSolrZKOpts,
-                               "SOLR_OPTS":       "$(SOLR_ZK_OPTS) " + 
testSolrOpts,
-                               "ZKCLI_JVM_FLAGS": "-Dsolr.zk.opts=this",
+                               "SOLR_ZK_OPTS":   testSolrZKOpts,
+                               "SOLR_OPTS":      "$(SOLR_ZK_OPTS) " + 
testSolrOpts,
+                               "SOLR_TOOL_OPTS": "$(SOLR_ZK_OPTS) " + 
testSolrOpts,
                        }
                        testPodEnvVariables(expectedInitContainerEnvVars, 
statefulSet.Spec.Template.Spec.InitContainers[1].Env)
                })
diff --git a/controllers/util/solr_util.go b/controllers/util/solr_util.go
index 50fdbc4..2cce36a 100644
--- a/controllers/util/solr_util.go
+++ b/controllers/util/solr_util.go
@@ -19,6 +19,10 @@ package util
 
 import (
        "fmt"
+       "sort"
+       "strconv"
+       "strings"
+
        solr "github.com/apache/solr-operator/api/v1beta1"
        appsv1 "k8s.io/api/apps/v1"
        corev1 "k8s.io/api/core/v1"
@@ -28,9 +32,6 @@ import (
        "k8s.io/apimachinery/pkg/util/intstr"
        "k8s.io/utils/pointer"
        "k8s.io/utils/ptr"
-       "sort"
-       "strconv"
-       "strings"
 )
 
 const (
@@ -1236,6 +1237,9 @@ func generateZKInteractionInitContainer(solrCloud 
*solr.SolrCloud, solrCloudStat
                envVars = append(envVars, corev1.EnvVar{
                        Name:  "SOLR_OPTS",
                        Value: strings.Join(allSolrOpts, " "),
+               }, corev1.EnvVar{
+                       Name:  "SOLR_TOOL_OPTS",
+                       Value: strings.Join(allSolrOpts, " "),
                })
        }
 
@@ -1251,9 +1255,6 @@ func generateZKInteractionInitContainer(solrCloud 
*solr.SolrCloud, solrCloudStat
 
        if security != nil && security.SecurityJson != "" {
                envVars = append(envVars, corev1.EnvVar{Name: "SECURITY_JSON", 
ValueFrom: security.SecurityJsonSrc})
-               if solrCloud.Spec.SolrZkOpts != "" {
-                       envVars = append(envVars, corev1.EnvVar{Name: 
"ZKCLI_JVM_FLAGS", Value: solrCloud.Spec.SolrZkOpts})
-               }
                cmd += cmdToPutSecurityJsonInZk()
        }
 
diff --git a/helm/solr-operator/Chart.yaml b/helm/solr-operator/Chart.yaml
index fb16b8e..ddbd812 100644
--- a/helm/solr-operator/Chart.yaml
+++ b/helm/solr-operator/Chart.yaml
@@ -72,6 +72,13 @@ annotations:
           url: https://github.com/apache/solr-operator/issues/778
         - name: Github PR
           url: https://github.com/apache/solr-operator/pull/779
+    - kind: fixed
+      description: SOLR_TOOL_OPTS is now set, allowing 'setup-zk' 
initContainer to obey ZK connection settings
+      links:
+        - name: Github Issue
+          url: https://github.com/apache/solr-operator/issues/717
+        - name: Github PR
+          url: https://github.com/apache/solr-operator/pull/804
   artifacthub.io/images: |
     - name: solr-operator
       image: apache/solr-operator:v0.10.0-prerelease

Reply via email to