Commit Graph

2895 Commits

Author SHA1 Message Date
Chao Xu
fcf4f15c89 update-all generated 2017-11-21 13:00:40 -08:00
Chao Xu
a6d955e91f manual fix required to run hack/update-all.sh 2017-11-21 13:00:40 -08:00
Chao Xu
7945ae68d0 remove reference to v1alpha1 2017-11-21 13:00:40 -08:00
Chao Xu
951962512b Graduate admission API to v1beta1; graduate webhook related
admissionregistration API to v1beta1
2017-11-21 09:41:01 -08:00
Kubernetes Submit Queue
21ca6bf69d Merge pull request #56055 from sttts/sttts-object-fuzzer
Automatic merge from submit-queue (batch tested with PRs 55938, 56055, 53385, 55796, 55922). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

apiextensions: fix object keys in fuzzer to exclude escape characters

Jsoniter in ConfigFastest mode does not support escape characters in object keys. Hence, we have to fix this after the fuzzer chose invalid keys.

This might be only an intermediate fix if we decide to accept arbitrary object keys again. But for now, with the choice of `ConfigFastest` (f1258b01aa/feature_config.go (L66)) this change is necessary.
2017-11-21 07:43:43 -08:00
Kubernetes Submit Queue
aca386059d Merge pull request #55938 from sttts/sttts-compositional-admission-metrics
Automatic merge from submit-queue (batch tested with PRs 55938, 56055, 53385, 55796, 55922). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

admission: make admission metrics compositional

Metrics emission of admission plugins and the admission chain can be implemented compositionally, i.e. completely independently from the chain logic. This PR does that, moves the whole metrics code into a sub-package to contain complexity. The plumbing logic for the emitted metrics finally is cleanly done in the apiserver bootstrapping code, instead of being totally interleaved with the core admission logic.

Ratio:
- considerably less complexity
- admission plugins are compositional, including the chain. We cannot assume that there is only one chain at the outside of the admission plugin structure. Downstream projects might have more complex admission chains, i.e. multiple chain object nested.
- addition of metrics is plumbing and should be in the apiserver plumbing code. This makes it much easier to reason about the security critical admission chain.

Follow-up of #55183 and based on #55919.
2017-11-21 07:43:40 -08:00
Kubernetes Submit Queue
7b9affae66 Merge pull request #54634 from CaoShuFeng/omit_stage
Automatic merge from submit-queue (batch tested with PRs 52322, 54634). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

[advanced audit]add a policy wide omitStage

Related to: https://github.com/kubernetes/kubernetes/issues/54551
For example:
1. only log panic events
```
apiVersion: audit.k8s.io/v1beta1
kind: Policy
omitStages:
  - "RequestReceived"
  - "ResponseStarted"
  - "ResponseComplete"
rules:
  - level: Request
```

2. only log events inRequestReceived stage:
```
apiVersion: audit.k8s.io/v1beta1
kind: Policy
omitStages:
  - "ResponseStarted"
  - "ResponseComplete"
  - "Panic"
rules:
  - level: Request
```

**Release note**:
```
support a policy wide omitStage for advanced audit
```
2017-11-21 01:48:30 -08:00
Kubernetes Submit Queue
44f24d219f Merge pull request #56103 from caesarxuchao/validating-webhook-validator
Automatic merge from submit-queue (batch tested with PRs 54811, 54292, 56103). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Update the validating webhook plugin to implement the ValidatingInterface

ref: kubernetes/features#492

This makes sure the validating admission webhook runs in the validation phase.
2017-11-21 00:02:42 -08:00
Kubernetes Submit Queue
27295d5e01 Merge pull request #54292 from lichuqiang/resourceQuotaForHugepage
Automatic merge from submit-queue (batch tested with PRs 54811, 54292, 56103). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

ResourceQuota support for Hugepages

**What this PR does / why we need it**:
Hugepage resourceQuota support

**Which issue this PR fixes** 
fixes #53672 ResourceQuota part

**Special notes for your reviewer**:
What I'm concerned most is the change in quota evaluator:
Rather than add check especially for resource hugage, I would prefer add a check list, that could be easily extended by adding corresponding prefix into the list (As far as I know, pluginResources  will also support ResourceQuota in later versions)
@derekwaynecarr What's your opinion?

/cc @derekwaynecarr 

**Release note**:

```release-note
NONE
```
2017-11-21 00:02:39 -08:00
Kubernetes Submit Queue
f5b8c15799 Merge pull request #55979 from lavalamp/wh-api
Automatic merge from submit-queue (batch tested with PRs 54824, 55911, 55730, 55979, 55961). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

add detail to flag help

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

The admission control flag is impossible to understand.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Ref #https://github.com/kubernetes/features/issues/492

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2017-11-20 20:13:38 -08:00
Chao Xu
cbfc9d33b7 Update the validating webhook plugin to be a ValidatingInterface, rather than a MutatingInterface 2017-11-20 14:57:07 -08:00
Kubernetes Submit Queue
40e7101844 Merge pull request #55660 from smarterclayton/get_clean
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Stop using VersionedObject in resource.Builder, use unstructured

Remove the need for kubectl callers to distinguish between unstructured and versioned / type aware builders.  The factory should create a single builder than can be set to return unstructured objects.  Callers can then use one of the new helpers on `resource.Info` to convert the objects into the desired form - `Internal()` for printers, `Typed()` for external versions, and `Unstructured()` to ensure the object is in the right state.  Leverages the new scheme support for unstructured conversion so that higher level callers can perform best effort conversion (get typed versions if you have them, otherwise use default behavior).  

`get.go` demonstrates this by removing the previous logic that depended on the underlying scheme.  Other commands are updated to be consistent.

Includes #55650 and #55647.
2017-11-20 11:36:34 -08:00
Dr. Stefan Schimanski
9603696116 apiextensions: fix object keys in fuzzer to exclude escape characters
Jsoniter requires this.
2017-11-20 20:10:37 +01:00
Kubernetes Submit Queue
2cbb07a439 Merge pull request #55871 from atlassian/unstructured-converter-no-mutation
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix potential unexpected object mutation that can lead to data races

**What this PR does / why we need it**:
In #51526 I introduced an optimization - do a deep copy instead of to and from JSON roundtrip to convert anything that implements `runtime.Unstructured`. I just discovered that the method that is used there `UnstructuredContent()` in both `Unstructured` and `UnstructuredList` may mutate the original object.
2008750398/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go (L87-L92)
7c10cbc642/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go (L58-L75)
This is problematic because previously (before #51526) there was no mutation and because this is unexpected and may lead to data races - it is bad behaviour to mutate original object when you just want a copy of it.
This PR fixes the issue.

Without the fix the tests I've added are failing because when comparison is done original object is not the same:
```
converter_test.go:154: Object changed, diff: 
object.Object[items]:
  a: []interface {}{}
  b: <nil>
converter_test.go:154: Object changed, diff: 
object.Object[items]:
  a: []interface {}{map[string]interface {}{"kind":"Pod"}}
  b: <nil>
```

However the underlying issue is not fixed here - `UnstructuredContent()` is brittle and dangerous. Method name does not imply that it mutates data when you call it. And godoc does not mention that either:
509df603b1/staging/src/k8s.io/apimachinery/pkg/runtime/interfaces.go (L233-L249)
Something needs to be done about it IMO.
Also `UnstructuredContent()` implementation in `UnstructuredList` does not implement the behaviour required by godoc in `runtime.Unstructured`.

**Release note**:
```release-note
NONE
```
/kind bug
/sig api-machinery
/assign @sttts
2017-11-20 08:58:37 -08:00
Kubernetes Submit Queue
294f28f25d Merge pull request #55974 from liggitt/spdy-transport-constructor
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Allow constructing spdy executor from existing transports

If you already have an existing transport, it is not always possible to reconstruct a client config from it.

Allow constructing a spdy executor, given a connection/upgrade transport

```release-note
NONE
```
2017-11-20 08:11:13 -08:00
Kubernetes Submit Queue
7fd2b62776 Merge pull request #55790 from sttts/sttts-webhook-initializers
Automatic merge from submit-queue (batch tested with PRs 55963, 55790, 55670, 55931). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

admission/webhook: move webhook initializer into plugin

Follow-up of https://github.com/kubernetes/kubernetes/pull/55132.

Non-generic plugin intitializers should go into the admission plugin itself. No need leak that into the generic apiserver. Keeping them contained in the webhook package makes it easier (it was already possible) for extension apiservers to provide one, but we don't need to leak it into the generic plugin initializer.
2017-11-20 07:24:04 -08:00
Kubernetes Submit Queue
bebb9c9175 Merge pull request #55963 from sttts/sttts-drop-registrytester-scheme
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

apiserver: remove unneeded scheme from registry tester

Follow-up of https://github.com/kubernetes/kubernetes/pull/55622, removing an unused scheme.
2017-11-20 07:04:39 -08:00
Dr. Stefan Schimanski
baba0c827b admission: make metrics compositional and move to metrics sub-package 2017-11-20 15:32:38 +01:00
Joe Betz
d82ae45a4c #55183 follow up: Reinstate admission chain composition and ns test 2017-11-20 15:13:23 +01:00
Dr. Stefan Schimanski
d4d53c0e2a apiserver: remove unneeded scheme from registry tester 2017-11-20 09:39:44 +01:00
Dr. Stefan Schimanski
e19257f2ec admission/webhook: move webhook initializer into plugin 2017-11-20 09:28:42 +01:00
Clayton Coleman
e298aa39c3 Add a lazy discovery interface for Unstructured
Delays the error until the first call and then preserves it for others.
More closely matches the intent of the Object() calls. Loaders are now
lazy and don't need to return errors directly.

Sets the stage for collapsing unstructured and structured builders
together.
2017-11-19 19:16:50 -05:00
Clayton Coleman
0229fd4bd1 Unify unstructured and versioned object in resource.Builder
resource.Builder should be aware of both paths, and the caller is
responsible for determining the different path via use.
2017-11-19 19:02:25 -05:00
Mikhail Mazurskiy
160cf97fa4 Unstructured cleanups 2017-11-19 19:12:26 +11:00
Cao Shufeng
4a20d729cc run hack/update-all.sh 2017-11-19 12:45:21 +08:00
Cao Shufeng
d75c0f0e21 [advanced audit]add a policy wide omitStage 2017-11-19 12:45:13 +08:00
Chao Xu
d3c0765780 Rename GenericAdmissionWebhook to ValidatingAdmissionWebhook 2017-11-18 17:30:23 -08:00
Kubernetes Submit Queue
920a5b3128 Merge pull request #51530 from rootfs/iscsi-pv-ns
Automatic merge from submit-queue (batch tested with PRs 55757, 55741, 55817, 55834, 51530). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Refactor iSCSI PV spec to use SecretReference 

**What this PR does / why we need it**:
Use SecretReference in iSCSI PV spec
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes https://github.com/kubernetes-incubator/external-storage/issues/321

**Special notes for your reviewer**:
@liggitt 
**Release note**:

```release-note
iSCSI Persistent Volume Sources can now reference CHAP Secrets in namespaces other than the namespace of the bound Persistent Volume Claim
```
2017-11-18 16:38:36 -08:00
Kubernetes Submit Queue
7910099e91 Merge pull request #55741 from adnavare/bug/clarify_externalname
Automatic merge from submit-queue (batch tested with PRs 55757, 55741, 55817, 55834, 51530). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Clarify ExternalNames are hostnames

Updates the documentation for ExternalName to clarify
that they adhere RFC-1123 hostname and are not DNS names.

Fixes #52266

**Release note**:

```release-note

```
2017-11-18 16:38:27 -08:00
Kubernetes Submit Queue
a83f78efc9 Merge pull request #55948 from munnerz/patch-2
Automatic merge from submit-queue (batch tested with PRs 55841, 55948, 55945). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

conversion-gen: check for nil pkg in getManualConversionFunctions

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

Following https://github.com/kubernetes/kubernetes/pull/54394, this PR performs a check in getManualConversionFunctions for packages that are not found and prints a warning instead of panicking.

This should improve the UX of conversion-gen, and is also a narrower change than that proposed in #54394, so hopefully can be cherry picked into the release-1.8 etc. branches.

This would allow users to use conversion-gen via the generate-internal-groups.sh script without having to make a second call that 'blanks out' `--extra-peer-dirs`.

/cc @sttts

```release-note
NONE
```
2017-11-18 14:10:15 -08:00
Mikhail Mazurskiy
3e342077d5 Fix potential unexpected object mutation that can lead to data races 2017-11-19 08:54:25 +11:00
Kubernetes Submit Queue
738940564d Merge pull request #55970 from nikhita/fix-empty-struct-proto
Automatic merge from submit-queue (batch tested with PRs 54837, 55970, 55912, 55898, 52977). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix protobuf generation for empty struct

Currently, we are not able to generate protobuf for empty structs. This PR fixes proto generation for empty structs. (Example: `type Foo struct{}`)

Needed for https://github.com/kubernetes/kubernetes/pull/55168.

**Release note**:

```release-note
NONE
```

/assign @sttts
2017-11-18 13:13:19 -08:00
Kubernetes Submit Queue
3b4be46683 Merge pull request #55233 from sttts/sttts-codegen-comment-blocks
Automatic merge from submit-queue (batch tested with PRs 55233, 55927, 55903, 54867, 55940). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

code-generators: remove distinction of 1st and 2nd comment block for tags

Follow-up for https://github.com/kubernetes/kubernetes/pull/53579.

Fixes #53893.

```release-note
Allow code-generator tags in the 2nd closest comment block and directly above a statement.
```
2017-11-18 12:26:05 -08:00
Huamin Chen
56ec6e1028 generated files
Signed-off-by: Huamin Chen <hchen@redhat.com>
2017-11-18 20:05:40 +00:00
Huamin Chen
bb34a0b7ef use SecretObject to reference iSCSI CHAP secret
Signed-off-by: Huamin Chen <hchen@redhat.com>
2017-11-18 20:02:44 +00:00
Jordan Liggitt
f82b1ba90e Allow constructing spdy executor from existing transports 2017-11-18 14:41:29 -05:00
Kubernetes Submit Queue
5b32e4d24d Merge pull request #50457 from screeley44/volumetype-api
Automatic merge from submit-queue (batch tested with PRs 50457, 55558, 53483, 55731, 52842). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

VolumeMode and VolumeDevice api

**What this PR does / why we need it:**
Adds volumeType api to PV and PVC for local block support based on this proposal (https://github.com/kubernetes/community/pull/805) and this feature issue: https://github.com/kubernetes/features/issues/351 

**Special notes for your reviewer:**
There are other PR changes coming, this just simply creates the api fields
#53385  - binding logic changes dependent on this change

**Release note:**

NONE

Notes will be added in subsequents PR with the volume plugin changes, CRI, etc...

cc @msau42 @liggitt @jsafrane @mtanino @saad-ali @erinboyd
2017-11-18 11:36:13 -08:00
Kubernetes Submit Queue
941c6aa1db Merge pull request #55835 from smarterclayton/table_printer_meta
Automatic merge from submit-queue (batch tested with PRs 55642, 55897, 55835, 55496, 55313). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Table printers and server generation should always copy ListMeta

Tables should be a mapping from lists, so if the incoming object has these add them to the table. Paging over server side tables was broken without this. Add tests on the generic creater and on the resttest compatibility.


@deads2k
2017-11-18 10:46:35 -08:00
Kubernetes Submit Queue
17ff3caff4 Merge pull request #55897 from juanvallejo/jvallejo/expose-backoff-and-limiter-rest-request
Automatic merge from submit-queue (batch tested with PRs 55642, 55897, 55835, 55496, 55313). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

add rest/request backoffMgr and throttle setters

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

Allows modifications to be made to a request's rate-limiter and backoff manager
from a `RequestOptions` func introduced in https://github.com/kubernetes/kubernetes/pull/55834

Depends on https://github.com/kubernetes/kubernetes/pull/55834

@enj @smarterclayton
2017-11-18 10:46:32 -08:00
Scott Creeley
de4138d828 generated code for VolumeMode api change 2017-11-18 12:03:33 -05:00
Kubernetes Submit Queue
a67abac765 Merge pull request #55650 from smarterclayton/make_unstructured_conversion
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Move unstructured conversion into pkg/runtime

Scheme conversion should support unstructured conversion natively to
allow going from unstructured to typed and back. It is not a higher
level responsibility to do that conversion because the scheme is the
only one who knows what types it supports.

@liggitt @kubernetes/sig-cli-api-reviews I am going to make Scheme support unstructured in ConvertToVersion and Convert, which means resource.Builder and the CLI can get simpler for all existing use cases where versioned and unstructured need to coexist.
2017-11-18 08:47:10 -08:00
Scott Creeley
36f30bc689 Add VolumeType api to PV and PVC 2017-11-18 11:25:27 -05:00
Kubernetes Submit Queue
638add6ddf Merge pull request #54892 from caesarxuchao/add-mutating-webhook-plugin
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Adding mutating webhook admission plugin

Ref #https://github.com/kubernetes/features/issues/492

I made a change to the API to plumb the `Patch` into the response. I'll rebase onto the actual API once https://github.com/kubernetes/kubernetes/pull/55829 is merged.

We should update the release notes to point to the user docs when we have any.

```release-note
Added mutation supports to admission webhooks.
```

TODO: 
- [ ] update test image to v6 after #55829 is merged
- [ ] rename the GenericAdmissionWebhook to ValidatingAdmissionWebhook
- [ ] reduce json marshal/unmarshal roundtrip: https://github.com/kubernetes/kubernetes/pull/54892#discussion_r151336838
- [ ] move the matching function to a common package that validating and mutating webhooks can both import.
- [ ] handle namespace GET failure gracefully for fail open webhook?
2017-11-18 01:20:47 -08:00
Kubernetes Submit Queue
928c85fc99 Merge pull request #55204 from vladimirvivien/k8s-csi-volume-source
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Kubernetes CSI - Persistent Volume Source Type

**What this PR does / why we need it**:
This PR is to track the addition of new API type `CSIPersistentVolumeSource` that will be used as PersistentVolume for storage sources managed by CSI drivers. 

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
xref https://github.com/kubernetes/features/issues/178

**Special notes for your reviewer**:
- Implements API `PersistentVolume` type `CSIPersistentVolumeSource`
- Part of implementation for https://github.com/kubernetes/features/issues/178
- Designed at https://github.com/kubernetes/community/pull/1258

Other CSI Volume Plugin PRs:
- Plugin Mounter/Unmounter https://github.com/kubernetes/kubernetes/pull/54529
- Plugin Attacher/Detacher https://github.com/kubernetes/kubernetes/pull/55809

**Release note**:

```release-note
NONE
```
2017-11-17 22:18:30 -08:00
Nikhita Raghunath
6576ad561e Update generated proto for empty structs 2017-11-18 10:32:51 +05:30
Chao Xu
2052a7e2a3 Rename the testdata package to testcerts.
`godep save` somehow fails if there is a testdata go package. See
https://github.com/kubernetes/kubernetes/pull/54892#issuecomment-345035489
2017-11-17 21:02:47 -08:00
Chao Xu
6193360eb5 generated bazel 2017-11-17 21:02:47 -08:00
Chao Xu
ea123f82aa Adding the mutating webhook 2017-11-17 21:02:47 -08:00
Vladimir Vivien
c4a17304d5 CSI - Generated source code
This commit tracks all auto-generated sources.
2017-11-17 19:17:51 -05:00
Vladimir Vivien
af0c2bda94 CSI - API change for CSI volume source type
This commit tracks source code update to support the CSI volume source type additionn.
2017-11-17 19:17:42 -05:00