Releases: flatcar/flatcar-linux-update-operator
Releases · flatcar/flatcar-linux-update-operator
v0.10.0-rc1
This is a pre-release for upcoming v0.10.0 release, targeting early adopters for testing, before official release is done. Changelog below:
[0.10.0] - 2023-07-24
Added
- Agent now supports
-force-drainflag, which allows removal of pods with custom or no controller when draining nodes #197.
Changed
- Everything is now built using Go 1.20.
- Container images now use Alpine Linux version v3.18 as a base image.
v0.9.0
Added
- Example manifests use new
node-role.kubernetes.io/control-planetolerations 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.yamlfile has been added to example manifests to enable using them withkustomize.
Changed
- Moved from
github.com/flatcar-linux/flatcar-linux-update-operatortogithub.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.0image 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.
latesttag for container images will no longer be used. Users are recommended to use specific versions.
Fixed
- Publishing leader election events by operator.
- Agent main loop leaking goroutine when agent is stopped.
- Used service account by agent in example manifests.
Removed
- Unused RBAC permissions from agent and operator example manifest.
- Unreachable agent code.
- Deprecated
--auto-label-flatcar-linuxflag has been removed from operator. - Pod Security Policies has been removed from example manifests, as their support has been removed in Kubernetes 1.25.
v0.8.0
Added
- 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.
Changed
- 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-operatorinstead of
quay.io/kinvolk/flatcar-linux-update-operator. update-agentnow use a dedicated Service Account with lower privileges than the operator.update-agentnow use a dedicated Pod Security Policy.update-operatornow use more strict Pod Security Policy, as it no longer needs permissions
for agent related resources.Flatcar Linuxreferences has been changed toFlatcar Container Linux.- Migrated from glog to klog,
which is a recommended logger for Kubernetes operators. pkg/drainhas 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.conffile 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-operatortogithub.com/flatcar-linux/flatcar-linux-update-operator, following the move of repository into new organization.
Fixed
- 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
- Removed no longer used Travis CI, Jenkins configuration files and build scripts.
- Removed
AttemptUpdate(),GetStatus()andRebootNeededSignal()functions frompkg/updateenginepackage. - Removed deprecated
--manage-agent,--agent-image-repoand--analyticsflags fromupdate-operator. - Deprecated operator functionality to manage agent DaemonSet has been removed. Agent DaemonSet must be now deployed separately.
v0.8.0-rc1
This is a pre-release for upcoming v0.8.0 release, targeting early adopters for testing, as this release includes a large refactor of operator implementation. Changelog below:
Added
- 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.
Changed
- 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-operatorinstead of
quay.io/kinvolk/flatcar-linux-update-operator. update-agentnow use a dedicated Service Account with lower privileges than the operator.update-agentnow use a dedicated Pod Security Policy.update-operatornow use more strict Pod Security Policy, as it no longer needs permissions
for agent related resources.Flatcar Linuxreferences has been changed toFlatcar Container Linux.- Migrated from glog to klog,
which is a recommended logger for Kubernetes operators. pkg/drainhas 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.conffile 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-operatortogithub.com/flatcar-linux/flatcar-linux-update-operator, following the move of repository into new organization.
Fixed
- 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
- Removed no longer used Travis CI, Jenkins configuration files and build scripts.
- Removed
AttemptUpdate(),GetStatus()andRebootNeededSignal()functions frompkg/updateenginepackage. - Removed deprecated
--manage-agent,--agent-image-repoand--analyticsflags fromupdate-operator. - Deprecated operator functionality to manage agent DaemonSet has been removed. Agent DaemonSet must be now deployed separately.
v0.7.3
Changelog:
- migrate to Go modules
- update all dependencies to latest versions
- fix example manifests for 1.17 compatibility
- make operator compatible with Kubernetes 1.17
- fix publishing leader acquired event by the operator
- use vendored modules when building binaries
- make sure
update-agentprocess runs as root when deploying on Kubernetes