Releases: apecloud/kubeblocks
KubeBlocks v0.7.4
Full Changelog: v0.7.3...v0.7.4
KubeBlocks v0.7.3
KubeBlocks v0.9.0-alpha.2
What's Changed
- chore: migrate dashboard to gemini and adjust dashboard job name by @sophon-zt in #6028
- fix: tls CA cert not working by @free6om in #6031
- docs: add cn docs by @michelle-0808 in #6052
- docs: adjust format metadata by @michelle-0808 in #6058
- chore: release addons charts after kubeblocks by @JashBook in #6064
- fix: force rsync status from configuration.status (#6045) by @sophon-zt in #6048
- docs: adjust cn docs format by @shenying1023 in #6067
- docs: adjust kafka docs format by @michelle-0808 in #6070
- docs: adjust content by @shenying1023 in #6072
- chore: support component lifecycle action postProvision by @Y-Rookie in #6037
- chore: move storage provider controller to the pod of DP by @leon-inf in #6078
- fix: mongodb config deepcopy by @xuriwuyun in #6076
- chore: fix component definition vars env render by @Y-Rookie in #6077
- chore: fixed the target pod for backup and restore by @wangyelei in #6085
- chore: add comment for backup deletionPolicy by @ldming in #6034
- fix: empty parameter update cause restart (#6090) by @sophon-zt in #6091
- docs: adjust en&cn docs by @shenying1023 in #6081
- fix: disable KB_COMP_REPLICAS envvar to prevent pods from being restarted at h-scale by @leon-inf in #6096
- chore: remove KubeBlocks type roleArbitrator and replace with Lorry by @Y-Rookie in #6107
- fix: inject initContainers and containers zero resources if they are empty by @wangyelei in #6113
- fix: add selectorLabel for addon CR by @ldming in #6121
- chore: support backup target for backupMethod by @wangyelei in #6122
- fix: foxlake connect command by @jairuigou in #6080
- chore: improve Lorry performance by @xuriwuyun in #6109
- chore: update openapischema and add lables for kbcli report subcommand by @sophon-zt in #6117
- chore: remove new cluster conn-credential API by @leon-inf in #6098
- chore: fix cluster connect Database Env by @1aal in #6093
- fix: etcd connect error by @xuriwuyun in #6133
- chore: set timezone for backup schedule by @ldming in #6138
- chore(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 by @dependabot in #6136
- feat: add switchover to lorry client by @xuriwuyun in #6139
- chore: upgrade lorry client switchover by @xuriwuyun in #6145
- fix: remove AppNameLabelKey label in reconfiguration to fix reconfigure does not take effect by @Y-Rookie in #6146
- chore: add clickhouse addon by @ldming in #6137
- fix: issues regarding the upgrade from 0.7 to 0.8 by @leon-inf in #6148
- fix: new different lorry client with different envs by @xuriwuyun in #6149
- fix: switchover before member leaving by @free6om in #6153
- chore: remove unused code of consensusSetStatus and replicationSetStatus by @Y-Rookie in #6155
- chore: update lorry new client by @xuriwuyun in #6158
- fix: invalid template in storageprovider/oss.yaml by @zjx20 in #6162
- chore: separate k3s and k8s by @JashBook in #6163
- chore(deps): bump github.com/containerd/containerd from 1.7.6 to 1.7.11 by @dependabot in #6159
- feat: add apis for rsm managing pods by @Somiacao in #5815
- fix: render pod template to pod when build pod by @Somiacao in #6174
- chore: auto approve by workflow by @JashBook in #6182
- fix: use empty priorityClassName for csi-driver-nfs when in GKE by @zjx20 in #6183
- chore: avoid using the latest image tag by @ldming in #6168
- chore: add flink e2e test by @JashBook in #6185
- chore: expand built-in envs in postProvision action by @Y-Rookie in #6170
- fix: backward compatible with TLS configuration render by @Y-Rookie in #6179
- feat: support pod-level service definition and variable reference by @Y-Rookie in #6116
- fix: role check failed after upgrade from 0.7 to 0.8 by @xuriwuyun in #6171
- fix: mongodb connect error by @xuriwuyun in #6190
- chore: remove create role from mysql super user by @shanshanying in #6191
- fix: watch the Configuration object in component controller by @leon-inf in #6192
- fix: size computation for allocation may overflow by @Y-Rookie in #6194
- fix: re-render config after tls config changed by @cjc7373 in #6189
- docs: helm-installation-docs by @TalktoCrystal in #6106
- bugfix: exec k8s config as input by @lynnleelhl in #6196
- feat: support compact mode in annotation by @free6om in #6176
- fix: backward compatible expose opsRequest with legacy services by @Y-Rookie in #6201
- fix: exec client empty panic by @lynnleelhl in #6207
- fix: cronjob schedule is overrided by @ldming in #6209
- chore: fix failed test case by @ldming in #6211
- feat: support manage host ports if the pod is in the host network by @iziang in #6208
- fix: multiple static port conflict by @iziang in #6215
- chore: improve config template render for hostNetwork by @wangyelei in #6213
- fix: watch but not owned configuration object by @leon-inf in #6202
- chore: handle update conflict by @iziang in #6218
- feat: support backup and restore for oceanbase by @wangyelei in #6217
- fix: distinguish the componentdef on different addons (#6219) by @sophon-zt in #6220
- feat: lorry support ob by @xuriwuyun in #6216
- fix: replace scrapePort if pod is in host network by @iziang in #6223
- fix: auto creating component obj when upgrade to KubeBlocks v0.8.0 by @Y-Rookie in #6221
- fix: watch but not own existed workload objects by @leon-inf in #6222
- fix: revert "distinguish the componentdef on different addons #6219" by @Y-Rookie in #6231
- chore: fix backup failed for oceanbase by @wangyelei in #6230
- feat: config-manager support host network (#6235) by @sophon-zt in #6237
- feat: lorry support host network by @xuriwuyun in #6226
- chore: incorrect conversion between integer types by @wangyelei in #6240
- chore: split kubeblocks and kbcli release workflow by @JashBook in #6229
- chore: support restore backoffLimit by @wangyelei in #6242
- chore: backward compatible with AppNameLabelKey label in KubeBlocks v0.8.0 by @Y-Rookie in #6243
- chore: change golang image to 1.21-alpine by @JashBook in #6241
- chore: fix oceanbase switchover by @xuriwuyun in #6246
- chore: adjust release crds by @JashBook in #6249
- chore: fix oceanbase lorry port adaptor by @xuriwuyun in #6248
- chore: update apecloud-mysql version by @kubeJocker in #6260
- chore: update OB addon version by @shans...
KubeBlocks v0.8.1
KubeBlocks v0.8.0
KubeBlocks 0.8.0 (2024-01-12)
Exciting news! KubeBlocks v0.8.0 is officially released! 🚀 🎉 🎈
KubeBlocks v0.8.0 takes a big step forward in user experience by introducing component-level APIs, which makes standardized building blocks even smaller and more convenient to be reused.
For example, popular meta-database components like ETCD and ZK, which are widely used in various database clusters, now can be directly referenced after component modularization.
We also made Vitess Proxy a standard component, so that developers do not need to repeat their work (heavy lifting) when defining the read-write separation topology of MySQL or PostgreSQL engines in various distributions.
Further, the Addon mechanism has also been significantly improved. The helm chart of the database engine has been split from the KubeBlocks repo. From then on, changes in the database engine or version have been unbound from the KubeBlocks release.
Highlights
Independent Component API
When integrating the new database engine, we found deficiencies in the abstract design of KubeBlocks. v0.8.0 splits Component from Cluster definition to better support database types with multiple components. It supports variable references between Components, including ConfigMap, Secret, Service, ServiceReference and other variable reference types, which can better connect the relationships between components and lay the foundation for building clusters with different topologies.
Remove the addon helm chart from KubeBlocks repo
In previous versions, Helm charts for database engines were located in the "deploy" directory, tightly coupled with the KubeBlocks Operator. However, this caused two problems: first, upgrading KubeBlocks would trigger the upgrade of the database engine; second, upgrading the database engine would overwrite existing CD/CV, restarting all the clusters.
To address these problems, KubeBlocks v0.8.0 has placed the database engines into a standalone repository called "kubeblocks-addon", with version numbers added for both the database engines and associated resources. This ensures that new installations do not overwrite existing resources, thereby eliminating cluster restarts. And KubeBlocks provides the "kbcli addon" command, which allows users to download, install, use, and uninstall specific engine versions.
Supports multiple versions of database engine definitions
Prior to v0.8.0, KubeBlocks upgrades might trigger a restart of the database cluster. KubeBlocks v0.8.0, with the new Component API and Addon helm chart storage mechanism, this problem has been solved to a certain extent. We will continue to optimize the design of multiple versions in the future, and ultimately achieve burden-free upgrades.
What's Changed
New features
Pika
Supports multiple Pulsar clusters that can share a zookeeper component. #5823
Clickhouse
Integrates monitoring, scale-out and high availability. #5784
Oceanbase
Adds new active and standby cluster modes to support the complete life cycle and integrate backup, restore, monitoring and switching
MySQL
-
The Community Edition of MySQL 5.7 and 8.0 supports a full lifecycle with integrated backup recovery, monitoring, and HA.
-
Adds log audit function on ApeCloud MySQL.
PostgreSQL
Postgresql supports wal-g full backup and PITR. #180
OpsRequest
Supports custom OpsRequest, enabling specific operational actions. For example, creating and deleting Kafka topics.
NodePort
Enables NodePort access for Redis.
Compatibility
Compatible with the pre-refactored ClusterDefinition and ClusterVersion APIs.
Usability
-
opsRequest supports task queuing, allowing users to submit multiple tasks at once. For tasks that cannot run concurrently, the system will automatically execute the next task after the previous one is completed #5887
-
During KubeBlocks installation, specifying the image repository address is now possible, speeding up image pull.
Observability
Unifies configuration and management for logs and metrics collection.
API
- Adds interface definition in ComponentDefinition #5031
- Adds OpsDefinition API #5940
- Adds PreDelete Action for ActionSet . You can perform this action before deleting backup. #6361
Stability - Stability testings and related improvements.[wip]Kubeblocks Fault Test
kbcli
- Enhances addon sub-command, you can install the addon from the index repository.
Incompatible changes
-
In KubeBlocks 0.8.0, we have made improvements to Oceanbase (adding functions like creating master/standby clusters, support host network and dynamic ports, support backup/restore, monitoring, logging, etc.), the clusters created in version 0.7.0 are incompatible with those in version 0.8.0, so if you are using the 0.7.0 version to manage Oceanbase, you are recommended to upgrade to the 0.8.0 version of KubeBlocks. Upgrade KubeBlocks first, then upgrade Oceanbase Addon. It is recommended to use OceanBase official data import and export tools (OBLOADER and OBDUMPER) to migrate data.
-
KubeBlocks 0.8.0 streamlines the data engines installed by default when deploying KubeBlocks by removing greptime, influxdb, neon, oracle-mysql, oroledb, tdengine, mariadb, nebula, risingwave, starrocks, tidb, zookeeper. You can install them on-demand from the addon indexing repository with the kbcli addon subcommand or the kubectl apply command; if you are upgrading from a lower version, follow the upgrade manual to avoid deleting addons that are in use, which may affect running clusters.
-
The Helm Chart of KubeBlocks 0.8.0 no longer contains dependent CRDs. When installing or upgrading KubeBlocks with the helm command, you need to install the corresponding CRDs before installing or upgrading KubeBlocks, please refer to the upgrade manual for details.
KubeBlocks v0.7.2
What's Changed
- chore: optimize redis default acl and sentinel startup script by @Y-Rookie in #5926
- chore: support oracle readinessProbe and kbcli cluster connect by @1aal in #5947
- feat: set component number by @lynnleelhl in #5954
- feat: upload embed charts for go package by @lynnleelhl in #5955
- feat: merge mysql auditlog to release 0.7 by @sophon-zt in #5960
- fix: immutableParameters set STATIC (#5945) by @sophon-zt in #5961
- chore: rename cv name from ac-mysql-8.0.30-auditlog to ac-mysql-8.0.31 (#5960) by @sophon-zt in #5963
- fix: send event retry failed by @xuriwuyun in #5967
- chore: add oceanbase addon yaml by @shanshanying in #5968
- fix: failed to transform cue to openapischema (#5969) by @sophon-zt in #5973
- feat: do not create comp if replicas is 0 by @lynnleelhl in #5974
- fix: stop and stop pulsar failed which creating by kbcli by @wangyelei in #5978
- chore: remove hack for creating cluster by @wangyelei in #5980
- fix: add common labels to alternative services selector by @free6om in #5989
- fix: improve lorry performance by @xuriwuyun in #6002
- feat: kb-0.7 support reconfigure operation for multi component (#5906) by @sophon-zt in #5995
- chore: refine lorry request by @xuriwuyun in #6021
- refactor: private function to public by @lynnleelhl in #6023
- feat: set and limit the shm volume size as mem requirements by @leon-inf in #6022
- chore: support nodeport service for redis sentinel by @Y-Rookie in #6027
- chore: fix redis-cluster sentinel values schema json by @1aal in #6029
- fix: tls CA cert not working by @free6om in #6030
- fix: kb install panic when user have no permission by @ldming in #6033
- feat: OceanBase supports Primary-Secondary Tenants by @shanshanying in #6039
- chore: render ob parameters from tpl by @shanshanying in #6075
- chore: revert redis by @1aal in #6086
- chore: add values.schema.json for OB by @shanshanying in #6087
- chore: cherry-pick clickhouse addon to kb-release-0.7 by @sophon-zt in #6089
- Support/update mysql templates by @xuriwuyun in #6092
- fix: add the description of wal_level in the pg configconstrant file by @caiq1nyu in #6101
- feat: mysql semi sync by @xuriwuyun in #6104
- fix: mysql follow by @xuriwuyun in #6108
- feat: Support for configuring addon registry by @1aal in #6073
- fix: initContainers and containers zero resources if they are empty by @wangyelei in #6114
- chore: decrease switchover time cost by @xuriwuyun in #6115
- chore: refind ob with hostnetwork and host path SC to restart in-place by @shanshanying in #6118
- chore: add ck addon by @ldming in #6125
- chore: fix kafka and ck label by @ldming in #6128
- support: kbcli config image registry by @1aal in #6135
- chore: do not use latest image tag by @ldming in #6141
- fix: orioledb etcd host error by @1aal in #6144
- chore: fix oceanbase image repo by @ldming in #6143
- fix: remove config output to log by @1aal in #6150
- chore: remove SA by @shanshanying in #6152
- feat: add mysql errors and slow logs by @xuriwuyun in #6157
- chore: fix xtrabackup tag by @ldming in #6166
- fix: cluster can't be deleted after KB upgraded from 0.6 to 0.7 by @free6om in #6178
Full Changelog: v0.7.1...v0.7.2
KubeBlocks v0.7.1
What's Changed
- feat: support KubeBlocks component postStart hook by @Y-Rookie in #5824
- fix: get lorry container by @xuriwuyun in #5897
- chore: optimize cluster patch post start done annotation by @Y-Rookie in #5898
- chore: redis secondary startup waiting util primary ready by @Y-Rookie in #5900
Full Changelog: v0.7.0...v0.7.1
KubeBlocks v0.6.5
Full Changelog: v0.6.4...v0.6.5
KubeBlocks v0.7.0
KubeBlocks 0.7.0 (2023-11-06)
We're thrilled to announce the official release of KubeBlocks v0.7.0! 🚀 🎉 🎈
This version supports the function of referencing external components, making it possible to assemble building blocks - add-ons more flexibly.
Backup is decoupled from the cluster with a separate API, and three new object storage services from public cloud providers are added as backup storage options.
Thanks to the support of our community, KubeBlocks has included 31 open-source database engines, including MariaDB, Elasticsearch, Pulsar, Pika and more, providing more choices for you.
We would like to extend our appreciation to all contributors who helped make this release happen.
Highlights
Support referencing external components
The new feature of referencing external components brings greater flexibility to KubeBlocks clusters, allowing them to be assembled like building blocks to create new clusters. Currently, this function can be applied to two scenarios. Firstly, you can reference external components, such as external Zookeeper, that are not created and managed by KubeBlocks. You just need to define the service description and Kubernetes deployment is not required. Another scenario is that clusters created by KubeBlocks can be referenced as components by other clusters. For example, a Redis Sentinel cluster can be referenced by other Redis Replication clusters for managing high-availability.
Decouple cluster and backup #4877, #4494
The backup policy supports customizing backup methods, allowing you to specify a backup method when creating a backup. The BackupTool has been replaced with the ActionSet CRD, which defines actions for backup and restore. Three new object storage services, GCS, OBS, and COS, have been added as backup storage options. Besides, BackupSchedule is added to decouple automatic scheduling configurations from BackupPolicy that can be used for both automatic and manual backup.
Support Pika v3.5
Pika, developed by Qihoo, is an open-source NoSQL database that is compatible with Redis interfaces such as string, hash, list, zset, and set operations. It offers a cost advantage in 100 GB level and larger data volumes. Switching from Redis to Pika is seamless, as it maintains the same usage and operation habits. Currently, KubeBlocks has already supported deploying the sharded cluster mode from Pika v3.5. After a cluster is created by KubeBlocks, Pika is automatically added to the Codis cluster with rebalancing applied. KubeBlocks can also automatically manage Pika Primary-Secondary clusters, which can automatically add one primary with one or multiple secondaries.
What's Changed
New features
Pulsar #4587
Supports multiple Pulsar clusters that can share a zookeeper component.
Backup and restore
Supports three object storage services, namely GCS(Google Cloud Storage), OBS (Huawei Cloud Object Storage), and COS (Tencent Cloud Object Storage), as backup storage options.
Compatibility
Compatible with Huawei Cloud. #4697
Support multiple open-source engines
The table below provides an overview of the integrated engines and their capabilities in KubeBlocks.
V0.7.0 | Vscale | Hscale | Volumeexpand | Stop/Start | Restart | Backup/Restore | Logs | Config | Upgrade (DB engine version) | Account | Failover | Switchover | Monitor |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apecloud-mysql | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | ✔️ | ✔️ | ✔️ |
postgresql | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
redis | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | ✔️ | N/A | ✔️ |
mongodb | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | ✔️ | ✔️ |
kafka | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | N/A | N/A | N/A | N/A | ✔️ |
pulsar | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | N/A | N/A | N/A | N/A | ✔️ |
weaviate | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | ✔️ | N/A | N/A | N/A | N/A | ✔️ |
qdrant | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | ✔️ |
greptimedb | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
nebula | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
risingwave | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
starrocks | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
etcd | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
oceanbase | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
foxlake | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
orioledb | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
oracle-mysql | ✔️ | N/A | ✔️ | ✔️ | ✔️ | ✔️ | N/A | ✔️ | N/A | N/A | N/A | N/A | N/A |
official-postgresql | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
mysql (Primary-Secondary replication) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | ✔️ |
openldap | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
neon | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
opensearch | ✔️ | N/A | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
vllm | N/A | N/A | N/A | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
ggml | N/A | N/A | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
milvus | ✔️ | N/A | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
elasticsearch | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
tdengine | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
clickhouse | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
PolarDB-X | ✔️ | ✔️ | N/A | ✔️ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A ... |
KubeBlocks v0.6.4
What's Changed
Full Changelog: v0.6.3...v0.6.4