All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.9.0 - 2023-01-03
- Example manifests use new
node-role.kubernetes.io/control-plane
tolerations in addition to legacynode-role.kubernetes.io/master
. - Added release pipeline which will be building release container images from now on.
- Added compatibility with Kubernetes versions v1.24+.
kustomization.yaml
file has been added to example manifests to enable using them withkustomize
.
- Moved from
github.com/flatcar-linux/flatcar-linux-update-operator
togithub.com/flatcar/flatcar-linux-update-operator
. This also means that the docker images will be now available atghcr.io/flatcar/flatcar-linux-update-operator
. The0.8.0
image is still available at the old location, but no new images will be pushed there. - Everything is now built using Go 1.19.
- Updated all Go dependencies.
- Dropped dependency on
github.com/flatcar-linux/locksmith
. - In example manifests use Role resource instead of ClusterRole where possible to limit scope of permissions.
- Limited operator access to config maps only to one used for leader election in example manifests.
- Improved agent responsiveness to context cancellation.
- Agent code is now covered with tests and some initial refactorings has been performed.
- Container images now use Alpine Linux version v3.15 as a base image.
- Draining pods is now done using Eviction API when possible.
- Capitalization of log messages and formatting of produced errors is now more consistent.
latest
tag for container images will no longer be used. Users are recommended to use specific versions.
- Publishing leader election events by operator.
- Agent main loop leaking goroutine when agent is stopped.
- Used service account by agent in example manifests.
- Unused RBAC permissions from agent and operator example manifest.
- Unreachable agent code.
- Deprecated
--auto-label-flatcar-linux
flag has been removed from operator. - Pod Security Policies has been removed from example manifests, as their support has been removed in Kubernetes 1.25.
0.8.0 - 2021-09-24
- Added golangci-lint and codespell CI jobs using GitHub Actions.
- Added CI for vendor directory, generated files, Go modules tidiness, Dockerfile etc.
- Added missing documentation for all packages.
- Added integration tests for
pkg/updateengine
. - Added unit tests for
pkg/operator
.
- Updated used Go version to 1.16 and Alpine version for container images to 3.14.
- Container images will be now published to
ghcr.io/flatcar-linux/flatcar-linux-update-operator
instead ofquay.io/kinvolk/flatcar-linux-update-operator
. update-agent
now use a dedicated Service Account with lower privileges than the operator.update-agent
now use a dedicated Pod Security Policy.update-operator
now use more strict Pod Security Policy, as it no longer needs permissions for agent related resources.Flatcar Linux
references has been changed toFlatcar Container Linux
.- Migrated from glog to klog, which is a recommended logger for Kubernetes operators.
pkg/drain
has been integrated intopkg/k8sutil
.- Errors returned from operator and agent runs are now properly wrapped and can be unwrapped by the user.
- Remaining CoreOS references has been replaced with Flatcar.
pkg/k8sutil.GetVersionInfo()
will now return an error when/etc/flatcar/update.conf
file is present, but not readable.- Marking node as Unschedulable should now be more robust on frequent Node object updates.
- Renamed Go module from
github.com/kinvolk/flatcar-linux-update-operator
togithub.com/flatcar-linux/flatcar-linux-update-operator
, following the move of repository into new organization.
- Fixed various typos found by codespell.
- Operator will no longer leak leader election goroutine, it will be now shut down when stop channel gets closed.
- Operator will now internally gracefully return an error when leader election is lost, so process can be restarted to start a new leader election.
- Removed no longer used Travis CI, Jenkins configuration files and build scripts.
- Removed
AttemptUpdate()
,GetStatus()
andRebootNeededSignal()
functions frompkg/updateengine
package. - Removed deprecated
--manage-agent
,--agent-image-repo
and--analytics
flags fromupdate-operator
. - Deprecated operator functionality to manage agent DaemonSet has been removed. Agent DaemonSet must be now deployed separately.
0.7.3 - 2020-01-14
- Migrated to Go modules.
- Updated all Go dependencies to latest versions.
- Use vendored dependencies while building binaries.
update-agent
example manifests now enforce running agent as root, to ensure agent is able to trigger a reboot on the host.
- Fixed example manifests for Kubernetes 1.17 compatibility.
- Made operator code compatible with Kubernetes 1.17.
- Fixed publishing leader acquired event by the operator.