Commit Graph

101 Commits

Author SHA1 Message Date
Kubernetes Publisher
f3ebd4443a Merge pull request #64246 from wojtek-t/lease_object_type
Automatic merge from submit-queue (batch tested with PRs 64246, 65489, 65443). 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>.

Create "Lease" API in the new "coordination.k8s.io" api group

Part of "Efficient Node heartbeats" KEP:
https://github.com/kubernetes/community/blob/master/keps/0009-node-heartbeat.md

Part of: https://github.com/kubernetes/kubernetes/issues/14733

```release-note
NONE
```

Kubernetes-commit: 6d3bba7391fd24024b53c1ea67f7aad299cb46a8
2018-06-27 19:14:19 +00:00
Kubernetes Publisher
9aa972043f Merge pull request #64122 from ixdy/update-rules_go-and-gazelle
Automatic merge from submit-queue (batch tested with PRs 64122, 64936, 65288, 65383). 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 to rules_go 0.12.1 and gazelle 0.12.0 and perform related cleanups

**What this PR does / why we need it**: my initial intent was to simply update to rules_go 0.12.1 and gazelle 0.12.0.

A few internal changes / deprecations meant that I finally needed to clean up some technical debt. This also fixes #64122.
I've attempted to keep the steps as separate commits to make it easier to review:

1. Disable gazelle proto rule generation; legacy proto rules are deprecated, and we don't (currently) build protos at build time anyway, instead generating them with `hack/update-generated-protobuf.sh` and then checking them in. We can revisit this in the future if we'd like.
2. Remove the legacy `go_default_library_protos` filegroups using [buildozer](https://github.com/bazelbuild/buildtools/tree/master/buildozer). We don't use these, anyway.
3. Update the rules_go bazel workspace dependency to 0.12.1.
4. Vendor gazelle 0.12.0 and update BUILD files with `hack/update-bazel.sh`. This causes a lot of diffs, because `select()`s are no longer used in `srcs` attributes, external tests are folded into non-external tests, and vendored targets get an `importmap` attribute.
5. Set `gazelle:prefix` on `staging/src/BUILD` to make gazelle treat these correctly(ish). This allows us to remove the sed rewrite hack in `hack/update-bazel.sh`.
6. Explicitly set `# gazelle:importmap_prefix k8s.io/kubernetes/vendor` on `vendor/`, so that all vendored dependencies get the right importmap. gazelle 0.12.0 uses the bazel workspace name + `vendor/` as a prefix, which doesn't work with native go. Newer gazelle will use the go prefix (https://github.com/bazelbuild/bazel-gazelle/pull/207), but it's not released yet. Setting this correctly now also fixes later `BUILD` churn.
7. Re-run `hack/update-bazel.sh`. This causes a bunch of diffs, since anything under `staging/src` now uses the `staging/src/` path instead of `vendor/`. (Both would work for bazel, but gazelle uses the former, since `vendor/` uses symlinks.) Also `importmap`s under `vendor/` are fixed.
8. Reformat a few files (using [buildifier](https://github.com/bazelbuild/buildtools/tree/master/buildifier)) to make later diffs easier to read.
9. Rework the `go_genrule` rules to use the new `go_genrule` from https://github.com/kubernetes/repo-infra/pull/72, which is more bazely, since it uses the rules_go `go_path` rule instead of lots of shell.
10. Remove the deprecated `go_prefix` rule from the root BUILD.bazel file.
11. Set `# gazelle:importmap_prefix k8s.io/kubernetes/vendor` on `staging/src` as well, which ensures that these repos are treated as vendored dependencies. (It's basically the bazel-y way of doing the `vendor/k8s.io` symlinks.)
12. Run `hack/update-bazel.sh` one last time to fix all of the `importmap`s under `staging/src`.

Note re: point 6 above - we're pretty much ignoring the `vendor/k8s.io` symlinks entirely now under bazel. Using the `gazelle:prefix` directive ensures these get mapped into the right go importpath, and the `go_path` rule installs these correctly now too.

**Special notes for your reviewer**: this should not be submitted before https://github.com/kubernetes/repo-infra/pull/72, obviously.

**Release note**:

```release-note
NONE
```

/assign @BenTheElder @fejta @thockin
cc @cblecker @jayconrod

Kubernetes-commit: 1ad1c8c7f80d99b9625924b2102a04a555162bfb
2018-06-24 20:27:30 +00:00
Kubernetes Publisher
b31118a167 Merge pull request #65256 from liggitt/crd-schema-openapi
Automatic merge from submit-queue (batch tested with PRs 65256, 64236, 64919, 64879, 57932). 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 CRD OpenAPI schema

fixes #65243
depends on https://github.com/kubernetes/kube-openapi/pull/84

without this PR, kubectl complains about creating this CRD with a validation schema (which worked in 1.10):
```yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: resources.mygroup.example.com
spec:
  group: mygroup.example.com
  version: v1alpha1
  scope: Namespaced
  names:
    plural: resources
    singular: resource
    kind: Kind
    listKind: KindList
  validation:
    openAPIV3Schema:
      properties:
        spec:
          type: array
          items:
            type: number
```

> error: error validating "/Users/jliggitt/projects/snippets/crd/crd.yaml": error validating data: [ValidationError(CustomResourceDefinition.spec.validation.openAPIV3Schema.properties.spec.items): unknown field "type" in io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray, ValidationError(CustomResourceDefinition.spec.validation.openAPIV3Schema.properties.spec.items): missing required field "Schema" in io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray, ValidationError(CustomResourceDefinition.spec.validation.openAPIV3Schema.properties.spec.items): missing required field "JSONSchemas" in io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray]; if you choose to ignore these errors, turn validation off with --validate=false

that is because the types used to serialize JSONSchema require custom marshaling/unmarshaling, and the OpenAPI generator was not informed of that, so it produced this:
```json
{
    "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": {
    "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.",
    "required": [
     "Schema",
     "JSONSchemas"
    ],
    "properties": {
     "JSONSchemas": {
      "type": "array",
      "items": {
       "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps"
      }
     },
     "Schema": {
      "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps"
     }
    }
   }
}
```

OpenAPI isn't able to represent oneOf/anyOf types correctly currently. Until it can, we definitely shouldn't publish a schema containing required fields which aren't even part of the JSON serialization. This PR implements custom openapi type functions, which omit the properties/required/schema attributes for four specific JSONSchema types. This allows kubectl to continue creating these objects without complaining.

/sig api-machinery
/assign @sttts

```release-note
fixed incorrect OpenAPI schema for CustomResourceDefinition objects
```

Kubernetes-commit: ed6c8b7326bd1a1b845719f4bfb302073a18f03f
2018-06-21 04:31:22 +00:00
Kubernetes Publisher
5132471a28 Merge pull request #64719 from davidz627/feature/CSIv0.3
Automatic merge from submit-queue (batch tested with PRs 64276, 64094, 64719, 64766, 64750). 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>.

Upgrade container-storage-interface/spec dependency to v0.3.0

Also updated golang/protobuf to v1.1.0 to satisfy hard requirement of new CSI Spec version

/sig storage
/kind enhancement
/assign @saad-ali

```release-note
Updated Container Storage Interface specification version to v0.3.0
```

Kubernetes-commit: d12d8bd64bd25ce3a6bbda0dd43533cde359290b
2018-06-05 23:39:06 +00:00
Kubernetes Publisher
9946af3e30 Merge pull request #53944 from gregory-m/sample-controller-tests
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>.

Sample controller tests

**What this PR does / why we need it**:
This PR adds unit tests to sample-controller.

**Special notes for your reviewer**:
This is currently based on the munnerz:sample-controller branch. Please don't merged it until #52753 is merged.

Kubernetes-commit: dc20badcd49e5fd2ab41d4320c9c70a50d30343c
2018-05-23 03:28:43 +00:00
Kubernetes Publisher
9ec2064685 Merge pull request #62563 from devdattakulkarni/client-go-details
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>.

Updated README to include client-go<->controller diagram

The sample-controller makes extensive use of various mechanisms
available in client-go. For writing custom controllers/operators
it will be helpful if there is precise description of how the
client-go library works and how/where it interfaces with
custom controller code.

Recently we published a blog post with these details here:

https://medium.com/@cloudark/kubernetes-custom-controllers-b6c7d0668fdf

This patch includes the diagram from the post, as was recommended
by @sttts on https://github.com/kubernetes/sample-controller/issues/13

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

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

**Special notes for your reviewer**:

**Release note**:

```release-note

```

Kubernetes-commit: 773def0194ecc1cd845ea9a01da761d5a0390e6e
2018-05-14 15:40:11 +00:00
Kubernetes Publisher
8a66ce0ffe Merge pull request #63565 from roycaihw/bump-kube-openapi-dep
Automatic merge from submit-queue (batch tested with PRs 59034, 63565, 63533). 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>.

Bump kube-openapi dependency

picks: https://github.com/kubernetes/kube-openapi/pull/67
ref: https://github.com/kubernetes/kubernetes/issues/63494

**Release note**:

```release-note
NONE
```

Kubernetes-commit: 3663dc757e05fb79f23a14ad4f2ba832d6e5962c
2018-05-09 19:23:52 +00:00
Kubernetes Publisher
3c94deb4df Merge pull request #63346 from roycaihw/bump-kube-openapi
Automatic merge from submit-queue (batch tested with PRs 61455, 63346, 63130, 63404). 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>.

Bump kube-openapi dependency

**What this PR does / why we need it**:
Pick up https://github.com/kubernetes/kube-openapi/pull/64

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

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```

/sig api-machinery
/cc @mbohlool @liggitt

Kubernetes-commit: 89e6895e1c550658b7c145436868b70fb3cabbcd
2018-05-04 03:21:13 +00:00
Kubernetes Publisher
e933a6fa9c Merge pull request #60021 from nikhita/sample-controller-subresources
Automatic merge from submit-queue (batch tested with PRs 60102, 59970, 60021, 62011, 62080). 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>.

sample-controller: add status subresource support

Builds on top of https://github.com/kubernetes/kubernetes/pull/55168.

**DO NOT MERGE** until https://github.com/kubernetes/kubernetes/pull/55168 is merged. Adding a hold.
/hold

Update: It is now merged! 🎉

This PR:

- Adds an example to show how to use the `/status` subresource with custom resources.
- Generates `UpdateStatus` for the `Foo` resource.
- Updates the comment in the controller to mention that `UpdateStatus` can now be used. Note: this is not enabled by default because subresources require the feature gate to be enabled and are not on by default.
- Updates the README to add feature gate information and examples for `CustomResourceSubresources`.
- Updates the README to remove feature gate information for CRD validation since the current example uses `apps/v1` deployments (and thus requires v1.9 anyway).

**Release note**:

```release-note
NONE
```

/assign sttts munnerz

Kubernetes-commit: 7bde13f191f0791a87fe5e2575feb3d4849de536
2018-04-06 12:05:08 +00:00
Kubernetes Publisher
637ec76c82 Merge pull request #59172 from fisherxu/removeyear
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>.

Remove YEAR field of all generated files and fix kubernetes boilerplate checker

**What this PR does / why we need it**:
Remove YEAR field of all generated files and fix kubernetes boilerplate checker
xref: [remove YEAR fileds in gengo #91](https://github.com/kubernetes/gengo/pull/91)

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

**Special notes for your reviewer**:
/cc @thockin @lavalamp @sttts

**Release note**:

```release-note
NONE
```

Kubernetes-commit: e40ffd71972b820aeed283946e880aa2479f8524
2018-03-21 23:28:20 +00:00
Kubernetes Publisher
b7a35d54d8 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-21 23:27:59 +00:00
Kubernetes Publisher
02ef63233b sync: update godeps 2018-03-21 19:31:28 +00:00
Kubernetes Publisher
582615ab52 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-21 19:31:08 +00:00
Kubernetes Publisher
57eca8415c sync: update godeps 2018-03-21 15:26:19 +00:00
Kubernetes Publisher
d0e10ce699 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-21 15:25:56 +00:00
Kubernetes Publisher
511f33a332 sync: update godeps 2018-03-21 11:26:21 +00:00
Kubernetes Publisher
a202d033e8 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-21 11:25:57 +00:00
Kubernetes Publisher
a2dbfe8c0d sync: update godeps 2018-03-21 07:24:56 +00:00
Kubernetes Publisher
d04cd64012 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-21 07:24:35 +00:00
Kubernetes Publisher
563a85b29d sync: update godeps 2018-03-21 03:25:19 +00:00
Kubernetes Publisher
bf4ca65404 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-21 03:24:58 +00:00
Kubernetes Publisher
c86d2ce296 sync: update godeps 2018-03-20 23:26:06 +00:00
Kubernetes Publisher
7e9e402e3c sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-20 23:25:43 +00:00
Kubernetes Publisher
74471579f8 sync: update godeps 2018-03-20 19:28:23 +00:00
Kubernetes Publisher
43ba8acf92 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-20 19:28:01 +00:00
Kubernetes Publisher
26b988f72c sync: update godeps 2018-03-20 15:33:43 +00:00
Kubernetes Publisher
78293f14af sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-20 15:33:21 +00:00
Kubernetes Publisher
023a4501a0 sync: update godeps 2018-03-20 10:13:03 +00:00
Kubernetes Publisher
e4944b9c0c sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-20 10:12:37 +00:00
Kubernetes Publisher
f4fe69b0ee sync: update godeps 2018-03-20 06:16:04 +00:00
Kubernetes Publisher
bf928d19ad sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-20 06:15:42 +00:00
Kubernetes Publisher
334c327e37 sync: update godeps 2018-03-20 02:28:08 +00:00
Kubernetes Publisher
282c8d1cd4 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-20 02:27:46 +00:00
Kubernetes Publisher
099911c748 sync: update godeps 2018-03-19 22:07:21 +00:00
Kubernetes Publisher
3ce5aac867 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-19 22:07:01 +00:00
Kubernetes Publisher
409b230a7d sync: update godeps 2018-03-19 18:09:49 +00:00
Kubernetes Publisher
0cd0162dc6 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-19 18:09:27 +00:00
Kubernetes Publisher
6a72bdf75e sync: update godeps 2018-03-19 14:04:05 +00:00
Kubernetes Publisher
caef23f0d9 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-19 14:03:45 +00:00
Kubernetes Publisher
93527bb948 sync: update godeps 2018-03-19 10:02:38 +00:00
Kubernetes Publisher
f248b0c2a5 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-19 10:02:19 +00:00
Kubernetes Publisher
40d31f8ebc sync: update godeps 2018-03-19 06:03:01 +00:00
Kubernetes Publisher
a688a1ecd6 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-19 06:02:42 +00:00
Kubernetes Publisher
ef84932c51 sync: update godeps 2018-03-19 02:03:21 +00:00
Kubernetes Publisher
2a12a88d9a sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-19 02:03:03 +00:00
Kubernetes Publisher
253089c137 sync: update godeps 2018-03-18 22:03:37 +00:00
Kubernetes Publisher
5304c5bbfe sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-18 22:03:18 +00:00
Kubernetes Publisher
7571e5001d sync: update godeps 2018-03-18 18:03:13 +00:00
Kubernetes Publisher
eff0f430d6 sync: initially remove files BUILD */BUILD BUILD.bazel */BUILD.bazel 2018-03-18 18:02:54 +00:00
Kubernetes Publisher
87e1c1bd1a sync: update godeps 2018-03-18 14:02:45 +00:00