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