diff options
| author | David Hovey <david@hoveytech.com> | 2019-09-25 16:48:08 -0700 |
|---|---|---|
| committer | David Hovey <david@hoveytech.com> | 2019-09-25 16:48:08 -0700 |
| commit | 72c7370548a65efcea9a9ba57c59cd10fa6e7530 (patch) | |
| tree | f549d6eb1ea92ea3eb11c062c4aa5c485206c567 /contributors/devel | |
| parent | 1250c9771e9a5f0cb6aab40e746612d5c5a670bb (diff) | |
| parent | 0b070cdc882e6b8f38aae95fcf4c18a983a61f36 (diff) | |
Merge branch 'master' of github.com:kubernetes/community
Diffstat (limited to 'contributors/devel')
54 files changed, 348 insertions, 175 deletions
diff --git a/contributors/devel/OWNERS b/contributors/devel/OWNERS index 4b7cccf3..4daed338 100644 --- a/contributors/devel/OWNERS +++ b/contributors/devel/OWNERS @@ -3,7 +3,6 @@ reviewers: - calebamiles - cblecker - - grodrigues3 - idvoretskyi - Phillels - spiffxp @@ -11,7 +10,6 @@ reviewers: approvers: - calebamiles - cblecker - - grodrigues3 - idvoretskyi - lavalamp - Phillels diff --git a/contributors/devel/README.md b/contributors/devel/README.md index 3b81ef4e..e49af627 100644 --- a/contributors/devel/README.md +++ b/contributors/devel/README.md @@ -57,7 +57,7 @@ Guide](http://kubernetes.io/docs/admin/). * **Annotations** ([Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/)): are for attaching arbitrary non-identifying metadata to objects. Programs that automate Kubernetes objects may use annotations to store small amounts of their state. -* **API Conventions** ([api-conventions.md](api-conventions.md)): +* **API Conventions** ([api-conventions.md](sig-architecture/api-conventions.md)): Defining the verbs and resources used in the Kubernetes API. * **API Client Libraries** ([Client Libraries](https://kubernetes.io/docs/reference/using-api/client-libraries/)): diff --git a/contributors/devel/api-conventions.md b/contributors/devel/api-conventions.md deleted file mode 100644 index 91eb7417..00000000 --- a/contributors/devel/api-conventions.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/api_changes.md b/contributors/devel/api_changes.md deleted file mode 100644 index fa654177..00000000 --- a/contributors/devel/api_changes.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/bazel.md b/contributors/devel/bazel.md deleted file mode 100644 index 82aa57d1..00000000 --- a/contributors/devel/bazel.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-testing/bazel.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/cherry-picks.md b/contributors/devel/cherry-picks.md deleted file mode 100644 index 5e587d47..00000000 --- a/contributors/devel/cherry-picks.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/collab.md b/contributors/devel/collab.md deleted file mode 100644 index cdf234d2..00000000 --- a/contributors/devel/collab.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/guide/collab.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/component-config-conventions.md b/contributors/devel/component-config-conventions.md deleted file mode 100644 index 3273f3b8..00000000 --- a/contributors/devel/component-config-conventions.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-architecture/component-config-conventions.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/conformance-tests.md b/contributors/devel/conformance-tests.md deleted file mode 100644 index 414e9727..00000000 --- a/contributors/devel/conformance-tests.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-architecture/conformance-tests.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/container-runtime-interface.md b/contributors/devel/container-runtime-interface.md deleted file mode 100644 index 6b12b564..00000000 --- a/contributors/devel/container-runtime-interface.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-node/container-runtime-interface.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/controllers.md b/contributors/devel/controllers.md deleted file mode 100644 index 725c3dde..00000000 --- a/contributors/devel/controllers.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-api-machinery/controllers.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/cri-container-stats.md b/contributors/devel/cri-container-stats.md deleted file mode 100644 index 10ea700c..00000000 --- a/contributors/devel/cri-container-stats.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-node/cri-container-stats.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/cri-testing-policy.md b/contributors/devel/cri-testing-policy.md deleted file mode 100644 index e0dec073..00000000 --- a/contributors/devel/cri-testing-policy.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-node/cri-testing-policy.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/cri-validation.md b/contributors/devel/cri-validation.md deleted file mode 100644 index 23a04f02..00000000 --- a/contributors/devel/cri-validation.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-node/cri-validation.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/development.md b/contributors/devel/development.md index 6c74f9b5..2312495e 100644 --- a/contributors/devel/development.md +++ b/contributors/devel/development.md @@ -137,9 +137,10 @@ development environment, please [set one up](http://golang.org/doc/code.html). | 1.10 | 1.9.1 | | 1.11 | 1.10.2 | | 1.12 | 1.10.4 | -| 1.13 | 1.11.2 | -| 1.13 | 1.11.4 | -| 1.14+ | 1.12.1 | +| 1.13 | 1.11.13 | +| 1.14+ | 1.12.9 | + +Note that Go 1.13 is not supported yet. Ensure your GOPATH and PATH have been configured in accordance with the Go environment instructions. diff --git a/contributors/devel/e2e-node-tests.md b/contributors/devel/e2e-node-tests.md deleted file mode 100644 index 815fe0b8..00000000 --- a/contributors/devel/e2e-node-tests.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-node/e2e-node-tests.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/e2e-tests.md b/contributors/devel/e2e-tests.md deleted file mode 100644 index f8427634..00000000 --- a/contributors/devel/e2e-tests.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-testing/e2e-tests.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/event-style-guide.md b/contributors/devel/event-style-guide.md deleted file mode 100644 index d91c62ac..00000000 --- a/contributors/devel/event-style-guide.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-instrumentation/event-style-guide.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/flaky-tests.md b/contributors/devel/flaky-tests.md deleted file mode 100644 index 13eb57fb..00000000 --- a/contributors/devel/flaky-tests.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-testing/flaky-tests.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/flexvolume.md b/contributors/devel/flexvolume.md deleted file mode 100644 index f731c6df..00000000 --- a/contributors/devel/flexvolume.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-storage/flexvolume.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/generating-clientset.md b/contributors/devel/generating-clientset.md deleted file mode 100644 index 4141df61..00000000 --- a/contributors/devel/generating-clientset.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-api-machinery/generating-clientset.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/getting-builds.md b/contributors/devel/getting-builds.md deleted file mode 100644 index bbbcfa44..00000000 --- a/contributors/devel/getting-builds.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-release/getting-builds.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/godep.md b/contributors/devel/godep.md deleted file mode 100644 index 6e896b94..00000000 --- a/contributors/devel/godep.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-architecture/godep.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/gubernator.md b/contributors/devel/gubernator.md deleted file mode 100644 index c5361697..00000000 --- a/contributors/devel/gubernator.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-testing/gubernator.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/help-wanted.md b/contributors/devel/help-wanted.md deleted file mode 100644 index 984deb6a..00000000 --- a/contributors/devel/help-wanted.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/guide/help-wanted.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/instrumentation.md b/contributors/devel/instrumentation.md deleted file mode 100644 index 6681740e..00000000 --- a/contributors/devel/instrumentation.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-instrumentation/instrumentation.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/kubectl-conventions.md b/contributors/devel/kubectl-conventions.md deleted file mode 100644 index 4cc1c7e0..00000000 --- a/contributors/devel/kubectl-conventions.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-cli/kubectl-conventions.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first.
\ No newline at end of file diff --git a/contributors/devel/kubelet-cri-networking.md b/contributors/devel/kubelet-cri-networking.md deleted file mode 100644 index 148d9ae6..00000000 --- a/contributors/devel/kubelet-cri-networking.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-node/kubelet-cri-networking.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/kubemark-guide.md b/contributors/devel/kubemark-guide.md deleted file mode 100644 index 719e2c76..00000000 --- a/contributors/devel/kubemark-guide.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-scalability/kubemark-guide.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/logging.md b/contributors/devel/logging.md deleted file mode 100644 index a22fc799..00000000 --- a/contributors/devel/logging.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-instrumentation/logging.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/node-performance-testing.md b/contributors/devel/node-performance-testing.md deleted file mode 100644 index e51417ed..00000000 --- a/contributors/devel/node-performance-testing.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-node/node-performance-testing.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/profiling.md b/contributors/devel/profiling.md deleted file mode 100644 index 5c7e5a2e..00000000 --- a/contributors/devel/profiling.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-scalability/profiling.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/release.md b/contributors/devel/release.md deleted file mode 100644 index 129efc96..00000000 --- a/contributors/devel/release.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-release/release.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/scheduler.md b/contributors/devel/scheduler.md deleted file mode 100644 index 479f5136..00000000 --- a/contributors/devel/scheduler.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-scheduling/scheduler.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/scheduler_algorithm.md b/contributors/devel/scheduler_algorithm.md deleted file mode 100644 index a64a2c3b..00000000 --- a/contributors/devel/scheduler_algorithm.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-scheduling/scheduler_algorithm.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/sig-architecture/api-conventions.md b/contributors/devel/sig-architecture/api-conventions.md index f00d7c87..57fbfaad 100644 --- a/contributors/devel/sig-architecture/api-conventions.md +++ b/contributors/devel/sig-architecture/api-conventions.md @@ -86,6 +86,12 @@ word names ("extensions", "apps"), and any group name ending in "*.k8s.io" for its sole use. When choosing a group name, we recommend selecting a subdomain your group or organization owns, such as "widget.mycompany.com". +Version strings should match +[DNS_LABEL](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/identifiers.md) +format. + + + Resource collections should be all lowercase and plural, whereas kinds are CamelCase and singular. Group names must be lower case and be valid DNS subdomains. diff --git a/contributors/devel/sig-architecture/api_changes.md b/contributors/devel/sig-architecture/api_changes.md index 8bf99957..8125bd88 100644 --- a/contributors/devel/sig-architecture/api_changes.md +++ b/contributors/devel/sig-architecture/api_changes.md @@ -930,6 +930,9 @@ The preferred approach adds an alpha field to the existing object, and ensures i 3. Before persisting the object to storage, clear disabled alpha fields on create, and on update if the existing object does not already have a value in the field. This prevents new usage of the feature while it is disabled, while ensuring existing data is preserved. +Ensuring existing data is preserved is needed so that when the feature is enabled by default in a future version *n* +and data is unconditionally allowed to be persisted in the field, an *n-1* API server +(with the feature still disabled by default) will not drop the data on update. The recommended place to do this is in the REST storage strategy's PrepareForCreate/PrepareForUpdate methods: ```go diff --git a/contributors/devel/sig-architecture/conformance-tests.md b/contributors/devel/sig-architecture/conformance-tests.md index c3069402..919e7cd9 100644 --- a/contributors/devel/sig-architecture/conformance-tests.md +++ b/contributors/devel/sig-architecture/conformance-tests.md @@ -33,6 +33,9 @@ specifically, a test is eligible for promotion to conformance if: - it tests only GA, non-optional features or APIs (e.g., no alpha or beta endpoints, no feature flags required, no deprecated features) +- it does not require direct access to kubelet's API to pass (nor does it + require indirect access via the API server node proxy endpoint); it MAY + use the kubelet API for debugging purposes upon failure - it works for all providers (e.g., no `SkipIfProviderIs`/`SkipUnlessProviderIs` calls) - it is non-privileged (e.g., does not require root on nodes, access to raw @@ -48,12 +51,13 @@ specifically, a test is eligible for promotion to conformance if: - it passes against the appropriate versions of kubernetes as spelled out in the [conformance test version skew policy] - it is stable and runs consistently (e.g., no flakes), and has been running - for at least one release cycle + for at least two weeks - new conformance tests or updates to conformance tests for additional scenarios are only allowed before code freeze dates set by the release team to allow enough soak time of the changes and gives folks a chance to kick the tires either in the community CI or their own infrastructure to make sure the tests are robust +- it has a name that is a literal string Examples of features which are not currently eligible for conformance tests: @@ -242,7 +246,8 @@ To promote a test to the conformance test suite, open a PR as follows: than the `framework.It()` function - adds a comment immediately before the `ConformanceIt()` call that includes all of the required [conformance test comment metadata] - - adds the test name to the [conformance.txt] file + - `go run test/conformance/walk.go test/e2e > test/conformance/testdata/conformance.txt` + adds the test name to the [conformance.txt] file - add the PR to SIG Architecture's [Conformance Test Review board] in the To Triage column @@ -287,7 +292,7 @@ framework.ConformanceIt("it should print the output to logs", func() { }) ``` -The corresponding portion of the Kubernetes Conformance Documentfor this test +The corresponding portion of the Kubernetes Conformance Document for this test would then look like this: > ## [Kubelet: log output](https://github.com/kubernetes/kubernetes/tree/release-1.9/test/e2e_node/kubelet_test.go#L47) diff --git a/contributors/devel/sig-instrumentation/instrumentation.md b/contributors/devel/sig-instrumentation/instrumentation.md index b0a11193..7595b436 100644 --- a/contributors/devel/sig-instrumentation/instrumentation.md +++ b/contributors/devel/sig-instrumentation/instrumentation.md @@ -90,7 +90,8 @@ apply additionally. ## Naming -Metrics added directly by application or package code should have a unique name. +General [metric and label naming best practices](https://prometheus.io/docs/practices/naming/) apply. +Beyond that, metrics added directly by application or package code should have a unique name. This avoids collisions of metrics added via dependencies. They also clearly distinguish metrics collected with different semantics. This is solved through prefixes: diff --git a/contributors/devel/sig-node/container-runtime-interface.md b/contributors/devel/sig-node/container-runtime-interface.md index 84dcddde..3941c942 100644 --- a/contributors/devel/sig-node/container-runtime-interface.md +++ b/contributors/devel/sig-node/container-runtime-interface.md @@ -3,10 +3,12 @@ ## What is CRI? CRI (_Container Runtime Interface_) consists of a -[protobuf API](https://git.k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto), specifications/requirements (to-be-added), +[protobuf API](https://git.k8s.io/kubernetes/staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.proto), and [libraries](https://git.k8s.io/kubernetes/pkg/kubelet/server/streaming) -for container runtimes to integrate with kubelet on a node. CRI is currently in Alpha. +for container runtimes to integrate with kubelet on a node. The CRI API is +currently in Alpha, and the CRI-Docker integration is used by default as of +Kubernetes 1.7+. In the future, we plan to add more developer tools such as the CRI validation tests. @@ -26,14 +28,7 @@ pluggable container runtimes and build a healthier ecosystem. ## How to use CRI? -For Kubernetes 1.6+: - -1. Start the image and runtime services on your node. You can have a single - service acting as both image and runtime services. -2. Set the kubelet flags - - Pass the unix socket(s) to which your services listen to kubelet: - `--container-runtime-endpoint` and `--image-service-endpoint`. - - Use the "remote" runtime by `--container-runtime=remote`. +See the [CRI installation documentation](https://kubernetes.io/docs/setup/cri/). CRI is still young and we are actively incorporating feedback from developers to improve the API. Although we strive to maintain backward compatibility, @@ -54,7 +49,6 @@ The old, pre-CRI Docker integration was removed in 1.7. The Kubernetes 1.5 [blog post on CRI](https://kubernetes.io/blog/2016/12/container-runtime-interface-cri-in-kubernetes/) serves as a general introduction. - Below is a mixed list of CRI specifications/requirements, design docs and proposals. We are working on adding more documentation for the API. @@ -74,7 +68,7 @@ proposals. We are working on adding more documentation for the API. ## [Status update](#status-update) ### Kubernetes v1.7 release (Docker-CRI integration GA, container metrics API) - - The Docker CRI integration has been promoted to GA. + - The Docker CRI integration has been promoted to GA. - The legacy, non-CRI Docker integration has been completely removed from Kubelet. The deprecated `--enable-cri` flag has been removed. - CRI has been extended to support collecting container metrics from the @@ -104,6 +98,9 @@ default in Kubelet**. #### [CRI known issues](#cri-1.5-known-issues): +Note, these are known issues as of the 1.5 release. They may or may not have +been fixed since. + - [#27097](https://github.com/kubernetes/kubernetes/issues/27097): Container metrics are not yet defined in CRI. - [#36401](https://github.com/kubernetes/kubernetes/issues/36401): The new @@ -118,6 +115,9 @@ default in Kubelet**. #### [Docker CRI integration known issues](#docker-cri-1.5-known-issues) +Note, these are known issues as of the 1.5 release. They may or may not have +been fixed since. + - Docker compatibility: Support only Docker v1.11 and v1.12. - Network: - [#35457](https://github.com/kubernetes/kubernetes/issues/35457): Does diff --git a/contributors/devel/sig-node/cri-container-stats.md b/contributors/devel/sig-node/cri-container-stats.md index c72f2c8b..a760d404 100644 --- a/contributors/devel/sig-node/cri-container-stats.md +++ b/contributors/devel/sig-node/cri-container-stats.md @@ -115,7 +115,10 @@ behind it.* ## Status -The container metrics calls are added to CRI in Kubernetes 1.7, but Kubelet does not -yet use it to gather metrics from the runtime. We plan to enable Kubelet to -optionally consume the container metrics from the API in 1.8. - +The container metrics calls were added to CRI in Kubernetes 1.7, but Kubelet did not +yet use it to gather metrics from the runtime. In Kubernetes 1.8, Kubelet was +given the option to [consume the container metrics using CRI +stats](https://github.com/kubernetes/kubernetes/pull/51557). See the +`pkg/kubelet/cadvisor.go#UsingLegacyCadvisorStats` +[function](https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/cadvisor/util.go#L73) +for more information on how Kubelet determines the proper metrics source. diff --git a/contributors/devel/sig-node/e2e-node-tests.md b/contributors/devel/sig-node/e2e-node-tests.md index 4f3327cb..31c0459c 100644 --- a/contributors/devel/sig-node/e2e-node-tests.md +++ b/contributors/devel/sig-node/e2e-node-tests.md @@ -148,6 +148,30 @@ test in parallel against different instances of the same image. make test-e2e-node REMOTE=true INSTANCE_PREFIX="my-prefix" ``` +## Run tests using a custom image config + +This is useful if you want to test out different runtime configurations. First, make a local +(temporary) copy of the base image config from the test-infra repo: +https://github.com/kubernetes/test-infra/tree/master/jobs/e2e_node + +Make your desired modifications to the config, and update data paths to be absolute paths to the +relevant files on your local machine (e.g. prepend your home directory path to each). For example: + +```diff + images: + cos-stable: + image_regex: cos-stable-60-9592-84-0 + project: cos-cloud +- metadata: "user-data</go/src/github.com/containerd/cri/test/e2e_node/init.yaml,containerd-configure-sh</go/src/github.com/containerd/cri/cluster/gce/configure.sh,containerd-extra-init-sh</go/src/github.com/containerd/cri/test/e2e_node/gci-init.sh,containerd-env</workspace/test-infra/jobs/e2e_node/containerd/cri-master/env,gci-update-strategy=update_disabled" ++ metadata: "user-data</home/tallclair/go/src/github.com/containerd/cri/test/e2e_node/init.yaml,containerd-configure-sh</home/tallclair/go/src/github.com/containerd/cri/cluster/gce/configure.sh,containerd-extra-init-sh</home/tallclair/go/src/github.com/containerd/cri/test/e2e_node/gci-init.sh,containerd-env</home/tallclair/workspace/test-infra/jobs/e2e_node/containerd/cri-master/env,gci-update-strategy=update_disabled" +``` + +Finally, run the tests with your custom config: + +```sh +make test-e2e-node REMOTE=true IMAGE_CONFIG_FILE="<local file>" [...] +``` + # Additional Test Options for both Remote and Local execution ## Only run a subset of the tests diff --git a/contributors/devel/sig-release/cherry-picks.md b/contributors/devel/sig-release/cherry-picks.md index 934111a3..aad88ac6 100644 --- a/contributors/devel/sig-release/cherry-picks.md +++ b/contributors/devel/sig-release/cherry-picks.md @@ -31,37 +31,102 @@ branches. * You will need to run the cherry-pick script separately for each patch release you want to cherry-pick to. * Your cherry-pick PR will immediately get the `do-not-merge/cherry-pick-not-approved` label. + [Normal rules apply for code merge](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md#tldr), + with some additional caveats outlined in the next section of this document. + +## Cherry-pick Review + +As with any other PR, code OWNERS review (`/lgtm`) and approve (`/approve`) on +cherry-pick PRs as they deem appropriate. + +The same release note requirements apply as normal pull requests, +except the release note stanza will auto-populate from the master +branch pull request from which the cherry-pick originated. If this +is unsuccessful the `do-not-merge/release-note-label-needed` label +will be applied and the cherry-pick author must edit the pull request +description to [add a release note](https://git.k8s.io/community/contributors/guide/release-notes.md) +or include in a comment the `/release-note-none` command. + +Cherry-pick pull requests are reviewed slightly differently than normal +pull requests on the master branch in that they: + + * Are by default expected to be `kind/bug` and `priority/critical-urgent`. + + * Milestones must be set on the PR reflecting the milestone for the target + release branch (for example, milestone v1.11 for a cherry-pick onto branch + release-1.11). This is normally done for you by automation. + + * Have one additional level of review in that they must be approved specifically + for cherry-pick by branch approvers. + The [Branch Manager](https://git.k8s.io/sig-release/release-team/role-handbooks/branch-manager) will triage PRs targeted to the next .0 minor release branch up until the release, while the [Patch Release Team](https://git.k8s.io/sig-release/release-team/role-handbooks/patch-release-manager) will handle all cherry-picks to patch releases. - Normal rules apply for code merge. - * Reviewers `/lgtm` and owners `/approve` as they deem appropriate. - * Milestones on cherry-pick PRs should be the milestone for the target - release branch (for example, milestone 1.11 for a cherry-pick onto - release-1.11). - * During code freeze, to get attention on a cherry-pick by the current - release team members see the [appropriate release folder](https://git.k8s.io/sig-release/releases) - for the target release's team contact information. You may cc them with - `<@githubusername>` on your cherry-pick PR. + + The [Branch Manager](https://git.k8s.io/sig-release/release-team/role-handbooks/branch-manager) + or the [Patch Release Team](https://git.k8s.io/sig-release/release-team/role-handbooks/patch-release-manager) + are the final authority on branch approval by removing the `do-not-merge/cherry-pick-not-approved` + label and triggering a merge into the target branch. + + The team scrubs through incoming cherry-picks on at least a weekly basis, daily during + burndown ahead of a .0 release. Ahead of point releases, reminders of the + cherry-pick deadline will be sent out to the community. Cherry-pick PRs are + often metered into the release branches to give more deliberate CI signal across + changes. For this reason your cherry-pick must be ready to merge ahead of + the cherry-pick deadline, but those candidates may be merged during the days + between the deadline and release. + + Open cherry-pick PRs which do not land in the current release will + continue to be tracked by the team for consideration for inclusion in a next + patch release. + + If you are concerned about the status of your cherry-pick, err on the + side of overcommunicating and reach out to the branch reviewer(s): + + * During code freeze or after code thaw and ahead of a .0 release, to get attention on a cherry-pick by the current + release team members see the [appropriate release folder](https://git.k8s.io/sig-release/releases) + for the target release's team contact information. You may cc them with + `@<githubusername>` on your cherry-pick PR. + * For prior branches, check the [patch release schedule](https://git.k8s.io/sig-release/releases/patch-releases.md), which includes contact information for the patch release team. -## Cherry-pick Review +Compared to the normal master branch's merge volume across time, +the release branches see one or two orders of magnitude less PRs. +This is because there is an order or two of magnitude higher scrutiny. +Again the emphasis is on critical bug fixes, eg: + * Loss of data + * Memory corruption + * Panic, crash, hang + * Security -Cherry-pick pull requests have an additional requirement compared to normal pull -requests. -They must be approved specifically for cherry-pick by Approvers. -The [Branch Manager](https://git.k8s.io/sig-release/release-team/role-handbooks/branch-manager) -or the [Patch Release Team](https://git.k8s.io/sig-release/release-team/role-handbooks/patch-release-manager) -are the final authority on removing the `do-not-merge/cherry-pick-not-approved` -label and triggering a merge into the target branch. - -Cherry-pick pull requests follow the same release note requirements as -other pull requests, except the release note stanza will auto-populate from -the master branch pull request from which the cherry-pick originated. If -this is unsuccessful the `do-not-merge/release-note-label-needed` label -will be applied and the cherry-pick author must edit the pull request -description to [add a release note](https://git.k8s.io/community/contributors/guide/release-notes.md). +If you are proposing a cherry-pick and it is not a clear and obvious +critical bug fix, please reconsider. If upon reflection you wish to +continue, bolster your case by supplementing your PR with, eg: + + * A GitHub issue detailing the problem + + * Scope of the change + + * Risks of adding a change + + * Risks of associated regression + + * Testing performed, test cases added + + * Key stakeholder SIG reviewers/approvers attesting to their confidence in the + change being a required backport + + * If the change is in cloud-provider-specific platform code (which is in the + process of being moved out of core Kubernetes), describe the customer impact, + how the issue escaped initial testing, remediation taken to prevent similar + future escapes, and why the change cannot be carried in your downstream + fork of the Kubernetes project branches. It is critical that our full + community is actively engaged on enhancements in the project. If a + released feature was not enabled on a particular provider's platform, this + is a community miss that needs to be resolved in the master branch for + subsequent releases. Such enabling will not be backported to the patch + release branches. ## Searching for Cherry-picks diff --git a/contributors/devel/sig-scalability/hollow-node_simplified_template.yaml b/contributors/devel/sig-scalability/hollow-node_simplified_template.yaml new file mode 100644 index 00000000..8d33982e --- /dev/null +++ b/contributors/devel/sig-scalability/hollow-node_simplified_template.yaml @@ -0,0 +1,93 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: hollow-node + namespace: kubemark +spec: + replicas: {{numreplicas}} + selector: + name: hollow-node + template: + metadata: + labels: + name: hollow-node + spec: + initContainers: + - name: init-inotify-limit + image: docker.io/busybox:latest + command: ['sysctl', '-w', 'fs.inotify.max_user_instances=200'] + securityContext: + privileged: true + volumes: + - name: kubeconfig-volume + secret: + secretName: kubeconfig + - name: logs-volume + hostPath: + path: /var/log + containers: + - name: hollow-kubelet + image: {{kubemark_image_registry}}/kubemark:{{kubemark_image_tag}} + ports: + - containerPort: 4194 + - containerPort: 10250 + - containerPort: 10255 + env: + - name: CONTENT_TYPE + valueFrom: + configMapKeyRef: + name: node-configmap + key: content.type + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + command: + - /bin/sh + - -c + - /kubemark --morph=kubelet --name=$(NODE_NAME) --kubeconfig=/kubeconfig/kubelet.kubeconfig $(CONTENT_TYPE) --alsologtostderr --v=2 + volumeMounts: + - name: kubeconfig-volume + mountPath: /kubeconfig + readOnly: true + - name: logs-volume + mountPath: /var/log + resources: + requests: + cpu: 20m + memory: 50M + securityContext: + privileged: true + - name: hollow-proxy + image: {{kubemark_image_registry}}/kubemark:{{kubemark_image_tag}} + env: + - name: CONTENT_TYPE + valueFrom: + configMapKeyRef: + name: node-configmap + key: content.type + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + command: + - /bin/sh + - -c + - /kubemark --morph=proxy --name=$(NODE_NAME) --use-real-proxier=false --kubeconfig=/kubeconfig/kubeproxy.kubeconfig $(CONTENT_TYPE) --alsologtostderr --v=2 + volumeMounts: + - name: kubeconfig-volume + mountPath: /kubeconfig + readOnly: true + - name: logs-volume + mountPath: /var/log + resources: + requests: + cpu: 20m + memory: 50M + tolerations: + - effect: NoExecute + key: node.kubernetes.io/unreachable + operator: Exists + - effect: NoExecute + key: node.kubernetes.io/not-ready + operator: Exists diff --git a/contributors/devel/sig-scalability/kubemark-setup-guide.md b/contributors/devel/sig-scalability/kubemark-setup-guide.md new file mode 100644 index 00000000..f2f5a81f --- /dev/null +++ b/contributors/devel/sig-scalability/kubemark-setup-guide.md @@ -0,0 +1,75 @@ +## Introduction +This document serves to understand how to set up kubemark cluster given that a base cluster (to run hollow-node pods) and separate master (to act as master for the hollow nodes) are already present. + +## Precondition +You need kubemark master and external cluster to set up a kubemark cluster. + +The functions are as follows: + +- kubemark master: can be StandAlone or HA, used to be the kubemark cluster's master +- external cluster: used to create hollow nodes for the kubemark cluster + +## Steps: +1. Build kubemark image + +If you want to build/use your own kubemark image, do as follows. Otherwise skip this section and just use the latest image `staging-k8s.gcr.io/kubemark:latest` from public repo. + +- i. pull kubernetes code + +``` +cd $GOPATH/src/k8s.io/ +git clone git@github.com:kubernetes/kubernetes.git +``` + +- ii. build kubemark binary + +``` +./hack/build-go.sh cmd/kubemark/ +cp $GOPATH/src/k8s.io/kubernetes/_output/bin/kubemark $GOPATH/src/k8s.io/kubernetes/cluster/images/kubemark/ +``` + +- iii. build kubemark image + +``` +cd $GOPATH/src/k8s.io/kubernetes/cluster/images/kubemark/ +make build +``` + +Then you can get the image named `staging-k8s.gcr.io/kubemark:latest` locally. + +- iv. push kubemark image + +``` +docker tag staging-k8s.gcr.io/kubemark:latest {{kubemark_image_registry}}/kubemark:{{kubemark_image_tag}} +docker push {{kubemark_image_registry}}/kubemark:{{kubemark_image_tag}} +``` + +2. Create hollow nodes + +- i. create namespace, configmap and secret + +Copy kubemark master's kubeconfig which is used to configure access, put it on a master of external cluster, rename it as config. + +``` +kubectl create ns kubemark +kubectl create configmap node-configmap -n kubemark --from-literal=content.type="test-cluster" +kubectl create secret generic kubeconfig --type=Opaque --namespace=kubemark --from-file=kubelet.kubeconfig=config --from-file=kubeproxy.kubeconfig=config +``` + +- ii. apply yaml to create hollow nodes + +You can use `hollow-node_simplified_template.yaml` in the current directory, or use `hollow-node_template.yaml` in `kubernetes/test/kubemark/resources/`. + +Note: + +- the parameters `{{numreplicas}}` means the number of hollow nodes in the kubemark cluster +- the parameters `{{numreplicas}}`, `{{kubemark_image_registry}}` and `{{kubemark_image_tag}}` need to be filled in the simplified template +- your external cluster should have enough resources to be able to run `{{numreplicas}}` no. of hollow-node pods + +``` +kubectl create -f hollow-node_simplified_template.yaml +``` + +Waiting for these hollow-node pods to be running. Then you can see these pods register as kubemark master's nodes. + +Finally, kubemark master and external cluster set up the kubemark cluster. diff --git a/contributors/devel/sig-scheduling/scheduler.md b/contributors/devel/sig-scheduling/scheduler.md index 486b04a9..03df88fe 100644 --- a/contributors/devel/sig-scheduling/scheduler.md +++ b/contributors/devel/sig-scheduling/scheduler.md @@ -84,7 +84,7 @@ scheduling policies to apply, and can add new ones. The policies that are applied when scheduling can be chosen in one of two ways. The default policies used are selected by the functions `defaultPredicates()` and `defaultPriorities()` in [pkg/scheduler/algorithmprovider/defaults/defaults.go](http://releases.k8s.io/HEAD/pkg/scheduler/algorithmprovider/defaults/defaults.go). -However, the choice of policies can be overridden by passing the command-line flag `--policy-config-file` to the scheduler, pointing to a JSON file specifying which scheduling policies to use. See [examples/scheduler-policy-config.json](https://git.k8s.io/examples/staging/scheduler-policy-config.json) for an example +However, the choice of policies can be overridden by passing the command-line flag `--policy-config-file` to the scheduler, pointing to a JSON file specifying which scheduling policies to use. See [examples/scheduler-policy-config.json](https://git.k8s.io/examples/staging/scheduler-policy/scheduler-policy-config.json) for an example config file. (Note that the config file format is versioned; the API is defined in [pkg/scheduler/api](http://releases.k8s.io/HEAD/pkg/scheduler/api/)). Thus to add a new scheduling policy, you should modify [pkg/scheduler/algorithm/predicates/predicates.go](http://releases.k8s.io/HEAD/pkg/scheduler/algorithm/predicates/predicates.go) or add to the directory [pkg/scheduler/algorithm/priorities](http://releases.k8s.io/HEAD/pkg/scheduler/algorithm/priorities/), and either register the policy in `defaultPredicates()` or `defaultPriorities()`, or use a policy config file. diff --git a/contributors/devel/sig-scheduling/scheduler_benchmarking.md b/contributors/devel/sig-scheduling/scheduler_benchmarking.md index dc456e21..1c08b5d8 100644 --- a/contributors/devel/sig-scheduling/scheduler_benchmarking.md +++ b/contributors/devel/sig-scheduling/scheduler_benchmarking.md @@ -11,7 +11,7 @@ To run integration benchmarks use the following command from inside a Kubernetes directory. ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=." +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=." ``` You can also provide a benchmark name in order to run a specific set of @@ -19,9 +19,11 @@ benchmarks. Please refer to [Go documentation on benchmarks](https://golang.org/ for more information. ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=BenchmarkScheduling" +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=BenchmarkScheduling" ``` +> To display benchmark output only, you can append `-alsologtostderr=false -logtostderr=false` to `KUBE_TEST_ARGS`. + These benchmarks are located in `./test/integration/scheduler_perf/scheduler_bench_test.go`. The function names start with `BenchmarkScheduling`. At the beginning of each function there are a few lines in the form of: @@ -51,7 +53,7 @@ it in the `-bench` argument. For example, the following will run only those benchmarks with 5000 nodes and 1000 existing pods. ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=BenchmarkScheduling/5000Nodes/1000Pods" +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=BenchmarkScheduling/5000Nodes/1000Pods" ``` ## Profiling the scheduler @@ -60,7 +62,7 @@ You can get CPU profiling information from the benchmarks by adding a `-cpuprofi to the command above. Example: ```sh -make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=xxx -bench=BenchmarkScheduling -cpuprofile cpu.out" +make test-integration WHAT=./test/integration/scheduler_perf KUBE_TEST_VMODULE="''" KUBE_TEST_ARGS="-run=^$$ -bench=BenchmarkScheduling -cpuprofile cpu.out" ``` After obtaining the CPU profile, you can use `pprof` to view the results. For diff --git a/contributors/devel/sig-testing/bazel.md b/contributors/devel/sig-testing/bazel.md index 6916c0be..4047a54f 100644 --- a/contributors/devel/sig-testing/bazel.md +++ b/contributors/devel/sig-testing/bazel.md @@ -2,22 +2,20 @@ Building and testing Kubernetes with Bazel is supported but not yet default. -Bazel is used to run all Kubernetes PRs on [Prow](https://prow.k8s.io), +Bazel is used to run all Kubernetes PRs on [Prow], as remote caching enables significantly reduced build and test times. Some repositories (such as kubernetes/test-infra) have switched to using Bazel exclusively for all build, test, and release workflows. -Go rules are managed by the [`gazelle`](https://github.com/bazelbuild/rules_go/tree/master/go/tools/gazelle) -tool, with some additional rules managed by the [`kazel`](https://git.k8s.io/repo-infra/kazel) tool. +Go rules are managed by the [`gazelle`][gazelle] +tool, with some additional rules managed by the [`kazel`][kazel] tool. These tools are called via the `hack/update-bazel.sh` script. -Instructions for installing Bazel -can be found [here](https://www.bazel.io/versions/master/docs/install.html). -Please note that until [this Bazel -issue](https://github.com/bazelbuild/rules_docker/issues/454) is fixed, -`/usr/bin/env python` must be python2 in order for all the Bazel commands listed -below to succeed. +Instructions for installing Bazel can be found [here][bazel-install]. +Note that older Bazel versions did not work with Python 3, so we recommend +using version 0.27.0 or newer. If you still have Python-related problems, +please take a look at [this FAQ][bazel-python-faq]. Several convenience `make` rules have been created for common operations: @@ -37,6 +35,12 @@ tests, run $ bazel test //pkg/kubectl/... ``` +[Prow]: https://prow.k8s.io +[bazel-install]: https://www.bazel.io/versions/master/docs/install.html +[kazel]: https://git.k8s.io/repo-infra/kazel +[gazelle]: https://github.com/bazelbuild/rules_go/tree/master/go/tools/gazelle +[bazel-python-faq]: https://github.com/bazelbuild/bazel/issues/7899 + ## Planter If you don't want to install Bazel, you can instead try using the unofficial [Planter](https://git.k8s.io/test-infra/planter) tool, diff --git a/contributors/devel/sig-testing/e2e-tests.md b/contributors/devel/sig-testing/e2e-tests.md index 848662fc..45a2f11b 100644 --- a/contributors/devel/sig-testing/e2e-tests.md +++ b/contributors/devel/sig-testing/e2e-tests.md @@ -545,8 +545,9 @@ stragglers to finish. takes too many resources or restarts nodes), it is labeled `[Serial]`, and should be run in serial as part of a separate suite. - - `[Disruptive]`: If a test restarts components that might cause other tests -to fail or break the cluster completely, it is labeled `[Disruptive]`. Any + - `[Disruptive]`: If a test may impact workloads that it didn't create, + it should be marked as `[Disruptive]`. Examples of disruptive behavior +include, but are not limited to, restarting components or tainting nodes. Any `[Disruptive]` test is also assumed to qualify for the `[Serial]` label, but need not be labeled as both. These tests are not run against soak clusters to avoid restarting components. diff --git a/contributors/devel/sig-testing/testing.md b/contributors/devel/sig-testing/testing.md index ffe066c4..20562495 100644 --- a/contributors/devel/sig-testing/testing.md +++ b/contributors/devel/sig-testing/testing.md @@ -63,7 +63,7 @@ desire. If any unit test fails with a timeout panic (see [#1594](https://github.com/kubernetes/community/issues/1594)) on the testing package, you can increase the `KUBE_TIMEOUT` value as shown below. ```sh -make test KUBE_TIMEOUT="-timeout 300s" +make test KUBE_TIMEOUT="-timeout=300s" ``` ### Set go flags during unit tests diff --git a/contributors/devel/staging.md b/contributors/devel/staging.md deleted file mode 100644 index 81bf52d8..00000000 --- a/contributors/devel/staging.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/strategic-merge-patch.md b/contributors/devel/strategic-merge-patch.md deleted file mode 100644 index a0240159..00000000 --- a/contributors/devel/strategic-merge-patch.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-api-machinery/strategic-merge-patch.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/testing.md b/contributors/devel/testing.md deleted file mode 100644 index d904278d..00000000 --- a/contributors/devel/testing.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-testing/testing.md. - -This file is a placeholder to preserve links. Please remove after 2019-07-01 or the release of kubernetes 1.15, whichever comes first. diff --git a/contributors/devel/writing-good-e2e-tests.md b/contributors/devel/writing-good-e2e-tests.md deleted file mode 100644 index b39208eb..00000000 --- a/contributors/devel/writing-good-e2e-tests.md +++ /dev/null @@ -1,3 +0,0 @@ -This file has moved to https://git.k8s.io/community/contributors/devel/sig-testing/writing-good-e2e-tests.md. - -This file is a placeholder to preserve links. Please remove by April 30, 2019 or the release of kubernetes 1.13, whichever comes first.
\ No newline at end of file |
