- [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))