# KSE v3.3.1 Changelog
<!-- TOC -->
- [KSE v3.3.1 Changelog](#kse-v331-changelog)
- [Observability](#observability)
- [Features](#features)
- [Enhancements \& Updates](#enhancements--updates)
- [Bug Fixes](#bug-fixes)
- [DevOps](#devops)
- [Features](#features-1)
- [Enhancements \& Updates](#enhancements--updates-1)
- [Bug Fixes](#bug-fixes-1)
- [Multi-Tenancy \& Multi-Cluster](#multi-tenancy--multi-cluster)
- [Features](#features-2)
- [Bug Fixes](#bug-fixes-2)
- [Microservice](#microservice)
- [Features](#features-3)
- [Storage](#storage)
- [Features](#features-4)
- [Bug Fixes](#bug-fixes-3)
- [Authentication \& Authorization](#authentication--authorization)
- [Features](#features-5)
- [Enhancements \& Updates](#enhancements--updates-2)
- [Bug Fixes](#bug-fixes-4)
- [DMP](#dmp)
- [Features](#features-6)
- [App Store](#app-store)
- [Features](#features-7)
- [Bug Fixes](#bug-fixes-5)
- [Network](#network)
- [Enhancements \& Updates](#enhancements--updates-3)
- [Bug Fixes](#bug-fixes-6)
- [Service Mesh](#service-mesh)
- [Bug Fixes](#bug-fixes-7)
- [KubeEdge Integration](#kubeedge-integration)
- [Features](#features-8)
- [Enhancements \& Upgrades](#enhancements--upgrades)
- [Bug Fixes](#bug-fixes-8)
- [License](#license)
- [Features](#features-9)
- [Security](#security)
- [Features](#features-10)
- [Enhancements \& Updates](#enhancements--updates-4)
- [Development \& Testing](#development--testing)
- [Features](#features-11)
- [User Experience](#user-experience)
- [Features](#features-12)
- [Enhancements \& Updates](#enhancements--updates-5)
- [Bug Fixes](#bug-fixes-9)
- [API Changes](#api-changes)
<!-- /TOC -->
Starting from v3.3.1, the previous QKCP(QingCloud KubeSphere Container Management Platform) has been renamed to KSE (KubeSphere Container Management Platform Enterprise, or KubeSphere Enterprise for short)
## Observability
### Features
- Add Whizard as the Prometheus Long-Term storage for multi-cluster monitoring & alerting ([Whizard](https://github.com/WhizardTelemetry/whizard) by [@junotx](https://github.com/junotx), [@wanjunlei](https://github.com/wanjunlei), and [@frezes](https://github.com/frezes))
- Add Observability Center ([kse-console#195](https://github.com/kubesphere/kse-console/pull/195), [@harrisonliu5](https://github.com/harrisonliu5))
- Support multi-cluster monitoring in the Observability Center ([kse#325](https://github.com/kubesphere/kse/pull/325), [@frezes](https://github.com/frezes))
- Support multi-cluster alerting in the Observability Center ([kse-console#267](https://github.com/kubesphere/kse-console/pull/267), [@weili520](https://github.com/weili520))
- Introduces 3 new CRDs GlobalRuleGroups, ClusterRuleGroups, and RuleGroups for multi-cluster, cluster, and project alerting respectively ([kse#297](https://github.com/kubesphere/kse/pull/297), [@junotx](https://github.com/junotx))
- Alert Rules are now defined in GlobalRuleGroups, ClusterRuleGroups or RuleGroups which will be converted to groups in PrometheusRules.
- Add controller to sync PrometheusRules to host cluster ([kse#308](https://github.com/kubesphere/kse/pull/308), [@junotx](https://github.com/junotx))
- Add admission webhook and controllers for RuleGroups, ClusterRuleGroups, GlobalRuleGroups. ([kse#302](https://github.com/kubesphere/kse/pull/302), [@junotx](https://github.com/junotx))
- Built-in alert rules can be modified, enabled, disabled or reset now.
- Support KubeSphere core components alerting ([kse-installer#65](https://github.com/kubesphere/kse-installer/pull/65), [@junotx](https://github.com/junotx))
- Support cleaning up a cluster's notification settings when removing this cluster ([kse-console#218](https://github.com/kubesphere/kse-console/pull/218), [@yazhouio](https://github.com/yazhouio))
- Add feishu notification channel ([kse-console#163](https://github.com/kubesphere/kse-console/pull/163), [@harrisonliu5](https://github.com/harrisonliu5))
- Support silencing notifications ([kse-console#205](https://github.com/kubesphere/kse-console/pull/205), [@yazhouio](https://github.com/yazhouio))
- Support switching notification language between English and Chinese ([kse-console#205](https://github.com/kubesphere/kse-console/pull/205), [@yazhouio](https://github.com/yazhouio))
- Support adding a user account's email address to this user's notification setting ([kse-console#165](https://github.com/kubesphere/kse-console/pull/165), [@harrisonliu5](https://github.com/harrisonliu5))
- Use OpenSearch as built-in log storage instead of Elasticsearch ([kse-installer#54](https://github.com/kubesphere/kse-installer/pull/54), [@wenchajun](https://github.com/wenchajun))
- Add OpenSearch curator ([kse-installer#54](https://github.com/kubesphere/kse-installer/pull/54), [@wenchajun](https://github.com/wenchajun))
- Add OpenSearch Dashboard ([kse-installer#79](https://github.com/kubesphere/kse-installer/pull/79), [@wenchajun](https://github.com/wenchajun))
- Support adding OpenSearch as log receiver ([kse-console#182](https://github.com/kubesphere/kse-console/pull/182), [@harrisonliu5](https://github.com/harrisonliu5))
- Support searching logs from OpenSearch in KubeSphere console ([kse#296](https://github.com/kubesphere/kse/pull/296) & [kse#400](https://github.com/kubesphere/kse/pull/400), [@wenchajun](https://github.com/wenchajun))
- Add process and thread monitoring metrics for containers. ([kubesphere#4711](https://github.com/kubesphere/kubesphere/pull/4711), [@junotx](https://github.com/junotx))
- Add disk monitoring metrics that provides disk usage data. ([kubesphere#4705](https://github.com/kubesphere/kubesphere/pull/4705), [@junotx](https://github.com/junotx))
- Support importing Grafana templates to create custom monitoring dashboards in a namespace. ([kubeshere#4446](https://github.com/kubesphere/kubesphere/pull/4446), [@zhu733756](https://github.com/zhu733756), [console#3202](https://github.com/kubesphere/console/pull/3202) [@weili520](https://github.com/weili520))
- Support defining data retention periods for container logs, K8s events log, and audit logs respectively. ([ks-installer#1915](https://github.com/kubesphere/ks-installer/pull/1915), [@wenchajun](https://github.com/wenchajun))
### Enhancements & Updates
- Cluster overview enhancement ([kse-console#177](https://github.com/kubesphere/kse-console/pull/177) by [@harrisonliu5](https://github.com/harrisonliu5), [kse#312](https://github.com/kubesphere/kse/pull/312) by [@frezes](https://github.com/frezes))
- Workspace & Project monitoring enhancement ([kse#337](https://github.com/kubesphere/kse/pull/337), [@frezes](https://github.com/frezes))
- `Alert Policies` has been renamed to `Rule Groups`, while `Alert Messages` has been renamed to `Alerts`
- `Custom Alert Messages` has been renamed to `From Custom Rules`, while `Built-in Alert Messages` has been renamed to `From Built-in Rules`
- Change metric query statements to match Prometheus component upgrades. ([kubesphere#4621](https://github.com/kubesphere/kubesphere/pull/4621), [@junotx](https://github.com/junotx))
- Upgrade promethues to v2.39.1, thanos to v0.29.5 (Customized), and kube-state-metrics to v2.6.0 ([kse-installer#86](https://github.com/kubesphere/kse-installer/pull/86), [@frezes](https://github.com/frezes))
- Upgrade fluentbit-operator to v0.14.0 ([kse-installer#81](https://github.com/kubesphere/kse-installer/pull/81), [@wenchajun](https://github.com/wenchajun))
- Upgrade Notification Manager to v2.1.0
- Upgrade Alertmanager from v0.21.0 to v0.23.0.
- Upgrade Grafana from v7.4.3 to v8.3.3.
- Upgrade node-exporter from v0.18.1 to v1.3.1.
- Upgrade Prometheus Operator from v0.43.2 to v0.55.1.
- Upgrade kube-rbac-proxy from v0.8.0 to v0.11.0.
- Upgrade configmap-reload from v0.3.0 to v0.5.0.
- Upgrade kube-events from v0.3.0 to v0.4.0.
- Upgrade Fluent Bit from v1.8.3 to v1.8.11.
### Bug Fixes
- Fix incorrect ingress P95 delay promql expression. ([kse#314](https://github.com/kubesphere/kse/pull/314), [@iawia002](https://github.com/iawia002))
- Fix the style of log detail in toolbox ([kse-console#184](https://github.com/kubesphere/kse-console/pull/184), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix inaccurate time unit of the monitoring metrics.([console#3557](https://github.com/kubesphere/console/pull/3557), [@iawia002](https://github.com/iawia002))
- Fix the "No Cluster Available" issue during log search. ([console#3555](https://github.com/kubesphere/console/pull/3555), [@harrisonliu5](https://github.com/harrisonliu5))
## DevOps
### Features
- Add the Continuous Deployment feature, which supports GitOps and uses Argo CD as the backend. ([ks-devops#466](https://github.com/kubesphere/ks-devops/pull/466), [@LinuxSuRen](https://github.com/LinuxSuRen), [console#2990]( https://github.com/kubesphere/console/pull/2990),[@harrisonliu5](https://github.com/harrisonliu5))
- Add a webhook for processing pipeline events. ([ks-devops#442](https://github.com/kubesphere/ks-devops/pull/442), [@JohnNiang](https://github.com/JohnNiang))
- Add support for verifying SCM tokens directly instead of calling a Jenkins API. ([ks-devops#439](https://github.com/kubesphere/ks-devops/pull/439), [@LinuxSuRen](https://github.com/LinuxSuRen))
- Optimize pipeline templates loaded from APIs. ([ks-devops#453](https://github.com/kubesphere/ks-devops/pull/453), [@JohnNiang](https://github.com/JohnNiang), [console#2963](https://github.com/kubesphere/console/pull/2963), [@harrisonliu5](https://github.com/harrisonliu5))
- Add the allowlist feature on the **Basic Information** page of a DevOps project. ([console#3224](https://github.com/kubesphere/console/pull/3224), [@harrisonliu5](https://github.com/harrisonliu5))
- Add the **Events** tab on the pipeline run record page. ([console#3012](https://github.com/kubesphere/console/pull/3012), [@harrisonliu5](https://github.com/harrisonliu5))
- Prevent passing tokens directly to the DevOps SCM verification API to avoid security vulnerabilities. Instead, only secret names are passed to the API. ([console#2943](https://github.com/kubesphere/console/pull/2943), [@mangoGoForward](https://github.com/mangoGoForward))
- Add a message indicating that the S2I and B2I features currently do not support the containerd runtime. ([console#2734](https://github.com/kubesphere/console/pull/2734), [@weili520](https://github.com/weili520))
- Fix an issue in the **Import Code Repository** dialog box, where repositories and organizations are not completely displayed. ([console#3222](https://github.com/kubesphere/console/pull/3222), [@harrisonliu5](https://github.com/harrisonliu5))
### Enhancements & Updates
- Add support for editing the kubeconfig binding mode on the pipeline UI.([console#3864](https://github.com/kubesphere/console/pull/3864), [@harrisonliu5](https://github.com/harrisonliu5))
### Bug Fixes
- Fix an issue where Jenkins updates are not synchronized in real time. ([ks-devops#837](https://github.com/kubesphere/ks-devops/pull/837), [@chilianyi](https://github.com/chilianyi))
- Fix the cron expression check failure of Jenkins. ([ks-devops#784](https://github.com/kubesphere/ks-devops/pull/784), [@LinuxSuRen](https://github.com/LinuxSuRen))
- Fix an issue where users fail to check the CI/CD template.([ks-devops-helm-chart#80](https://github.com/kubesphere-sigs/ks-devops-helm-chart/pull/80), [@chilianyi](https://github.com/chilianyi))
- Remove the `Deprecated` tag from the CI/CD template and replace `kubernetesDeploy` with `kubeconfig binding` at the deployment phase.([ks-devops-helm-chart#81](https://github.com/kubesphere-sigs/ks-devops-helm-chart/pull/81), [@chilianyi](https://github.com/chilianyi))
- Fix an issue where pipeline parameters are not updated in time.([console#3864](https://github.com/kubesphere/console/pull/3864), [@harrisonliu5](https://github.com/harrisonliu5))
## Multi-Tenancy & Multi-Cluster
### Features
- Support grouping cluster by labels. ([kse-console#193](https://github.com/kubesphere/kse-console/pull/193) & [kse-console#200](https://github.com/kubesphere/kse-console/pull/200), [@yazhouio](https://github.com/yazhouio))
- Add cluster label controller and APIs. ([kse#313](https://github.com/kubesphere/kse/pull/313), [@iawia002](https://github.com/iawia002))
- Add a limit on the number of labels that can be added to a cluster ([kse-console#203](https://github.com/kubesphere/kse-console/pull/203), [@yazhouio](https://github.com/yazhouio))
- A cluster's kubeconfig can now be renewed automatically([kse#304](https://github.com/kubesphere/kse/pull/304), [@iawia002](https://github.com/iawia002))
- Add metrics for cluster certificate expiration, now notifications can be sent when the kubeconfig is about to expire in 7 days or 24 hours ([kse#328](https://github.com/kubesphere/kse/pull/328), [@iawia002](https://github.com/iawia002))
- Add remove cluster warning
- Add a notification to remind users when the kubeconfig certificate of a cluster is about to expire. ([console#3038](https://github.com/kubesphere/console/pull/3038), [@harrisonliu5](https://github.com/harrisonliu5), [kubesphere#4584](https://github.com/kubesphere/kubesphere/pull/4584), [@iawia002](https://github.com/iawia002))
- Add the name of current cluster to the `kubesphere-config` configmap. ([kubesphere#4679](https://github.com/kubesphere/kubesphere/pull/4679), [@iawia002](https://github.com/iawia002))
- Add an API to update a cluster's kubeconfig. ([kubesphere#4562](https://github.com/kubesphere/kubesphere/pull/4562), [@iawia002](https://github.com/iawia002))
- Support cluster member management and cluster role management. ([console#3061](https://github.com/kubesphere/console/pull/3061), [@harrisonliu5](https://github.com/harrisonliu5))
### Bug Fixes
- Set the ready status to false when a cluster failed to join the federation control plane. ([kse#315](https://github.com/kubesphere/kse/pull/315), [@iawia002](https://github.com/iawia002))
## Microservice
### Features
- Support Spring Cloud ([kse-console#157](https://github.com/kubesphere/kse-console/pull/157) by [@xuliwenwenwen](https://github.com/xuliwenwenwen), [kse-console#159](https://github.com/kubesphere/kse-console/pull/159) by [@harrisonliu5](https://github.com/harrisonliu5), [kse-console#280](https://github.com/kubesphere/kse-console/pull/280) by [@weili520](https://github.com/weili520))
- Add Spring Cloud Operator ([spring-cloud-operator](https://github.com/kubesphere-sigs/spring-cloud-operator/), [@RolandMa1986](https://github.com/RolandMa1986) & [@hongzhouzi](https://github.com/hongzhouzi) & [@wansir](https://github.com/wansir))
- Support Spring Cloud configuration in Spring Cloud Operator ([spring-cloud-operator#3](https://github.com/kubesphere-sigs/spring-cloud-operator/pull/3), [@RolandMa1986](https://github.com/RolandMa1986))
- Support Spring Cloud Microservice in Spring Cloud Operator ([spring-cloud-operator#9](https://github.com/kubesphere-sigs/spring-cloud-operator/pull/9) & [spring-cloud-operator#35](https://github.com/kubesphere-sigs/spring-cloud-operator/pull/35), [@hongzhouzi](https://github.com/hongzhouzi))
- Support Spring Cloud Gateway in Spring Cloud Operator ([spring-cloud-operator#12](https://github.com/kubesphere-sigs/spring-cloud-operator/pull/12), [@wansir](https://github.com/wansir))
- Support Microservice Aggregated API in Spring Cloud Operator ([spring-cloud-operator#15](https://github.com/kubesphere-sigs/spring-cloud-operator/pull/15), [@hongzhouzi](https://github.com/hongzhouzi))
- Add GatewayRouteConfig in Spring Cloud Operator ([spring-cloud-operator#29](https://github.com/kubesphere-sigs/spring-cloud-operator/pull/29), [@wansir](https://github.com/wansir))
- Add Spring Cloud helm chart install ([kse-installer#58](https://github.com/kubesphere/kse-installer/pull/58) & [kse-installer#97](https://github.com/kubesphere/kse-installer/pull/97) & [kse-installer#73](https://github.com/kubesphere/kse-installer/pull/73), [@hongzhouzi](https://github.com/hongzhouzi))
- Add kubesphere-spring-cloud-starter ([spring-cloud-gateway#2](https://github.com/kubesphere-sigs/spring-cloud-gateway/pull/2), [@hongzhouzi](https://github.com/hongzhouzi))
## Storage
### Features
- Support PVC resizing that can automatically expand PVCs when the remaining capacity is insufficient. ([kubesphere#4660](https://github.com/kubesphere/kubesphere/pull/4660), [@f10atin9](https://github.com/f10atin9).[console#3056](https://github.com/kubesphere/console/pull/3056), [@weili520](https://github.com/weili520))
- Support volume snapshot content management and volume snapshot class management. ([kubesphere#4596](https://github.com/kubesphere/kubesphere/pull/4596), [@f10atin9](https://github.com/f10atin9), [console#2958](https://github.com/kubesphere/console/pull/2958), [@weili520](https://github.com/weili520), [console#3051](https://github.com/kubesphere/console/pull/3051), [@weili520](https://github.com/weili520))
- Allow users to set authorization rules for storage classes so that storage classes can be used only in specific projects. ([kubesphere#4770](https://github.com/kubesphere/kubesphere/pull/4770), [@f10atin9](https://github.com/f10atin9), [console#3069](https://github.com/kubesphere/console/pull/3069), [@weili520](https://github.com/weili520))
- Provide usage data of each disk. ([console#3063](https://github.com/kubesphere/console/pull/3063), [@harrisonliu5](https://github.com/harrisonliu5))
### Bug Fixes
- Set `hostpath` as a required option when users are mounting volumes. ([console#3478](https://github.com/kubesphere/console/pull/3478), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Update storageClass-accessor, so that deleting storage resources no longer requires accessor validation.([kubesphere#5271](https://github.com/kubesphere/kubesphere/pull/5271),[@f10atin9](https://github.com/f10atin9))
## Authentication & Authorization
### Features
- Support manually disabling and enabling users. ([kubesphere#4695](https://github.com/kubesphere/kubesphere/pull/4695), [@wansir](https://github.com/wansir), [console#3014](https://github.com/kubesphere/console/pull/3014), [@harrisonliu5](https://github.com/harrisonliu5))
### Enhancements & Updates
- Check user permissions to clusters when creating or updating workspace templates. ([kse#382](https://github.com/kubesphere/kse/pull/382), [@zhou1203](https://github.com/zhou1203))
- Add authorization control when patching the `workspacetemplates`
### Bug Fixes
- Support filtering workspace roles using the LabelSelector. ([kubesphere#5162](https://github.com/kubesphere/kubesphere/pull/5162), [@zhou1203](https://github.com/zhou1203))
- Support customizing or randomly setting an initial amdin password.([ks-install#2067](https://github.com/kubesphere/ks-installer/pull/2067),[@pixiake](https://github.com/pixiake))
- Delete annotations in `role-template-manage-users`, `role-template-view-members` and `role-template-manage-roles`.([ks-install#2062](https://github.com/kubesphere/ks-installer/pull/2062),[@zhou1203](https://github.com/zhou1203))
- Fix an issue where `cluster-admin` cannot view and manage the configmap, secret, and service account.([ks-install#2082](https://github.com/kubesphere/ks-installer/pull/2082),[@zhou1203](https://github.com/zhou1203))
- Delete role `workspace-manager`.([ks-install#2094](https://github.com/kubesphere/ks-installer/pull/2094),[@zhou1203](https://github.com/zhou1203))
- Add role `platform-self-provisioner`. ([ks-install#2095](https://github.com/kubesphere/ks-installer/pull/2095),[@zhou1203](https://github.com/zhou1203))
- Delete role `users-manager`. ([ks-install#2105](https://github.com/kubesphere/ks-installer/pull/2105),[@zhou1203](https://github.com/zhou1203))
- Block `role-template-manage-groups`. ([ks-install#2122](https://github.com/kubesphere/ks-installer/pull/2122),[@zhou1203](https://github.com/zhou1203))
## RadonDB DMP
### Features
#### DMP Framework:
- Add Redis Cluster, Redis Sentinal, MongoDB, ECK, Kafka, OpenSearch, and RadonDB Operator(s) ([kse-console#221](https://github.com/kubesphere/kse-console/pull/221),[@zhanglin-doudou](https://github.com/zhanglin-doudou))
- Update RadonDB Operator helm charts ([kse-installer#102](https://github.com/kubesphere/kse-installer/pull/102) & [kse-installer#112](https://github.com/kubesphere/kse-installer/pull/112), [@inksnw](https://github.com/inksnw))
- Add a new postgresql operator implementation instead of kse3.2.1 postgresql operator
- Refactor monitoring, add application monitoring information
#### ClickHouse:
- Support ClickHouse kernel version 21.1.3.32
- Rich display of monitoring metrics
- Support horizontal and vertical expansion
- SVC-based cluster load balancing
- High-availability based on multiple replicas
- Fine-grained cluster state presentation
- Disk expansion support qingcloud-csi
- Compatible kubernetes api extension version v1
- Automatically create/delete/configure ZooKeeper cluster dependencies
#### MySQL:
- Support make S3 and NFS backup schedule together ([radondb-mysql-kubernetes#721](https://github.com/radondb/radondb-mysql-kubernetes/pull/721))
- Add webhook check for sidecar image ([radondb-mysql-kubernetes#731](https://github.com/radondb/radondb-mysql-kubernetes/pull/731))
- support the x.x.x.x:/dbbackup nfs address. ([radondb-mysql-kubernetes#717](https://github.com/radondb/radondb-mysql-kubernetes/pull/717))
- validate mysql image and mysqlversion on cluster create ([radondb-mysql-kubernetes#715](https://github.com/radondb/radondb-mysql-kubernetes/pull/715))
- Support running single node. ([radondb-mysql-kubernetes#584](https://github.com/radondb/radondb-mysql-kubernetes/pull/584))
- feat(e2e): add podchaos api and test cases ([radondb-mysql-kubernetes#697](https://github.com/radondb/radondb-mysql-kubernetes/pull/721))
- feat(backup):Support fast backup ([radondb-mysql-kubernetes#693](https://github.com/radondb/radondb-mysql-kubernetes/pull/721))
- support MySQL configuration template ([radondb-mysql-kubernetes#656](https://github.com/radondb/radondb-mysql-kubernetes/pull/656))
- Support MySQL subversion ([radondb-mysql-kubernetes#647](https://github.com/radondb/radondb-mysql-kubernetes/pull/647))
- add disk usage check in nfs backup ([radondb-mysql-kubernetes#679](https://github.com/radondb/radondb-mysql-kubernetes/pull/679))
- api,backup: add printcolumn for Success ([radondb-mysql-kubernetes#670](https://github.com/radondb/radondb-mysql-kubernetes/pull/670))
- update go version to 1.17 ([radondb-mysql-kubernetes#677](https://github.com/radondb/radondb-mysql-kubernetes/pull/677))
- chart: Support the use of Helm to install MySQL cluster ([radondb-mysql-kubernetes#519](https://github.com/radondb/radondb-mysql-kubernetes/pull/519))
#### ECK:
- Implement a Hot-Warm-Cold deployment architecture
- Deploy Kibana to manage clusters in a visualized manner
- Integrated Elasticsearch Exporter with Prometheus
#### Kafka:
- Support Kafka 3.1 and 3.2
- Install and manage Kafka and ZooKeeper nodes on the GUI
- Support automatic cluster failover and recovery
- Dynamically expand the cluster capacity and storage
- Integrate with Prometheus to support the Exporter-based resource status monitoring feature
- Support TLS to enhance the security of internal access
- Deploy and manage users and topics and display the ACL on the GUI
- Support cluster rebalancing on the GUI
#### MongoDB:
- Add the service monitoring feature of MongoDB clusters
- Improve database account management
- Support dynamic disk expansion
- Optimize the elegant start and stop logic
- Display more cluster states
#### OpenSearch:
- Support installation and management of OpenSearch, Dashboard, and Logstash
- Support OpenSearch 2.3.0
- Dynamically increase the compute specifications and storage capacity of clusters
- Dynamically adjust the number of cluster nodes
- Perform a rolling update upon configurations change
- Support the keystore feature
- Integrate with Prometheus to support the Exporter-based resource status monitoring feature
- Support TLS
#### PostgreSQL:
- Support PostgreSQL kernel versions 12.12, 13.8, 14.5, and 15.0
- Support PostGIS and Citus plugins
- Support scale-in/scale-out and scale-up/scale-down
- Support semi-sync streaming replication
- Display extensive monitoring metrics
#### Redis:
- Build based on Redis 6.x and 7.x
- Introduce Proxy for clusters
- Support Redis Cluster failover and auto-recovery
- Suport resource status monitoring based on the Prometheus Exporter
- Support Kubernetes requests and limits
- Support password and password-free settings for clusters
- Support hot updates of Redis's management configuration parameters
## App Store
### Features
- Support to manage helm releases created by the native helm command ([kse#317](https://github.com/kubesphere/kse/pull/317) by [@xyz-li](https://github.com/xyz-li), [kse-console#192](https://github.com/kubesphere/kse-console/pull/192) by [@harrisonliu5](https://github.com/harrisonliu5))
- Add new options in openpitrix. ([kse-installer#62](https://github.com/kubesphere/kse-installer/pull/62), [@xyz-li](https://github.com/xyz-li))
### Bug Fixes
- Fix a ks-controller-manager crash error caused by Helm controller NPE errors. ([kubesphere#4602](https://github.com/kubesphere/kubesphere/pull/4602), [@chaunceyjiang](https://github.com/chaunceyjiang))
- Fix an issue when updating traffic policy in traffic monitor page of an application. ([console#3836](https://github.com/kubesphere/console/pull/3836), [@mujinhuakai](https://github.com/mujinhuakai))
## Network
### Enhancements & Updates
- Integrate OpenELB with KubeSphere for exposing LoadBalancer services. ([console#2993](https://github.com/kubesphere/console/pull/2993), [@weili520](https://github.com/weili520))
### Bug Fixes
- Fix an issue where the gateway of a project is not deleted after the project is deleted. ([kubesphere#4626](https://github.com/kubesphere/kubesphere/pull/4626), [@RolandMa1986](https://github.com/RolandMa1986))
- Fix an issue during gateway log query, where the log query connection is not terminated after the query is complete. ([kubesphere#4927](https://github.com/kubesphere/kubesphere/pull/4927), [@qingwave](https://github.com/qingwave))
- Fix an issue where users fail to create routing rules in IPv6 and IPv4 dual-stack environments.([console#3604](https://github.com/kubesphere/console/pull/3604), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Update the OpenELB check URL. ([console#3550](https://github.com/kubesphere/console/pull/3550), [@harrisonliu5](https://github.com/harrisonliu5))
## Service Mesh
### Bug Fixes
- Resolve port conflicts of virtual services that use multiple protocols. ([kubesphere#4560](https://github.com/kubesphere/kubesphere/pull/4560), [@RolandMa1986](https://github.com/RolandMa1986))
## KubeEdge Integration
### Features
- Add support for logging in to common cluster nodes and edge nodes from the KubeSphere web console. ([kubesphere#4579](https://github.com/kubesphere/kubesphere/pull/4579), [@lynxcat](https://github.com/lynxcat), [console#2888](https://github.com/kubesphere/console/pull/2888), [@lynxcat](https://github.com/lynxcat))
### Enhancements & Upgrades
- Upgrade KubeEdge from v1.7.2 to v1.9.2.
- Remove EdgeWatcher as KubeEdge v1.9.2 provides similar functions.
### Bug Fixes
- Change the cluster module key from `kubeedge` to `edgeruntime`.([console#3548](https://github.com/kubesphere/console/pull/3548), [@harrisonliu5](https://github.com/harrisonliu5))
## License
### Features
- Add Cluster ID to the license control mechanism ([kse#291](https://github.com/kubesphere/kse/pull/291) by [@xyz-li](https://github.com/xyz-li), [kse-console#183](https://github.com/kubesphere/kse-console/pull/183) by [@harrisonliu5](https://github.com/harrisonliu5))
- Add license for Observability Center ([kse-console#258](https://github.com/kubesphere/kse-console/pull/258), [@harrisonliu5](https://github.com/harrisonliu5))
- Add license for Spring Cloud.
- Add metrics and alert rules for the KubeSphere licence, notifications will be sent if the KubeSphere license is about to expire in less than 30 days ([kse#324](https://github.com/kubesphere/kse/pull/324) by [@xyz-li](https://github.com/xyz-li), [kse-installer#65](https://github.com/kubesphere/kse-installer/pull/65) by [@junotx](https://github.com/junotx))
- Support showing the License ID in the license page.
## Security
### Features
- Add Ingress for ks-console to support HTTPS ([kse#327](https://github.com/kubesphere/kse/pull/327), [@iawia002](https://github.com/iawia002))
### Enhancements & Updates
- Enforce the password length to be at least 8 characters
- Add the logic to check if the username and password are same
- Disable password autofilling ([kse-console#190](https://github.com/kubesphere/kse-console/pull/190), [@harrisonliu5](https://github.com/harrisonliu5))
## Development & Testing
### Features
- Add the --controllers flag to ks-controller-manager, which allows users to select controllers to be enabled for resource usage reduction during debugging. ([kubesphere#4512](https://github.com/kubesphere/kubesphere/pull/4512), [@live77](https://github.com/live77))
- Prevent ks-apiserver and ks-controller-manager from restarting when the cluster configuration is changed. ([kubesphere#4659](https://github.com/kubesphere/kubesphere/pull/4659), [@x893675](https://github.com/x893675))
- Add an agent to report additional information about ks-apiserver and controller-manager in debugging mode. ([kubesphere#4928](https://github.com/kubesphere/kubesphere/pull/4928), [@xyz-li](https://github.com/xyz-li))
## User Experience
### Features
- Now events can be displayed for abnormal pods ([kse-console#196](https://github.com/kubesphere/kse-console/pull/196), [@yazhouio](https://github.com/yazhouio))
- Add in-memory cache in addition to the original Redis cache ([kse#359](https://github.com/kubesphere/kse/pull/359), [@zhou1203](https://github.com/zhou1203))
- Update product name and logo to KubeSphere Enterprise ([kse-console#208](https://github.com/kubesphere/kse-console/pull/208), [@harrisonliu5](https://github.com/harrisonliu5))
- Add the End User License Agreements.
- Add EULA in password confirm ([kse-console#181](https://github.com/kubesphere/kse-console/pull/181), [@harrisonliu5](https://github.com/harrisonliu5))
- Add support for more languages on the KubeSphere web console. ([console#2782](https://github.com/kubesphere/console/pull/2782), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Add the lifecycle management feature for containers. ([console#2940](https://github.com/kubesphere/console/pull/2940), [@harrisonliu5](https://github.com/harrisonliu5))
- Add support for creating container environment variables in batches from secrets and configmaps. ([console#3044](https://github.com/kubesphere/console/pull/3044), [@weili520](https://github.com/weili520))
- Add a message in the **Audit Log Search** dialog box, which prompts users to enable the audit logs feature. ([console#3062](https://github.com/kubesphere/console/pull/3062), [@harrisonliu5](https://github.com/harrisonliu5))
- Add data units in the **Create Storage Class** dialog box. ([console#3200](https://github.com/kubesphere/console/pull/3200), [@weili520](https://github.com/weili520))
- Add the cluster viewing permission to a user when the user adds a cluster. ([console#3296](https://github.com/kubesphere/console/pull/3296), [@harrisonliu5](https://github.com/harrisonliu5))
- Add a time range selector on the **Traffic Monitoring** tab page. ([console#2916]( https://github.com/kubesphere/console/pull/2916), [@weili520](https://github.com/weili520))
- Add a prompt to remind users to select a language or artifact type when users are building images. ([console#3534](https://github.com/kubesphere/console/pull/3534), [@harrisonliu5](https://github.com/harrisonliu5))
- Add support for changing the number of items displayed on each page of a table.([console#3486](https://github.com/kubesphere/console/pull/3486), [@weili520](https://github.com/weili520))
- Add support for batch stopping workloads. ([console#3497](https://github.com/kubesphere/console/pull/3497), [@harrisonliu5](https://github.com/harrisonliu5))
- Add the creator annotation to ensure information displayed on the pod detail page is consistent with other details pages. ([console#3820](https://github.com/kubesphere/console/pull/3820), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Add support for displaying the revision record when the workload type is `statefulsets` or `daemonsets`.([console#3819](https://github.com/kubesphere/console/pull/3819), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Add a support page. ([console#3832](https://github.com/kubesphere/console/pull/3832), [@yazhouio](https://github.com/yazhouio))
- Add support for duplicate name validation of containers. ([console#3559](https://github.com/kubesphere/console/pull/3559), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Add support for duplicate name validation of service names. ([console#3696](https://github.com/kubesphere/console/pull/3696), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
### Enhancements & Updates
- Support setting the default container registry ([kse-console#197](https://github.com/kubesphere/kse-console/pull/197), [@yazhouio](https://github.com/yazhouio))
- Support the shortcut dropdown of the relevent events of the pods.
- Support the quick jumping to the destination page and setting the rows quantity showed of the page.
- Support to hide external links in the console
- Remove the limit to 100 of the cpu-percent of HPA.
- Optimize the service details area on the **Service Topology** page. ([console#2945](https://github.com/kubesphere/console/pull/2945), [@tracer1023](https://github.com/tracer1023))
- Prevent passwords without uppercase letters set through the backend CLI. ([kubesphere#4481](https://github.com/kubesphere/kubesphere/pull/4481), [@live77](https://github.com/live77))
- Optimize the UI text of cluster, workspace, and project deletion. ([console#3004](https://github.com/kubesphere/console/pull/3004), [@weili520](https://github.com/weili520))
- Set the **Token** parameter on the webhook settings page as mandatory. ([console#2903](https://github.com/kubesphere/console/pull/2903), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Improve user experience on the web console of member clusters. ([kubesphere#4721](https://github.com/kubesphere/kubesphere/pull/4721), [@iawia002](https://github.com/iawia002), [console#3031](https://github.com/kubesphere/console/pull/3031), [@weili520](https://github.com/weili520))
- Optimize the **Service Type** and **External Access** columns of the service list. ([console#3058](https://github.com/kubesphere/console/pull/3058),[@weili520](https://github.com/weili520))
- Change the abbreviation of "ReadOnlyMany" from "ROM" to "ROX". ([console#2751](https://github.com/kubesphere/console/pull/2751), [@123liubao](https://github.com/123liubao))
- Improve the registry verification API to resolve registry verification failures. ([kubesphere#4678](https://github.com/kubesphere/kubesphere/pull/4678), [@wansir](https://github.com/wansir))
- Optimize image building of KubeSphere and the console.([console#3610](https://github.com/kubesphere/console/pull/3610), [@zt1046656665](https://github.com/zt1046656665))
### Bug Fixes
- Fix an issue where statefulset creation fails when a volume is mounted to an init container. ([console#2730](https://github.com/kubesphere/console/pull/2730), [@weili520](https://github.com/weili520))
- Fix an app installation failure, which occurs when users click buttons too fast. ([console#2735](https://github.com/kubesphere/console/pull/2735), [@weili520](https://github.com/weili520))
- Fix an incorrect message displayed during workload creation, which indicates that resource requests have exceeded limits. ([console#2809](https://github.com/kubesphere/console/pull/2809) , [@weili520](https://github.com/weili520))
- Fix an issue where no data is displayed on the **Traffic Management** and **Tracing** tab pages in a multi-cluster project. ([console#3195](https://github.com/kubesphere/console/pull/3195), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an issue where data in the service details area on the **Service Topology** page is not updated automatically. ([console#3117](https://github.com/kubesphere/console/pull/3117),[@weili520](https://github.com/weili520))
- Fix an issue where existing settings are not displayed when a stateful service is edited. ([console#2845](https://github.com/kubesphere/console/pull/2845), [@weili520](https://github.com/weili520))
- Fix an issue where container probes are still displayed after they are deleted. ([console#3213](https://github.com/kubesphere/console/pull/3213), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix incorrect container names in the service details area on the **Service Topology** page. ([console#3276](https://github.com/kubesphere/console/pull/3276), [@weili520](https://github.com/weili520))
- Fix the incorrect number of worker nodes on the **Cluster Nodes** page. ([console#3279](https://github.com/kubesphere/console/pull/3279), [@weili520](https://github.com/weili520))
- Fix a workspace API error caused by an incorrect cluster role. ([console#3297](https://github.com/kubesphere/console/pull/3297), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an incorrect error message displayed when kubeconfig is updated for a second time. ([console#3392](https://github.com/kubesphere/console/pull/3392), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix goroutine leaks that occur when a container terminal is opened. ([kubesphere#4918](https://github.com/kubesphere/kubesphere/pull/4918), [@anhoder](https://github.com/anhoder))
- Fix unexpected ks-apiserver panic caused by an index out of range error of metrics API calling. ([kubesphere#4691](https://github.com/kubesphere/kubesphere/pull/4691), [@larryliuqing](https://github.com/larryliuqing))
- Fix an ks-apiserver crash caused by resource discovery failure. ([kubesphere#4835](https://github.com/kubesphere/kubesphere/pull/4835), [@wansir](https://github.com/wansir))
- Fix an incorrect private key type in kubeconfig information. ([kubesphere#4936](https://github.com/kubesphere/kubesphere/pull/4936), [@xyz-li](https://github.com/xyz-li))
- Fix an issue where the key is not display in LoadBalancer. ([console#3503](https://github.com/kubesphere/console/pull/3503), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an issue where no prompt is displayed when users do not fill in key and value in the LoadBalancer access mode.([console#3499](https://github.com/kubesphere/console/pull/3499), [@weili520](https://github.com/weili520))
- Fix an issue where the update time of a service is incorrect on the detail page.([console#3803](https://github.com/kubesphere/console/pull/3803), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix inaccurate prompt when users are adding an init container.([console#3561](https://github.com/kubesphere/console/pull/3561), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix an issue where an error occurs while users enter Chinese characters in secret. ([console#3774](https://github.com/kubesphere/console/pull/3774), [@moweiwei](https://github.com/moweiwei))
- Fix an issue where the total number of pages is incorrectly displayed.([kubesphere#5201](https://github.com/kubesphere/kubesphere/pull/5201), [@yongxingMa](https://github.com/yongxingMa))
- Fix an issue where the update time of an application is incorrect. ([console#3541](https://github.com/kubesphere/console/pull/3541), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix a 404 issue in Documentation. ([console#3484](https://github.com/kubesphere/console/pull/3433) [@PrajwalBorkar](https://github.com/PrajwalBorkar))
- Fix an issue where the status of a cluster remains true when the cluster fails to join Federation. ([kubesphere#5137](https://github.com/kubesphere/kubesphere/pull/5137), [@x893675](https://github.com/x893675))
- Fix an issue where traffic allocation fails in the canary release mode. ([console#3542](https://github.com/kubesphere/console/pull/3542), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix an issue where configurations do not take effect when users set the pod request to 0.([console#3827](https://github.com/kubesphere/console/pull/3827), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an issue where canary release goes wrong when multiple operating systems are selected.([console#3479](https://github.com/kubesphere/console/pull/3479), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix an issue where configmap configurations cannot be saved while users are creating a workload.([console#3416](https://github.com/kubesphere/console/pull/3416),[@weili520](https://github.com/weili520))
## API Changes
- Alerting API has been upgraded to v2beta1, and the v2alpha1 alerting API is deprecated ([kse#331](https://github.com/kubesphere/kse/pull/331), [@junotx](https://github.com/junotx))
- Expose kube-apiserver of the host cluster as a LoadBalancer service for member clusters to access. ([kubesphere#4528](https://github.com/kubesphere/kubesphere/pull/4528), [@lxm](https://github.com/lxm))
- Provide RESTful APIs for ClusterTemplate. ([ks-devops#468](https://github.com/kubesphere/ks-devops/pull/468), [@JohnNiang](https://github.com/JohnNiang))
- Provide template-related APIs. ([ks-devops#460](https://github.com/kubesphere/ks-devops/pull/460), [@JohnNiang](https://github.com/JohnNiang))
- Change the KubeEdge proxy service to `http://edgeservice.kubeedge.svc/api/`. ([kubesphere#4478](https://github.com/kubesphere/kubesphere/pull/4478), [@zhu733756](https://github.com/zhu733756))
- Change the patch type of `PatchWorkspaceTemplate` from `MergePatchType` to `JSONPatchType`.([kubesphere#5217](https://github.com/kubesphere/kubesphere/pull/5217), [@zhou1203](https://github.com/zhou1203))