Skip to content

Releases: flatcar/flatcar-linux-update-operator

v0.10.0-rc1

24 Jul 07:59
v0.10.0-rc1
37b50d4
Compare
Choose a tag to compare
v0.10.0-rc1 Pre-release
Pre-release

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

03 Jan 14:17
v0.9.0
98905b3
Compare
Choose a tag to compare

Added

  • Example manifests use new node-role.kubernetes.io/control-plane tolerations in addition to legacy node-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 with kustomize.

Changed

  • Moved from github.com/flatcar-linux/flatcar-linux-update-operator to github.com/flatcar/flatcar-linux-update-operator. This also means that the docker images will be now available at ghcr.io/flatcar/flatcar-linux-update-operator. The 0.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

01 Nov 16:13
v0.8.0
2292341
Compare
Choose a tag to compare

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 to Flatcar Container Linux.
  • Migrated from glog to klog,
    which is a recommended logger for Kubernetes operators.
  • pkg/drain has been integrated into pkg/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 to github.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() and RebootNeededSignal() functions from pkg/updateengine package.
  • Removed deprecated --manage-agent, --agent-image-repo and --analytics flags from update-operator.
  • Deprecated operator functionality to manage agent DaemonSet has been removed. Agent DaemonSet must be now deployed separately.

v0.8.0-rc1

28 Sep 17:15
v0.8.0-rc1
2280912
Compare
Choose a tag to compare
v0.8.0-rc1 Pre-release
Pre-release

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 to Flatcar Container Linux.
  • Migrated from glog to klog,
    which is a recommended logger for Kubernetes operators.
  • pkg/drain has been integrated into pkg/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 to github.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() and RebootNeededSignal() functions from pkg/updateengine package.
  • Removed deprecated --manage-agent, --agent-image-repo and --analytics flags from update-operator.
  • Deprecated operator functionality to manage agent DaemonSet has been removed. Agent DaemonSet must be now deployed separately.

v0.7.3

14 Jan 16:46
v0.7.3
812b528
Compare
Choose a tag to compare

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