- Document Helm deployed RBAC permissions and remove unnecessary permissions (#745).
- Add conversion webhook (#733).
- Add custom
hbase.rest.endpointproperty to the restserverhbase-site.xml(#708, #716).- The custom
hbase.rest.hostnameand nativehbase.rest.portproperties cannot be used for discovery advertisement, as these should remain stable regardless of listener class used to expose the REST service.
- The custom
- Support objectOverrides using
.spec.objectOverrides. See objectOverrides concepts page for details (#725). - Enable the restart-controller, so that the Pods are automatically restarted on config changes (#727).
- Add support for Hbase 2.6.4 (as LTS) (#729).
- Bump stackable-operator to 0.108.0, and strum to 0.28 (#737, #740).
- Gracefully shutdown all concurrent tasks by forwarding the SIGTERM signal (#730).
- Bump testing-tools to
0.3.0-stackable0.0.0-dev(#724).
- Fix "404 page not found" error for the initial object list (#740).
- Remove support for Hbase 2.6.2 (#729).
- Helm: Allow Pod
priorityClassNameto be configured (#691). - Added support for HBase 2.6.3 (#695).
- Add end-of-support checker (#697).
EOS_CHECK_MODE(--eos-check-mode) to set the EoS check mode. Currently, only "offline" is supported.EOS_INTERVAL(--eos-interval) to set the interval in which the operator checks if it is EoS.EOS_DISABLED(--eos-disabled) to disable the EoS checker completely.
- Add
metricsServices (#701).
- Bump stackable-operator to
0.100.1(#705). - Changed env-vars to be consistent with config-utils in the entrypoint script (#700).
- BREAKING: The
prometheus.io/scrapelabel moved from theheadlessService to themetricsService, which usesmetricsas the port name instead of the previousui-http/ui-httpsport name (#701).
- BREAKING: Add listener support for HBase (#639).
- Adds new telemetry CLI arguments and environment variables (#652).
- Use
--file-log-max-files(orFILE_LOG_MAX_FILES) to limit the number of log files kept. - Use
--file-log-rotation-period(orFILE_LOG_ROTATION_PERIOD) to configure the frequency of rotation. - Use
--console-log-format(orCONSOLE_LOG_FORMAT) to set the format toplain(default) orjson.
- Use
- Added support for HBase 2.6.2 (#659).
- Add RBAC rule to helm template for automatic cluster domain detection (#675).
- BREAKING: Replace stackable-operator
initialize_loggingwith stackable-telemetryTracing(#640, #648, #652).- The console log level was set by
HBASE_OPERATOR_LOG, and is now set byCONSOLE_LOG_LEVEL. - The file log level was set by
HBASE_OPERATOR_LOG, and is now set byFILE_LOG_LEVEL. - The file log directory was set by
HBASE_OPERATOR_LOG_DIRECTORY, and is now set byFILE_LOG_DIRECTORY(or via--file-log-directory <DIRECTORY>). - Replace stackable-operator
print_startup_stringwithtracing::info!with fields.
- The console log level was set by
- BREAKING: Inject the vector aggregator address into the vector config using the env var
VECTOR_AGGREGATOR_ADDRESSinstead of having the operator write it to the vector config (#645). - test: Bump to Vector
0.46.1(#657). - test: Bump OPA to
1.4.2(#661). - BREAKING: Previously this operator would hardcode the UID and GID of the Pods being created to 1000/0, this has changed now (#660)
- The
runAsUserandrunAsGroupfields will not be set anymore by the operator - The defaults from the docker images itself will now apply, which will be different from 1000/0 going forward
- This is marked as breaking because tools and policies might exist, which require these fields to be set
- The
- BREAKING: Bump stackable-operator to 0.94.0 and update other dependencies (#675).
- The default Kubernetes cluster domain name is now fetched from the kubelet API unless explicitly configured.
- This requires operators to have the RBAC permission to get nodes/proxy in the apiGroup "". The helm-chart takes care of this.
- The CLI argument
--kubernetes-node-nameor env variableKUBERNETES_NODE_NAMEneeds to be set. The helm-chart takes care of this.
- The operator helm-chart now grants RBAC
patchpermissions onevents.k8s.io/events, so events can be aggregated (e.g. "error happened 10 times over the last 5 minutes") (#678).
- Use
jsonfile extension for log files (#647). - Fix a bug where changes to ConfigMaps that are referenced in the HbaseCluster spec didn't trigger a reconciliation (#645).
- Allow uppercase characters in domain names (#675).
- test: ZooKeeper 3.9.2 removed (#654).
- test: Remove HDFS
3.3.4,3.3.6, and3.4.0(#655). - test: HBase 2.4.18 removed (#659):
- Remove operator support for HBase 2.4 including the JMX exporter (#672).
- Remove the
lastUpdateTimefield from the stacklet status (#675). - Remove role binding to legacy service accounts (#675).
- The lifetime of auto generated TLS certificates is now configurable with the role and roleGroup
config property
requestedSecretLifetime. This helps reducing frequent Pod restarts (#598). - Run a
containerdebugprocess in the background of each HBase container to collect debugging information (#605). - Aggregate emitted Kubernetes events on the CustomResources (#612).
- Support configuring JVM arguments (#620).
- Added support for HBase 2.6.1 (#627):
- BREAKING: The field
config.hbaseOptshas been removed. Use JVM argument overrides instead to configure additional JVM arguments (#620).
- Bump
stackable-operatorto 0.87.0 andstackable-versionedto 0.6.0 (#634). - Support moving regions to other Pods during graceful shutdown of region servers (#570).
- Default to OCI for image metadata and product image selection (#611).
- BREAKING: Use distinct ServiceAccounts for the Stacklets, so that multiple Stacklets can be deployed in one namespace. Existing Stacklets will use the newly created ServiceAccounts after restart (#594).
- The operator can now run on Kubernetes clusters using a non-default cluster domain.
Use the env var
KUBERNETES_CLUSTER_DOMAINor the operator Helm chart propertykubernetesClusterDomainto set a non-default cluster domain (#574).
- Reduce CRD size from
1.4MBto96KBby accepting arbitrary YAML input instead of the underlying schema for the following fields (#548):podOverridesaffinity
- Fix bug where the configuration of the
hbaseRootdirat the role level is ignored (#584).
- Implement
envOverridesfor HbaseCluster (#550). - Omid test: use 1.1.2, update default port number and raise test timeout (#556).
- An invalid
HBaseClusterdoesn't cause the operator to stop functioning (#[575]).
- test: Remove ZooKeeper 3.8.4 (#558).
- Added support for HBase 2.6.0 with the following changes (#506):
- Added
clusterConfig.authorizationproperty to support the OPA authorizer. - Configure log4j2 properties.
- Use built-in prometheus metric exporter.
- Added
- Added support for HBase 2.4.18 (#523).
- Bump
stackable-operatorfrom0.64.0to0.70.0(#524). - Bump
product-configfrom0.6.0to0.7.0(#524). - Bump other dependencies (#527).
- Remove sed calls to replace KRB REALM in configuration. IMPORTANT: This means the operator will ONLY work with HBase versions that are compiled against Hadoop 3.x as of now (#531)
- Support user authentication using Kerberos (#436).
- More CRD documentation (#425).
- Helm: support labels in values.yaml (#441).
operator-rs0.56.1->0.57.0(#425).- Use new label builders (#438).
- Use Snafu instead of thiserror (#438).
- [BREAKING] Removed legacy node selector on roleGroups (#438).
- Remove support for version
2.4.12(#454).
- Processing of corrupted log events fixed; If errors occur, the error messages are added to the log event (#511).
- Default stackableVersion to operator version (#385).
- Configuration overrides for the JVM security properties, such as DNS caching (#389).
- Support PodDisruptionBudgets (#399).
- Support graceful shutdown (#402).
- Added support for version 2.4.17 (#403).
vector0.26.0->0.33.0(#382, #403).- Use jmx_exporter soft link instead of hardcoded version (#403).
- Fix Zookeeper hbase.rootdir when users point to discovery ConfigMap of ZookeeperCluster rather than ZNode. Print a warning in that case (#394).
- Default
hbase.unsafe.regionserver.hostname.disable.master.reversednstotrue, to ensure the names of RegionServers are resolved to their hostnames instead of IP addresses (#418).
- Removed support for 2.4.6, 2.4.8, 2.4.9, 2.4.11 (#403).
- Generate OLM bundle for Release 23.4.0 (#350).
- Missing CRD defaults for
status.conditionsfield (#360). - Set explicit resources on all containers (#366, #378).
- Support podOverrides (#371, #373).
- Operator-rs:
0.40.2->0.44.0(#349, #366, #375). - Use 0.0.0-dev product images for tests and examples (#351).
- Use testing-tools 0.2.0 (#351).
- Run as root group (#359).
- Added kuttl test suites (#369)
- Fix missing quoting of env variables. This caused problems when env vars (e.g. from envOverrides) contained a whitespace (#356).
- Fix
hbase.zookeeper.quorumto not contain the znode path, instead pass it viazookeeper.znode.parent(#357). - Add
hbase.zookeeper.property.clientPortsetting, because hbase sometimes tried to access zookeeper with the (wrong) default port (#357). - Fix test assert by adding variable quoting (#359).
- Increase the size limit of the log volume (#375).
- Deploy default and support custom affinities (#322).
- OLM bundle files (#333).
- Extend cluster resources for status and cluster operation (paused, stopped) (#336).
- Cluster status conditions (#337).
- [BREAKING]: Consolidated top level configuration to
clusterConfig(#334). - [BREAKING] Support specifying Service type.
This enables us to later switch non-breaking to using
ListenerClassesfor the exposure of Services. This change is breaking, because - for security reasons - we default to thecluster-internalListenerClass. If you need your cluster to be accessible from outside of Kubernetes you need to setclusterConfig.listenerClasstoexternal-unstable(#338). operator-rs0.36.0->0.40.2(#334, #336, #339, #340).- Use
build_rbac_resourcesfrom operator-rs. This renames thehbase-saServiceAccount tohbase-serviceaccount(#340).
- Avoid empty log events dated to 1970-01-01 and improve the precision of the log event timestamps (#339).
- [BREAKING]: Removed top level role/role group config (#334).
- Log aggregation added (#294).
- [BREAKING] Use Product image selection instead of version.
spec.versionhas been replaced byspec.image(#282). - Updated stackable image versions (#275).
operator-rs0.24.0->0.30.2(#277, #293, #294).- Set runAsGroup to 1000 rather than 0 (#283).
- Fixed:
selectorin role groups now works. It was not working before (#293)
- Startup probe created and thresholds in liveness and readiness probes fine-tuned (#193).
- Include chart name when installing with a custom release name (#209, #210).
- Orphaned resources are deleted (#215).
- Fix HBase-shell start failure (#218).
- Add integration tests and usage documentation for Phoenix (#221).
- Added OpenShift compatibility (#232)
- Support for HBase 2.4.9 (#133).
- Support for HBase 2.4.11 (#148).
- Support for HBase 2.4.12 (#197).
- Use cli argument
watch-namespace/ env varWATCH_NAMESPACEto specify a single namespace to watch (#137). - Writing a discovery config map containing
hbase-site.xmlwith thehbase.zookeeper.quorumproperty (#163).
operator-rs0.12.0->0.15.0(#137, #153).- Now using HDFS discovery config map instead of hdfs name node config map (#153)
- BREAKING: Consolidated CRD - discovery config maps now top level, removed several
HbaseConfigoptions (can still be overridden) (#162):hbaseManagesZk: defaults to falsehbaseClusterDistributed: defaults to true
- [BREAKING] Specifying the product version has been changed to adhere to ADR018 instead of just specifying the product version you will now have to add the Stackable image version as well, so
version: 3.5.8becomes (for example)version: 3.5.8-stackable0.1.0(#179)
- Reconciliation errors are now reported as Kubernetes events (#127).
operator-rs0.10.0->0.12.0(#127).- Migrated to StatefulSet rather than direct Pod management (#110).
operator-rs:0.3.0(#18)