- 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
An enhanced version of default DaemonSet with extra functionalities such as:
- inplace update and surging update
- node selector for update
- partial update
- Not create excessive pods when updating with maxSurge
- Round down maxUnavaliable when maxSurge > 0
- Skip recreate when inplace update failed
- Fix scale panic when replicas < partition
- Fix CloneSet blocked by terminating PVC
- Support
maxSurge
strategy which could work well withmaxUnavailable
andpartition
- Add CloneSet core interface to support multiple implementations
- Fix in-place update for metadata in template
- Make sure
maxUnavailable
should not be less than 1 - Fix in-place update for metadata in template
- Merge volumes during injecting sidecars into Pod
- Expose
CUSTOM_RESOURCE_ENABLE
env by chart set option
- Add
labelSelector
to optimize scale subresource for HPA - Add
minReadySeconds
,availableReplicas
fields for CloneSet - Add
gracePeriodSeconds
for graceful in-place update
- Support label selector in scale for HPA
- Add
gracePeriodSeconds
for graceful in-place update
- Fix StatefulSet default update sequence
- Fix ControllerRevision adoption
- Fix
check_for_installation.sh
script for k8s 1.11 to 1.13
Mainly focuses on managing stateless applications. (Concept for CloneSet)
It provides full features for more efficient, deterministic and controlled deployment, such as:
- inplace update
- specified pod deletion
- configurable priority/scatter update
- preUpdate/postUpdate hooks
- UnitedDeployment supports both StatefulSet and AdvancedStatefulSet.
- UnitedDeployment supports toleration config in subset.
- Fix statefulset inplace update fields in pod metadata such as labels/annotations.
- Simplify installation with helm charts, one simple command to install kruise charts, instead of downloading and executing scripts.
- Support priority update, which allows users to configure the sequence for Pods updating.
- Fix maxUnavailable calculation, which should not be less than 1.
- Fix BroadcastJob cleaning up after TTL.
- Provide a script to check if the K8s cluster has enabled MutatingAdmissionWebhook and ValidatingAdmissionWebhook admission plugins before installing Kruise.
- Users can now install specific controllers if they only need some of the Kruise CRD/controllers.
- Fix a jsonpatch bug by updating the vendor code.
- Add condition report in
status
to indicate the scaling or rollout results.
- Define a set of APIs for UnitedDeployment workload which manages multiple workloads spread over multiple domains in one cluster.
- Create one workload for each
Subset
inTopology
. - Manage Pod replica distribution across subset workloads.
- Rollout all subset workloads by specifying a new workload template.
- Manually manage the rollout of subset workloads by specifying the
Partition
of each workload.
- Three blog posts are added in Kruise website, titled:
- Kruise Controller Classification Guidance.
- Learning Concurrent Reconciling.
- UnitedDeploymemt - Supporting Multi-domain Workload Management.
- New documents are added for UnitedDeployment, including a tutorial.
- Revise main README.md.
- Provide a script to generate helm charts for Kruise. User can specify the release version.
- Automatically install kubebuilder if it does not exist in the machine.
- Add Kruise uninstall script.
- Fix a potential controller crash problem when APIServer disables MutatingAdmissionWebhook and ValidatingAdmissionWebhook admission plugins.
- Change the type of
Parallelism
field in BroadcastJob from*int32
tointOrString
. - Support
Pause
in BroadcastJob. - Add
FailurePolicy
in BroadcastJob, supportingContinue
,FastFailed
, andPause
polices. - Add
Phase
in BroadcastJobstatus
.
- Allow parallelly upgrading SidecarSet Pods by specifying
MaxUnavailable
. - Support sidecar volumes so that user can specify volume mount in sidecar containers.
- Support to run kruise-controller-manager locally
- Allow selectively install required CRDs for kruise controllers
- Remove
sideEffects
in kruise-manager all-in-one YAML file to avoid start failure
- Add MaxUnavailable rolling upgrade strategy
- Add In-Place pod update strategy
- Add paused functionality during rolling upgrade
- Add BroadcastJob that runs pods on all nodes to completion
- Add
Never
termination policy to have job running after it finishes all pods - Add
ttlSecondsAfterFinished
to delete the job after it finishes in x seconds.
- Make broadcastjob honor node unschedulable condition
- Add SidecarSet that automatically injects sidecar container into selected pods
- Support sidecar update functionality for SidecarSet