---
# System prepended metadata

title: Untitled

---

- [Changes by Kind](#changes-by-kind)
  - [API Change](#api-change)
  - [Feature](#feature)
  - [Design](#design)
  - [Failing Test](#failing-test)
  - [Bug or Regression](#bug-or-regression)
  - [Uncategorized](#uncategorized)
- [Dependencies](#dependencies)
  - [Added](#added)
  - [Changed](#changed)
  - [Removed](#removed)

## Changes by Kind

### API Change

- Deprecate Router API Version v1alpha2. ([#4193](https://github.com/kubesphere/kubesphere/pull/4193), [@RolandMa1986](https://github.com/RolandMa1986))
- Deprecate registry API version v1alpha2, add registry API version v1alpha3. ([#4172](https://github.com/kubesphere/kubesphere/pull/4172), [@zryfish](https://github.com/zryfish))

### Feature

- Built-in OAuth 2.0 authorization server with OpenID Connect protocol. ([#3525](https://github.com/kubesphere/kubesphere/pull/3525), [@wansir](https://github.com/wansir))
- Feature: Dynamically load the community developed helm charts into the app store ([#4250](https://github.com/kubesphere/kubesphere/pull/4250), [@xyz-li](https://github.com/xyz-li))
- Support external es that enables HTTPS. ([#4176](https://github.com/kubesphere/kubesphere/pull/4176), [@wanjunlei](https://github.com/wanjunlei))
- Support setting GPU kinds when scheduling GPU workloads. ([#4225](https://github.com/kubesphere/kubesphere/pull/4225), [@zhu733756](https://github.com/zhu733756))
- Support skip information confirmation when using external IDP ([#4238](https://github.com/kubesphere/kubesphere/pull/4238), [@wansir](https://github.com/wansir))
- The cluster controller now supports setting the host cluster name, default set to host ([#4211](https://github.com/kubesphere/kubesphere/pull/4211), [@yuswift](https://github.com/yuswift))
- The users now can set the cluster name under a single cluster scenario ([#4220](https://github.com/kubesphere/kubesphere/pull/4220), [@yuswift](https://github.com/yuswift))
- Users can now verify if the notification settings are valid ([#4216](https://github.com/kubesphere/kubesphere/pull/4216), [@wenchajun](https://github.com/wenchajun))

### Design

- Users can now import Grafana dashboards either by specifying dashboard URL or by uploading the Grafana Dashboard json file. KubeSphere will convert Grafana dashboard into KubeSphere ClusterDashboard behind the scene ([#4194](https://github.com/kubesphere/kubesphere/pull/4194), [@zhu733756](https://github.com/zhu733756))

### Failing Test

- Bump kubebuilder envtest to v3, the users don't need to install the kubebuilder with `hack/install_kubebuilder.sh` anymore. ([#4186](https://github.com/kubesphere/kubesphere/pull/4186), [@yuswift](https://github.com/yuswift))

### Bug or Regression

- Fix federatednamespace cannot be deleted after workspace has been deleted. ([#4365](https://github.com/kubesphere/kubesphere/pull/4365), [@wansir](https://github.com/wansir))
- Fix incorrect source IP in login history. ([#4331](https://github.com/kubesphere/kubesphere/pull/4331), [@wansir](https://github.com/wansir))
- Remove workload auto-restart function when pvc expanded. ([#4121](https://github.com/kubesphere/kubesphere/pull/4121), [@wenhuwang](https://github.com/wenhuwang))


### Uncategorized

- Fix kubesphere_app_template_count always be 0 when calling GetKubeSphereStats ([#4130](https://github.com/kubesphere/kubesphere/pull/4130), [@ks-ci-bot](https://github.com/ks-ci-bot))
- Move the codebase of DevOps into a separate project ([#4129](https://github.com/kubesphere/kubesphere/pull/4129), [@LinuxSuRen](https://github.com/LinuxSuRen))

## Dependencies

### Added
- bitbucket.org/liamstask/goose: 8488cc4
- github.com/GeertJohan/go.incremental: [v1.0.0](https://github.com/GeertJohan/go.incremental/tree/v1.0.0)
- github.com/GeertJohan/go.rice: [v1.0.0](https://github.com/GeertJohan/go.rice/tree/v1.0.0)
- github.com/akavel/rsrc: [v0.8.0](https://github.com/akavel/rsrc/tree/v0.8.0)
- github.com/blang/semver/v4: [v4.0.0](https://github.com/blang/semver/v4/tree/v4.0.0)
- github.com/certifi/gocertifi: [deb3ae2](https://github.com/certifi/gocertifi/tree/deb3ae2)
- github.com/cloudflare/backoff: [647f3cd](https://github.com/cloudflare/backoff/tree/647f3cd)
- github.com/cloudflare/cfssl: [v1.5.0](https://github.com/cloudflare/cfssl/tree/v1.5.0)
- github.com/cloudflare/go-metrics: [6a9aea3](https://github.com/cloudflare/go-metrics/tree/6a9aea3)
- github.com/cloudflare/redoctober: [746a508](https://github.com/cloudflare/redoctober/tree/746a508)
- github.com/containerd/stargz-snapshotter/estargz: [v0.7.0](https://github.com/containerd/stargz-snapshotter/estargz/tree/v0.7.0)
- github.com/coreos/go-etcd: [v2.0.0+incompatible](https://github.com/coreos/go-etcd/tree/v2.0.0)
- github.com/daaku/go.zipexe: [v1.0.0](https://github.com/daaku/go.zipexe/tree/v1.0.0)
- github.com/fvbommel/sortorder: [v1.0.1](https://github.com/fvbommel/sortorder/tree/v1.0.1)
- github.com/getsentry/raven-go: [563b81f](https://github.com/getsentry/raven-go/tree/563b81f)
- github.com/go-bindata/go-bindata/v3: [v3.1.3](https://github.com/go-bindata/go-bindata/v3/tree/v3.1.3)
- github.com/google/certificate-transparency-go: [v1.0.21](https://github.com/google/certificate-transparency-go/tree/v1.0.21)
- github.com/google/go-containerregistry: [v0.6.0](https://github.com/google/go-containerregistry/tree/v0.6.0)
- github.com/gosimple/slug: [v1.1.1](https://github.com/gosimple/slug/tree/v1.1.1)
- github.com/grafana-tools/sdk: [43693eb](https://github.com/grafana-tools/sdk/tree/43693eb)
- github.com/iancoleman/strcase: [v0.1.2](https://github.com/iancoleman/strcase/tree/v0.1.2)
- github.com/jmhodges/clock: [880ee4c](https://github.com/jmhodges/clock/tree/880ee4c)
- github.com/joelanford/go-apidiff: [v0.1.0](https://github.com/joelanford/go-apidiff/tree/v0.1.0)
- github.com/kisielk/sqlstruct: [648daed](https://github.com/kisielk/sqlstruct/tree/648daed)
- github.com/kisom/goutils: [v1.1.0](https://github.com/kisom/goutils/tree/v1.1.0)
- github.com/kubernetes-csi/external-snapshotter/client/v4: [v4.2.0](https://github.com/kubernetes-csi/external-snapshotter/client/v4/tree/v4.2.0)
- github.com/kylelemons/go-gypsy: [08cad36](https://github.com/kylelemons/go-gypsy/tree/08cad36)
- github.com/lann/builder: [47ae307](https://github.com/lann/builder/tree/47ae307)
- github.com/lann/ps: [62de8c4](https://github.com/lann/ps/tree/62de8c4)
- github.com/mikefarah/yaml/v2: [v2.4.0](https://github.com/mikefarah/yaml/v2/tree/v2.4.0)
- github.com/mikefarah/yq/v2: [v2.4.1](https://github.com/mikefarah/yq/v2/tree/v2.4.1)
- github.com/moby/spdystream: [v0.2.0](https://github.com/moby/spdystream/tree/v0.2.0)
- github.com/moby/term: [df9cb8a](https://github.com/moby/term/tree/df9cb8a)
- github.com/mreiferson/go-httpclient: [31f0106](https://github.com/mreiferson/go-httpclient/tree/31f0106)
- github.com/niemeyer/pretty: [a10e7ca](https://github.com/niemeyer/pretty/tree/a10e7ca)
- github.com/nkovacs/streamquote: [49af9bd](https://github.com/nkovacs/streamquote/tree/49af9bd)
- github.com/operator-framework/api: [v0.4.0](https://github.com/operator-framework/api/tree/v0.4.0)
- github.com/operator-framework/helm-operator-plugins: [240cc44](https://github.com/operator-framework/helm-operator-plugins/tree/240cc44)
- github.com/operator-framework/operator-lib: [v0.3.0](https://github.com/operator-framework/operator-lib/tree/v0.3.0)
- github.com/rainycape/unidecode: [cb7f23e](https://github.com/rainycape/unidecode/tree/cb7f23e)
- github.com/russross/blackfriday/v2: [v2.1.0](https://github.com/russross/blackfriday/v2/tree/v2.1.0)
- github.com/ugorji/go/codec: [d75b2dc](https://github.com/ugorji/go/codec/tree/d75b2dc)
- github.com/valyala/bytebufferpool: [v1.0.0](https://github.com/valyala/bytebufferpool/tree/v1.0.0)
- github.com/valyala/fasttemplate: [v1.0.1](https://github.com/valyala/fasttemplate/tree/v1.0.1)
- github.com/weppos/publicsuffix-go: [v0.13.0](https://github.com/weppos/publicsuffix-go/tree/v0.13.0)
- github.com/zmap/rc2: [24b9757](https://github.com/zmap/rc2/tree/24b9757)
- github.com/zmap/zcertificate: [0e3d58b](https://github.com/zmap/zcertificate/tree/0e3d58b)
- github.com/zmap/zcrypto: [43ff0ea](https://github.com/zmap/zcrypto/tree/43ff0ea)
- github.com/zmap/zlint/v2: [v2.2.1](https://github.com/zmap/zlint/v2/tree/v2.2.1)
- gopkg.in/imdario/mergo.v0: v0.3.7
- gopkg.in/op/go-logging.v1: b2cb9fa
- gotest.tools/v3: v3.0.3
- k8s.io/component-helpers: v0.21.2
- sigs.k8s.io/kubebuilder/v3: fde793f
- sigs.k8s.io/kustomize/cmd/config: v0.9.10
- sigs.k8s.io/kustomize/kustomize/v4: v4.1.2
- sigs.k8s.io/structured-merge-diff/v4: v4.1.0
- sigs.k8s.io/structured-merge-diff: b1b620d

### Changed
- github.com/deislabs/oras: [v0.7.0 → v0.8.1](https://github.com/deislabs/oras/compare/v0.7.0...v0.8.1)
- github.com/docker/spdystream: [6480d4a → 449fdfc](https://github.com/docker/spdystream/compare/6480d4a...449fdfc)
- github.com/go-logr/logr: [v0.1.0 → v0.4.0](https://github.com/go-logr/logr/compare/v0.1.0...v0.4.0)
- github.com/go-logr/zapr: [v0.1.1 → v0.4.0](https://github.com/go-logr/zapr/compare/v0.1.1...v0.4.0)
- github.com/googleapis/gnostic: [v0.4.0 → v0.4.1](https://github.com/googleapis/gnostic/compare/v0.4.0...v0.4.1)
- github.com/prometheus/client_golang: [v1.7.1 → v1.11.0](https://github.com/prometheus/client_golang/compare/v1.7.1...v1.11.0)
- go.etcd.io/etcd: 3cf2f69 → dd1b699
- golang.org/x/mod: v0.2.0 → v0.4.0
- golang.org/x/net: 3b0461e → abc4532
- google.golang.org/grpc: v1.26.0 → v1.27.1
- helm.sh/helm/v3: v3.3.0 → v3.6.3
- k8s.io/api: v0.18.6 → v0.21.2
- k8s.io/apiextensions-apiserver: v0.18.6 → v0.21.2
- k8s.io/apimachinery: v0.18.6 → v0.21.2
- k8s.io/apiserver: v0.18.6 → v0.21.2
- k8s.io/cli-runtime: v0.18.6 → v0.21.2
- k8s.io/client-go: v0.18.6 → v0.21.2
- k8s.io/code-generator: v0.18.6 → v0.21.2
- k8s.io/component-base: v0.18.6 → v0.21.2
- k8s.io/klog/v2: v2.0.0 → v2.8.0
- k8s.io/kube-openapi: 61e04a5 → 591a79e
- k8s.io/kubectl: v0.18.6 → v0.21.2
- k8s.io/metrics: v0.18.6 → v0.21.2
- kubesphere.io/monitoring-dashboard: v0.1.2 → v0.2.2
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.7 → v0.0.19
- sigs.k8s.io/controller-runtime: v0.6.4 → v0.9.3
- sigs.k8s.io/controller-tools: v0.4.1 → v0.6.2
- sigs.k8s.io/kubefed: v0.6.1 → v0.8.1
- sigs.k8s.io/kustomize/api: v0.8.6 → v0.8.8

### Removed
- github.com/bitly/go-simplejson: [v0.5.0](https://github.com/bitly/go-simplejson/tree/v0.5.0)
- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f)
- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7)
- github.com/kubernetes-csi/external-snapshotter/client/v3: [v3.0.0](https://github.com/kubernetes-csi/external-snapshotter/client/v3/tree/v3.0.0)
- github.com/xlab/handysort: [fb3537e](https://github.com/xlab/handysort/tree/fb3537e)
- sigs.k8s.io/kustomize: v2.0.3+incompatible
- vbom.ml/util: db5cfe1

-----

- [Changes by Kind](#changes-by-kind)
  - [API Change](#api-change)
  - [Feature](#feature)
  - [Bug or Regression](#bug-or-regression)
  - [Uncategorized](#uncategorized)

## Changes by Kind

### API Change

- Change the image config api ([#2369](https://github.com/kubesphere/console/pull/2369), [@harrisonliu5](https://github.com/harrisonliu5))
- Change the pipeline api from v2 to v3 ([#2323](https://github.com/kubesphere/console/pull/2323), [@harrisonliu5](https://github.com/harrisonliu5))
- Change the secret verify api ([#2368](https://github.com/kubesphere/console/pull/2368), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix: Modify the apiextensions api ([#2477](https://github.com/kubesphere/console/pull/2477), [@harrisonliu5](https://github.com/harrisonliu5))
- Refactor with PipelineRun listing and creation API ([#2252](https://github.com/kubesphere/console/pull/2252), [@JohnNiang](https://github.com/JohnNiang))
- Update the ingress api ([#2205](https://github.com/kubesphere/console/pull/2205), [@harrisonliu5](https://github.com/harrisonliu5))

### Feature

- Add Grafana dashboard in custom monitoring ([#2214](https://github.com/kubesphere/console/pull/2214), [@harrisonliu5](https://github.com/harrisonliu5))
- Add create config or secret in env params ([#2227](https://github.com/kubesphere/console/pull/2227), [@harrisonliu5](https://github.com/harrisonliu5))
- Add feature about detecting UI text entries for duplication ([#2153](https://github.com/kubesphere/console/pull/2153), [@fuchunlan](https://github.com/fuchunlan))
- Change the judgment field in storage management ([#2199](https://github.com/kubesphere/console/pull/2199), [@weili520](https://github.com/weili520))
- DNS optimization for ks-console
  - Use ks-apiserver Service Name directly instead of ks-apiserver.kubesphere-system.svc as API's URL.
  - Add a DNS cache plugin to caching the DNS results (dnscache) ([#2435](https://github.com/kubesphere/console/pull/2435), [@live77](https://github.com/live77))
- Feat: Add app repo sync period ([#2311](https://github.com/kubesphere/console/pull/2311), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Feat: Add pod annotation in pod container of creat workload. (#2115, @harrisonliu5 ) ([#2129](https://github.com/kubesphere/console/pull/2129), [@harrisonliu5](https://github.com/harrisonliu5))
- Feat: Add view logs in the pipeline task status page. (#https://github.com/kubesphere/ks-devops/issues/147
  , @harrisonliu5 ) ([#2176](https://github.com/kubesphere/console/pull/2176), [@harrisonliu5](https://github.com/harrisonliu5))
- Feat: Disclaimer at app store(#2162 ) ([#2173](https://github.com/kubesphere/console/pull/2173), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Feat: Disclaimer at app store. ([#2289](https://github.com/kubesphere/console/pull/2289), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Feat: Hide the branch column if is not a multi-branch pipeline ([#2379](https://github.com/kubesphere/console/pull/2379), [@live77](https://github.com/live77))
- Feat: Notification enhancement ([#2261](https://github.com/kubesphere/console/pull/2261), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Feat: The fedProject router supports the sort. edit rules and edit annotation. (#https://github.com/kubesphere/kubesphere/issues/2660, @harrisonliu5 ) ([#2165](https://github.com/kubesphere/console/pull/2165), [@harrisonliu5](https://github.com/harrisonliu5))
- Host pattern support start with asterisk ([#2432](https://github.com/kubesphere/console/pull/2432), [@wengzhisong-hz](https://github.com/wengzhisong-hz))
- Init the single cluster name with config ([#2283](https://github.com/kubesphere/console/pull/2283), [@harrisonliu5](https://github.com/harrisonliu5))
- Refactor the gateway in cluster and project ([#2262](https://github.com/kubesphere/console/pull/2262), [@harrisonliu5](https://github.com/harrisonliu5))
- Support Harbor mirror searching. ([#2132](https://github.com/kubesphere/console/pull/2132), [@wengzhisong-hz](https://github.com/wengzhisong-hz))
- Support choose volume binding mode when create storageclass ([#2220](https://github.com/kubesphere/console/pull/2220), [@weili520](https://github.com/weili520))
- Support manage pv. user can get pv information and delete it. ([#2226](https://github.com/kubesphere/console/pull/2226), [@weili520](https://github.com/weili520))
- Support multi-cluster-scheduling when creating federatedDeployment. ([#2191](https://github.com/kubesphere/console/pull/2191), [@weili520](https://github.com/weili520))
- Support multiple snapshotclass. user can choose the snapshot type when create snapshot. ([#2218](https://github.com/kubesphere/console/pull/2218), [@weili520](https://github.com/weili520))
- Support service name auto-complete when creating Route rule. ([#2196](https://github.com/kubesphere/console/pull/2196), [@wengzhisong-hz](https://github.com/wengzhisong-hz))
- Support set gpu limit of container default resource ([#2253](https://github.com/kubesphere/console/pull/2253), [@weili520](https://github.com/weili520))
- Support setting TAG env in Makefile ([#2117](https://github.com/kubesphere/console/pull/2117), [@yuswift](https://github.com/yuswift))
- Support update cluster schedule weight in federatedDeployment detail page ([#2192](https://github.com/kubesphere/console/pull/2192), [@weili520](https://github.com/weili520))
- Update UI to support creating init container and mounting the volume. ([#2166](https://github.com/kubesphere/console/pull/2166), [@Sigboom](https://github.com/Sigboom))

### Bug or Regression

- Bugfix: The cancel button is missing in the Gateway Settings page ([#2245](https://github.com/kubesphere/console/pull/2245), [@weili520](https://github.com/weili520))
- Change pvc access modes to list ([#2348](https://github.com/kubesphere/console/pull/2348), [@live77](https://github.com/live77))
- Control cannot select a multi-cluster project as input ([#2125](https://github.com/kubesphere/console/pull/2125), [@fuchunlan](https://github.com/fuchunlan))
- Feat: Add leader tag to etcd monitoring ([#2445](https://github.com/kubesphere/console/pull/2445), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Fix Custom pod replicas deployment. (#1604, @qinyueshang) ([#
](https://github.com/kubesphere/console/pull/2170), [@qinyueshang](https://github.com/qinyueshang))
- Fix the bug that the value of quota changes to 0 when it is infinity ([#2118](https://github.com/kubesphere/console/pull/2118), [@fuchunlan](https://github.com/fuchunlan))
- Fix the changeset of a Pipeline run incomplete ([#2144](https://github.com/kubesphere/console/pull/2144), [@ruibaby](https://github.com/ruibaby))
- Fix the css of hammer icon ([#2206](https://github.com/kubesphere/console/pull/2206), [@fuchunlan](https://github.com/fuchunlan))
- Fix the default time range for displaying errors ([#2340](https://github.com/kubesphere/console/pull/2340), [@fuchunlan](https://github.com/fuchunlan))
- Fix the referer URL that it is have '&' ([#2194](https://github.com/kubesphere/console/pull/2194), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix: Cannot change 1 Hours Time range typo ([#2276](https://github.com/kubesphere/console/pull/2276), [@live77](https://github.com/live77))
- Fix: Fix access type error on the edit service page. (#2168 ) ([#2178](https://github.com/kubesphere/console/pull/2178), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Fix: Fix edit workspace and cluster baseinfo error ([#2188](https://github.com/kubesphere/console/pull/2188), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Fix: Modify the key of traffic data ([#2422](https://github.com/kubesphere/console/pull/2422), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix: enter a number with two places of decimal directly and limit input maximum. (#2102, @weili520  ) ([#2127](https://github.com/kubesphere/console/pull/2127), [@weili520](https://github.com/weili520))
- Hide unbind cluster panel in the host cluster ([#2211](https://github.com/kubesphere/console/pull/2211), [@fuchunlan](https://github.com/fuchunlan))
- Let 'About' window can be closed automatically ([#2114](https://github.com/kubesphere/console/pull/2114), [@fuchunlan](https://github.com/fuchunlan))
- Request to refine APIs related DevOps ([#2471](https://github.com/kubesphere/console/pull/2471), [@harrisonliu5](https://github.com/harrisonliu5))
- Show cursor on project's Selector ([#2128](https://github.com/kubesphere/console/pull/2128), [@fuchunlan](https://github.com/fuchunlan))

### Uncategorized

- Fix the pod render in workload of alerting ([#2215](https://github.com/kubesphere/console/pull/2215), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the status of the branches in the pipeline ([#2200](https://github.com/kubesphere/console/pull/2200), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix: The fedProject service supports the sort and edit service. (https://github.com/kubesphere/kubesphere/issues/2658, @harrisonliu5 ) ([#2167](https://github.com/kubesphere/console/pull/2167), [@harrisonliu5](https://github.com/harrisonliu5))
- Refactor: Refactor the fedproject gateway ([#2275](https://github.com/kubesphere/console/pull/2275), [@harrisonliu5](https://github.com/harrisonliu5))