Releases: apecloud/kubeblocks
KubeBlocks v1.0.0-alpha.10
What's Changed
- chore: introduce the new definition CRD to describe sharding by @leon-inf in #8272
- fix: vertical scaling the instance templates failed by @wangyelei in #8281
- fix: dataprotection crash by @wangyelei in #8284
Full Changelog: v1.0.0-alpha.9...v1.0.0-alpha.10
KubeBlocks v0.9.2-beta.3
What's Changed
- chore: pick install addon list to release-0.9 by @yipeng1030 in #8288
Full Changelog: v0.9.2-beta.2...v0.9.2-beta.3
KubeBlocks v0.9.2-beta.2
What's Changed
- fix: restore pirt nil pointer bug by @wangyelei in #8286
Full Changelog: v0.9.2-beta.1...v0.9.2-beta.2
KubeBlocks v1.0.0-alpha.9
What's Changed
- chore: implement switchover operation with kbagent by @Y-Rookie in #8054
- fix: ConfigMap xxx-rsm-env not found by @free6om in #8222
- fix: preConditionDeadlineSeconds of the opsRequest is invalid when creating some opsRequests together by @wangyelei in #8220
- chore: get rid of golang.org/x/exp/{constraints,slices} modules by @zjx20 in #8239
- chore: remove rsm to its upgrade by @free6om in #8224
- feat: cmpv supports images of the lifecycle action and the user-managed by @leon-inf in #8238
- docs: add how to get kbcli and kb version in docs by @weicao in #8213
- chore: cleanup the APIs pkg deps and keep them compact by @leon-inf in #8244
- chore: service-ref supports to refer services from different namespace by @leon-inf in #8245
- chore: update the group of the BackupPolicyTemplate to "dataprotection" by @wangyelei in #8203
- feat: custom opsRequest supports to input parameters from cm and secret by @wangyelei in #8221
- docs: merge apecloud mysql and es API docs by @michelle-0808 in #8219
- docs: merge kafka, milvus, mongodb, mysql, pg api docs into user docs by @michelle-0808 in #8229
- docs: merge qdrant, redis, starrocks, maintaince and observability api docs into user docs by @michelle-0808 in #8249
- docs: fix format bugs for merging api docs by @michelle-0808 in #8254
- chore: remove dependency on github.com/containers/common by @zjx20 in #8253
- chore: fix release chart error by @JashBook in #8261
- chore: use generic sets instead of the deprecated one by @zjx20 in #8251
- chore: add /recheck-cla bot instruction by @zjx20 in #8270
- chore: fix a test case in log_collection_controller_test.go by @zjx20 in #8267
- fix: flaky test cases in component_controller_test.go by @zjx20 in #8265
- chore: change test type by @JashBook in #8273
- chore: tidy up ops and component controller codes by @wangyelei in #8274
- fix: nil ptr on upgrade hook job by @sophon-zt in #8268
- fix: volume expand the volumeClaimTemplates of the instance template failed by @wangyelei in #8277
Full Changelog: v1.0.0-alpha.8...v1.0.0-alpha.9
KubeBlocks v0.9.2-beta.1
What's Changed
Full Changelog: v0.9.2-beta.0...v0.9.2-beta.1
KubeBlocks v0.9.1
Highlights
We are delighted to announce the release of KubeBlocks v0.9.1. This release includes several new features, bug fixes, and various improvements. Here are the detailed update contents.
KubeBlocks
- Support for Cluster Stop and Start Operations via Cluster API
This allows users to meet different operation needs in various scenarios. - Enhanced Instance Rebuild Capability in OpsRequest
Combined with KubeBlocks’ InstanceSet, this greatly improves the system’s recovery capability in failure scenarios. - Multi-Version Support for ConfigConstraint
Provides a smoother upgrade experience for users of KubeBlocks V0.8.x.
Addons
- Redis: Supports PITR (Point-in-Time Recovery) and key-based recovery.
- Zookeeper: Supports backup.
- New Versions: Supports new versions of MySQL and PostgreSQL.
What's Changed
New Features
KubeBlocks
- OpsDefinition and BackupPolicyTemplate support cmpdName prefix and regex matching (#8174)
- OpsDefinition and BackupPolicyTemplate now support component name prefixes and regular expression matching, offering greater flexibility.
- High Availability (HA) Records (#8089)
Added support for HA records, enhancing fault tolerance and system reliability. - Cluster API Start and Stop Operations (#7783)
Adds the ability of starting and stopping clusters via Cluster API, simplifying cluster management. - Support for Horizontal Scaling on Instance Rebuilds (#7710)
You can choose how to rebuild certain instance, in-place-rebuild or remote-rebuild, via inPlace field in OpsRequest API. - Automatic Cleanup of Failed OpsRequests (#7796)
Adds a mechanism to automatically clean up failed OpsRequests, improving resource management. - Log Collection on Backup Failure (#8208)
Supports collecting logs when backup operations fail.
Addons
- Redis Addon
- Support for Loki (#707)
- Support for Minio (#926)
- Support for RabbitMQ (#746)
- Support for MySQL 8.4 (#987)
- Support for PostgreSQL 16 (#973)
- Zookeeper Addon Improvements
Supports backup. (#794, #851)
Others
- ComponentDefinition Immutability Check
Added a default immutability check for ComponentDefinition to avoid accidental changes, enhancing system stability. - Removal of the Application Addon (#7866)
The Application Addon has been removed from the codebase and is no longer installed by default. However, you can still install it manually if needed.
Changelog
- feat: InstanceSet supports Instance global ordinal for each InstanceTemplate by @YTGhost in #7746
- feat: use scheduling policy for instance template by @starnop in #7745
- add examples to release-0.9 by @ahjing99 in #7752
- chore: fix lint error by @free6om in #7778
- feat: support start and stop through cluster API by @leon-inf in #7783
- chore: pick controller gen panic for go1.22 by @sophon-zt in #7808
- feat: cmpd immutable check as default by @leon-inf in #7818
- chore: pick mysql/wesql has no slow log by @sophon-zt in #7827
- feat: support customized controller user-agent (#7850) by @free6om in #7867
- feat: Support setting ParallelPodManagement concurrency by @YTGhost in #7879
- chore: cherry pick cicd workflow optimize by @JashBook in #7980
- chore: lifecycle action job supports default cluster tolerations by @Y-Rookie in #7974
- feat: Supports upper-layer modification of the InstanceSet's UpdateStrategy by @YTGhost in #7978
- feat: add validation for PodUpdatePolicy by @YTGhost in #7984
- docs: cherry-pick docs from main by @michelle-0808 in #7992
- docs: fix cn doc errors by @michelle-0808 in #8005
- chore: fix null addon.spec.helm.installValues value (#8010) by @ldming in #8011
- chore: fix helm invalid null values (#8020) by @ldming in #8021
- feat: support redis(standalone replica) pitr by @Chiwency in #7998
- chore: remove some KB CRDs from the resource category all by @leon-inf in #8036
- chore: add etcd addon by @shanshanying in #8056
- feat: support NoRSMEnv feature gate (#8059) by @free6om in #8060
- fix: updateStrategy bug by @YTGhost in #8066
- chore: turn off mongodb ha in lorry by @xuriwuyun in #8072
- chore: P10K optimizations (#8045) by @free6om in #8070
- chore: auto upgrade addons version or update apis doc by @apecloud-bot in #8073
- fix: support leave member by using any pods by @cjc7373 in #8031
- fix: mongo dump backup failed with incorrect version by @wangyelei in #8067
- chore: pick support generate primary and public key for sshd to release-0.9 by @sophon-zt in #8087
- docs: update overview in release-0.9 by @michelle-0808 in #8097
- fix: missing some annotation when restoring from ops by @wangyelei in #8101
- chore: exclude dataproctection pods from kb services by @ldming in #8102
- feat: support to specify k8s scheduling policy in cluster API by @leon-inf in #8081
- feat: support ha records by @xuriwuyun in #8089
- feat: support InstanceSet PVC ownerReference by @free6om in #8113
- feat: compDef reference support regular expression matching by @Y-Rookie in #8123
- docs: sync 0.9 docs by @michelle-0808 in #8122
- docs: fix docs format bugs (#8118) by @michelle-0808 in #8127
- chore: remove the backward compatibility to PDB by @leon-inf in #8083
- chore: apply user defined labels and annotations to account&tls secret, pvcs, services owned by comp (#8141) by @Y-Rookie in #8153
- chore: chore: generate and convert to shared account secret for sharding password defined with seed by @Y-Rookie in #8155
- feat: specify node for rebuild instance ops by @cjc7373 in #8161
- feat: redis-restore-by-keys by @Chiwency in #8129
- docs: add rabbitmq docs and update other related docs by @michelle-0808 in #8164
- chore: auto upgrade addons version or update apis doc by @apecloud-bot in #8169
- chore: remove CV update validation by @shanshanying in #8173
- chore: skip validate restore in webhook by @shanshanying in #8175
- chore: remove CV create validation by @shanshanying in #8179
- chore: pick update headless svc labels for the prometheus scrape job to release-0.9 (#8088) by @sophon-zt in #8098
- feat: opsDef and bpt support cmpd name prefix and regex matching by @wangyelei in #8174
- chore: add crd patch role by @shanshanying in #8181
- fix: the reclaim policy of the rebuilt PV is incorrect. by @wangyelei in #8184
- chore: fix the phase of the upgrade ops is incorrect by @wangyelei in #8189
- feat: add BuildInstanceName2TemplateMap public api by @YTGhost in #8194
- fix: config-related resource cannot be cleaned up after disable addons by @sophon-zt in #8188
- chore: collect the log of the backup failed by @wangyelei in #8208
- fix: create redis bpt failed by @wangyelei in #8218
- chore: set clusterdefinition.componentDefs default to empty list by @shanshanying in #8227
- fix: InPlacePodVerticalScaling not used by @free6om in #8230
Full Changelog: v0.9.0...v0.9.1
KubeBlocks v0.8.4
What's Changed
- fix: missing svc related feature gates in backup by @shanshanying in #7388
- chore: auto-sync cluster backup spec to backupSchedule by @wangyelei in #7469
- chore: clean up restoreFromBackup annotation by @wangyelei in #7515
- chore: wait for cluster to available when enable pitr by @wangyelei in #7517
- chore: ignore the schedule error when creating a pod by @wangyelei in #7548
- feat: support user-defined annotations, env and volumes by @leon-inf in #7587
- chore: support to run a opsRequest after the dependent opsRequests are succeed. by @wangyelei in #7595
- feat: support user-defined labels by @leon-inf in #7605
- chore: delete related running restore resource to release pvc when cancelling the horizontal scaling by @wangyelei in #7622
Full Changelog: v0.8.3...v0.8.4
KubeBlocks v0.9.0
We are thrilled to announce the release of KubeBlocks v0.9.0, which brings us one step closer to the highly anticipated v1.0 release. This version introduces several significant improvements and new features that enhance the overall functionality and user experience of the KubeBlocks platform.
API Highlights
- In KubeBlocks v0.9, with the introduction of topology support in KubeBlocks, the cluster building experience has become much more flexible and intuitive, akin to assembling a cluster using building blocks. The ClusterDefinition API has added the topologies field, allowing developers to provide various deployment patterns with different topologies. Database users can choose a topology when creating a Cluster through the topology field. For instance, the Redis Addon offers three topologies: Standalone, Replication, and Proxy. The Standalone topology only includes one Component - RedisServer, the Replication topology includes both RedisServer and Sentinel Components, and the Proxy topology adds a third Component, such as Twemproxy.
- KubeBlocks now supports managing horizontal scaling (Reshard) of distributed databases. You can represent a horizontal shard with a Component, and scale up or down this horizontal shard by adding or removing Components. This scaling capability will also be used in the distributed deployment of Redis and Pika.
- KubeBlocks now uses InstanceSet instead of StatefulSet to manage Pods. InstanceSet supports taking a specified Pod offline and Pod in-place update, and also the primary and secondary databases can adopt different pod specs in a database Replication architecture (StatefulSet doesn't support these features).
- Developers can add more custom event handlers for Components! The ComponentDefinition API, introduced in v0.8, includes the lifeCycleActions field, allowing you to define various custom event handlers. Building on this, KubeBlocks v0.9 provides more handlers for custom addon implementation, including roleprobe (node role probing), memberLeave (node offline), preTerminate (Component offline), and postProvision (Component online). The expansion of event handlers enhances KubeBlocks' expression capabilities. For example, preTerminate and postProvision can be used to execute cross-shard data redistribution (Rebalance) in distributed databases or initiate registration to third-party HA managers like Sentinel and Orchestrator.
Addon Highlights - KubeBlocks supports Redis Cluster mode (sharding mode) #5833
Redis Cluster is designed to provide horizontal write scalability and intelligent client high-availability strategies, in addition to its excellent failover capability. Redis Cluster distributes data across multiple Redis nodes, significantly enhancing system capacity, performance, and availability. - KubeBlocks introduces MySQL Replication mode #1330
Compared to MGR clusters, the MySQL Replication topology requires fewer resources (only two database replicas) and incurs less overhead for data replication. When there is no extreme demands for service availability and data reliability, the Replication topology is a more cost-effective choice. You can actively switch MySQL replica roles using kbcli or trigger a passive failover by deleting specified Kubernetes pods via kubectl. If there is no long transactions and large table DDLs, the failover generally can be completed within 30 seconds.
What's Changed
New Features
KubeBlocks - ClusterDefinition API
- Supports topology API, allowing developers to customize various topologies. #6582
- Cluster API
- ComponentDefinition API
- lifecycleActions API supports user-defined operation actions, including roleprobe, memberLeave, preTerminate, postProvision. #6037 #6582 #6720 #6774
- New Vars API for referencing instance-related dynamic resources and information, including secret, service, and service reference.
- Supports dynamic configuration, regenerating specified variables after vertical scaling or horizontal scaling is performed. #6273 #6690
- Component
- InstanceSet API
- OpsRequest API
- Supports NodeCountScaler. #7258
- Supports PITR. #6779
- Supports cross-Namespace restore. #6778
kbcli - Supports PostgreSQL point-in-time recovery. #329
- cluster supports the rebuild-instance subcommand to rebuild instances. #285
- cluster create subcommand supports elasticsearch. #389
- Supports specifying path prefix when creating a backup repository. #294
Addons
Redis
- Supports the official Redis Cluster topology. #301
- Enhances the functionality and stability of Redis.
- Redis sharding cluster supports backup and restore. #442
MySQL - Adds the open-source component Orchestrator Addon to manage MySQL. #625 #567
PostgreSQL - Supports PostgreSQL PITR. #361
- Supports PostgreSQL v15.7. #361
Qdrant - Qdrant sharding cluster supports backup and restore. #442
MogDB - Supports the creation, scaling, backup and switchover of MogDB Replication Cluster in v5.0.5. #343 #350
ElasticSearch - Supports Elasticsearch v7.7.1, v7.10.1, and v8.8.2. #767
Pulsar - Supports v3.0.2. #340
- Supports NodePort. #358
VictoriaMetrics - Supports VictoriaMetrics v1.100.1. #479
API deprecations, and other changes for Release 0.9
- ConfigConstraint API becomes stable and upgrades from v1alpha1 to v1beta1.
- The group of StorageProvider changes and is migrated from storage.kubeblocks.io to dataprotection.kubeblocks.io.
- ClusterVersion v1alpha1 CRD will be removed in Release 1.0.
- ComponentClassDefinition v1alpha1 CRD will be removed in Release 1.0.
- ComponentResourceConstraint v1alpha1 CRD will be removed in Release 1.0.
- ClusterDefinition API
- type, componentDefs, connectionCredential will be removed in Release 1.0.
- Cluster API
- Scheduling: tenancy and availabilityPolicy will be removed in Release 1.0.
- API simplification: replicas, resources, storage, and network will be removed in Release 1.0.
- ComponentDefintion API
- switchPolicy will be removed in Release 1.0. The same capability can be achieved using the componentDefinition.spec.lifecycleActions.switchover API.
- ServiceRef API
- Cluster will be removed in Release 1.0. The same capability can be achieved using serviceRef.clusterServiceSelector.
Additionally, all fields referencing the above APIs are also marked as deprecated and will be removed in Release 1.0.
- clusterVersionRef
- componentDefRef
- classDefRef
KubeBlocks Release 0.9 still maintains the compatibility with API marked as deprecated.
Dep...
KubeBlocks v0.8.4-beta.0
What's Changed
- fix: missing svc related feature gates in backup by @shanshanying in #7388
Full Changelog: v0.8.3...v0.8.4-beta.0
KubeBlocks v0.8.3
What's Changed
- fix: dual stack service reconcile error by @iziang in #6877
- feat: support expose dualstack service by @iziang in #6916
- feat: support to reference objects from multiple components by @leon-inf in #6918
- bugfix: use openapi v3.0.0 to fix excluseiveMiminum case by @shanshanying in #6926
- chore: update apis licence to Apache by @shanshanying in #6948
- chore: update api-reference doc by @sophon-zt in #6950
- chore: delete related-configmap and configuration resources by @sophon-zt in #7054
- fix: Serial UpdateStrategy not working without roles by @free6om in #7079
- chore: add cluster labels to continouns backup and support do postReady restore by @wangyelei in #7151
- chore: should report error when resolving partial required objects by @leon-inf in #7232
- chore: support to create backupPolicy with multi-components that refers the same componentDefinition by @wangyelei in #7305
- fix: configuration mounted in subpath mode do not support dynamic update for pick release-0.8 by @sophon-zt in #7332
- chore: add labels to distinguish kb and dataprotection (#7352) by @shanshanying in #7354
- fix: ob rebuild instance failed by @wangyelei in #7358
- fix: when a component does not specify componentDefRef, each component will create a backupPolicy by @wangyelei in #7375
Full Changelog: v0.8.2...v0.8.3