Commit Graph

1441 Commits

Author SHA1 Message Date
Wojciech Tyczynski
dbafff3eea Revert "Optimize selector for single-matching items"
This reverts commit f93a270edc.
2017-06-06 23:26:28 +02:00
Clayton Coleman
395399ab3d
Add an AES-CBC mode for encrypt at rest 2017-06-06 16:47:25 -04:00
Kenneth Owens
1a784ef86f Auto generated code for StatefulSet update 2017-06-06 13:47:19 -07:00
Kubernetes Submit Queue
6ed4bc7b97 Merge pull request #46828 from cblecker/links-update
Automatic merge from submit-queue (batch tested with PRs 46718, 46828, 46988)

Update docs/ links to point to main site

**What this PR does / why we need it**:
This updates various links to either point to kubernetes.io or to the kubernetes/community repo instead of the legacy docs/ tree in k/k
Pre-requisite for #46813

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:
```release-note
NONE
```

@kubernetes/sig-docs-maintainers @chenopis @ahmetb @thockin
2017-06-06 11:43:18 -07:00
Kubernetes Submit Queue
6e9ff11582 Merge pull request #46718 from deads2k/crd-08-serialization
Automatic merge from submit-queue (batch tested with PRs 46718, 46828, 46988)

handle unversioned objects for encoding for CRs

Fixes https://github.com/kubernetes/kubernetes/issues/47036

This updates the encoding for "special" types like `Status` when coming back through the CR APIs.  It also closes a bug this allowed to be exposed in validation for CRs

xref: https://github.com/kubernetes/features/issues/95
2017-06-06 11:43:15 -07:00
deads2k
38c25393df test header removal for impersonation 2017-06-06 14:08:23 -04:00
deads2k
bc3434c084 change the default storage location to avoid double prefixing 2017-06-06 13:28:08 -04:00
deads2k
6cb18cae82 remove extra prefix from CRs 2017-06-06 13:25:54 -04:00
Clayton Coleman
23cd6c52ba
Add a secretbox implementation for encryption
Uses nacl/secretbox
2017-06-06 10:50:38 -04:00
Clayton Coleman
868cdeca8a
bump(golang.org/x/crypto/nacl):d172538b2cfce0c13cee31e647d0367aa8cd2486 2017-06-06 10:50:37 -04:00
Kubernetes Submit Queue
cc568f6433 Merge pull request #45666 from ilackarms/compression
Automatic merge from submit-queue

add gzip compression to GET and LIST requests

Fixes https://github.com/kubernetes/kubernetes/issues/44164



Enable compressed response bodies for non-watch GET and LIST requests on API Objects.

**What this PR does / why we need it**: Adds compression via Accept-Encoding header, returns Content-Encoding header on responses (only supports gzip at this time). Enabled solely for GET and LIST requests which can return very large response bodies. 

**Special notes for your reviewer**:

See https://github.com/kubernetes/kubernetes/issues/44164 for discussion.

**Release note**:

```release-note-
```
2017-06-06 07:43:03 -07:00
deads2k
6c391607de handle unversioned objects for encoding for CRs 2017-06-06 10:20:50 -04:00
deads2k
c0aaf94159 enforce proper TypeMeta 2017-06-06 10:09:37 -04:00
stuart.warren
af28a43a65 commit staging godeps 2017-06-06 15:01:56 +01:00
Kubernetes Submit Queue
04477ff90c Merge pull request #46775 from sttts/sttts-rename-kube-apiext-server
Automatic merge from submit-queue

Rename {kube- ->}apiextensions-{-> api}server

Completely mechanical renaming, as preparation of the repo sync. This repo is generic, the prefix does not make sense.

Part of issue https://github.com/kubernetes/kubernetes/issues/46702

TODOs
- [ ] Waiting for the submit queue to settle, then rebase.
2017-06-06 06:46:34 -07:00
Scott Weiss
fc650a54d0 add gzip compression to GET and LIST requests
closes #44164
2017-06-06 08:42:21 -04:00
Kubernetes Submit Queue
5633d7595c Merge pull request #46854 from CaoShuFeng/jijacker
Automatic merge from submit-queue (batch tested with PRs 46897, 46899, 46864, 46854, 46875)

[advanced audit] fix invalid status code for hijacker

Fixes #47035

When using hijacker to take over the connection, the http status code
should be 101 not 200.

PS:
Use "kubectl exec" as an example to review this change.

Part of https://github.com/kubernetes/features/issues/22
2017-06-06 05:22:47 -07:00
Kubernetes Submit Queue
f01fd32301 Merge pull request #46974 from liggitt/cert-filename
Automatic merge from submit-queue (batch tested with PRs 46112, 46764, 46727, 46974, 46968)

Avoid * in filenames

Fixes #46958
2017-06-06 03:17:46 -07:00
Kubernetes Submit Queue
b238d3e6c5 Merge pull request #46764 from CaoShuFeng/audit-empty-policy-file
Automatic merge from submit-queue (batch tested with PRs 46112, 46764, 46727, 46974, 46968)

empty audit policy file is legal configuration

Empty audit policy file or policy file contains only comments means
using default audit level for all requests.

**Release note**:

```
NONE
```

Part of https://github.com/kubernetes/features/issues/22
2017-06-06 03:17:41 -07:00
Kubernetes Submit Queue
8da89aeb00 Merge pull request #46112 from sttts/sttts-unversioned-to-meta
Automatic merge from submit-queue

apimachinery: move unversioned registration to metav1

Follow-up from the discussions in https://github.com/kubernetes/kubernetes/pull/43027:

We need `Status` as unversioned type which is hardcoded to `GroupVersion{Group: "", Version: "v1"}`. If the core group is not in the scheme, we miss `Status`.

Fixing https://github.com/kubernetes/kubernetes/issues/47030.
2017-06-06 03:13:01 -07:00
Dr. Stefan Schimanski
33e50da9f4 Rename {kube- ->}apiextensions-{-> api}server 2017-06-06 12:06:31 +02:00
Kubernetes Submit Queue
cb681321c7 Merge pull request #45686 from jingxu97/May/emptyDir
Automatic merge from submit-queue

Add EmptyDir volume capacity isolation

This PR adds the support for isolating the emptyDir volume use. If user
sets a size limit for emptyDir volume, kubelet's eviction manager monitors its usage
and evict the pod if the usage exceeds the limit.

This feature is part of local storage capacity isolation and described in the proposal kubernetes/community#306

**Release note**:

```release-note
Alpha feature: allows users to set storage limit to isolate EmptyDir volumes. It enforces the limit by evicting pods that exceed their storage limits  
```
2017-06-05 23:08:58 -07:00
Christoph Blecker
1bdc7a29ae
Update docs/ URLs to point to proper locations 2017-06-05 22:13:54 -07:00
Kubernetes Submit Queue
a552ee61a0 Merge pull request #46672 from smarterclayton/initializer_with_config
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

Select initializers from the dynamic configuration

Continues #36721

kubernetes/features#209
2017-06-05 20:27:50 -07:00
Kubernetes Submit Queue
5ece6470b3 Merge pull request #46717 from timstclair/audit-proto
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

Generate protobuf for the audit API

Add protobuf generation & annotations for the advanced auditing API. We're not using them directly now, but settling on the field numbering will help with some 3rd party integrations.

For kubernetes/features#22

/cc @ihmccreery
2017-06-05 20:27:48 -07:00
Kubernetes Submit Queue
6b50a5cb39 Merge pull request #43338 from fabianofranz/group_aliases_in_api
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

Add group alias names to API resources to allow discovery

**What this PR does / why we need it**: 
Adds `GroupNames []string` to API resources, which represents the list of group aliases that every resource belongs to. 

Partially fixes https://github.com/kubernetes/kubernetes/issues/41353

This moves the logic of "all" (which currently [translates](fbc94c0896/pkg/kubectl/cmd/util/shortcut_restmapper.go (L106)) to "pods,replicationcontrollers,services,...") to the server-side. Will allow clients like `kubectl` to discover group aliases instead of having it hardcoded and the API server to better handle consistency across multiple clients, version skew, etc; and will make "all" un-special and allow other groups to be created.

As a follow-up we'll patch `kubectl` to make groups aliases discoverable and the hardcoded list a fallback while we still have to support it.

Related to https://github.com/kubernetes/kubernetes/pull/42595#issuecomment-286839885.

**Release note**:
```release-note
Adds the `Categories []string` field to API resources, which represents the list of group aliases (e.g. "all") that every resource belongs to. 
```
@kubernetes/sig-api-machinery-misc @deads2k @bgrant0607
2017-06-05 20:27:46 -07:00
Kubernetes Submit Queue
f1dfda1fe6 Merge pull request #46967 from deads2k/crd-11-ns-wait
Automatic merge from submit-queue (batch tested with PRs 46967, 46992, 43338, 46717, 46672)

deflake CRD watch tests

Fixes https://github.com/kubernetes/kubernetes/issues/46446. Again...

This flake window is caused by the watch cache starting late.  This pull updates the test to do fancy list/create/watch/delete semantics to catch the problem.  In the field, this should be treated the same as any other "resourceVersion tool old" error and handled with a list/watch.  The test cannot be level driven, it is actually testing the edge behavior, so we have to do something weird like this.

@sttts @liggitt let's try this again...
2017-06-05 20:27:42 -07:00
Kubernetes Submit Queue
61cd3fca01 Merge pull request #46683 from atlassian/fix-untructured-owner-references
Automatic merge from submit-queue (batch tested with PRs 44883, 46836, 46765, 46683, 46050)

Fix round-trip of Unstructured.OwnerReferences

**What this PR does / why we need it**:
Previously `setOwnerReference()` was storing pointers but `extractOwnerReference()` is expecting pointer fields as plain values so it cannot read those pointers. And hence you cannot read what you've just stored.

**Which issue this PR fixes**
#46817

**Special notes for your reviewer**:
This is similar to #43346.

**Release note**:
```release-note
NONE
```
2017-06-05 18:43:13 -07:00
Kubernetes Submit Queue
0589c55e7c Merge pull request #46836 from CaoShuFeng/legacy_audit
Automatic merge from submit-queue (batch tested with PRs 44883, 46836, 46765, 46683, 46050)

update copyed doc for advanced audit

doc for WithAudit is copyed from WithLegacyAudit, it's out of date.
This change update doc for these two functions.

**Release note**:

```
NONE
```
2017-06-05 18:43:08 -07:00
Kubernetes Submit Queue
56da71bb34 Merge pull request #46844 from sttts/sttts-invalid-query-params
Automatic merge from submit-queue (batch tested with PRs 46972, 42829, 46799, 46802, 46844)

apiserver: return BadRequest 400 for invalid query params

Fixes https://github.com/kubernetes/kubernetes/issues/39730
Replaces #40773.
2017-06-05 17:46:57 -07:00
Kubernetes Submit Queue
f893cddfba Merge pull request #46460 from sakshamsharma/location_transformer
Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)

Add configuration for encryption providers

## Additions

Allows providing a configuration file (using flag `--experimental-encryption-provider-config`) to use the existing AEAD transformer (with multiple keys) by composing mutable transformer, prefix transformer (for parsing providerId), another prefix transformer (for parsing keyId), and AES-GCM transformers (one for each key). Multiple providers can be configured using the configuration file.

Example configuration:
```
kind: EncryptionConfig
apiVersion: v1
resources:
  - resources:
    - namespaces
    providers:
    - aes:
        keys:
        - name: key1
          secret: c2vjcmv0iglzihnly3vyzq==
        - name: key2
          secret: dghpcybpcybwyxnzd29yza==
    - identity: {}
```

Need for configuration discussed in:
#41939
[Encryption](3418b4e4c6/contributors/design-proposals/encryption.md)

**Pathway of a read/write request**:
1. MutableTransformer
2. PrefixTransformer reads the provider-id, and passes the request further if that matches.
3. PrefixTransformer reads the key-id, and passes the request further if that matches.
4. GCMTransformer tries decrypting and authenticating the cipher text in case of reads. Similarly for writes.

## Caveats
1. To keep the command line parameter parsing independent of the individual transformer's configuration, we need to convert the configuration to an `interface{}` and manually parse it in the transformer. Suggestions on better ways to do this are welcome.

2. Flags `--encryption-provider` and `--encrypt-resource` (both mentioned in [this document](3418b4e4c6/contributors/design-proposals/encryption.md) ) are not supported in this because they do not allow more than one provider, and the current format for the configuration file possibly supersedes their functionality.

3. Currently, it can be tested by adding `--experimental-encryption-provider-config=config.yml` to `hack/local-up-cluster.sh` on line 511, and placing the above configuration in `config.yml` in the root project directory.

Previous discussion on these changes:
https://github.com/sakshamsharma/kubernetes/pull/1

@jcbsmpsn @destijl @smarterclayton

## TODO
1. Investigate if we need to store keys on disk (per [encryption.md](3418b4e4c6/contributors/design-proposals/encryption.md (option-1-simple-list-of-keys-on-disk)))
2. Look at [alpha flag conventions](https://github.com/kubernetes/kubernetes/blob/master/pkg/features/kube_features.go)
3. Need to reserve `k8s:enc` prefix formally for encrypted data. Else find a better way to detect transformed data.
2017-06-05 16:43:48 -07:00
Kubernetes Submit Queue
39d548f40c Merge pull request #46816 from dashpole/update_godep
Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)

Update cAdvisor version to v0.26.0

issue: #46658

I have requested a 1 day exception for code freeze.

/assign @dchen1107 

```release-note
Fix disk partition discovery for brtfs
Add ZFS support
Add overlay2 storage driver support
```
2017-06-05 16:43:43 -07:00
Fabiano Franz
39e5812848 Update generated 2017-06-05 20:32:30 -03:00
Fabiano Franz
058f9b4f32 Add group alias names to discovery in registry 2017-06-05 20:18:12 -03:00
Fabiano Franz
f07bf05f02 Add group alias names to discovery in API resources 2017-06-05 20:18:12 -03:00
Tim St. Clair
d7d5435720
Generate protobuf for the audit API 2017-06-05 16:13:41 -07:00
Clayton Coleman
772ab8e1b4
Load initializers from dynamic config
Handle failure cases on startup gracefully to avoid causing cascading
errors and poor initialization in other components. Initial errors from
config load cause the initializer to pause and hold requests. Return
typed errors to better communicate failures to clients.

Add code to handle two specific cases - admin wants to bypass
initialization defaulting, and mirror pods (which want to bypass
initialization because the kubelet owns their lifecycle).
2017-06-05 19:12:41 -04:00
Jing Xu
0b13aee0c0 Add EmptyDir Volume and local storage for container overlay Isolation
This PR adds two features:
1. add support for isolating the emptyDir volume use. If user
sets a size limit for emptyDir volume, kubelet's eviction manager
monitors its usage
and evict the pod if the usage exceeds the limit.
2. add support for isolating the local storage for container overlay. If
the container's overly usage exceeds the limit defined in container
spec, eviction manager will evict the pod.
2017-06-05 12:05:48 -07:00
Jeff Peeler
08a59530e1 Allow pods to opt out of PodPreset mutation
An annotation in the pod spec of the form:
podpreset.admission.kubernetes.io/exclude: "true"
Will cause the admission controller to skip manipulating the pod spec,
no matter the labelling.

The annotation for a podpreset acting on a pod has also been slightly
modified to contain a podpreset prefix:
podpreset.admission.kubernetes.io/podpreset-{name} = resource version

Fixes #44161
2017-06-05 11:56:30 -04:00
Jordan Liggitt
b5e5e93201
Avoid * in filenames 2017-06-05 11:35:06 -04:00
Solly Ross
c8fdeb022f Update generated autoscaling files
This commit updates the generated autoscaling files to be up-to-date
with the HPA status condition changes.
2017-06-05 11:21:31 -04:00
deads2k
04de3e6794 deflake CRD watch tests 2017-06-05 10:24:20 -04:00
Kubernetes Submit Queue
a72967454d Merge pull request #46734 from mbohlool/aggr
Automatic merge from submit-queue (batch tested with PRs 46734, 46810, 46759, 46259, 46771)

OpenAPI aggregation for kube-aggregator

This PR implements OpenAPI aggregation layer for kube-aggregator. On each API registration, it tries to download swagger.spec of the user api server. On failure it will try again next time (either on another add or get /swagger.* on aggregator server) up to five times. To merge specs, it first remove all unrelated paths from the downloaded spec (anything other than group/version of the API service) and then remove all unused definitions. Adding paths are straightforward as they won't have any conflicts, but definitions will most probably have conflicts. To resolve that, we would reused any definition that is not changed (documentation changes are fine) and rename the definition otherwise.

To use this PR, kube aggregator should have nonResourceURLs (for get verb) to user apiserver.

```release-note
Support OpenAPI spec aggregation for kube-aggregator
```

fixes: #43717
2017-06-05 06:51:20 -07:00
Kubernetes Submit Queue
04acd91a0d Merge pull request #45871 from YuPengZTE/devTestAddKnownTypesIdemPotent
Automatic merge from submit-queue

delete the useless "gv" in Errorf

Signed-off-by: yupengzte <yu.peng36@zte.com.cn>



**What this PR does / why we need it**:
Fix "no formatting directive in Errorf call"
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-06-05 02:54:14 -07:00
mbohlool
63e3e84e7e Update proto 2017-06-04 21:54:11 -07:00
mbohlool
c2f2a33dc5 Update Bazel 2017-06-04 21:54:11 -07:00
mbohlool
1a1d9a0394 Aggregate OpenAPI specs 2017-06-04 21:54:11 -07:00
mbohlool
fccff9adb6 Enable OpenAPI definition generation for apiregistration 2017-06-04 21:54:10 -07:00
mbohlool
0a886ffaf8 Separate Build and Serving parts of OpenAPI spec handler 2017-06-04 21:54:10 -07:00
mbohlool
ef8ee84cd0 Remove unused servePath from GetOperationIDAndTags and GetDefinitionName 2017-06-04 21:54:10 -07:00
David Ashpole
56f53b9207 update prometheus dependency for staging 2017-06-04 15:00:23 -07:00
Kubernetes Submit Queue
f28fe811ad Merge pull request #46680 from cheftako/aggregate
Automatic merge from submit-queue (batch tested with PRs 46681, 46786, 46264, 46680, 46805)

Enable Dialer on the Aggregator

Centralize the creation of the dialer during startup.
Have the dialer then passed in to both APIServer and Aggregator.
Aggregator the uses the dialer as its Transport base.

**What this PR does / why we need it**:Enables the Aggregator to use the Dialer/SSHTunneler to connect to the user-apiserver.

**Which issue this PR fixes** : fixes ##46679

**Special notes for your reviewer**:

**Release note**: None
2017-06-03 21:16:46 -07:00
Kubernetes Submit Queue
09702160b0 Merge pull request #46264 from Q-Lee/annotate
Automatic merge from submit-queue (batch tested with PRs 46681, 46786, 46264, 46680, 46805)

Add annotation for image policy webhook fail open.

**What this PR does / why we need it**: there's no good way to audit log if binary verification fails open. Adding an annotation can solve that, and provide a useful tool to audit [non-malicious] containers.

**Release note**: add the annotation "alpha.image-policy.k8s.io/failed-open=true" to pods created when the image policy webhook fails open.

```release-note
Add the `alpha.image-policy.k8s.io/failed-open=true` annotation when the image policy webhook encounters an error and fails open.
```
2017-06-03 21:16:43 -07:00
Kubernetes Submit Queue
fb4f44dca6 Merge pull request #46751 from liggitt/sni-cert-test
Automatic merge from submit-queue (batch tested with PRs 40760, 46706, 46783, 46742, 46751)

Pre-generate SNI test certs

Pre-generates test certs for SNI tests, since doing this dynamically can take a loooong time in entropy-starved or CPU-bound test envs (like in a container).
2017-06-03 18:30:46 -07:00
Kubernetes Submit Queue
17f0918bb9 Merge pull request #46742 from caesarxuchao/update-gengo
Automatic merge from submit-queue (batch tested with PRs 40760, 46706, 46783, 46742, 46751)

Update gengo to the latest
2017-06-03 18:30:44 -07:00
Kubernetes Submit Queue
dbd1503b65 Merge pull request #45924 from janetkuo/daemonset-history
Automatic merge from submit-queue

Implement Daemonset history

~Depends on #45867 (the 1st commit, ignore it when reviewing)~ (already merged)

Ref https://github.com/kubernetes/community/pull/527/ and https://github.com/kubernetes/community/pull/594

@kubernetes/sig-apps-api-reviews @kubernetes/sig-apps-pr-reviews @erictune @kow3ns @lukaszo @kargakis 

---

TODOs:
- [x] API changes
  - [x] (maybe) Remove rollback subresource if we decide to do client-side rollback 
- [x] deployment controller 
  - [x] controller revision
    - [x] owner ref (claim & adoption)
    - [x] history reconstruct (put revision number, hash collision avoidance)
    - [x] de-dup history and relabel pods
    - [x] compare ds template with history 
  - [x] hash labels (put it in controller revision, pods, and maybe deployment)
  - [x] clean up old history 
  - [x] Rename status.uniquifier when we reach consensus in #44774 
- [x] e2e tests 
- [x] unit tests 
  - [x] daemoncontroller_test.go 
  - [x] update_test.go 
  - [x] ~(maybe) storage_test.go // if we do server side rollback~

kubectl part is in #46144

--- 

**Release note**:

```release-note
```
2017-06-03 16:52:38 -07:00
Tim Hockin
be987b015c Merge pull request #46716 from thockin/proxy-comments
Kube-proxy cleanups
2017-06-03 15:57:17 -07:00
Clayton Coleman
ce972ca475
Add an e2e test for server side get
Print a better error from the response. Performs validation to ensure it
does not regress in alpha state.
2017-06-03 18:22:39 -04:00
Kubernetes Submit Queue
a2412f114e Merge pull request #46772 from sttts/sttts-resolve-localhost
Automatic merge from submit-queue (batch tested with PRs 46620, 46732, 46773, 46772, 46725)

apiserver: avoid resolving 'localhost'

Fixes https://github.com/kubernetes/kubernetes/issues/46767.
2017-06-03 11:39:44 -07:00
Kubernetes Submit Queue
6b76c40a62 Merge pull request #46732 from timstclair/audit-metrics
Automatic merge from submit-queue (batch tested with PRs 46620, 46732, 46773, 46772, 46725)

Instrument advanced auditing

Add prometheus metrics for audit logging, including:

- A total count of audit events generated and sent to the output backend
- A count of audit events that failed to be audited due to an error (per backend)
- A count of request audit levels (1 per request)

For https://github.com/kubernetes/features/issues/22

- [x] TODO: Call `HandlePluginError` from the webhook backend, once https://github.com/kubernetes/kubernetes/pull/45919 merges (in this or a separate PR, depending on timing of the merge)

/cc @ihmccreery @sttts @soltysh @ericchiang
2017-06-03 11:39:40 -07:00
Kubernetes Submit Queue
07f85565a2 Merge pull request #36721 from smarterclayton/initializers
Automatic merge from submit-queue

Add initializer support to admission and uninitialized filtering to rest storage

Initializers are the opposite of finalizers - they allow API clients to react to object creation and populate fields prior to other clients seeing them.

High level description:

1. Add `metadata.initializers` field to all objects
2. By default, filter objects with > 0 initializers from LIST and WATCH to preserve legacy client behavior (known as partially-initialized objects)
3. Add an admission controller that populates .initializer values per type, and denies mutation of initializers except by certain privilege levels (you must have the `initialize` verb on a resource)
4. Allow partially-initialized objects to be viewed via LIST and WATCH for initializer types
5. When creating objects, the object is "held" by the server until the initializers list is empty
6. Allow some creators to bypass initialization (set initializers to `[]`), or to have the result returned immediately when the object is created.

The code here should be backwards compatible for all clients because they do not see partially initialized objects unless they GET the resource directly. The watch cache makes checking for partially initialized objects cheap. Some reflectors may need to change to ask for partially-initialized objects.

```release-note
Kubernetes resources, when the `Initializers` admission controller is enabled, can be initialized (defaulting or other additive functions) by other agents in the system prior to those resources being visible to other clients.  An initialized resource is not visible to clients unless they request (for get, list, or watch) to see uninitialized resources with the `?includeUninitialized=true` query parameter.  Once the initializers have completed the resource is then visible.  Clients must have the the ability to perform the `initialize` action on a resource in order to modify it prior to initialization being completed.
```
2017-06-03 07:16:52 -07:00
Kubernetes Submit Queue
5b5b8e6390 Merge pull request #44844 from dixudx/update_gophercloud
Automatic merge from submit-queue

update gophercloud that fixed code format

**What this PR does / why we need it**:

mainly to include [#265](https://github.com/gophercloud/gophercloud/pull/265), which fixed the code format including below two files:

* vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/urls.go
* vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/results.go
2017-06-03 01:22:08 -07:00
Cao Shufeng
541935b13f fix invalid status code for hijacker
When using hijacker to take over the connection, the http status code
should be 101 not 200.

PS:
Use "kubectl exec" as an example to review this change.
2017-06-03 16:03:52 +08:00
Janet Kuo
4e6f70ff67 Autogen: run hack/update-all.sh 2017-06-03 00:43:53 -07:00
Kubernetes Submit Queue
78a9e4feba Merge pull request #46375 from deads2k/auth-05-nameprotection
Automatic merge from submit-queue (batch tested with PRs 46456, 46675, 46676, 46416, 46375)

prevent illegal verb/name combinations in default policy rules

Names aren't presented with some kinds of "normal" verbs.  This prevents people from making common mistakes.

@timothysc as I noted in your pull.  This will prevent some classes of errors.
2017-06-03 00:28:53 -07:00
Kubernetes Submit Queue
ead40ebdce Merge pull request #46416 from CaoShuFeng/audit_doc
Automatic merge from submit-queue (batch tested with PRs 46456, 46675, 46676, 46416, 46375)

Fix doc about Verb for advanced audit feature

This patch is commited to address the following comment:
https://github.com/kubernetes/kubernetes/pull/45315#discussion_r117107507
**Release note**:

```
NONE
```
2017-06-03 00:28:50 -07:00
Dr. Stefan Schimanski
4846c0d167 apiserver: return BadRequest 400 for invalid query params 2017-06-03 08:54:40 +02:00
Kubernetes Submit Queue
e837c3bbc2 Merge pull request #46388 from lavalamp/whitlockjc-generic-webhook-admission
Automatic merge from submit-queue (batch tested with PRs 46239, 46627, 46346, 46388, 46524)

Dynamic webhook admission control plugin

Unit tests pass.

Needs plumbing:
* [ ] service resolver (depends on @wfender PR)
* [x] client cert (depends on ????)
* [ ] hook source (depends on @caesarxuchao PR)

Also at least one thing will need to be renamed after Chao's PR merges.

```release-note
Allow remote admission controllers to be dynamically added and removed by administrators.  External admission controllers make an HTTP POST containing details of the requested action which the service can approve or reject.
```
2017-06-02 23:37:42 -07:00
Kubernetes Submit Queue
348bf1e032 Merge pull request #46627 from deads2k/api-12-labels
Automatic merge from submit-queue (batch tested with PRs 46239, 46627, 46346, 46388, 46524)

move labels to components which own the APIs

During the apimachinery split in 1.6, we accidentally moved several label APIs into apimachinery.  They don't belong there, since the individual APIs are not general machinery concerns, but instead are the concern of particular components: most commonly the kubelet.  This pull moves the labels into their owning components and out of API machinery.

@kubernetes/sig-api-machinery-misc @kubernetes/api-reviewers @kubernetes/api-approvers 
@derekwaynecarr  since most of these are related to the kubelet
2017-06-02 23:37:38 -07:00
Kubernetes Submit Queue
3093936a18 Merge pull request #46551 from caesarxuchao/rule-validation
Automatic merge from submit-queue (batch tested with PRs 46726, 41912, 46695, 46034, 46551)

Fix validation of Rule.Resouces
2017-06-02 21:42:43 -07:00
Kubernetes Submit Queue
047c4667fe Merge pull request #46034 from kensimon/canonical-aggregate-events
Automatic merge from submit-queue (batch tested with PRs 46726, 41912, 46695, 46034, 46551)

Event aggregation: include latest event message in aggregate event

**What this PR does / why we need it**:

This changes the event aggregation behavior so that, when multiple events are deduplicated, the aggregated event includes the message of the latest related event.

This fixes an issue where the original event expires due to TTL, and the aggregate event doesn't contain any useful message.

**Which issue this PR fixes**:

fixes #45971

```release-note
Duplicate recurring Events now include the latest event's Message string
```
2017-06-02 21:42:41 -07:00
Kubernetes Submit Queue
aab12f217e Merge pull request #46726 from deads2k/crd-09-proto
Automatic merge from submit-queue

add protobuf for CRD

Adds protobuf encoding to CRD and simplifies loopback initialization.

xref: https://github.com/kubernetes/features/issues/95
2017-06-02 21:34:54 -07:00
Clayton Coleman
b993f7d303
generated: client-go staging 2017-06-02 22:09:05 -04:00
Clayton Coleman
331eea67d8
Allow initialization of resources
Add support for creating resources that are not immediately visible to
naive clients, but must first be initialized by one or more privileged
cluster agents. These controllers can mark the object as initialized,
allowing others to see them.

Permission to override initialization defaults or modify an initializing
object is limited per resource to a virtual subresource "RESOURCE/initialize"
via RBAC.

Initialization is currently alpha.
2017-06-02 22:09:03 -04:00
Kubernetes Submit Queue
caead74171 Merge pull request #45184 from DirectXMan12/feature/metrics-client-gen-tweaks
Automatic merge from submit-queue (batch tested with PRs 46801, 45184, 45930, 46192, 45563)

Tweak client-gen to support metrics API

This PR adds support to client-gen for readonly APIs as well as for customizing the resource name used for a given type.

This is required to support the clients generated for `k8s.io/metrics/pkg/apis/metrics`.

cc @caesarxuchao 

Currently based on #45180

**Release note**:
```release-note
NONE
```
2017-06-02 18:05:50 -07:00
Kubernetes Submit Queue
97ac6e752b Merge pull request #46668 from caesarxuchao/admissionregistration-nonnamespace
Automatic merge from submit-queue (batch tested with PRs 46648, 46500, 46238, 46668, 46557)

Admissionregistration nonnamespace

The two types are root scoped.

Just adding a couple of tags. Other code is generated.
2017-06-02 15:20:50 -07:00
Kubernetes Submit Queue
c97c353a71 Merge pull request #46500 from tnozicka/fix-standard-finalizers
Automatic merge from submit-queue (batch tested with PRs 46648, 46500, 46238, 46668, 46557)

Fix standardFinalizers - add missing metav1.FinalizerDeleteDependents

**What this PR does / why we need it**:
It adds [FinalizerDeleteDependents](58167fcfa1/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go (L77)) to [standardFinalizers](58167fcfa1/pkg/api/helper/helpers.go (L222)) otherwise this finalizer is unusable because apiserver will fail validation because it is not fully qualified name - but it is a standard Kubernetes finalizer [used by garbage collector](58167fcfa1/pkg/controller/garbagecollector/garbagecollector.go (L389)) but it can't be set.

It's sibling [FinalizerOrphanDependents](58167fcfa1/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/types.go (L76)) is already [there](58167fcfa1/pkg/api/helper/helpers.go (L224)). I suppose this is a bug because otherwise `FinalizerDeleteDependents` is unusable.

Fixes https://github.com/openshift/origin/pull/14322
Might fix https://github.com/kubernetes/kubernetes/pull/45764

**Not for the reviewer:**
[This same definition is also in staging.](58167fcfa1/staging/src/k8s.io/client-go/pkg/api/helper/helpers.go (L222)) Does it get propagated to staging automatically? Editing the same file twice doesn't seem like the intended option.
2017-06-02 15:20:45 -07:00
Kubernetes Submit Queue
97a5d37841 Merge pull request #40848 from smarterclayton/serverside_get
Automatic merge from submit-queue (batch tested with PRs 46432, 46701, 46326, 40848, 46396)

Add a server side Get operation

Implement proposal kubernetes/community#363

```release-note
The Kubernetes API supports retrieving tabular output for API resources via a new mime-type `application/json;as=Table;v=v1alpha1;g=meta.k8s.io`.  The returned object (if the server supports it) will be of type `meta.k8s.io/v1alpha1` with `Table`, and contain column and row information related to the resource.  Each row will contain information about the resource - by default it will be the object metadata, but callers can add the `?includeObject=Object` query parameter and receive the full object.  In the future kubectl will use this to retrieve the results of `kubectl get`.
```
2017-06-02 11:47:11 -07:00
Kubernetes Submit Queue
f5bcd98d5e Merge pull request #46326 from xilabao/add-role-to-describe-command
Automatic merge from submit-queue (batch tested with PRs 46432, 46701, 46326, 40848, 46396)

add role/clusterrole to describe.go

**What this PR does / why we need it**:
```
# ./cluster/kubectl.sh describe clusterrole system:kube-scheduler 
Name:		system:kube-scheduler
Labels:		kubernetes.io/bootstrapping=rbac-defaults
Annotations:	rbac.authorization.kubernetes.io/autoupdate=true
PolicyRule:
  Resources			Non-Resource URLs	Resource Names		Verbs
  ---------			-----------------	--------------		-----
  bindings			[]			[]			[create]
  endpoints			[]			[]			[create]
  endpoints			[]			[kube-scheduler]	[delete]
  endpoints			[]			[kube-scheduler]	[get]
  endpoints			[]			[kube-scheduler]	[patch]
  endpoints			[]			[kube-scheduler]	[update]
  events			[]			[]			[create patch update]
  nodes				[]			[]			[get list watch]
  persistentvolumeclaims	[]			[]			[get list watch]
  persistentvolumes		[]			[]			[get list watch]
  pods				[]			[]			[get list watch]
  pods/binding			[]			[]			[create]
  pods/status			[]			[]			[update]
  replicasets.extensions	[]			[]			[get list watch]
  replicationcontrollers	[]			[]			[get list watch]
  services			[]			[]			[get list watch]
  statefulsets.apps		[]			[]			[get list watch]

```
**Which issue this PR fixes**: 

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-06-02 11:47:07 -07:00
Wojciech Tyczynski
1504c7fc31 Add logging to debug conflicts in kubemark-scale test 2017-06-02 15:01:04 +02:00
Cao Shufeng
82390af250 update copyed doc for advanced audit
doc for WithAudit is copyed from WithLegacyAudit, it's out of date.
This change update doc for these two functions.
2017-06-02 15:38:21 +08:00
Haoran Wang
9760dd9943 gcp auth provider not to override the Auth header if it's already exits 2017-06-02 13:15:05 +08:00
Saksham Sharma
9760d00d08 Add configuration options for encryption providers
Add location transformer, config for transformers

Location transformer helps choose the most specific transformer for
read/write operations depending on the path of resource being accessed.

Configuration allows use of --experimental-encryption-provider-config
to set up encryption providers. Only AEAD is supported at the moment.

Add new files to BUILD, AEAD => k8s-aes-gcm

Use group resources to select encryption provider

Update tests for configuration parsing

Remove location transformer

Allow specifying providers per resource group in configuration

Add IdentityTransformer configuration option

Fix minor issues with initial AEAD implementation

Unified parsing of all configurations

Parse configuration using a union struct

Run configuration parsing in APIserver, refactor parsing

More gdoc, fix minor bugs

Add test coverage for combined transformers

Use table driven tests for encryptionconfig
2017-06-01 20:25:11 -07:00
Mikhail Mazurskiy
427b8cd40b
Fix round-trip of Unstructured.OwnerReferences
Previously setOwnerReference was storing pointers but
extractOwnerReference is expecting pointer fields as plain values.
Fixes #46817
2017-06-02 11:13:33 +10:00
Tim St. Clair
b77c8198f0
Instrument advanced auditing 2017-06-01 16:25:32 -07:00
Tim Hockin
fc34a9d6ba 'Global' -> 'Cluster' for traffic policy 2017-06-01 16:17:38 -07:00
Kubernetes Submit Queue
dd897a557d Merge pull request #46536 from deads2k/crd-07-deflake
Automatic merge from submit-queue

try to deflake CR watches in tests

Fixes https://github.com/kubernetes/kubernetes/issues/46446

I've added a comment trying to explain the reasoning in the code.  Without being able to expose the RV of the cache, I can't think of a reliable way to do it.  Even if you tried experimenting with a watch, it essentially does this since you'd be waiting to not get an error.
2017-06-01 15:42:04 -07:00
Kubernetes Submit Queue
f7a1f10275 Merge pull request #45919 from ericchiang/audit-webhook-backend
Automatic merge from submit-queue

apiserver: add a webhook implementation of the audit backend

This builds off of #45315 and is intended to implement an interfaced defined in #45766.

TODO:

- [x] Rebase on top of API types PR.
- [x] Rebase on top of API types updates (#46065)
- [x] Rebase on top of feature flag (#46009)
- [x] Rebase on top of audit instrumentation.
- [x] Hook up API server flag or register plugin (depending on #45766)

Features issue https://github.com/kubernetes/features/issues/22

Design proposal https://github.com/kubernetes/community/blob/master/contributors/design-proposals/auditing.md

```release-notes
Webhook added to the API server which omits structured audit log events.
```

/cc @soltysh @timstclair @soltysh @deads2k
2017-06-01 13:41:59 -07:00
Chao Xu
902c501595 generated defaults files
generated bazel
2017-06-01 10:54:19 -07:00
Kubernetes Submit Queue
14a1cdd208 Merge pull request #44785 from jingxu97/April/apistorage
Automatic merge from submit-queue

Add Local Storage Capacity Isolation API

This PR adds the new APIs to support storage capacity isolation as
described in the proposal [https://github.com/kubernetes/community/pull/306](url)

1. Add SizeLimit for emptyDir volume
2. Add scratch and overlay storage type used by container level or
node level


**Release note**:

```release-note
Alpha feature: Local volume Storage Capacity Isolation allows users to set storage limit to isolate EmptyDir volumes, container storage overlay, and also supports allocatable storage for shared root file system. 
```
2017-06-01 09:12:19 -07:00
Kubernetes Submit Queue
82245a1f06 Merge pull request #45980 from mengqiy/setElementOrder
Automatic merge from submit-queue

support setElementOrder

Implement [proposal](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/preserve-order-in-strategic-merge-patch.md).

Fixes #40373

```release-note
kubectl edit and kubectl apply will keep the ordering of elements in merged lists
```
2017-06-01 09:12:13 -07:00
Jordan Liggitt
6554dfc445
Pre-generate SNI test certs 2017-06-01 11:34:18 -04:00
Dr. Stefan Schimanski
63cd572c74 apiserver: avoid resolving 'localhost'
The golang stdlib resolve localhost first via the external DNS server,
not via /etc/hosts. If your DNS resolve localhost.<search-domain>, the
API server won't start.
2017-06-01 15:54:11 +02:00
Kubernetes Submit Queue
67724439fd Merge pull request #46623 from sttts/sttts-aggregator-unified-modes
Automatic merge from submit-queue (batch tested with PRs 43505, 45168, 46439, 46677, 46623)

aggregator: unify resolver implementation and tests

This is https://github.com/kubernetes/kubernetes/pull/45082, but without the port support.
2017-06-01 05:43:46 -07:00
Cao Shufeng
b6b2a30e83 empty audit policy file is legal configuration
Empty audit policy file or policy file contains only comments means
using default audit level for all requests.
2017-06-01 18:27:23 +08:00
Dr. Stefan Schimanski
c7d9a396fd Update bazel 2017-06-01 09:26:28 +02:00
Dr. Stefan Schimanski
8b409e8f77 aggregation: add ExternalName service support 2017-06-01 09:26:28 +02:00
Dr. Stefan Schimanski
b1f708758c aggregation: handle ClusterIPNone correctly 2017-06-01 09:26:28 +02:00
Dr. Stefan Schimanski
d56759452c aggregation: unify mode implementations 2017-06-01 09:26:28 +02:00
Dr. Stefan Schimanski
35335c09e1 aggregation: restore cluster-ip routing tests 2017-06-01 09:26:27 +02:00
Walter Fender
5b3f4684ed Enable Dialer on the Aggregator
Centralize the creation of the dialer during startup.
Have the dialer then passed in to both APIServer and Aggregator.
Aggregator the sets the dialer on its Transport base.
This should allow the SSTunnel to be used but also allow the Aggregation
Auth to work with it.
Depending on Environment InsecureSkipTLSVerify *may* need to be set to
true.
Fixed as few tests to call CreateDialer as part of start-up.
2017-06-01 00:05:02 -07:00
Chao Xu
e9d9b05234 generated 2017-05-31 16:51:19 -07:00
Daniel Smith
d6e1140b5d Implement dynamic admission webhooks
Also fix a bug in rest client
2017-05-31 16:38:46 -07:00
Mikhail Mazurskiy
5ac9d860a3
Test finalization of CRD
Updates #45511
2017-06-01 09:18:42 +10:00
ymqytw
c3481b07d2 support setElementOrder 2017-05-31 15:08:25 -07:00
Quintin Lee
a38c2b4ce1 Add annotation for image policy webhook fail open. 2017-05-31 14:57:28 -07:00
deads2k
70006e13b2 add protobuf for CRD 2017-05-31 16:16:18 -04:00
Jing Xu
695f7be697 generated files 2017-05-31 13:06:39 -07:00
Chao Xu
ec787db460 generated 2017-05-31 09:57:20 -07:00
Eric Chiang
a88e0187f9 apiserver: add a webhook implementation of the audit backend 2017-05-31 09:45:23 -07:00
deads2k
954eb3ceb9 move labels to components which own the APIs 2017-05-31 10:32:06 -04:00
Kubernetes Submit Queue
c79df64306 Merge pull request #46242 from ahmetb/clientgo-examples/crud-deployment
Automatic merge from submit-queue

clientgo/examples: Add CRUD Deployment sample
2017-05-31 01:54:07 -07:00
Tomas Nozicka
9ed01e44a1 Fix standardFinalizers - add missing metav1.FinalizerDeleteDependents 2017-05-31 09:21:02 +02:00
Kubernetes Submit Queue
e97b72296f Merge pull request #46556 from mbohlool/gvk
Automatic merge from submit-queue (batch tested with PRs 46076, 43879, 44897, 46556, 46654)

Use meta.v1 GroupVersionKind with json tags to generate OpenAPI spec

We are using two different GVK struct in generation of OpenAPI extensions. This PR unify that and also add json tags to meta.v1 GVK to comply with json naming system in other serializations. Also the value of Action extension is now lowercase.

ref: https://github.com/kubernetes/kubernetes/pull/46388
2017-05-30 23:20:04 -07:00
Kubernetes Submit Queue
0aad9d30e3 Merge pull request #44897 from msau42/local-storage-plugin
Automatic merge from submit-queue (batch tested with PRs 46076, 43879, 44897, 46556, 46654)

Local storage plugin

**What this PR does / why we need it**:
Volume plugin implementation for local persistent volumes.  Scheduler predicate will direct already-bound PVCs to the node that the local PV is at.  PVC binding still happens independently.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: 
Part of #43640

**Release note**:

```
Alpha feature: Local volume plugin allows local directories to be created and consumed as a Persistent Volume.  These volumes have node affinity and pods will only be scheduled to the node that the volume is at.
```
2017-05-30 23:20:02 -07:00
Kubernetes Submit Queue
a44bf9fd7f Merge pull request #46134 from ahmetb/clientgo-examples/out-of-cluster
Automatic merge from submit-queue (batch tested with PRs 44061, 46614, 46419, 46628, 46134)

clientgo/examples/out-of-cluster: add instructions
2017-05-30 18:35:05 -07:00
Kubernetes Submit Queue
8c1f45953b Merge pull request #46431 from zjj2wry/rollback-rollback
Automatic merge from submit-queue (batch tested with PRs 42240, 46100, 46154, 46431, 45755)

Fix api description in swagger

**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
 NONE
```
2017-05-30 14:57:05 -07:00
mbohlool
a3cbfde4b1 Make OpenAPI GVK and Action extensions all lower-case 2017-05-30 14:43:27 -07:00
Kubernetes Submit Queue
db5c21f328 Merge pull request #42240 from fate-grand-order/patch-3
Automatic merge from submit-queue

correct misspell "identify" in client_config.go
2017-05-30 14:41:51 -07:00
Kubernetes Submit Queue
b5eadb5d6b Merge pull request #43946 from jhorwit2/jah/host-path-psp
Automatic merge from submit-queue (batch tested with PRs 46489, 46281, 46463, 46114, 43946)

Allow PSP's to specify a whitelist of allowed paths for host volume

**What this PR does / why we need it**:

This PR adds the ability to whitelist paths for the host volume to ensure pods cannot access directories they aren't supposed to. E.g. `/var/lib/kubelet`, `/etc/kubernetes/*`, etc. 

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #29326


**Special notes for your reviewer**:

**Release note**:

```release-note
Allow PSP's to specify a whitelist of allowed paths for host volume based on path prefixes
```
2017-05-30 11:59:10 -07:00
Ahmet Alp Balkan
e59f05fe0e
clientgo/examples/out-of-cluster: add instructions
Adding instructions for out-of-cluster example and making it work without
specifying the -kubeconfig argument if the home directory can be inferred.

This is part of the body of work improving the client library samples.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-30 09:58:59 -07:00
Ahmet Alp Balkan
d75710f9f4
client-go: Add CRUD Deployment sample
This sample adds sample code for create/list/replace/delete operations for
Deployment resource for client-go library. This patch also contains
documentation explaining what the example application does and how it can be
executed.

This patch is part of the body of work improving the client library samples.

Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com>
2017-05-30 09:52:53 -07:00
Kubernetes Submit Queue
cb201802a1 Merge pull request #46459 from p0lyn0mial/move_admission_lifecycle_to_genericapi
Automatic merge from submit-queue (batch tested with PRs 46552, 46608, 46390, 46605, 46459)

Move admission lifecycle to genericapi

**What this PR does / why we need it**:  ends the whole sequence of moving some admission plugins to generic api.


**Release note**:

```release-note
NONE
```
2017-05-30 08:42:02 -07:00
Kubernetes Submit Queue
82f24cee5e Merge pull request #46390 from enj/enj/i/require_delete_strategy
Automatic merge from submit-queue (batch tested with PRs 46552, 46608, 46390, 46605, 46459)

Require DeleteStrategy for all registry.Store

**What this PR does / why we need it**:

All `registry.Store` objects already set a non-nil `DeleteStrategy`.  This change ensures that all future objects do so as well.

Signed-off-by: Monis Khan <mkhan@redhat.com>

xref: #24153 openshift/origin/issues/14198

cc @deads2k @liggitt @caesarxuchao @lavalamp @smarterclayton @derekmahar 

In regards to this, why is the `RESTDeleteStrategy` a useless interface (as far as deletion goes)?  We cast it to `GarbageCollectionDeleteStrategy` or `RESTGracefulDeleteStrategy` in an attempt to do operations related to deletion, but we have "default" behavior for both of those cases.  It should be possible to make `DeleteStrategy` optional by using the other strategies as the `runtime.ObjectTyper` and then defaulting a `nil` `DeleteStrategy` with the expected behavior.

```go
// RESTDeleteStrategy defines deletion behavior on an object that follows Kubernetes
// API conventions.
type RESTDeleteStrategy interface {
	runtime.ObjectTyper
}

type GarbageCollectionPolicy string

const (
	DeleteDependents GarbageCollectionPolicy = "DeleteDependents"
	OrphanDependents GarbageCollectionPolicy = "OrphanDependents"
)

// GarbageCollectionDeleteStrategy must be implemented by the registry that wants to
// orphan dependents by default.
type GarbageCollectionDeleteStrategy interface {
	// DefaultGarbageCollectionPolicy returns the default garbage collection behavior.
	DefaultGarbageCollectionPolicy() GarbageCollectionPolicy
}

// RESTGracefulDeleteStrategy must be implemented by the registry that supports
// graceful deletion.
type RESTGracefulDeleteStrategy interface {
	// CheckGracefulDelete should return true if the object can be gracefully deleted and set
	// any default values on the DeleteOptions.
	CheckGracefulDelete(ctx genericapirequest.Context, obj runtime.Object, options *metav1.DeleteOptions) bool
}
```

**Release note**:

```
NONE
```
2017-05-30 08:41:57 -07:00
Kubernetes Submit Queue
017e61c76f Merge pull request #46525 from deads2k/crd-06-beta
Automatic merge from submit-queue (batch tested with PRs 43275, 45014, 46449, 46488, 46525)

move CustomResourceDefinitions from alpha to beta

CRDs are built upon the known ThirdPartyResource API with the lessons learned guiding the new shape.  Short comings of the old TPR API even have specific tests to ensure that CRDs do not face the same issues.  Given that, this API qualifies for beta.

These are straight mechanical changes.

@kubernetes/sig-api-machinery-misc 
@ericchiang  You asked about this in the original pull.
2017-05-30 07:49:10 -07:00
Kubernetes Submit Queue
56e73d829a Merge pull request #46449 from crawford/master
Automatic merge from submit-queue (batch tested with PRs 43275, 45014, 46449, 46488, 46525)

Export ErrWatchClosed from watch.Until

This is needed so that users of watch.Until may check for this
particular error instead of attempting to match the error string.
2017-05-30 07:49:05 -07:00
deads2k
8170cf0fd3 try to make the watch cache for CRs match first return values 2017-05-30 09:13:11 -04:00
deads2k
ce681fe47c move CRD from alpha to beta 2017-05-30 07:57:26 -04:00
Kubernetes Submit Queue
6ff83d123c Merge pull request #37212 from gmarek/ms
Automatic merge from submit-queue (batch tested with PRs 45534, 37212, 46613, 46350)

Add unversioned.MicroTime type

Ref. #36752

cc @smarterclayton @wojtek-t @dchen1107 @timothysc @bgrant0607
2017-05-30 04:46:01 -07:00
Wojciech Tyczynski
f93a270edc Optimize selector for single-matching items 2017-05-30 08:08:15 +02:00
Wojciech Tyczynski
48d0249a40 allow for deleting field selector requirements using Transform 2017-05-30 08:07:56 +02:00
Kubernetes Submit Queue
cc432dbc77 Merge pull request #46594 from xychu/golint
Automatic merge from submit-queue

Fix golint error in apimachinery/pkg/{fields,lables}

Also add these two packages to linted packages lists



**What this PR does / why we need it**:

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
```
2017-05-29 22:02:20 -07:00
Clayton Coleman
7ce63eb608
Refactor printers to support rendering as a Table
Return tables from the server.
2017-05-29 18:30:10 -04:00
Clayton Coleman
f203e42cb9
Expose a default Table and partial output via Accept headers
All generic registries expose metadata output, and refactor endpoints to
allow negotiation to handle those responses. Add support for
PartialObjectMetadata being returned for objects as well.
2017-05-29 18:23:49 -04:00
Clayton Coleman
3f41f8fcd1
Add priority and condition to column definitions
Allow the server to indicate additional information along with each row
and table.
2017-05-29 18:23:48 -04:00
Kubernetes Submit Queue
d6cc1de9cd Merge pull request #39930 from justinsb/fix_typo_multipled
Automatic merge from submit-queue

typos: spelling fixes in pkg/util/wait/wait.go

```release-note
NONE
```
2017-05-29 13:46:52 -07:00
p0lyn0mial
77eb2f3950 register all generic admission plugins when AdmissionOptions are created.
lifecycle plugin: make use of the libraries under k8s.io/client-go/pkg/api and k8s.io/client-go/kubernetes
for the client libraries instead of k8s.io/kubernetes/client/*

move registration to AdmissionOptions
2017-05-29 22:08:59 +02:00
Kubernetes Submit Queue
4d358a23b6 Merge pull request #46335 from sttts/sttts-audit-stages
Automatic merge from submit-queue (batch tested with PRs 45699, 46200, 46335, 46599)

audit: implement stages

Based on https://github.com/kubernetes/kubernetes/pull/46065. Implementing https://github.com/kubernetes/kubernetes/pull/46065#discussion_r117438531.
2017-05-29 11:14:03 -07:00
Kubernetes Submit Queue
313dc6b5a5 Merge pull request #46200 from nikhita/crd-test-name-collision
Automatic merge from submit-queue (batch tested with PRs 45699, 46200, 46335, 46599)

apiextensions: add integration test for name conflicts

**What this PR does / why we need it**: Add integration test for name conflicts.
Create 2 CRDs with name conflict. The controller sets the NameConflict condition on the second one. Delete the first one. The second CRD should now get accepted.

Update:
- [x] Add integration test for name conflicts
- [x] Fix naming controller so that when a resource is deleted, other resources in the same group are added to the queue
- [x]  Add integration test for self link (cluster scoped resources)
- [x] Add bigger poll interval
- [x] Fix DeleteCustomResourceDefinition poll condition


**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: for #45511 

**Special notes for your reviewer**:

**Release note**:

```
NONE
```
@sttts
2017-05-29 11:14:01 -07:00
Josh Horwitz
24271c4c86 staging client 2017-05-29 13:03:25 -04:00
Dr. Stefan Schimanski
548f7be8fa audit: uniform 2 or 3 events for short/long running requests 2017-05-29 18:02:49 +02:00
Dr. Stefan Schimanski
1e94185f44 audit: fill in stage 2017-05-29 17:52:23 +02:00
Dr. Stefan Schimanski
019003b926 audit: fill in sub-resource 2017-05-29 17:52:23 +02:00
Dr. Stefan Schimanski
3e9c8aaac6 audit-types: add Panic stage 2017-05-29 17:52:23 +02:00
Nikhita Raghunath
7cfba87baa
Add integration test for apiextensions
* add integration test for name conflicts of CRDs
* fix naming controller so that when a resource is deleted,
other resources in the same group are added to the queue
* add integration test for self link (clusterscoped resources)
* fix minor nits

address comments
add comments and fix nits

Bigger poll interval

customResource -> crd

Fix DeleteCustomResourceDefinition condition
2017-05-29 21:11:11 +05:30
gmarek
989d4051d9 generated 2017-05-29 15:08:55 +02:00
gmarek
ec874b062f Add metav1.MicroTime type 2017-05-29 15:08:55 +02:00
Ethan Chu
d7485de02a Fix golint error in apimachinery/pkg/{fields,lables}
Also add these two packages to linted packages lists
2017-05-29 21:07:00 +08:00
Dr. Stefan Schimanski
e3b92a11f1 apimachinery: move unversioned registration to metav1 2017-05-29 11:53:45 +02:00
Dr. Stefan Schimanski
5ea58748f1 apimachinery: idempotent registration of unversioned types 2017-05-29 11:53:45 +02:00