What's Changed
- docs: add CHANGELOG-3.3.md by @wansir in #4995
- docs: Update v3.3.0 changelog by @patrickluoyu in #4996
- Replace the Helm command by @nioshield in #4852
- format error log by @xyz-li in #4953
- Add golangci-lint workflow by @xyz-li in #4999
- Update readme for KubeSphere v3.3.0 by @Bettygogo2021 in #5019
- cleanup: remove useless file by @wansir in #5020
- close remote terminal.(#5023) by @lixd in #5024
- add some unit tests for pkg/api by @qiuming520 in #4994
- update notification manager to v2.0 by @wanjunlei in #5030
- Remove extra space in Makefile by @iawia002 in #5035
- golang-lint skips dir pkg/client by @xyz-li in #5038
- [KS-OIDC] Remove special characters form sub OIDC standard claim in #5018
- Delete Helm and Kustomize binaries in Dockerfile by @nioshield in #5041
- intergrate opensearch v2 by @wenchajun in #5044
- add opensearch test by @wenchajun in #5050
- add rulegroup definitions for different scopes by @junotx in #5064
- Upgrade go version to 1.18 by @wansir in #5045
- add admission webhook for rulegroups by @junotx in #5071
- change default comment style of license header by @xyz-li in #5069
- Adjust container terminal priority: bash, sh by @tal66 in #5075
- golint with new commit by @xyz-li in #5074
- skip generated code when fmt code by @xyz-li in #5078
- support clean up the notification configure when delete cluster by @wanjunlei in #5077
- test: add anonymous unit test by @zaunist in #5072
- ci: update go version to 1.18 by @zaunist in #5084
- reconcile rulegroups to prometheusrules by @junotx in #5081
- Add annotation to Makefile for deprecated deepcopy and clientset by @zhou1203 in #5082
- add apis for switch the notification language by @wanjunlei in #5088
- Fix ks-core helm chart by @wansir in #5101
- avoid re-allocating ServerRunOptions by @ruijzhan in #5108
- add alerting v2beta1 apis by @junotx in #5115
- Fix the tiny typo in ks-openapi-spec by @sxmatch in #5114
- Fix ingress P95 delay time promql statement by @iawia002 in #5119
- intergrate opensearch v1 by @wenchajun in #5135
- enhance globalrulegroups by @junotx in #5134
- fix cluster ready condition always true by @x893675 in #5130
- fill field status of helmrepo in response by @x893675 in #5152
- Remove scheme duplicate registration code by @iawia002 in #5147
- Support for filtering workspace roles using labelSelector by @zhou1203 in #5161
- chore: add feature-pluggable branch to kubespheredev image build ci jobs by @wansir in #5165
- Fix: index out of range when merging two repo indexes by @xyz-li in #5146
- alerting v2beta1 tunes by @junotx in #5200
- fix bug helm repo paging query by @yongxingMa in #5182
- support recording disable and enable users in auditing by @wanjunlei in #5154
- Add authorization control for patching workspacetemplates by @zhou1203 in #5191
- Fix: when placement is empty return error by @zhou1203 in #5213
- fix rule status set by @junotx in #5219
- add dynamic options for cache by @zhou1203 in #4894
- invalid config file should not be ignored by @wansir in #5228
- fix gateway upgrade validate error. by @hongzhouzi in #5232
- Add the helm executor common package by @iawia002 in #5240
- update ks-core helm chart by @wansir in #5247
- Bump alpine to 3.16.2 by @wansir in #5249
- Fix cluster gateway logs and resource status display exception by @hongzhouzi in #5248
- Implement the helm executor package by @iawia002 in #5245
- utils: remove the controller-runtime dependency by @iawia002 in #5256
- Fix: Can not resolve the resource scope correctly by @zhou1203 in #5263
- Dependency: update storageClass-accessor by @f10atin9 in #5271
- fix #5267 by renaming yaml struct tag by @chavacava in #5268
- support scoped nodes and workloads for global rules by @junotx in #5279
- support route notifications to specified users by @wanjunlei in #5206
- refactor: move from io/ioutil to io and os packages by @Juneezee in #5266
- fix empty rules in rulegroup of prometheusrules by @junotx in #5298
- Check the cluster ID (kube-system UID) when updating the cluster by @yzxiu in #5299
- Add switch for notification by @Gentleelephant in #5283
- Use controller-gen to generate deepcopy code replacing deepcopy-gen. by @hongzhouzi in #5297
- optimize ks-core chart by @24sama in #5305
- Check cluster permission for create/update workspacetemplate by @zhou1203 in #5302
- fix global alerts filter by @junotx in #5311
- support fieldselector filter query secrets by @nuclearwu in #5300
- Fix: globalrole has cluster management right can not manage cluster by @zhou1203 in #5331
- update readme for cloud by @Bettygogo2021 in #5335
- 3.3.1 CHANGELOG by @Bettygogo2021 in #5337
- Upgrade dependent version: github.com/open-policy-agent/opa by @hongzhouzi in #5315
- Upgrade dependent version: github.com/containerd/containerd by @hongzhouzi in #5324
- fix rulegroup state filter by @junotx in #5340
- update k8s versions by @Bettygogo2021 in #5345
- limit rule count per group by @junotx in #5350
- fix rulegroup typemeta miss by @junotx in #5349
- Calculating the Number of Logs in opensearch by @wenchajun in #5352
- add label_matcher param to filter alerts by @junotx in #5353
- update k8s versions by @Bettygogo2021 in #5351
- Fix:Goroutine leaks when getting audit event sender times out by @hzhhong in #5342
- Upgrade k8s package verison by @hongzhouzi in #5358
- Fix: remove unnecessary case in field selector by @nuclearwu in #5367
- Upgrade dependent version: github.com/opencontainers/runc by @hongzhouzi in #5316
- fix rule status by @junotx in #5381
- Remove the VolumeSnapshot controller that creates a snapshot class automatically by @dkeven in #5380
- Add api /version and deprecated api /kapi/version by @zhou1203 in #5390
- Upgrade dependent version: go.mongodb.org/mongo-driver by @hongzhouzi in #5320
- Remove the broken test case by @wansir in #5396
- controller/cluster: ensure cluster is Ready when cleanup notifications by @iawia002 in #5392
- Fix the registered controller name by @wansir in #5407
- Fix failed to cache resources if group version not found by @wansir in #5408
- Upgrade dependent version: github.com/dgrijalva/jwt-go by @hongzhouzi in #5321
- Bump publishing bot go version to 1.18.9 by @wansir in #5413
- Upgrade dependent version: github.com/deislabs/oras by @hongzhouzi in #5322
- Upgrade dependent version: github.com/containernetworking/cni by @hongzhouzi in #5323
- Upgrade dependent version: helm.sh/helm/v3 v3.9.0 -> v3.10.3 by @hongzhouzi in #5420
- Fix id generate error in IPv6-only environment. by @isyes in #5419
- Fix missing maintainers in helm apps by @qingwave in #5401
- Upgrade dependent version: github.com/containerd/containerd by @hongzhouzi in #5426
- fix: Resolved some data out of sync after live-reload. by @hongzhouzi in #5422
- fix Home field fault in appstore application by @liangzai006 in #5425
- fix: ks-apiserver panic error: ServiceAccount's Secret index out of r… by @smartcat999 in #5428
- Bump sigs.k8s.io/controller-tools from 0.6.2 to 0.11.1 by @wansir in #5432
- Update the url of slack by @yangchuansheng in #5443
- feat: Gateway supports the configuration of forwarding tcp/udp traffic. by @hongzhouzi in #5445
- Upgrade go version to 1.19 by @hongzhouzi in #5446
- fix: concurrent map read and map write caused by reloading in ks-apiserver by @hongzhouzi in #5457
- update package dependencies by @fengshunli in #5463
- adjust Pod status filter by @frezes in #5483
- Add RoleTemplate CRD by @zhou1203 in #5080
- fix the issue that the upload app template did not display icons by @liangzai006 in #5467
- feat: upgrade ingress nginx version. by @hongzhouzi in #5490
- feat: update health check API by @smartcat999 in #5496
- chore: Generating CRDs supports multiple versions by @wansir in #5497
- Bump sigs.k8s.io/controller-runtime to v0.14.4 by @wansir in #5507
- ResourceGetter v1beta1 by @zhou1203 in #5416
- 3.3.2 Changelog by @Bettygogo2021 in #5512
- chore: Bump golangci-lint to v1.51.1 by @wansir in #5511
- Update the password minimum length to 8 by @zhou1203 in #5516
- Update dependencies by @wansir in #5518
- update prometheus dependencies by @junotx in #5520
- Fix cannot get registered resource by @zhou1203 in #5515
- Bump helm.sh/helm/v3 from 3.10.3 to 3.11.1 by @wansir in #5528
- chore(docs): Update to the latest v3.3.2 by @imjoey in #5529
- Use golang-jwt/jwt instead of form3tech-oss/jwt-go by @wansir in #5532
- Update version root path by @zhou1203 in #5542
- fix: can not re-upgrade helm application in a failed state by @sekfung in #5543
- Fix: Get nothing when the filter is empty by @zhou1203 in #5555
- Revert PR #5018 by @zhou1203 in #5548
- Add api for identity provider login by @zhou1203 in #5534
- gomod: change projectcalico/calico to kubesphere/calico by @renyunkang in #5557
- Fix: cannot extract identity provider name by @zhou1203 in #5558
- fix rulegroups to prometheusrules by @junotx in #5561
- Use batch/v1 instead of batch/v1beta1 by @wansir in #5562
- Add iam v1beta1 APIs by @zhou1203 in #5502
- call validate when config update coz apiserver restart by @Fritzmomoto in #5564
- Fix dynamic resource API by @wansir in #5573
- Update dependencies by @wansir in #5574
- fix:Return cluster gateway duplicates by @hongzhouzi in #5582
- fix hyperlink content in README_zh.md by @snowgo in #5591
- Bump github.com/containerd/containerd from v1.6.16 to 1.6.18 by @hongzhouzi in #5599
- Bump golang.org/x/net from 0.5.0 to 0.7.0 in /hack/tools by @dependabot in #5535
- chore: install goimports automatically by @wansir in #5609
- Remove the incorrect custom MarshalJSON method to avoid infinite recursion by @iawia002 in #5624
- Update utils.go by @chuan-you in #5615
- revert viper version to v1.4.0 by @zhou1203 in #5626
- Use the generic Set to replace deprecated methods by @iawia002 in #5623
- Bump github.com/docker/docker from 20.10.23+incompatible to 20.10.24+incompatible by @hongzhouzi in #5627
- Move struct DynamicOptions to package pkg/server by @zhou1203 in #5625
- Merge multiple duplicate tools files by @iawia002 in #5637
- controller/cluster: retry when updating the KubeFedCluster conflicted by @iawia002 in #5653
- Fix:cannot get jobs by informer by @zhou1203 in #5656
- Uniform code format by @sologgfun in #5650
- controller/cluster: improve the process for updating the cluster certificate's expiration date by @iawia002 in #5665
- Bump github.com/emicklei/go-restful-openapi to v2.9.2-0.20230507070325-d6acc08e570c by @wansir in #5669
- Fix wrong params naming in openpitrix by @sologgfun in #5666
- refactor: remove usless options by @wansir in #5671
- Improve Unreasonable Comments by @sologgfun in #5674
- Add write operation for dynamic resource by @zhou1203 in #5601
- docs: modified section about style shields display issues in readme by @cubxxw in #5677
- docs: modified section about style shields display issues in readme-zh by @cubxxw in #5678
- Bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible by @hongzhouzi in #5682
- apiserver: fix the issue that the /kapis/version API cannot be matched by routing by @iawia002 in #5696
- chore: slice replace loop by @testwill in #5778
- chore: pkg imported more than once by @testwill in #5779
- refactor: code reformat by @wansir in #5786
- feat: upgrade servicemesh version by @hongzhouzi in #5792
- fix: the infinite loop after installation failure by @wansir in #5793
- Support configuring the maximum number of logs that can be exported by @wansir in #5794
- Fix: require cluster name can not be repeated by @wansir in #5795
- fix: clear all oauth Providers when reloading configuration by @zhou1203 in #5797
- Fix webhook validation issue for new clusters by @iawia002 in #5802
- apis/resources: support for searching alias in annotations by @iawia002 in #5807
- chore(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 by @hongzhouzi in #5820
- fix: enableMultiLogin configuration does not take effect by @wansir in #5819
- feat: support gitlab identity provider by @littlejiancc in #5836
- Use autoscaling/v2 instead of autoscaling/v2beta2 by @LQBing in #5833
- Modify permission path by @wenchajun in #5848
- add rule_type label to indicate rule type by @junotx in #5834
New Contributors
- @patrickluoyu made their first contribution in #4996
- @nioshield made their first contribution in #4852
- @Bettygogo2021 made their first contribution in #5019
- @lixd made their first contribution in #5024
- @qiuming520 made their first contribution in #4994
- @tal66 made their first contribution in #5075
- @zaunist made their first contribution in #5072
- @ruijzhan made their first contribution in #5108
- @sxmatch made their first contribution in #5114
- @yongxingMa made their first contribution in #5182
- @chavacava made their first contribution in #5268
- @Juneezee made their first contribution in #5266
- @yzxiu made their first contribution in #5299
- @Gentleelephant made their first contribution in #5283
- @24sama made their first contribution in #5305
- @nuclearwu made their first contribution in #5300
- @hzhhong made their first contribution in #5342
- @isyes made their first contribution in #5419
- @liangzai006 made their first contribution in #5425
- @smartcat999 made their first contribution in #5428
- @yangchuansheng made their first contribution in #5443
- @fengshunli made their first contribution in #5463
- @frezes made their first contribution in #5483
- @sekfung made their first contribution in #5543
- @renyunkang made their first contribution in #5557
- @Fritzmomoto made their first contribution in #5564
- @dependabot made their first contribution in #5535
- @chuan-you made their first contribution in #5615
- @sologgfun made their first contribution in #5650
- @cubxxw made their first contribution in #5677
- @testwill made their first contribution in #5778
- @littlejiancc made their first contribution in #5836
- @LQBing made their first contribution in #5833
Full Changelog: v3.3.2...v3.4.0