k3s/cmd
Kubernetes Submit Queue 2a989c60ff
Merge pull request #63221 from mtaufen/dkcfg-live-configmap
Automatic merge from submit-queue (batch tested with PRs 63881, 64046, 63409, 63402, 63221). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Kubelet responds to ConfigMap mutations for dynamic Kubelet config

This PR makes dynamic Kubelet config easier to reason about by leaving less room for silent skew scenarios. The new behavior is as follows:
- ConfigMap does not exist: Kubelet reports error status due to missing source
- ConfigMap is created: Kubelet starts using it
- ConfigMap is updated: Kubelet respects the update (but we discourage this pattern, in favor of incrementally migrating to a new ConfigMap)
- ConfigMap is deleted: Kubelet keeps using the config (non-disruptive), but reports error status due to missing source
- ConfigMap is recreated: Kubelet respects any updates (but, again, we discourage this pattern)

This PR also makes a small change to the config checkpoint file tree structure, because ResourceVersion is now taken into account when saving checkpoints. The new structure is as follows:
```
- dir named by --dynamic-config-dir (root for managing dynamic config)
| - meta
  | - assigned (encoded kubeletconfig/v1beta1.SerializedNodeConfigSource object, indicating the assigned config)
  | - last-known-good (encoded kubeletconfig/v1beta1.SerializedNodeConfigSource object, indicating the last-known-good config)
| - checkpoints
  | - uid1 (dir for versions of object identified by uid1)
    | - resourceVersion1 (dir for unpacked files from resourceVersion1)
    | - ...
  | - ...
```


fixes: #61643

```release-note
The dynamic Kubelet config feature will now update config in the event of a ConfigMap mutation, which reduces the chance for silent config skew. Only name, namespace, and kubeletConfigKey may now be set in Node.Spec.ConfigSource.ConfigMap. The least disruptive pattern for config management is still to create a new ConfigMap and incrementally roll out a new Node.Spec.ConfigSource.
```
2018-05-21 17:05:42 -07:00
..
clicheck wire config flags through factory 2018-05-04 17:02:20 -04:00
cloud-controller-manager pass stop channel to node-controller 2018-05-15 17:08:35 +08:00
controller-manager Revert "Revert "scheduler: align with ctrl-managers and apiservers, add https+auth in options"" 2018-05-15 13:09:55 +02:00
gendocs wire config flags through factory 2018-05-04 17:02:20 -04:00
genkubedocs Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
genman wire config flags through factory 2018-05-04 17:02:20 -04:00
genswaggertypedocs Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
genutils Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
genyaml wire config flags through factory 2018-05-04 17:02:20 -04:00
hyperkube Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
importverifier fix message output for import verifier 2018-05-10 12:50:28 -04:00
kube-apiserver Use Dial with context 2018-05-19 08:14:37 +10:00
kube-controller-manager Merge pull request #63049 from andrewsykim/kcm-nodeipam 2018-05-11 11:07:12 -07:00
kube-proxy Add --ipvs-exclude-cidrs flag to kube-proxy. 2018-04-13 10:09:14 -07:00
kube-scheduler fix little bug in kube-scheduler options 2018-05-17 16:59:39 +08:00
kubeadm kubeadm: Remove .ImagePullPolicy 2018-05-21 09:20:11 +03:00
kubectl Merge pull request #60339 from mikedanese/deadpkg 2018-03-28 09:39:15 -07:00
kubelet Merge pull request #63221 from mtaufen/dkcfg-live-configmap 2018-05-21 17:05:42 -07:00
kubemark Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
linkcheck Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
BUILD gke-certificates-controller: rm -rf 2018-02-15 12:01:00 -08:00
OWNERS