The Solr Operator manages Apache Solr Clouds within Kubernetes. It is built on top of the Kube Builder framework.
The project is currently in beta (v1beta1
), and while we do not anticipate changing the API in backwards-incompatible ways there is no such guarantee yet.
If you run into issues using the Solr Operator, please:
- Reference the version compatibility and upgrade/deprecation notes provided below
- Create a Github Issue in this repo, describing your problem with as much detail as possible
- Reach out on our Slack channel!
Join us on the #solr-operator channel in the official Kubernetes slack workspace.
- Documentation
- Version Compatibility and Upgrade Notes
- Contributions
- License
- Code of Conduct
- Security Vulnerability Reporting
Please visit the following pages for documentation on using and developing the Solr Operator:
- Local Tutorial
- Running the Solr Operator
- Available Solr Resources
- Development
-
Do to the addition of possible sidecar/initContainers for SolrClouds, the version of CRDs used had to be upgraded to
apiextensions.k8s.io/v1
.This means that Kubernetes support is now limited to 1.16+. If you are unable to use a newer version of Kubernetes, please install the
v0.2.6
version of the Solr Operator for use with Kubernetes 1.15 and below. -
The location of backup-restore volume mounts in Solr containers has changed from
/var/solr/solr-backup-restore
to/var/solr/data/backup-restore
. This change was made to ensure that there were no issues using the backup API with solr 8.6+, which restricts the locations that backup data can be saved to and read from. This change should be transparent if you are merely using the SolrBackup CRD. All files permissions issues with SolrBackups should now be addressed. -
The default
PodManagementPolicy
for StatefulSets has been changed toParallel
fromOrderedReady
. This change will not affect existing StatefulSets, asPodManagementPolicy
cannot be updated. In order to continue usingOrderedReady
on new SolrClouds, please use the following setting:
SolrCloud.spec.customSolrKubeOptions.statefulSetOptions.podManagementPolicy
-
The
SolrCloud
andSolrPrometheusExporter
services' portNames have changed to"solr-client"
and"solr-metrics"
from"ext-solr-client"
and"ext-solr-metrics"
, respectively. This is due to a bug in Kubernetes whereportName
andtargetPort
must match for services. -
Support for
etcd
/zetcd
deployments has been removed.
The section for a Zookeeper cluster SpecSolrCloud.spec.zookeeperRef.provided.zookeeper
has been DEPRECATED. The same fields (except for the deprecatedpersistentVolumeClaimSpec
option) are now available underSolrCloud.spec.zookeeperRef.provided
. -
Data Storage options have been expanded, and moved from their old locations.
SolrCloud.spec.dataPvcSpec
has been DEPRECATED.
Please instead use the following instead:SolrCloud.spec.dataStorage.persistent.pvcTemplate.spec=<spec>
SolrCloud.spec.backupRestoreVolume
has been DEPRECATED.
Please instead use the following instead:SolrCloud.spec.dataStorage.backupRestoreOptions.Volume=<volume-source>
- The solr-operator argument
--ingressBaseDomain
has been DEPRECATED. In order to set the external baseDomain of your clouds, please begin to useSolrCloud.spec.solrAddressability.external.domainName
instead. You will also need to setSolrCloud.spec.solrAddressability.external.method
toIngress
. The--ingressBaseDomain
argument is backwards compatible, and all existing SolrCloud objects will be auto-updated once your operator is upgraded tov0.2.6
. The argument will be removed in a future version (v0.3.0
).
- The default supported version of the Zookeeper Operator has been upgraded to
v0.2.6
.
If you are using the provided zookeeper option for your SolrClouds, then you will want to upgrade your zookeeper operator version as well as the version and image of the zookeeper that you are running. You can find examples of the zookeeper operator as well as solrClouds that use provided zookeepers in the examples directory.
Please refer to the Zookeeper Operator release notes before upgrading.
- If you do not use an ingress with the Solr Operator, the Solr Hostname and Port will change when upgrading to this version. This is to fix an outstanding bug. Because of the headless service port change, you will likely see an outage for inter-node communication until all pods have been restarted.
-
SolrCloud.spec.solrPodPolicy
has been DEPRECATED in favor of theSolrCloud.spec.customSolrKubeOptions.podOptions
option.
This option is backwards compatible, but will be removed in a future version (v0.3.0
). -
SolrPrometheusExporter.spec.solrPodPolicy
has been DEPRECATED in favor of theSolrPrometheusExporter.spec.customKubeOptions.podOptions
option.
This option is backwards compatible, but will be removed in a future version (v0.3.0
).
- The zkConnectionString used for provided zookeepers changed from using the string provided in the
ZkCluster.Status
, which used an IP, to using the service name. This will cause a rolling restart of your solrs using the provided zookeeper option, but there will be no data loss.
- Uses
gomod
instead ofdep
SolrCloud.spec.zookeeperRef.provided.zookeeper.persistentVolumeClaimSpec
has been DEPRECATED in favor of theSolrCloud.zookeeperRef.provided.zookeeper.persistence
option.
This option is backwards compatible, but will be removed in a future version (v0.3.0
).- An upgrade to the ZKOperator version
0.2.4
is required.
SolrCloud.Spec.persistentVolumeClaim
was renamed toSolrCloud.Spec.dataPvcSpec
If you require compatibility with previous versions, please install version v0.2.6
of the Solr Operator.
We ❤️ contributions.
Have you had a good experience with the Solr Operator? Why not share some love and contribute code, or just let us know about any issues you had with it?
We welcome issue reports here; be sure to choose the proper issue template for your issue, so that we can be sure you're providing the necessary information.
Before sending a Pull Request, please make sure you read our Contribution Guidelines.
Please read the LICENSE file here.
This project has adopted a Code of Conduct. If you have any concerns about the Code, or behavior which you have experienced in the project, please contact us at [email protected].
If you believe you have identified a security vulnerability in this project, please send email to the project team at [email protected], detailing the suspected issue and any methods you've found to reproduce it.
Please do NOT open an issue in the GitHub repository, as we'd prefer to keep vulnerability reports private until we've had an opportunity to review and address them.