flatcar-linux-update-operator
flatcar-linux-update-operator copied to clipboard
A Kubernetes operator to manage updates of Flatcar Container Linux
Original issues: - https://github.com/coreos/container-linux-update-operator/issues/157 - https://github.com/coreos/container-linux-update-operator/issues/156 Do note, that some of this information can already be obtained using `kube_node_labels` metric: ``` kube_node_labels{container="kube-state-metrics",endpoint="http",job="kube-state-metrics",label_beta_kubernetes_io_arch="amd64",label_beta_kubernetes_io_os="linux",label_flatcar_linux_update_v1_flatcar_linux_net_group="alpha",label_flatcar_linux_update_v1_flatcar_linux_net_id="flatcar",label_flatcar_linux_update_v1_flatcar_linux_net_reboot_needed="false",label_flatcar_linux_update_v1_flatcar_linux_net_version="2671.0.0",label_foo="bar",label_kubernetes_io_arch="amd64",label_kubernetes_io_hostname="theory-main-workers-1",label_kubernetes_io_os="linux",namespace="prometheus-operator",node="theory-main-workers-1",pod="prometheus-operator-kube-state-metrics-d969c4b58-68zqw",service="prometheus-operator-kube-state-metrics"}
This commit provides PoC version of implementing agent waiting for all volumtes attached to the node to be detached as a step after draining the node, as shutting down the...
Original issue: https://github.com/coreos/container-linux-update-operator/issues/191 Perhaps waiting for `kubectl get volumeattachments` to get empty with the right selector would be sufficient?
## Current situation Hi, We have a K8ssandra cluster running on our K8s cluster. Flatcar reboots quite quickly but some applications might take longer to startup and initialize. The Flatcar...
We have e.g. https://github.com/flatcar-linux/flatcar-linux-update-operator/blob/53f08043e320c853940ed7b4c126c7b72af1af00/examples/reboot-annotations/after-reboot-daemonset.yaml right now, but it only annotates the node right away, which is not very useful, as it does not allow implementing any logic. We should change...
Given that this operator simply operates on Node objects, we should be able to use client-go to run both operator and node agent usign fake client-go and with mock D-Bus...
Original issue: https://github.com/coreos/container-linux-update-operator/issues/184 This has been reported in the past and partially resolved, but it seems it is not finished. See also coreos/container-linux-update-operator#184 We should make sure this is addressed,...
With following error: ``` W0206 12:37:02.081765 1 agent.go:152] error waiting for an ok-to-reboot: waiting for annotation "flatcar-linux-update.v1.flatcar-linux.net/reboot-ok" failed: unhandled watch case for watch.Event{Type:"ERROR", Object:(*v1.Status)(0xc00024abe0)} ```
That make no sense and only pollutes the logs. This however, may require us to start testing log messages in the agent, which is currently not done, but definitely desirable.
There are still some which should be fixed: ``` $ golangci-lint run | grep \\.go: | wc -l 64 ```