Releases: openyurtio/openyurt
v1.3.3
What's Changed
- [Backport release-v1.3] change access permission to default in general. by @github-actions in #1584
- [Backport release-v1.3] feat: add yurtadm binaries release workflow by @github-actions in #1586
Full Changelog: v1.3.2...v1.3.3
v1.3.2
What's Changed
- [Backport release-v1.3] check nil in podbinding_controller.go and handle some errors by @github-actions in #1560
- [Backport release-v1.3] fix yurtstaticset workerpod reset error by @github-actions in #1561
- [Backport release-v1.3] fix yurthub memory leak by @github-actions in #1562
Full Changelog: v1.3.1...v1.3.2
v1.3.1
What's Changed
- [Backport release-v1.3] fix memory leak for yur-tunnel-server by @github-actions in #1493
- [Backport release-v1.3] revert yurt-tunnel components release by @github-actions in #1494
Full Changelog: v1.3.0...v1.3.1
v1.3.0
v1.3.0
What's New
Refactor OpenYurt control plane components
In order to improve the management of all repos in OpenYurt community, and reduce the complexity of installing OpenYurt,
After detailed discussions in the community, a new component named yurt-manager was agreed to manage controllers and webhooks
scattered across multiple components (like yurt-controller-manager, yurt-app-manager, raven-controller-manager, etc.).
After the refactoring, based on the controller-runtime framework, new controllers and webhooks can be easily added to the
yurt-manager component in the future. Also note that the yurt-manager component is recommended to be installed on the same node as the K8s control-plane component (like kube-controller-manager). #1067
Support OTA or AdvancedRollingUpdate upgrade models for static pods
As you know, static pods are managed directly by the kubelet daemon on the node and there is no APIServer watching them.
In general, if a user wants to upgrade a static pod(like YurtHub), the user should manually modify or replace the manifest
of the static pod. this can be a very tedious and painful task when the number of static pods becomes very large.
Users can define Pod templates and upgrade models through YurtStaticSet CRD. The upgrade models support both OTA and AdvancedRollingUpdate kinds,
thus easily meeting the upgrade needs of large-scale Static Pods. Also the Pod template in yurthub YurtStaticSet CRD is used to
install YurtHub component on the node when the node is joined. #1261, #1168, #1172
NodePort Service supports nodepool isolation
In edge scenarios, users using the NodePort service expect to listen to nodePort ports only in a specified nodepools
in order to prevent port conflicts and save edge resources.
Users can specify the nodepools to listen to by adding annotation nodeport.openyurt.io/listen
to the NodePort or
LoadBalancer service, thus getting the nodepool isolation capability of the NodePort or LoadBalancer service. #1183, #1209
Other Notable changes
- improve image build efficiency by @Congrool in #1191
- support filter chain for filtering response data by @rambohe-ch in #1189
- fix: re-list when target change by @LaurenceLiZhixin in #1195
- fix: pool-coordinator cannot be rescheduled when its node fails (#1212) by @AndyEWang in #1218
- feat: merge yurtctl to e2e by @YTGhost in #1219
- support pass bootstrap-file to yurthub by @rambohe-ch in #1333
- add system proxy for docker run by @gnunu in #1335
- feat: add yurtadm renew certificate command by @YTGhost in #1314
- add a new way to create webhook by @JameKeal in #1359
- feat: support pool-coordinator component work in specified namespace by @y-ykcir in #1355
- feat: add nodepool e2e by @huiwq1990 in #1365
- feat: support yurt-manager work in specified namespace by @y-ykcir in #1367
- support yurthub component work in specified namespace by @huweihuang in #1366
- support to specify enabled controllers by @xavier-hou in #1388
- feat: crd generate crds by @huiwq1990 in #1389
- add Yurtappdaemon e2e test by @theonefx in #1406
- fix generated crd name by @huiwq1990 in #1408
- rename auto to AdvancedRollingUpdate by @xavier-hou in #1451
- rename CRD StaticPod to YurtStaticSet by @xavier-hou in #1457
Fixes
- fix handle poolcoordinator certificates in case of restarting by @batthebee in #1187
- make rename replace old dir by @LaurenceLiZhixin in #1237
- yurtadm minor version compatibility of kubelet and kubeadm by @YTGhost in #1244
- delete specific iptables while testing kube-proxy by @y-ykcir in #1268
- fix yurthub dnsPolicy when using pool-coordinator by @JameKeal in #1321
- fix: yurt-controller-manager reboot cannot remove taint node.openyurt.io/unschedulable (#1233) by @AndyEWang in #1337
- fix daemonSet pod updater pointer error by @JameKeal in #1340
- bugfix for yurtappset by @theonefx in #1391
Contributors
Thank you to everyone who contributed to this release! ❤
- @batthebee
- @cndoit18
- @fengshunli
- @luc99hen
- @frank-zsy
- @YTGhost
- @Congrool
- @luckymrwang
- @AndyEWang
- @huiwq1990
- @njucjc
- @xavier-hou
- @kadisi
- @guoguodan
- @JameKeal
- @gnunu
- @y-ykcir
- @Lan-ce-lot
- @River-sh
- @huweihuang
- @lilongfeng0902
- @theonefx
- @fujitatomoya
- @rambohe-ch
And thank you very much to everyone else not listed here who contributed in other ways like filing issues,
giving feedback, helping users in community group, etc.
Full Changelog: v1.2.0...v1.3.0
v1.3.0-rc1
The release candidate for OpenYurt v1.3.0
v1.2.1
What's Changed
- [Backport release-v1.2] Bugfix: fix handle poolcoordinator certificates in case of restarting… by @github-actions in #1193
- [Backport release-v1.2] fix: re-list when target change by @github-actions in #1238
- [Backport release-v1.2] fix unavailable coordinator image by @github-actions in #1239
- [Backport release-v1.2] fix: pool-coordinator cannot be rescheduled when its node fails (#1212) by @github-actions in #1240
- [Backport release-v1.2] Fix: make rename replace old dir by @github-actions in #1241
Full Changelog: v1.2.0...v1.2.1
v1.2.0
v1.2.0
What's New
Improve edge autonomy capability when cloud-edge network off
The original edge autonomy feature can make the pods on nodes un-evicted even if node crashed by adding annotation to node,
and this feature is recommended to use for scenarios that pods should bind to node without recreation.
After improving edge autonomy capability, when the reason of node NotReady is cloud-edge network off, pods will not be evicted
because leader yurthub will help these offline nodes to proxy their heartbeats to the cloud via pool-coordinator component,
and pods will be evicted and recreated on other ready node if node crashed.
By the way, The original edge autonomy capability by annotating node (with node.beta.openyurt.io/autonomy) will be kept as it is,
which will influence all pods on autonomy nodes. And a new annotation (named apps.openyurt.io/binding) can be added to workload to
enable the original edge autonomy capability for specified pod.
Reduce the control-plane traffic between cloud and edge
Based on the Pool-Coordinator in the nodePool, A leader Yurthub will be elected in the nodePool. Leader Yurthub will
list/watch pool-scope data(like endpoints/endpointslices) from cloud and write into pool-coordinator. then all components(like kube-proxy/coredns)
in the nodePool will get pool-scope data from pool-coordinator instead of cloud kube-apiserver, so large volume control-plane traffic
will be reduced.
Use raven component to replace yurt-tunnel component
Raven has released version v0.3, and provide cross-regional network communication ability based on PodIP or NodeIP, but yurt-tunnel
can only provide cloud-edge requests forwarding for kubectl logs/exec commands. because raven provides much more than the capabilities
provided by yurt-tunnel, and raven has been proven by a lot of work. so raven component is officially recommended to replace yurt-tunnel.
Other Notable changes
- proposal of yurtadm join refactoring by @YTGhost in #1048
- [Proposal] edgex auto-collector proposal by @LavenderQAQ in #1051
- add timeout config in yurthub to handle those watch requests by @AndyEWang in #1056
- refactor yurtadm join by @YTGhost in #1049
- expose helm values for yurthub cacheagents by @huiwq1990 in #1062
- refactor yurthub cache to adapt different storages by @Congrool in #882
- add proposal of static pod upgrade model by @xavier-hou in #1065
- refactor yurtadm reset by @YTGhost in #1075
- bugfix: update the dependency yurt-app-manager-api from v0.18.8 to v0.6.0 by @YTGhost in #1115
- Feature: yurtadm reset/join modification. Do not remove k8s binaries, add flag for using local cni binaries. by @Windrow14 in #1124
- Improve certificate manager by @rambohe-ch in #1133
- fix: update package dependencies by @fengshunli in #1149
- fix: add common builder by @fengshunli in #1152
- generate yurtadm docs by @huiwq1990 in #1159
- add inclusterconfig filter for commenting kube-proxy configmap by @rambohe-ch in #1158
- delete yurt tunnel helm charts by @River-sh in #1161
Fixes
- bugfix: StreamResponseFilter of data filter framework can't work if size of one object is over 32KB by @rambohe-ch in #1066
- bugfix: add ignore preflight errors to adapt kubeadm before version 1.23.0 by @YTGhost in #1092
- bugfix: dynamically switch apiVersion of JoinConfiguration to adapt to different versions of k8s by @YTGhost in #1112
- bugfix: yurthub can not exit when SIGINT/SIGTERM happened by @rambohe-ch in #1143
Contributors
Thank you to everyone who contributed to this release! ❤
- @YTGhost
- @Congrool
- @LavenderQAQ
- @AndyEWang
- @huiwq1990
- @rudolf-chy
- @xavier-hou
- @gbtyy
- @huweihuang
- @zzguang
- @Windrow14
- @fengshunli
- @gnunu
- @luc99hen
- @donychen1134
- @LindaYu17
- @fujitatomoya
- @River-sh
- @rambohe-ch
And thank you very much to everyone else not listed here who contributed in other ways like filing issues,
giving feedback, helping users in community group, etc.
v1.1.0
v1.1.0
What's New
Support OTA/Auto upgrade model for DaemonSet workload
Extend native DaemonSet OnDelete
upgrade model by providing OTA and Auto two upgrade models.
- OTA: workload owner can control the upgrade of workload through the exposed REST API on edge nodes.
- Auto: Solve the DaemonSet upgrade process blocking problem which caused by node NotReady when the cloud-edge is disconnected.
Support autonomy feature validation in e2e tests
In order to test autonomy feature, network interface of control-plane is disconnected for simulating cloud-edge network disconnected, and then stop components(like kube-proxy, flannel, coredns, etc.) and check the recovery of these components.
Improve the Yurthub configuration for enabling the data filter function
Compares to the previous three configuration items, which include the component name, resource, and request verb. after improvement, only component name is need to configure for enabling data filter function. the original configuration format is also supported in order to keep consistency.
Other Notable changes
- cache agent change optimize by @huiwq1990 in #1008
- Check if error via ListKeys of Storage Interface. by @fujitatomoya in #1015
- Add released openyurt versions to projectInfo when building binaries by @Congrool in #1016
- add auto pod upgrade controller for daemoset by @xavier-hou in #970
- add ota update RESTful API by @xavier-hou in #1004
- make servicetopology filter in yurthub work properly when service or nodepool change by @LinFCai in #1019
- improve data filter framework by @rambohe-ch in #1025
- add proposal to unify cloud edge comms solution by @zzguang in #1027
- improve health checker for adapting coordinator by @rambohe-ch in #1032
- Edge-autonomy-e2e-test implementation by @lorrielau in #1022
- improve e2e tests for supporting mac env and coredns autonomy by @rambohe-ch in #1045
- proposal of yurthub cache refactoring by @Congrool in #897
Fixes
- even no endpoints left after filter, an empty object should be returned to clients by @rambohe-ch in #1028
- non resource handle miss for coredns by @rambohe-ch in #1044
Contributors
Thank you to everyone who contributed to this release! ❤
- @windydayc
- @luc99hen
- @Congrool
- @huiwq1990
- @fujitatomoya
- @LinFCai
- @xavier-hou
- @lorrielau
- @YTGhost
- @zzguang
- @Lan-ce-lot
And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, helping users in community group, etc. ️
Full Changelog: v1.0.0...v1.1.0
v1.0.1
What's Changed
- [Backport release-v1.0] bugfix: even no endpoints left after filter, an empty object should be returned to clients by @github-actions in #1030
Full Changelog: v1.0.0...v1.0.1
v1.0.0
We're excited to announce the release of OpenYurt 1.0.0!🎉🎉🎉
Thanks to all the new and existing contributors who helped make this release happen!
If you're new to OpenYurt, feel free to browse OpenYurt website, then start with OpenYurt Installation and learn about its core concepts.
Acknowledgements ❤️
Nearly 20 people have contributed to this release and 8 of them are new contributors, Thanks to everyone!
@huiwq1990 @Congrool @zhangzhenyuyu @rambohe-ch @gnunu @LinFCai @guoguodan @ankyit @luckymrwang @zzguang @HXCGIT @Sodawyx @luc99hen @River-sh @slm940208 @windydayc @lorrielau @fujitatomoya @donychen1134
What's New
API version
The version of NodePool
API has been upgraded to v1beta1
, more details in the openyurtio/yurt-app-manager#104
Meanwhile, all APIs management in OpenYurt will be migrated to openyurtio/api repo, and we recommend you to import this package to use APIs of OpenYurt.
Code Quality
We track unit test coverage with CodeCov
Code coverage for some repos as following:
- openyurtio/openyurt: 47%
- openyurtio/yurt-app-manager: 37%
- openyurtio/raven: 53%
and more details of unit tests coverage can be found in https://codecov.io/gh/openyurtio
In addition to unit tests, other levels of testing are also added.
- upgrade e2e test for openyurt by @lorrielau in #945
- add fuzz test for openyurtio/yurt-app-manager by @huiwq1990 in openyurtio/yurt-app-manager#67
- e2e test for openyurtio/yurt-app-manager by @huiwq1990 in openyurtio/yurt-app-manager#107
Performance Test
OpenYurt makes Kubernetes work in cloud-edge collaborative environment with a non-intrusive design. so performance of
some OpenYurt components have been considered carefully. several test reports have been submitted so that end users can clearly
see the working status of OpenYurt components.
- yurthub performance test report by @luc99hen in https://openyurt.io/docs/test-report/yurthub-performance-test
- pods recovery efficiency test report by @Sodawyx in https://openyurt.io/docs/test-report/pod-recover-efficiency-test
Installation Upgrade
early installation way(convert K8s to OpenYurt) is removed. OpenYurt Cluster installation is divided into two parts:
and all Control Plane Components of OpenYurt are managed by helm charts in repo: https://github.com/openyurtio/openyurt-helm
Other Notable changes
- upgrade kubeadm to 1.22 by @huiwq1990 in #864
- [Proposal] Proposal to install openyurt components using helm by @zhangzhenyuyu in #849
- support yurtadm token subcommand by @huiwq1990 in #875
- bugfix: only set signer name when not nil in order to prevent panic. by @rambohe-ch in #877
- [proposal] add proposal of multiplexing cloud-edge traffic by @rambohe-ch in #804
- yurthub return fake token when edge node disconnected with K8s APIServer by @LinFCai in #868
- deprecate cert-mgr-mode option of yurthub by @Congrool in #901
- [Proposal] add proposal of daemosnet update model by @HXCGIT in #921
- fix: cache the server version info of kubernetes by @Sodawyx in #936
- add yurt-tunnel-dns yaml by @rambohe-ch in #956
- Separate YurtHubHost & YurtHubProxyHost by @luc99hen in #959
- merge endpoints filter into service topology filter by @rambohe-ch in #963
- support yurtadm join to join multiple master nodes by @windydayc in #964
- feature: add lantency metrics for yurthub by @luc99hen in #965
- bump ginkgo to v2 by @lorrielau in #945
- beta.kubernetes.io is deprecated, use kubernetes.io instead by @fujitatomoya in #969
Full Changelog: v0.7.0...v1.0.0-rc1
Thanks again to all the contributors!