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-drain
flag, 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-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
.
Changed
- 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.
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-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.
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-operator
instead of
quay.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
- 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/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.
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-operator
instead of
quay.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
- 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/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.
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-agent
process runs as root when deploying on Kubernetes