All notable changes to this project will be documented in this file.
- Add conversion webhook (#676).
- Add OPA authorization using the operator-rs
OpaConfig(#652). - Support objectOverrides using
.spec.objectOverrides. See objectOverrides concepts page for details (#665). - Enable the restart-controller, so that the Pods are automatically restarted on config changes (#666).
- Add support for
4.2.0(#668).
- Bump stackable-operator to 0.108.0 and strum to 0.28 (#683, #685).
- Gracefully shutdown all concurrent tasks by forwarding the SIGTERM signal (#670).
- Bump testing-tools to
0.3.0-stackable0.0.0-dev(#664). - Deprecate support for
4.1.0(#668).
- Fix "404 page not found" error for the initial object list (#685).
- Helm: Allow Pod
priorityClassNameto be configured (#633). - Add
prometheus.io/path|port|schemeannotations to metrics service (#641). - Add end-of-support checker (#647).
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.
- Bump stackable-operator to
0.100.1and product-config to0.8.0(#646).
-
Previously we had a bug that could lead to missing certificates (#636).
This could be the case when you specified multiple CAs in your SecretClass. We now correctly handle multiple certificates in this cases. See this GitHub issue for details
- Adds new telemetry CLI arguments and environment variables (#596).
- 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
- BREAKING: Add Listener support for Hive (#605).
- Add internal headless service in addition to the metrics service (#613).
- Add RBAC rule to helm template for automatic cluster domain detection (#615).
- BREAKING: Replace stackable-operator
initialize_loggingwith stackable-telemetryTracing(#585, #592, #596).- The console log level was set by
HIVE_OPERATOR_LOG, and is now set byCONSOLE_LOG_LEVEL. - The file log level was set by
HIVE_OPERATOR_LOG, and is now set byFILE_LOG_LEVEL. - The file log directory was set by
HIVE_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 (#589). - test: Bump to Vector
0.46.1(#599). - BREAKING: Previously this operator would hardcode the UID and GID of the Pods being created to 1000/0, this has changed now (#603)
- 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
- Use versioned common structs (#604).
- BREAKING: Bump stackable-operator to 0.94.0 and update other dependencies (#615).
- 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") (#617).
- Use
jsonfile extension for log files (#591). - Fix a bug where changes to ConfigMaps that are referenced in the HiveCluster spec didn't trigger a reconciliation (#589).
- Allow uppercase characters in domain names (#615).
- Remove the
lastUpdateTimefield from the stacklet status (#615). - Remove role binding to legacy service accounts (#615).
- Run a
containerdebugprocess in the background of each Hive container to collect debugging information (#554). - Aggregate emitted Kubernetes events on the CustomResources (#560).
- Support configuring JVM arguments (#572).
- Support for S3 region (#574).
- Support for version
4.0.1as LTS (#579).
- Default to OCI for image metadata and product image selection (#561).
- Increase default memory reservation to
768Mito avoidOOMKilled(#578). - Mark version
4.0.1as experimental and set4.0.0as LTS (#582).
- BREAKING: Remove the
hive-env.shconfig file, as e.g. settingHADOOP_OPTSin there had absolutely no effect. This is considered a fix, as users expected the envs to be used, but they haven't. Users should useenvOverridesinstead, which are actually working (#572). - BREAKING: The env variable
HADOOP_HEAPSIZEwas previously put inhive-env.shand very likely had no effect. It is now passed as env variable, thus working. This might impact your stacklet as the heap size setting now actually has an effect (#572).
- 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 (#544).
- Add support for Hive
4.0.0(#508). - 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 (#522).
- Reduce CRD size from
487KBto60KBby accepting arbitrary YAML input instead of the underlying schema for the following fields (#505):podOverridesaffinity
- Use
config-utils(#518).
- BREAKING: The fields
connectionandhostonS3Connectionas well asbucketNameonS3Bucketare now mandatory (#518). - An invalid
HiveClusterdoesn't cause the operator to stop functioning (#523). - Fix upgrade path from HMS
3.3.xto4.0.x. Previously the schemaTool would try to re-create the database tables and would therefore fail. Starting with version4.0.0the schemaTool has the flag-initOrUpgradeSchema, which we use to resolve that problem (#539).
- Added documentation/tutorial on using external database drivers (#449).
- BREAKING: Switch to new image that only contains HMS.
For most of the users this is an internal change, but this is breaking for users of custom logging configurations as
the key
hive-log4j2.propertiesin the ConfigMap containing the logging configuration must now be calledmetastore-log4j2.properties(#447). - Bump
stackable-operatorfrom0.64.0to0.70.0(#480). - Bump
product-configfrom0.6.0to0.7.0(#480). - Bump other dependencies (#483).
- [BREAKING] Move the metastore
userandpasswordDB credentials out of the CRD into a Secret containing the keysusernameandpassword(#452). - Processing of corrupted log events fixed; If errors occur, the error messages are added to the log event (#472).
- Various documentation of the CRD (#394).
- Support user authentication using Kerberos (#402).
- Helm: support labels in values.yaml (#406).
- Default stackableVersion to operator version (#360).
- Configuration overrides for the JVM security properties, such as DNS caching (#365).
- Support PodDisruptionBudgets (#376).
- Support graceful shutdown (#385).
vector0.26.0->0.33.0(#361, #377).operator-rs0.44.0->0.55.0(#360, #376, #377).- jmx-exporter now referenced via soft link without version (#377).
- Service discovery now exposes the cluster service to enable HA (#382).
- Support for 2.3.9 (#377).
- Generate OLM bundle for Release 23.4.0 (#338).
- Missing CRD defaults for
status.conditionsfield (#340). - Set explicit resources on all container (#345, #347)
- Support podOverrides (#352)
- Increase the size limit of the log volume (#354).
- Operator-rs:
0.40.2->0.44.0(#336, #354). - Use 0.0.0-dev product images for testing (#337)
- Use testing-tools 0.2.0 (#337)
- Added kuttl test suites (#348)
- Deploy default and support custom affinities (#315).
- Openshift compatibility (#323).
- Incorporated cluster-operation change. (#323).
- Extend cluster resources for status and cluster operation (paused, stopped) (#324).
- Cluster status conditions (#326).
- [BREAKING]: Support specifying Service type by moving
serviceType(which was an experimental feature) toclusterConfig.listenerClass. This enables us to later switch non-breaking to usingListenerClassesfor 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-unstableorexternal-stable(#327). - Use operator-rs
build_rbac_resourcesmethod (#323). operator-rs0.36.0→0.40.2(#323, #324).
- Bugfix: heap formatting and update product images used for tests (#317)
- Updated stackable image versions (#271).
operator-rs0.25.2→0.32.1(#274, #283, #292, #298).- Consolidated security context user, group and fs group (#277).
- [BREAKING] Use Product image selection instead of version.
spec.versionhas been replaced byspec.image(#280). - Fix role group node selector (#283).
- [BREAKING] Moved
databasespecification from role / role-group level to top-levelclusterConfig(#292). - [BREAKING] Moved
s3,serviceTypeandhdfsdiscovery to top-levelclusterConfig(#292). - Enable logging (#298).
- PVCs for data storage, cpu and memory limits are now configurable (#242).
- Orphaned resources are deleted (#254).
- Support HDFS connections (#264).
operator-rs0.22.0->0.25.2(#254).
- Improved, tested getting started guide via script (#225).
- Add temporary attribute to support using ClusterIP instead of NodePort service type (#237).
- Include chart name when installing with a custom release name (#204, #205).
operator-rs0.21.1->0.22.0(#206).- Add support for Hive 3.1.3 (#211, #213).
- Add missing role to read S3Connection objects (#220).
- Reconciliation errors are now reported as Kubernetes events (#137).
- Use cli argument
watch-namespace/ env varWATCH_NAMESPACEto specify a single namespace to watch (#142). - Warning in docs to use only PostgreSQL <= 10 (#168).
- Support S3 TLS verification (#198).
operator-rs0.10.0->0.21.0(#137, #142, #168, #179).- Adapted S3 connection to operator-rs provided structs (#179).
- [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: 2.3.9becomes (for example)version: 2.3.9-stackable0.4.0(#184)
- monitoring scraping label
prometheus.io/scrape: true(#115).
operator-rs0.8.0→0.10.0(#115).
operator-rs0.5.0→0.8.0(#52, #73, #85).- Migrated to StatefulSet rather than direct Pod management (#52).
- Changed version from enum to String (#52).
- Shut down gracefully (#72).
- Command handling and respective CRDs (#52).
- Hive port and metrics port not configurable anymore and removed from CRD (#52).