kubernetes/pkg
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
..
api remove API dependency on printers 2018-05-21 13:46:53 -04:00
apis dynamic Kubelet config reconciles ConfigMap updates 2018-05-21 09:03:58 -07:00
auth add myself as an approver in various auth related directories 2018-05-17 11:32:37 -07:00
capabilities Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
client Autogenerated code 2018-05-15 21:38:54 +02:00
cloudprovider Merge pull request #63902 from vmware/vcp_secrets 2018-05-18 15:59:15 -07:00
controller remove unused gc code 2018-05-21 20:22:37 +08:00
credentialprovider Use new clients in Azure credential provider 2018-04-26 09:38:48 +08:00
features Merge pull request #64046 from yujuhong/log-rotate-beta 2018-05-21 17:05:30 -07:00
fieldpath Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
generated Generated 2018-05-12 02:01:09 -04:00
kubeapiserver simplify api registration 2018-05-08 18:33:50 -04:00
kubectl move PrintOptions to genericclioptions 2018-05-21 14:59:41 -04:00
kubelet Merge pull request #63221 from mtaufen/dkcfg-live-configmap 2018-05-21 17:05:42 -07:00
kubemark add nodeport-addresses flag for kube-proxy 2018-02-26 23:48:46 +08:00
master Use Dial with context 2018-05-19 08:14:37 +10:00
printers move PrintOptions to genericclioptions 2018-05-21 14:59:41 -04:00
probe Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
proxy Merge pull request #63850 from islinwb/check_ipvs_mod 2018-05-16 03:33:20 -07:00
quota Resources prefixed with *kubernetes.io/ should remain unscheduled if they are not exposed on the node. 2018-03-28 17:24:30 -07:00
registry add myself as an approver in various auth related directories 2018-05-17 11:32:37 -07:00
routes Remove /ui/ redirect 2018-02-12 10:54:33 -05:00
scheduler Merge pull request #63459 from resouer/fix-63427 2018-05-19 06:49:19 -07:00
security Replace UserIDRange/GroupIDRange by IDRange in internal type to reduce difference with external type. 2018-05-04 18:31:42 +02:00
securitycontext remove unused code in securitycontext 2018-03-29 23:32:48 -07:00
serviceaccount add myself as an approver in various auth related directories 2018-05-17 11:32:37 -07:00
ssh Use Dial with context 2018-05-19 08:14:37 +10:00
util Merge pull request #63332 from zhouhaibing089/exec-timeout 2018-05-15 09:04:28 -07:00
version Require boilerplate on Bazel Skylark source files 2018-02-16 13:44:04 -08:00
volume Merge pull request #63295 from jsafrane/fix-csi-detach-delete 2018-05-18 09:54:22 -07:00
watch/json remove outdate package 2018-01-15 23:17:19 +08:00
windows/service Add support for binaries to run as Windows services 2018-03-07 00:51:36 +01:00
.import-restrictions
BUILD pkg/api/unversioned related cleanup 2018-03-13 17:20:16 +08:00
OWNERS