Skip to content

Latest commit

 

History

History
429 lines (302 loc) · 17.4 KB

CHANGELOG.md

File metadata and controls

429 lines (302 loc) · 17.4 KB

Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

Added

  • The lifetime of auto generated TLS certificates is now configurable with the role and roleGroup config property requestedSecretLifetime. This helps reduce frequent Pod restarts (#892).
  • Run a containerdebug process in the background of each Zookeeper container to collect debugging information (#881).

Fixed

  • 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 (#889).

[24.11.0] - 2024-11-18

Added

  • The operator can now run on Kubernetes clusters using a non-default cluster domain. Use the env var KUBERNETES_CLUSTER_DOMAIN or the operator Helm chart property kubernetesClusterDomain to set a non-default cluster domain (#870).

Changed

  • Reduce CRD size from 483KB to 57KB by accepting arbitrary YAML input instead of the underlying schema for the following fields (#853):
    • podOverrides
    • affinity

Removed

  • Remove ZooKeeper 3.8.4 from tests and docs (#857).

Fixed

  • Failing to parse one ZookeeperCluster/ZookeeperZnode should no longer cause the whole operator to stop functioning (#872).

[24.7.0] - 2024-07-24

Added

  • Allow overriding ZNode path by setting status.znodePath (#799).

Changed

  • Bump stackable-operator to 0.70.0, product-config to 0.7.0, and other dependencies (#812, #833).

Fixed

  • Processing of corrupted log events fixed; If errors occur, the error messages are added to the log event (#821).

Removed

  • Support for 3.8.3, which was deprecated in SDP 24.3 (#832).

[24.3.0] - 2024-03-20

Added

  • More CRD documentation (#749).
  • Helm: support labels in values.yaml (#763).
  • Support for 3.8.4 (#783)
  • Support for 3.9.2 (#788).

Changed

  • Use new label builders (#757).
  • Use explicit match arms for AuthenticationClassProvider (#757).

Fixed

  • configOverrides are now able to overwrite configs written by the operator (#762).

Removed

  • [BREAKING] Removed legacy node selector on roleGroups (#757).
  • Support for 3.8.1 (#771).

[23.11.0] - 2023-11-24

Added

  • Default stackableVersion to operator version (#711).
  • Configuration overrides for the JVM security properties, such as DNS caching (#715).
  • Support PodDisruptionBudgets (#730, #731).
  • Support for ZooKeeper 3.8.3 added (#732).
  • Support graceful shutdown (#740).

Changed

  • vector 0.26.0 -> 0.33.0 (#709, #732).
  • Let secret-operator handle certificate conversion (#695).
  • [BREAKING]: removed the logging layer in the clusterConfig CRD to make logging config consistent with other operators (#739).

Removed

  • Support for ZooKeeper 3.5.8, 3.6.3, 3.7.0, 3.8.0 (#732).

[23.7.0] - 2023-07-14

Added

  • Generate OLM bundle for Release 23.4.0 (#672).
  • Expose ZOOKEEPER_CLIENT_PORT in discovery CM (#675, #676).
  • Support for ZooKeeper 3.8.1 (#689).
  • Set explicit resources on all containers (#693, #699).
  • Added kuttl test suites (#696).
  • Support podOverrides (#698, #702).

Fixed

  • Missing CRD defaults for status.conditions field (#682).
  • Increase the size limit of the log volume (#704).

Changed

  • Operator-rs: 0.40.2 -> 0.44.0 (#673, #693, #697, #704).
  • Use 0.0.0-dev product images for testing (#674)
  • Use testing-tools 0.2.0 (#674)
  • Run as root group (#680)

[23.4.0] - 2023-04-17

Added

  • Generate OLM bundle (#645).
  • Cluster status conditions (#658)
  • Extend cluster resources for status and cluster operation (paused, stopped) (#660).

Changed

  • [BREAKING] Support specifying Service type. This enables us to later switch non-breaking to using ListenerClasses for the exposure of Services. This change is breaking, because - for security reasons - we default to the cluster-internal ListenerClass. If you need your cluster to be accessible from outside of Kubernetes you need to set clusterConfig.listenerClass to external-unstable (#661).
  • Deploy default and support custom affinities (#649).
  • Operator-rs: 0.36.0 -> 0.40.2 (#660, #663, #665).
  • Use operator-rs build_rbac_resources method (#665).

Fixed

  • Bugfix: java heap format (#651).
  • Fixed operator error when creating the ZNode in a different namespace than the ZookeeperCluster (#653).
  • Avoid empty log events dated to 1970-01-01 and improve the precision of the log event timestamps (#663).

[23.1.0] - 2023-01-23

Added

  • Log aggregation added (#588).

Changed

  • [BREAKING] Use Product image selection instead of version. spec.version has been replaced by spec.image (#599).
  • Updated stackable image versions (#586).
  • Operator-rs: 0.25.3 -> 0.27.1 (#591).
  • Fixed bug where ZNode ConfigMaps were not created due to labeling issues (#592).
  • tokio-zookeeper: 0.1.3 -> 0.2.1 (#593).
  • Don't run init container as root and avoid chmod and chowning (#603).
  • Fixed the RoleGroup selector. It was not used before. (#611).
  • [BREAKING] Moved spec.authentication, spec.tls and spec.logging to spec.clusterConfig. Consolidated sub field names like tls.client.secretClass to tls.serverSecretClass (#612).
  • Changes to be compatible with crate2nix (#647).

[0.12.0] - 2022-11-07

Added

  • Default resource requests (memory and cpu) for ZooKeeper pods (#563).

Changed

  • Resources associated with rolegroups that have since been removed from the ZookeeperCluster will now be deleted (#569).
  • Operator-rs: 0.22.0 -> 0.25.3 (#569).

[0.11.0] - 2022-09-06

Changed

  • Operator-rs: 0.21.1 -> 0.22.0 (#516).
  • Include chart name when installing with a custom release name (#517, #518).
  • Fixed bug where client TLS could not be disabled (#529).
  • Switched init container to tools image (#533).
  • Fixed client authentication. Now only the provided secretClass is eligible. Split up tls (client/quorum) dirs into separate directories and create key/truststores in different directory (#533).
  • Replaced python image with testing-tools image for integration tests (#535).

[0.10.0] - 2022-06-23

Added

  • Reconciliation errors are now reported as Kubernetes events (#408).
  • Use cli argument watch-namespace / env var WATCH_NAMESPACE to specify a single namespace to watch (#434).
  • Support for ZooKeeper 3.8.0 added (#464).
  • Integration tests for all supported ZooKeeper versions added (#464).
  • TLS encryption and authentication support for quorum and client (#479).
  • PVCs for data storage, cpu and memory limits are now configurable (#490).
  • OpenShift compatibility: use custom service account and cluster role for product pods (#505).

Changed

  • Operator-rs: 0.10.0 -> 0.21.1 (#408, #431, #434, #454, #479, #490).
  • [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.8 becomes (for example) version: 3.5.8-stackable0.1.0 (#487)

[0.9.0] - 2022-02-14

Added

  • Enabled Prometheus scraping (#380).
  • ZookeeperZnode.spec.clusterRef.namespace now defaults to .metadata.namespace (#382).
  • PodSecurityContext.fsGroup to allow write access to mounted volumes (#406).
  • Added ZOOKEEPER_HOSTS and ZOOKEEPER_CHROOT to discovery config maps, for clients that do not support the composite connection string (#421).

Changed

  • Shut down gracefully (#338).
  • Fixed ACL incompatibility with certain managed K8s providers (#340).
  • Operator-rs: 0.6.0 -> 0.10.0 (#352, #383).
  • Cleanup for ZookeeperZnode now succeeds if the linked ZookeeperCluster was already deleted (#384).

[0.8.0] - 2021-12-22

[0.7.0] - 2021-12-20

Changed

  • Migrated to StatefulSet rather than direct Pod management (#263).
  • Migrated to PersistentVolumeClaim rather than manual sticky scheduling (#263).

[0.6.0] - 2021-12-06

[0.5.0] - 2021-11-12

Changed

  • operator-rs 0.3.00.4.0 (#255).
  • Adapted pod image and container command to docker image (#255).
  • Adapted documentation to represent new workflow with docker images (#255).

[0.4.1] - 2021-10-27

Added

  • process_command to reconcile loop for command handling (#223).
  • rust/crd/lib/command.rs for command CRDs
  • Trait implementations for command handling for the cluster and status (#223):
    • HasCurrentCommand to manipulate the current_command in the status
    • HasClusterExecutionStatus to access cluster_execution_status in the status
    • HasRoleRestartOrder to determine the restart order of different roles
    • HasCommands to provide all supported commands like Restart, Start, Stop ...
    • CanBeRolling to perform a rolling restart
    • HasRoles to run a command only on a subset of roles
  • Generated CRDs for Restart, Start, Stop (#223).
  • Example custom resources for Restart, Start, Stop (#223).

Changed

  • Switched to operator-rs tag 0.3.0 (#251)
  • Use identity::LabeledPodIdentityFactory to generate pod ids. (#217)
  • Fix ZookeeperCluster conditions overwriting each other (#228)
  • BREAKING: renamed crd/util.rs to crd/discovery.rs (#230).

Fixed

  • Fixed a bug where wait_until_crds_present only reacted to the main CRD, not the commands (#251).
  • The ZooKeeper discovery now correctly uses the "client" container port from the pod instead of defaulting to 2181 which will only work if the default port is used (#230).

[0.4.0] - 2021-09-21

Changed

  • kube-rs: 0.590.60 (#214).
  • k8s-openapi features: v1_21v1_22 (#214).

[0.3.0] - 2021-09-20

Added

  • Added versioning code from operator-rs for up and downgrades (#210).
  • Added ProductVersion to status (#210).
  • Added PodToNodeMapping to status (#209).

Changed

  • Using scheduler with history from operator-rs instead of random node selection(#209).

Removed

  • Code for version handling (#210).
  • Removed current_version and target_version from cluster status (#210).
  • Removed assign_ids, read_pod_information and anything id related which is now covered by the scheduler (#209).
  • Removed warning for replicas and node id problems from docs (#209).
  • Set right yaml indentation for the usage examples in docs (#209).

[0.2.0] - 2021-09-14

Changed

  • Breaking: Repository structure was changed and the -server crate renamed to -binary. As part of this change the -server suffix was removed from both the package name for os packages and the name of the executable (#197).

[0.1.0] - 2021.09.07

Added

  • Initial release