Releases: openkruise/kruise
v0.8.0
To install or upgrade to the latest version, see installation.
Changes since v0.7.0
Breaking changes
- The flags for kruise-manager must start with
--
instead of-
. If you install Kruise with helm chart, ignore this. - SidecarSet has been refactored. Make sure there is no SidecarSet being upgrading when you upgrade Kruise,
and read the latest doc for SidecarSet. - A new component named
kruise-daemon
comes in. It is deployed in kruise-system using DaemonSet, defaults on every Node.
Now Kruise includes two components:
- kruise-controller-manager: contains multiple controllers and webhooks, deployed using Deployment.
- kruise-daemon: contains bypass features like image pre-download and container restart in the future, deployed using DaemonSet.
New CRDs: NodeImage and ImagePullJob
Kruise will create a NodeImage for each Node, and its spec
contains the images that should be downloaded on this Node.
Also, users can create an ImagePullJob CR to declare an image should be downloaded on which nodes.
apiVersion: apps.kruise.io/v1alpha1
kind: ImagePullJob
metadata:
name: test-imagepulljob
spec:
image: nginx:latest
completionPolicy:
type: Always
parallelism: 10
pullPolicy:
backoffLimit: 3
timeoutSeconds: 300
selector:
matchLabels:
node-label: xxx
SidecarSet
- Refactor the controller and webhook for SidecarSet:
- For
spec
:- Add
namespace
: indicates this SidecarSet will only inject for Pods in this namespace. - For
spec.containers
:- Add
podInjectPolicy
: indicates this sidecar container should be injected in the front or end ofcontainers
list. - Add
upgradeStrategy
: indicates the upgrade strategy of this sidecar container (currently it only supportsColdUpgrade
) - Add
shareVolumePolicy
: indicates whether to share other containers' VolumeMounts in the Pod. - Add
transferEnv
: can transfer the names of env shared from other containers.
- Add
- For
spec.updateStrategy
:- Add
type
: containsNotUpdate
orRollingUpdate
. - Add
selector
: indicates only update Pods that matched this selector. - Add
partition
: indicates the desired number of Pods in old revisions. - Add
scatterStrategy
: defines the scatter rules to make pods been scattered during updating.
- Add
- Add
- For
CloneSet
- Add
currentRevision
field in status. - Optimize CloneSet scale sequence.
- Fix condition for pod lifecycle state from Updated to Normal.
- Change annotations
inplace-update-state
=>apps.kruise.io/inplace-update-state
,inplace-update-grace
=>apps.kruise.io/inplace-update-grace
. - Fix
maxSurge
calculation when partition > replicas.
UnitedDeployment
- Support Deployment as template in UnitedDeployment.
Advanced StatefulSet
- Support lifecycle hook for in-place update and pre-delete.
BroadcastJob
- Add PodFitsResources predicates.
- Add
--assign-bcj-pods-by-scheduler
flag to control whether to use scheduler to assign BroadcastJob's Pods.
Others
- Add feature-gate to replace the CUSTOM_RESOURCE_ENABLE env.
- Add GetScale/UpdateScale into clientsets for scalable resources.
- Support multi-platform build in Makefile.
- Set different user-agent for controllers.
Thanks to all our contributors! 😊
v0.7.0
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz
Changes since v0.6.1
A NEW workload controller - AdvancedCronJob
Thanks for @rishi-anand contributing!
An enhanced version of CronJob, it supports multiple kind in a template:
apiVersion: apps.kruise.io/v1alpha1
kind: AdvancedCronJob
spec:
template:
# Option 1: use jobTemplate, which is equivalent to original CronJob
jobTemplate:
# ...
# Option 2: use broadcastJobTemplate, which will create a BroadcastJob object when cron schedule triggers
broadcastJobTemplate:
# ...
# Options 3(future): ...
CloneSet
- Partition support intOrStr format
- Warning log for expectation timeout
- Remove ownerRef when pod's labels not matched CloneSet's selector
- Allow updating revisionHistoryLimit in validation
- Fix resourceVersionExpectation race condition
- Fix overwrite gracePeriod update
- Fix webhook checking podsToDelete
StatefulSet
- Promote Advanced StatefulSet to v1beta1
- A conversion webhook will help users to transfer existing and new
v1alpha1
advanced statefulsets tov1beta1
automatically - Even all advanced statefulsets have been converted to
v1beta1
, users can still get them throughv1alpha1
client and api
- A conversion webhook will help users to transfer existing and new
- Support reserveOrdinal for Advanced StatefulSet
DaemonSet
- Add validation webhook for DaemonSet
- Fix pending pods created by controller
BroadcastJob
- Optimize the way to calculate parallelism
- Check ownerReference for filtered pods
- Add pod label validation
- Add ScaleExpectation for BroadcastJob
Others
- Initializing capabilities if allowPrivileged is true
- Support secret cert for webhook with vip
- Add rate limiter config
- Fix in-place rollback when spec image no latest tag
Thanks to all our contributors! 😊
v0.6.1
Installation
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.1/kruise-chart.tgz
Changes since v0.6.0
CloneSet
Features
- Support lifecycle hooks for pre-delete and in-place update
Bugs
- Fix map concurrent write
- Fix current revision during rollback
- Fix update expectation for pod deletion
SidecarSet
Features
- Support initContainers definition and injection
UnitedDeployment
Features
- Support to define CloneSet as UnitedDeployment's subset
StatefulSet
Features
- Support minReadySeconds strategy
Others
- Add webhook controller to optimize certs and configurations generation
- Add pprof server and flag
- Optimize discovery logic in custom resource gate
Thanks to all our contributors! 😊
v0.6.0
Installation
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.0/kruise-chart.tgz
Changes since v0.5.0
Project
- Update dependencies: k8s v1.13 -> v1.16, controller-runtime v0.1.10 -> v0.5.7
- Support multiple active webhooks
- Fix CRDs using openkruise/controller-tools
A NEW workload controller - Advanced DaemonSet
An enhanced version of default DaemonSet with extra functionalities such as:
- inplace update and surging update
- node selector for update
- partial update
CloneSet
Features
- Not create excessive pods when updating with maxSurge
- Round down maxUnavaliable when maxSurge > 0
Bugs
- Skip recreate when inplace update failed
- Fix scale panic when replicas < partition
- Fix CloneSet blocked by terminating PVC
Thanks to all our contributors! 😊
v0.5.0
Please check the CHANGELOG for a list of changes.
The official docker.io/openkruise/kruise-manager:v0.5.0
is hosted under dockerhub
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.5.0/kruise-chart.tgz
v0.4.1
Please check the CHANGELOG for a list of changes.
The official docker.io/openkruise/kruise-manager:v0.4.1
is hosted under dockerhub
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.4.1/kruise-chart.tgz
v0.4.0
Please check the CHANGELOG for a list of changes.
The official docker.io/openkruise/kruise-manager:v0.4.0
is hosted under dockerhub
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.4.0/kruise-chart.tgz
v0.3.1
Please check the CHANGELOG for a list of changes.
The official docker.io/openkruise/kruise-manager:v0.3.1
is hosted under dockerhub
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.3.1/kruise-chart.tgz