kubernetes/test/e2e_node
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
..
builder Move path management from e2e_node to common test/utils directory 2018-04-27 11:12:10 -04:00
conformance Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
environment Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
jenkins Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
perftype update BUILD files 2017-10-15 18:18:13 -07:00
remote Move path management from e2e_node to common test/utils directory 2018-04-27 11:12:10 -04:00
runner Move path management from e2e_node to common test/utils directory 2018-04-27 11:12:10 -04:00
services Merge pull request #62101 from bart0sh/PR0010-e2e_node-kubelet-command-line-fix 2018-04-30 13:24:12 -07:00
system Replace "golang.org/x/net/context" with "context" 2018-03-22 20:57:14 +08:00
apparmor_test.go fix all the typos across the project 2018-02-11 11:04:14 +08:00
benchmark_util.go use core client with explicit version globally 2017-10-27 15:48:32 +08:00
BUILD Merge pull request #57849 from dashpole/eviction_test_event 2018-05-17 00:28:19 -07:00
container.go remove a todo which is out of date 2018-02-07 09:31:15 +08:00
container_log_rotation_test.go Add node e2e test for log rotation. 2018-02-23 01:42:35 +00:00
container_manager_test.go Removed newlines from e2e log statements. 2018-02-17 22:25:38 -05:00
cpu_manager_test.go Remove rkt references in the codebase 2018-04-06 12:02:11 -07:00
critical_pod_test.go Use pause manifest image 2018-04-06 11:00:50 +05:30
density_test.go Use pause manifest image 2018-04-06 11:00:50 +05:30
device_plugin.go [Device-Plugin]: Extend e2e test to cover node allocatables 2018-05-03 14:19:29 -04:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
docker_test.go Add node-e2e test for ShareProcessNamespace 2018-02-28 09:15:56 +01:00
docker_util.go Skip log path tests when they are expected to fail. 2018-01-19 10:51:13 -08:00
dockershim_checkpoint_test.go Use pause manifest image 2018-04-06 11:00:50 +05:30
dynamic_kubelet_config_test.go dynamic Kubelet config reconciles ConfigMap updates 2018-05-21 09:03:58 -07:00
e2e_node_suite_test.go Add a few "+build linux" tags where appropriate. 2018-02-27 13:53:32 -08:00
eviction_test.go eviction test ensures failed pods are evicted 2018-05-08 16:08:35 -07:00
framework.go Add [sig-node] to some unowned e2e_node tests 2017-11-27 11:35:44 -05:00
garbage_collector_test.go fix all the typos across the project 2018-02-11 11:04:14 +08:00
gke_environment_test.go Switch to k8s.gcr.io vanity domain 2018-02-07 21:14:19 -08:00
gpu_device_plugin.go [Device-Plugin]: Extend e2e test to cover node allocatables 2018-05-03 14:19:29 -04:00
gubernator.sh Update all script to use /usr/bin/env bash in shebang 2018-04-19 13:20:13 +02:00
hugepages_test.go Use a []string for CgroupName, which is a more accurate internal representation 2018-05-01 08:29:06 -07:00
image_id_test.go Switch to k8s.gcr.io vanity domain 2018-02-07 21:14:19 -08:00
image_list.go Use pause manifest image 2018-04-06 11:00:50 +05:30
kubelet_test.go Use framework.ConformanceIt for node e2e conformance tests 2017-11-17 17:28:20 +08:00
lifecycle_hook_test.go Use pause manifest image 2018-04-06 11:00:50 +05:30
log_path_test.go Skip log path tests when they are expected to fail. 2018-01-19 10:51:13 -08:00
mirror_pod_test.go Use pause manifest image 2018-04-06 11:00:50 +05:30
node_container_manager_test.go Fix cgroup names in node_container_manager_test. 2018-05-08 16:15:26 -07:00
node_problem_detector_linux.go fix all the typos across the project 2018-02-11 11:04:14 +08:00
OWNERS Add balajismaniam, ConnorDoyle node-e2e approvers 2017-11-22 10:01:14 -08:00
pods_container_manager_test.go Use a []string for CgroupName, which is a more accurate internal representation 2018-05-01 08:29:06 -07:00
README.md Update docs/ URLs to point to proper locations 2017-06-05 22:13:54 -07:00
resource_collector.go more concise to merge the array 2018-02-11 21:27:11 +08:00
resource_usage_test.go Use pause manifest image 2018-04-06 11:00:50 +05:30
restart_test.go Use pause manifest image 2018-04-06 11:00:50 +05:30
runtime_conformance_test.go Switch to k8s.gcr.io vanity domain 2018-02-07 21:14:19 -08:00
security_context_test.go Add node-e2e test for ShareProcessNamespace 2018-02-28 09:15:56 +01:00
summary_test.go Lower UsageNanoCores boundary in summary api test. 2018-04-17 18:37:51 -07:00
util.go Move to a structured status for dynamic Kubelet config 2018-05-15 11:25:12 -07:00
volume_manager_test.go Port e2e tests for multi architecture 2017-09-01 05:40:52 +05:30