You are looking at the documentation of a prior release. To read the documentation of the latest release, please visit here.

New to KubeDB? Please start here.

Reconfigure Solr Cluster

This guide will show you how to use KubeDB Ops-manager operator to reconfigure a Solr cluster.

Before You Begin

  • At first, you need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster.

  • Install KubeDB Provisioner and Ops-manager operator in your cluster following the steps here.

  • You should be familiar with the following KubeDB concepts:

To keep everything isolated, we are going to use a separate namespace called demo throughout this tutorial.

$ kubectl create ns demo
namespace/demo created

Note: YAML files used in this tutorial are stored in docs/examples/Solr directory of kubedb/docs repository.

Now, we are going to deploy a Solr cluster using a supported version by KubeDB operator. Then we are going to apply SolrOpsRequest to reconfigure its configuration.

Prepare Solr Cluster

Now, we are going to deploy a Solr cluster with version 9.6.1.

Deploy Solr

At first, we will create a secret with the solr.xml attribute containing required configuration settings.

server.properties:

<int name="maxBooleanClauses">${solr.max.booleanClauses:2024}</int>

Here, maxBooleanClauses is set to 2024, whereas the default value is 1024.

Let’s create a k8s secret containing the above configuration where the file name will be the key and the file-content as the value:

apiVersion: v1
kind: Secret
metadata:
  name: sl-custom-config
  namespace: demo
stringData:
  "solr.xml": |
    <solr>
      <int name="maxBooleanClauses">${solr.max.booleanClauses:2024}</int>
      <backup>
        <repository name="kubedb-proxy-s3" class="org.apache.solr.s3.S3BackupRepository">
          <str name="s3.bucket.name">solrbackup</str>
          <str name="s3.region">us-east-1</str>
          <str name="s3.endpoint">http://s3proxy-s3.demo.svc:80</str>
        </repository>
      </backup>
    </solr>    
$ kubectl apply -f https://github.com/kubedb/docs/raw/v2025.3.20-rc.1/docs/examples/solr/reconfigure/sl-custom-config.yaml
secret/sl-custom-config created

In this section, we are going to create a Solr object specifying spec.configSecret field to apply this custom configuration. Below is the YAML of the Solr CR that we are going to create,

apiVersion: kubedb.com/v1alpha2
kind: Solr
metadata:
  name: solr
  namespace: demo
spec:
  configSecret:
    name: sl-custom-config
  version: 9.6.1
  replicas: 2
  zookeeperRef:
    name: zoo
    namespace: demo
  storage:
    accessModes:
      - ReadWriteOnce
    resources:
      requests:
        storage: 1Gi
    storageClassName: longhorn

Let’s create the Solr CR we have shown above,

$ kubectl create -f https://github.com/kubedb/docs/raw/v2025.3.20-rc.1/docs/examples/Solr/reconfigure/solr.yaml
solr.kubedb.com/solr created

Now, wait until solr has status Ready. i.e,

$ kubectl get sl -n demo
NAME     TYPE                  VERSION   STATUS   AGE
solr     kubedb.com/v1alpha2   9.6.1     Ready    10m

Now, we will check if the Solr has started with the custom configuration we have provided.

Exec into the Solr pod and execute the following commands to see the configurations:

$ kubectl exec -it -n demo solr-0 -- bash
Defaulted container "solr" out of: solr, init-solr (init)
solr@solr-0:/opt/solr-9.6.1$ cat /var/solr/solr.xml
<?xml version="1.0" encoding="UTF-8"?>
<solr>
  <backup>
    <repository name="kubedb-proxy-s3" class="org.apache.solr.s3.S3BackupRepository">
      <str name="s3.bucket.name">solrbackup</str>
      <str name="s3.region">us-east-1</str>
      <str name="s3.endpoint">http://s3proxy-s3.demo.svc:80</str>
    </repository>
  </backup>
  <str name="coreRootDirectory">/var/solr/data</str>
  <str name="sharedLib">${solr.sharedLib:},/opt/solr/contrib/gcs-repository/lib,/opt/solr/contrib/prometheus-exporter/lib,/opt/solr/contrib/s3-repository/lib,/opt/solr/dist</str>
  <str name="allowPaths">${solr.allowPaths:}</str>
  <int name="maxBooleanClauses">${solr.max.booleanClauses:2024}</int>
  <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
    <int name="connTimeout">${connTimeout:60000}</int>
    <int name="socketTimeout">${socketTimeout:600000}</int>
  </shardHandlerFactory>
  <solrcloud>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    <str name="host">${host:}</str>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="hostPort">${solr.port.advertise:80}</int>
    <str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DigestZkACLProvider}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <str name="zkCredentialsInjector">${zkCredentialsInjector:org.apache.solr.common.cloud.VMParamsZkCredentialsInjector}</str>
    <str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DigestZkCredentialsProvider}</str>
  </solrcloud>
  <metrics enabled="${metricsEnabled:true}"/>
</solr>

Here, we can see that our given configuration is applied to the Solr cluster. maxBooleanClauses is set to 2024.

Reconfigure using new config secret

Now we will reconfigure this cluster to set maxBooleanClauses to 2030.

Now, update our solr.xml file with the new configuration.

server.properties:

<int name="maxBooleanClauses">${solr.max.booleanClauses:2030}</int>

Then, we will create a new secret with this configuration file.

apiVersion: v1
kind: Secret
metadata:
  name: new-sl-custom-config
  namespace: demo
stringData:
  "solr.xml": |
    <solr>
      <int name="maxBooleanClauses">${solr.max.booleanClauses:2030}</int>
      <backup>
        <repository name="kubedb-proxy-s3" class="org.apache.solr.s3.S3BackupRepository">
          <str name="s3.bucket.name">solrbackup</str>
          <str name="s3.region">us-east-1</str>
          <str name="s3.endpoint">http://s3proxy-s3.demo.svc:80</str>
        </repository>
      </backup>
    </solr>    
$ kubectl apply -f https://github.com/kubedb/docs/raw/v2025.3.20-rc.1/docs/examples/solr/reconfigure/new-sl-custom-config.yaml
secret/new-sl-custom-config created

Create SolrOpsRequest

Now, we will use this secret to replace the previous secret using a SolrOpsRequest CR. The SolrOpsRequest yaml is given below,

apiVersion: ops.kubedb.com/v1alpha1
kind: SolrOpsRequest
metadata:
  name: sl-reconfigure-custom-config
  namespace: demo
spec:
  apply: IfReady
  configuration:
    configSecret:
      name: new-sl-custom-config
  databaseRef:
    name: solr
  type: Reconfigure

Here,

  • spec.databaseRef.name specifies that we are reconfiguring Solr-dev database.
  • spec.type specifies that we are performing Reconfigure on our database.
  • spec.configSecret.name specifies the name of the new secret.

Let’s create the SolrOpsRequest CR we have shown above,

$ kubectl apply -f https://github.com/kubedb/docs/raw/v2025.3.20-rc.1/docs/examples/solr/reconfigure/sl-reconfigure-custom-config.yaml
solropsrequest.ops.kubedb.com/sl-reconfigure-custom-config created

Verify the new configuration is working

If everything goes well, KubeDB Ops-manager operator will update the configSecret of Solr object.

Let’s wait for SolrOpsRequest to be Successful. Run the following command to watch SolrOpsRequest CR,

$ kubectl get slops -n demo 
NAME                           TYPE          STATUS       AGE
sl-reconfigure-custom-config   Reconfigure   Successful   5m24s

We can see from the above output that the SolrOpsRequest has succeeded. If we describe the SolrOpsRequest we will get an overview of the steps that were followed to reconfigure the database.

$ kubectl describe slops -n demo sl-reconfigure-custom-config 
Name:         sl-reconfigure-custom-config
Namespace:    demo
Labels:       <none>
Annotations:  <none>
API Version:  ops.kubedb.com/v1alpha1
Kind:         SolrOpsRequest
Metadata:
  Creation Timestamp:  2024-11-05T12:59:25Z
  Generation:          1
  Resource Version:    1665913
  UID:                 7bb29ead-8322-4ac3-9375-6dd8594882d1
Spec:
  Apply:  IfReady
  Configuration:
    Config Secret:
      Name:  new-sl-custom-config
  Database Ref:
    Name:  solr
  Type:    Reconfigure
Status:
  Conditions:
    Last Transition Time:  2024-11-05T12:59:25Z
    Message:               Solr ops-request has started to reconfigure Solr nodes
    Observed Generation:   1
    Reason:                Reconfigure
    Status:                True
    Type:                  Reconfigure
    Last Transition Time:  2024-11-05T12:59:33Z
    Message:               successfully reconciled the Solr with new configure
    Observed Generation:   1
    Reason:                UpdatePetSets
    Status:                True
    Type:                  UpdatePetSets
    Last Transition Time:  2024-11-05T13:01:39Z
    Message:               Successfully restarted all nodes
    Observed Generation:   1
    Reason:                RestartNodes
    Status:                True
    Type:                  RestartNodes
    Last Transition Time:  2024-11-05T12:59:38Z
    Message:               get pod; ConditionStatus:True; PodName:solr-0
    Observed Generation:   1
    Status:                True
    Type:                  GetPod--solr-0
    Last Transition Time:  2024-11-05T12:59:38Z
    Message:               evict pod; ConditionStatus:True; PodName:solr-0
    Observed Generation:   1
    Status:                True
    Type:                  EvictPod--solr-0
    Last Transition Time:  2024-11-05T12:59:43Z
    Message:               running pod; ConditionStatus:False
    Observed Generation:   1
    Status:                False
    Type:                  RunningPod
    Last Transition Time:  2024-11-05T13:00:38Z
    Message:               get pod; ConditionStatus:True; PodName:solr-1
    Observed Generation:   1
    Status:                True
    Type:                  GetPod--solr-1
    Last Transition Time:  2024-11-05T13:00:38Z
    Message:               evict pod; ConditionStatus:True; PodName:solr-1
    Observed Generation:   1
    Status:                True
    Type:                  EvictPod--solr-1
    Last Transition Time:  2024-11-05T13:01:39Z
    Message:               Successfully completed reconfigure Solr
    Observed Generation:   1
    Reason:                Successful
    Status:                True
    Type:                  Successful
  Observed Generation:     1
  Phase:                   Successful
Events:
  Type     Reason                                                    Age    From                         Message
  ----     ------                                                    ----   ----                         -------
  Normal   Starting                                                  5m45s  KubeDB Ops-manager Operator  Start processing for SolrOpsRequest: demo/sl-reconfigure-custom-config
  Normal   Starting                                                  5m45s  KubeDB Ops-manager Operator  Pausing Solr databse: demo/solr
  Normal   Successful                                                5m45s  KubeDB Ops-manager Operator  Successfully paused Solr database: demo/solr for SolrOpsRequest: sl-reconfigure-custom-config
  Normal   UpdatePetSets                                             5m37s  KubeDB Ops-manager Operator  successfully reconciled the Solr with new configure
  Warning  get pod; ConditionStatus:True; PodName:solr-0    5m32s  KubeDB Ops-manager Operator  get pod; ConditionStatus:True; PodName:solr-0
  Warning  evict pod; ConditionStatus:True; PodName:solr-0  5m32s  KubeDB Ops-manager Operator  evict pod; ConditionStatus:True; PodName:solr-0
  Warning  running pod; ConditionStatus:False                        5m27s  KubeDB Ops-manager Operator  running pod; ConditionStatus:False
  Warning  get pod; ConditionStatus:True; PodName:solr-1    4m32s  KubeDB Ops-manager Operator  get pod; ConditionStatus:True; PodName:solr-1
  Warning  evict pod; ConditionStatus:True; PodName:solr-1  4m32s  KubeDB Ops-manager Operator  evict pod; ConditionStatus:True; PodName:solr-1
  Normal   RestartNodes                                              3m31s  KubeDB Ops-manager Operator  Successfully restarted all nodes
  Normal   Starting                                                  3m31s  KubeDB Ops-manager Operator  Resuming Solr database: demo/solr
  Normal   Successful                                                3m31s  KubeDB Ops-manager Operator  Successfully resumed Solr database: demo/solr for SolrOpsRequest: sl-reconfigure-custom-config
  Normal   RestartNodes                                              3m31s  KubeDB Ops-manager Operator  Successfully restarted all nodes

Now let’s exec one of the instance and cat solr.xml file to check the new configuration we have provided.

$ kubectl exec -it -n demo solr-0 -- bash
Defaulted container "solr" out of: solr, init-solr (init)
solr@solr-0:/opt/solr-9.6.1$ cat /var/solr/solr.xml
<?xml version="1.0" encoding="UTF-8"?>
<solr>
  <backup>
    <repository name="kubedb-proxy-s3" class="org.apache.solr.s3.S3BackupRepository">
      <str name="s3.bucket.name">solrbackup</str>
      <str name="s3.region">us-east-1</str>
      <str name="s3.endpoint">http://s3proxy-s3.demo.svc:80</str>
    </repository>
  </backup>
  <str name="coreRootDirectory">/var/solr/data</str>
  <str name="sharedLib">${solr.sharedLib:},/opt/solr/contrib/gcs-repository/lib,/opt/solr/contrib/prometheus-exporter/lib,/opt/solr/contrib/s3-repository/lib,/opt/solr/dist</str>
  <str name="allowPaths">${solr.allowPaths:}</str>
  <int name="maxBooleanClauses">${solr.max.booleanClauses:2030}</int>
  <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
    <int name="connTimeout">${connTimeout:60000}</int>
    <int name="socketTimeout">${socketTimeout:600000}</int>
  </shardHandlerFactory>
  <solrcloud>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    <str name="host">${host:}</str>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="hostPort">${solr.port.advertise:80}</int>
    <str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DigestZkACLProvider}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <str name="zkCredentialsInjector">${zkCredentialsInjector:org.apache.solr.common.cloud.VMParamsZkCredentialsInjector}</str>
    <str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DigestZkCredentialsProvider}</str>
  </solrcloud>
  <metrics enabled="${metricsEnabled:true}"/>
</solr>

As we can see from the configuration of ready Solr, the value of log.retention.hours has been changed from 2024 to 2030. So the reconfiguration of the cluster is successful.

Reconfigure using apply config

Now we will reconfigure this cluster again to set maxBooleanClauses to 2024. This time we won’t use a new secret. We will use the applyConfig field of the SolrOpsRequest. This will merge the new config in the existing secret.

Create SolrOpsRequest

Now, we will use the new configuration in the applyConfig field in the SolrOpsRequest CR. The SolrOpsRequest yaml is given below,

apiVersion: ops.kubedb.com/v1alpha1
kind: SolrOpsRequest
metadata:
  name: sl-reconfigure-apply-config
  namespace: demo
spec:
  apply: IfReady
  configuration:
     applyConfig:
       solr.xml: |
         <solr>
           <int name="maxBooleanClauses">${solr.max.booleanClauses:2024}</int>
           <backup>
             <repository name="kubedb-proxy-s3" class="org.apache.solr.s3.S3BackupRepository">
               <str name="s3.bucket.name">solrbackup</str>
               <str name="s3.region">us-east-1</str>
               <str name="s3.endpoint">http://s3proxy-s3.demo.svc:80</str>
             </repository>
           </backup>
         </solr>         
  databaseRef:
    name: solr
  type: Reconfigure

Here,

  • spec.databaseRef.name specifies that we are reconfiguring solr cluster.
  • spec.type specifies that we are performing Reconfigure on Solr.
  • spec.configuration.applyConfig specifies the new configuration that will be merged in the existing secret.

Let’s create the SolrOpsRequest CR we have shown above,

$ kubectl apply -f https://github.com/kubedb/docs/raw/v2025.3.20-rc.1/docs/examples/solr/reconfigure/sl-reconfigure-apply-config.yaml
Solropsrequest.ops.kubedb.com/sl-reconfigure-apply-config created

Verify the new configuration is working

If everything goes well, KubeDB Ops-manager operator will merge this new config with the existing configuration.

Let’s wait for SolrOpsRequest to be Successful. Run the following command to watch SolrOpsRequest CR,

$ kubectl get slops -n demo
NAME                           TYPE          STATUS       AGE
sl-reconfigure-custom-config   Reconfigure   Successful   2m22s

We can see from the above output that the SolrOpsRequest has succeeded. If we describe the SolrOpsRequest we will get an overview of the steps that were followed to reconfigure the cluster.

$ kubectl describe slops -n demo sl-reconfigure-custom-config 
Name:         sl-reconfigure-custom-config
Namespace:    demo
Labels:       <none>
Annotations:  <none>
API Version:  ops.kubedb.com/v1alpha1
Kind:         SolrOpsRequest
Metadata:
  Creation Timestamp:  2024-11-05T13:09:55Z
  Generation:          1
  Resource Version:    1666897
  UID:                 3fd6a300-5ed2-4c0d-b1fd-9102a44b37ce
Spec:
  Apply:  IfReady
  Configuration:
    Apply Config:
      solr.xml:  <solr>
  <int name="maxBooleanClauses">${solr.max.booleanClauses:2024}</int>
  <backup>
    <repository name="kubedb-proxy-s3" class="org.apache.solr.s3.S3BackupRepository">
      <str name="s3.bucket.name">solrbackup</str>
      <str name="s3.region">us-east-1</str>
      <str name="s3.endpoint">http://s3proxy-s3.demo.svc:80</str>
    </repository>
  </backup>
</solr>

  Database Ref:
    Name:  solr
  Type:    Reconfigure
Status:
  Conditions:
    Last Transition Time:  2024-11-05T13:09:55Z
    Message:               Solr ops-request has started to reconfigure Solr nodes
    Observed Generation:   1
    Reason:                Reconfigure
    Status:                True
    Type:                  Reconfigure
    Last Transition Time:  2024-11-05T13:09:59Z
    Message:               Successfully prepared user provided custom config secret
    Observed Generation:   1
    Reason:                PrepareCustomConfig
    Status:                True
    Type:                  PrepareCustomConfig
    Last Transition Time:  2024-11-05T13:10:04Z
    Message:               successfully reconciled the Solr with new configure
    Observed Generation:   1
    Reason:                UpdatePetSets
    Status:                True
    Type:                  UpdatePetSets
    Last Transition Time:  2024-11-05T13:11:55Z
    Message:               Successfully restarted all nodes
    Observed Generation:   1
    Reason:                RestartNodes
    Status:                True
    Type:                  RestartNodes
    Last Transition Time:  2024-11-05T13:10:09Z
    Message:               get pod; ConditionStatus:True; PodName:solr-0
    Observed Generation:   1
    Status:                True
    Type:                  GetPod--solr-0
    Last Transition Time:  2024-11-05T13:10:09Z
    Message:               evict pod; ConditionStatus:True; PodName:solr-0
    Observed Generation:   1
    Status:                True
    Type:                  EvictPod--solr-0
    Last Transition Time:  2024-11-05T13:10:14Z
    Message:               running pod; ConditionStatus:False
    Observed Generation:   1
    Status:                False
    Type:                  RunningPod
    Last Transition Time:  2024-11-05T13:10:54Z
    Message:               get pod; ConditionStatus:True; PodName:solr-1
    Observed Generation:   1
    Status:                True
    Type:                  GetPod--solr-1
    Last Transition Time:  2024-11-05T13:10:54Z
    Message:               evict pod; ConditionStatus:True; PodName:solr-1
    Observed Generation:   1
    Status:                True
    Type:                  EvictPod--solr-1
    Last Transition Time:  2024-11-05T13:11:55Z
    Message:               Successfully completed reconfigure Solr
    Observed Generation:   1
    Reason:                Successful
    Status:                True
    Type:                  Successful
  Observed Generation:     1
  Phase:                   Successful
Events:
  Type     Reason                                                    Age    From                         Message
  ----     ------                                                    ----   ----                         -------
  Normal   Starting                                                  2m52s  KubeDB Ops-manager Operator  Start processing for SolrOpsRequest: demo/sl-reconfigure-custom-config
  Normal   Starting                                                  2m51s  KubeDB Ops-manager Operator  Pausing Solr databse: demo/solr
  Normal   Successful                                                2m51s  KubeDB Ops-manager Operator  Successfully paused Solr database: demo/solr for SolrOpsRequest: sl-reconfigure-custom-config
  Normal   UpdatePetSets                                             2m43s  KubeDB Ops-manager Operator  successfully reconciled the Solr with new configure
  Warning  get pod; ConditionStatus:True; PodName:solr-0    2m38s  KubeDB Ops-manager Operator  get pod; ConditionStatus:True; PodName:solr-0
  Warning  evict pod; ConditionStatus:True; PodName:solr-0  2m38s  KubeDB Ops-manager Operator  evict pod; ConditionStatus:True; PodName:solr-0
  Warning  running pod; ConditionStatus:False                        2m33s  KubeDB Ops-manager Operator  running pod; ConditionStatus:False
  Warning  get pod; ConditionStatus:True; PodName:solr-1    113s   KubeDB Ops-manager Operator  get pod; ConditionStatus:True; PodName:solr-1
  Warning  evict pod; ConditionStatus:True; PodName:solr-1  113s   KubeDB Ops-manager Operator  evict pod; ConditionStatus:True; PodName:solr-1
  Normal   RestartNodes                                              52s    KubeDB Ops-manager Operator  Successfully restarted all nodes
  Normal   Starting                                                  52s    KubeDB Ops-manager Operator  Resuming Solr database: demo/solr
  Normal   Successful                                                52s    KubeDB Ops-manager Operator  Successfully resumed Solr database: demo/solr for SolrOpsRequest: sl-reconfigure-custom-config

Now let’s exec into one of the instance and cat solr.xml file to check the new configuration we have provided.

$ kubectl exec -it -n demo solr-0 -- bash
Defaulted container "solr" out of: solr, init-solr (init)
solr@solr-0:/opt/solr-9.6.1$ cat /var/solr/solr.xml
<?xml version="1.0" encoding="UTF-8"?>
<solr>
  <backup>
    <repository name="kubedb-proxy-s3" class="org.apache.solr.s3.S3BackupRepository">
      <str name="s3.bucket.name">solrbackup</str>
      <str name="s3.region">us-east-1</str>
      <str name="s3.endpoint">http://s3proxy-s3.demo.svc:80</str>
    </repository>
  </backup>
  <str name="coreRootDirectory">/var/solr/data</str>
  <str name="sharedLib">${solr.sharedLib:},/opt/solr/contrib/gcs-repository/lib,/opt/solr/contrib/prometheus-exporter/lib,/opt/solr/contrib/s3-repository/lib,/opt/solr/dist</str>
  <str name="allowPaths">${solr.allowPaths:}</str>
  <int name="maxBooleanClauses">${solr.max.booleanClauses:2024}</int>
  <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
    <int name="connTimeout">${connTimeout:60000}</int>
    <int name="socketTimeout">${socketTimeout:600000}</int>
  </shardHandlerFactory>
  <solrcloud>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    <str name="host">${host:}</str>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="hostPort">${solr.port.advertise:80}</int>
    <str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DigestZkACLProvider}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <str name="zkCredentialsInjector">${zkCredentialsInjector:org.apache.solr.common.cloud.VMParamsZkCredentialsInjector}</str>
    <str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DigestZkCredentialsProvider}</str>
  </solrcloud>
  <metrics enabled="${metricsEnabled:true}"/>
</solr>

As we can see from the configuration of ready Solr, the value of maxBooleanClauses has been changed from 2030 to 2024. So the reconfiguration of the database using the applyConfig field is successful.

Cleaning Up

To clean up the Kubernetes resources created by this tutorial, run:

kubectl delete sl -n demo solr
kubectl delete solropsrequest -n demo sl-reconfigure-custom-config sl-reconfigure-apply-config
kubectl delete secret -n demo sl-custom-config new-sl-custom-config
kubectl delete namespace demo

Next Steps