mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-10 07:34:04 -08:00
vendor: commit vendor/ after running govendor sync
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
This commit is contained in:
parent
7a35325d4e
commit
f02c64fe5e
37
vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
generated
vendored
Normal file
37
vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
generated
vendored
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
// Copyright (c) 2015 Dave Collins <dave@davec.name>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice appear in all copies.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
// NOTE: Due to the following build constraints, this file will only be compiled
|
||||||
|
// when either the code is running on Google App Engine or "-tags disableunsafe"
|
||||||
|
// is added to the go build command line.
|
||||||
|
// +build appengine disableunsafe
|
||||||
|
|
||||||
|
package spew
|
||||||
|
|
||||||
|
import "reflect"
|
||||||
|
|
||||||
|
const (
|
||||||
|
// UnsafeDisabled is a build-time constant which specifies whether or
|
||||||
|
// not access to the unsafe package is available.
|
||||||
|
UnsafeDisabled = true
|
||||||
|
)
|
||||||
|
|
||||||
|
// unsafeReflectValue typically converts the passed reflect.Value into a one
|
||||||
|
// that bypasses the typical safety restrictions preventing access to
|
||||||
|
// unaddressable and unexported data. However, doing this relies on access to
|
||||||
|
// the unsafe package. This is a stub version which simply returns the passed
|
||||||
|
// reflect.Value when the unsafe package is not available.
|
||||||
|
func unsafeReflectValue(v reflect.Value) reflect.Value {
|
||||||
|
return v
|
||||||
|
}
|
116
vendor/github.com/ghodss/yaml/README.md
generated
vendored
Normal file
116
vendor/github.com/ghodss/yaml/README.md
generated
vendored
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
# YAML marshaling and unmarshaling support for Go
|
||||||
|
|
||||||
|
[![Build Status](https://travis-ci.org/ghodss/yaml.svg)](https://travis-ci.org/ghodss/yaml)
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
A wrapper around [go-yaml](https://github.com/go-yaml/yaml) designed to enable a better way of handling YAML when marshaling to and from structs.
|
||||||
|
|
||||||
|
In short, this library first converts YAML to JSON using go-yaml and then uses `json.Marshal` and `json.Unmarshal` to convert to or from the struct. This means that it effectively reuses the JSON struct tags as well as the custom JSON methods `MarshalJSON` and `UnmarshalJSON` unlike go-yaml. For a detailed overview of the rationale behind this method, [see this blog post](http://ghodss.com/2014/the-right-way-to-handle-yaml-in-golang/).
|
||||||
|
|
||||||
|
## Compatibility
|
||||||
|
|
||||||
|
This package uses [go-yaml v2](https://github.com/go-yaml/yaml) and therefore supports [everything go-yaml supports](https://github.com/go-yaml/yaml#compatibility).
|
||||||
|
|
||||||
|
## Caveats
|
||||||
|
|
||||||
|
**Caveat #1:** When using `yaml.Marshal` and `yaml.Unmarshal`, binary data should NOT be preceded with the `!!binary` YAML tag. If you do, go-yaml will convert the binary data from base64 to native binary data, which is not compatible with JSON. You can still use binary in your YAML files though - just store them without the `!!binary` tag and decode the base64 in your code (e.g. in the custom JSON methods `MarshalJSON` and `UnmarshalJSON`). This also has the benefit that your YAML and your JSON binary data will be decoded exactly the same way. As an example:
|
||||||
|
|
||||||
|
```
|
||||||
|
BAD:
|
||||||
|
exampleKey: !!binary gIGC
|
||||||
|
|
||||||
|
GOOD:
|
||||||
|
exampleKey: gIGC
|
||||||
|
... and decode the base64 data in your code.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Caveat #2:** When using `YAMLToJSON` directly, maps with keys that are maps will result in an error since this is not supported by JSON. This error will occur in `Unmarshal` as well since you can't unmarshal map keys anyways since struct fields can't be keys.
|
||||||
|
|
||||||
|
## Installation and usage
|
||||||
|
|
||||||
|
To install, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ go get github.com/ghodss/yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
And import using:
|
||||||
|
|
||||||
|
```
|
||||||
|
import "github.com/ghodss/yaml"
|
||||||
|
```
|
||||||
|
|
||||||
|
Usage is very similar to the JSON library:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/ghodss/yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Person struct {
|
||||||
|
Name string `json:"name"` // Affects YAML field names too.
|
||||||
|
Age int `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Marshal a Person struct to YAML.
|
||||||
|
p := Person{"John", 30}
|
||||||
|
y, err := yaml.Marshal(p)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("err: %v\n", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(string(y))
|
||||||
|
/* Output:
|
||||||
|
name: John
|
||||||
|
age: 30
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Unmarshal the YAML back into a Person struct.
|
||||||
|
var p2 Person
|
||||||
|
err := yaml.Unmarshal(y, &p2)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("err: %v\n", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(p2)
|
||||||
|
/* Output:
|
||||||
|
{John 30}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`yaml.YAMLToJSON` and `yaml.JSONToYAML` methods are also available:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/ghodss/yaml"
|
||||||
|
)
|
||||||
|
func main() {
|
||||||
|
j := []byte(`{"name": "John", "age": 30}`)
|
||||||
|
y, err := yaml.JSONToYAML(j)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("err: %v\n", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(string(y))
|
||||||
|
/* Output:
|
||||||
|
name: John
|
||||||
|
age: 30
|
||||||
|
*/
|
||||||
|
j2, err := yaml.YAMLToJSON(y)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("err: %v\n", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(string(j2))
|
||||||
|
/* Output:
|
||||||
|
{"age":30,"name":"John"}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
```
|
71
vendor/github.com/google/gofuzz/README.md
generated
vendored
Normal file
71
vendor/github.com/google/gofuzz/README.md
generated
vendored
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
gofuzz
|
||||||
|
======
|
||||||
|
|
||||||
|
gofuzz is a library for populating go objects with random values.
|
||||||
|
|
||||||
|
[![GoDoc](https://godoc.org/github.com/google/gofuzz?status.png)](https://godoc.org/github.com/google/gofuzz)
|
||||||
|
[![Travis](https://travis-ci.org/google/gofuzz.svg?branch=master)](https://travis-ci.org/google/gofuzz)
|
||||||
|
|
||||||
|
This is useful for testing:
|
||||||
|
|
||||||
|
* Do your project's objects really serialize/unserialize correctly in all cases?
|
||||||
|
* Is there an incorrectly formatted object that will cause your project to panic?
|
||||||
|
|
||||||
|
Import with ```import "github.com/google/gofuzz"```
|
||||||
|
|
||||||
|
You can use it on single variables:
|
||||||
|
```
|
||||||
|
f := fuzz.New()
|
||||||
|
var myInt int
|
||||||
|
f.Fuzz(&myInt) // myInt gets a random value.
|
||||||
|
```
|
||||||
|
|
||||||
|
You can use it on maps:
|
||||||
|
```
|
||||||
|
f := fuzz.New().NilChance(0).NumElements(1, 1)
|
||||||
|
var myMap map[ComplexKeyType]string
|
||||||
|
f.Fuzz(&myMap) // myMap will have exactly one element.
|
||||||
|
```
|
||||||
|
|
||||||
|
Customize the chance of getting a nil pointer:
|
||||||
|
```
|
||||||
|
f := fuzz.New().NilChance(.5)
|
||||||
|
var fancyStruct struct {
|
||||||
|
A, B, C, D *string
|
||||||
|
}
|
||||||
|
f.Fuzz(&fancyStruct) // About half the pointers should be set.
|
||||||
|
```
|
||||||
|
|
||||||
|
You can even customize the randomization completely if needed:
|
||||||
|
```
|
||||||
|
type MyEnum string
|
||||||
|
const (
|
||||||
|
A MyEnum = "A"
|
||||||
|
B MyEnum = "B"
|
||||||
|
)
|
||||||
|
type MyInfo struct {
|
||||||
|
Type MyEnum
|
||||||
|
AInfo *string
|
||||||
|
BInfo *string
|
||||||
|
}
|
||||||
|
|
||||||
|
f := fuzz.New().NilChance(0).Funcs(
|
||||||
|
func(e *MyInfo, c fuzz.Continue) {
|
||||||
|
switch c.Intn(2) {
|
||||||
|
case 0:
|
||||||
|
e.Type = A
|
||||||
|
c.Fuzz(&e.AInfo)
|
||||||
|
case 1:
|
||||||
|
e.Type = B
|
||||||
|
c.Fuzz(&e.BInfo)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
var myObject MyInfo
|
||||||
|
f.Fuzz(&myObject) // Type will correspond to whether A or B info is set.
|
||||||
|
```
|
||||||
|
|
||||||
|
See more examples in ```example_test.go```.
|
||||||
|
|
||||||
|
Happy testing!
|
20
vendor/github.com/influxdb/influxdb/LICENSE
generated
vendored
20
vendor/github.com/influxdb/influxdb/LICENSE
generated
vendored
|
@ -1,20 +0,0 @@
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2013-2015 Errplane Inc.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
||||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
||||||
subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
||||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
||||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
||||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
4
vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE
generated
vendored
4
vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE
generated
vendored
|
@ -178,7 +178,7 @@
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
To apply the Apache License to your work, attach the following
|
||||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
replaced with your own identifying information. (Don't include
|
replaced with your own identifying information. (Don't include
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
comment syntax for the file format. We also recommend that a
|
comment syntax for the file format. We also recommend that a
|
||||||
|
@ -186,7 +186,7 @@
|
||||||
same "printed page" as the copyright notice for easier
|
same "printed page" as the copyright notice for easier
|
||||||
identification within third-party archives.
|
identification within third-party archives.
|
||||||
|
|
||||||
Copyright {yyyy} {name of copyright owner}
|
Copyright 2013 Matt T. Proud
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|
1
vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE
generated
vendored
1
vendor/github.com/matttproud/golang_protobuf_extensions/NOTICE
generated
vendored
|
@ -1 +0,0 @@
|
||||||
Copyright 2012 Matt T. Proud (matt.proud@gmail.com)
|
|
13
vendor/gopkg.in/yaml.v2/NOTICE
generated
vendored
Normal file
13
vendor/gopkg.in/yaml.v2/NOTICE
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Copyright 2011-2016 Canonical Ltd.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
5
vendor/gopkg.in/yaml.v2/go.mod
generated
vendored
Normal file
5
vendor/gopkg.in/yaml.v2/go.mod
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
module "gopkg.in/yaml.v2"
|
||||||
|
|
||||||
|
require (
|
||||||
|
"gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405
|
||||||
|
)
|
420
vendor/k8s.io/client-go/CHANGELOG.md
generated
vendored
420
vendor/k8s.io/client-go/CHANGELOG.md
generated
vendored
|
@ -1,420 +0,0 @@
|
||||||
TODO: This document was manually maintained so might be incomplete. The
|
|
||||||
automation effort is tracked in
|
|
||||||
https://github.com/kubernetes/client-go/issues/234.
|
|
||||||
|
|
||||||
Changes in `k8s.io/api` and `k8s.io/apimachinery` are mentioned here
|
|
||||||
because `k8s.io/client-go` depends on them.
|
|
||||||
|
|
||||||
# v7.0.0
|
|
||||||
|
|
||||||
**Breaking Changes:**
|
|
||||||
|
|
||||||
* Google Cloud Service Account email addresses can now be used in RBAC Role bindings since the default scopes now include the `userinfo.email` scope. This is a breaking change if the numeric uniqueIDs of the Google service accounts were being used in RBAC role bindings. The behavior can be overridden by explicitly specifying the scope values as comma-separated string in the `users[*].config.scopes` field in the `KUBECONFIG` file.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58141](https://github.com/kubernetes/kubernetes/pull/58141)
|
|
||||||
|
|
||||||
* [k8s.io/api] The `ConfigOK` node condition has been renamed to `KubeletConfigOk`.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/59905](https://github.com/kubernetes/kubernetes/pull/59905)
|
|
||||||
|
|
||||||
**New Features:**
|
|
||||||
|
|
||||||
* Subresource support is added to the dynamic client.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/56717](https://github.com/kubernetes/kubernetes/pull/56717)
|
|
||||||
|
|
||||||
* A watch method is added to the Fake Client.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/57504](https://github.com/kubernetes/kubernetes/pull/57504)
|
|
||||||
|
|
||||||
* `ListOptions` can be modified when creating a `ListWatch`.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/57508](https://github.com/kubernetes/kubernetes/pull/57508)
|
|
||||||
|
|
||||||
* A `/token` subresource for ServiceAccount is added.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58111](https://github.com/kubernetes/kubernetes/pull/58111)
|
|
||||||
|
|
||||||
* If an informer delivery fails, the particular notification is skipped and continued the next time.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58394](https://github.com/kubernetes/kubernetes/pull/58394)
|
|
||||||
|
|
||||||
* Certificate manager will no longer wait until the initial rotation succeeds or fails before returning from `Start()`.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58930](https://github.com/kubernetes/kubernetes/pull/58930)
|
|
||||||
|
|
||||||
* [k8s.io/api] `VolumeScheduling` and `LocalPersistentVolume` features are beta and enabled by default. The PersistentVolume NodeAffinity alpha annotation is deprecated and will be removed in a future release.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/59391](https://github.com/kubernetes/kubernetes/pull/59391)
|
|
||||||
|
|
||||||
* [k8s.io/api] The `PodSecurityPolicy` API has been moved to the `policy/v1beta1` API group. The `PodSecurityPolicy` API in the `extensions/v1beta1` API group is deprecated and will be removed in a future release.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54933](https://github.com/kubernetes/kubernetes/pull/54933)
|
|
||||||
|
|
||||||
* [k8s.io/api] ConfigMap objects now support binary data via a new `binaryData` field.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/57938](https://github.com/kubernetes/kubernetes/pull/57938)
|
|
||||||
|
|
||||||
* [k8s.io/api] Service account TokenRequest API is added.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58027](https://github.com/kubernetes/kubernetes/pull/58027)
|
|
||||||
|
|
||||||
* [k8s.io/api] FSType is added in CSI volume source to specify filesystems.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58209](https://github.com/kubernetes/kubernetes/pull/58209)
|
|
||||||
|
|
||||||
* [k8s.io/api] v1beta1 VolumeAttachment API is added.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58462](https://github.com/kubernetes/kubernetes/pull/58462)
|
|
||||||
|
|
||||||
* [k8s.io/api] `v1.Pod` now has a field `ShareProcessNamespace` to configure whether a single process namespace should be shared between all containers in a pod. This feature is in alpha preview.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58716](https://github.com/kubernetes/kubernetes/pull/58716)
|
|
||||||
|
|
||||||
* [k8s.io/api] Add `NominatedNodeName` field to `PodStatus`. This field is set when a pod preempts other pods on the node.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58990](https://github.com/kubernetes/kubernetes/pull/58990)
|
|
||||||
|
|
||||||
* [k8s.io/api] Promote `CSIPersistentVolumeSourc`e to beta.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/59157](https://github.com/kubernetes/kubernetes/pull/59157)
|
|
||||||
|
|
||||||
* [k8s.io/api] Promote `DNSPolicy` and `DNSConfig` in `PodSpec` to beta.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/59771](https://github.com/kubernetes/kubernetes/pull/59771)
|
|
||||||
|
|
||||||
* [k8s.io/api] External metric types are added to the HPA API.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/60096](https://github.com/kubernetes/kubernetes/pull/60096)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] The `meta.k8s.io/v1alpha1` objects for retrieving tabular responses from the server (`Table`) or fetching just the `ObjectMeta` for an object (as `PartialObjectMetadata`) are now beta as part of `meta.k8s.io/v1beta1`. Clients may request alternate representations of normal Kubernetes objects by passing an `Accept` header like `application/json;as=Table;g=meta.k8s.io;v=v1beta1` or `application/json;as=PartialObjectMetadata;g=meta.k8s.io;v1=v1beta1`. Older servers will ignore this representation or return an error if it is not available. Clients may request fallback to the normal object by adding a non-qualified mime-type to their `Accept` header like `application/json` - the server will then respond with either the alternate representation if it is supported or the fallback mime-type which is the normal object response.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/59059](https://github.com/kubernetes/kubernetes/pull/59059)
|
|
||||||
|
|
||||||
|
|
||||||
**Bug fixes and Improvements:**
|
|
||||||
|
|
||||||
* Port-forwarding of TCP6 ports is fixed.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/57457](https://github.com/kubernetes/kubernetes/pull/57457)
|
|
||||||
|
|
||||||
* A race condition in SharedInformer that could violate the sequential delivery guarantee and cause panics on shutdown is fixed.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/59828](https://github.com/kubernetes/kubernetes/pull/59828)
|
|
||||||
|
|
||||||
* [k8s.io/api] PersistentVolume flexVolume sources can now reference secrets in a namespace other than the PersistentVolumeClaim's namespace.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/56460](https://github.com/kubernetes/kubernetes/pull/56460)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] YAMLDecoder Read can now return the number of bytes read.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/57000](https://github.com/kubernetes/kubernetes/pull/57000)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] YAMLDecoder Read now tracks rest of buffer on `io.ErrShortBuffer`.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/58817](https://github.com/kubernetes/kubernetes/pull/58817)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] Prompt required merge key in the error message while applying a strategic merge patch.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/57854](https://github.com/kubernetes/kubernetes/pull/57854)
|
|
||||||
|
|
||||||
# v6.0.0
|
|
||||||
|
|
||||||
**Breaking Changes:**
|
|
||||||
|
|
||||||
* If you upgrade your client-go libs and use the `AppsV1() or Apps()` interface, please note that the default garbage collection behavior is changed.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/55148](https://github.com/kubernetes/kubernetes/pull/55148)
|
|
||||||
|
|
||||||
* Swagger 1.2 retriever `DiscoveryClient.SwaggerSchema` was removed from the discovery client
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53441](https://github.com/kubernetes/kubernetes/pull/53441)
|
|
||||||
|
|
||||||
* Informers got a NewFilteredSharedInformerFactory to e.g. filter by namespace
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54660](https://github.com/kubernetes/kubernetes/pull/54660)
|
|
||||||
|
|
||||||
* [k8s.io/api] The dynamic admission webhook is split into two kinds, mutating and validating.
|
|
||||||
The kinds have changed completely and old code must be ported to `admissionregistration.k8s.io/v1beta1` -
|
|
||||||
`MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration`
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/55282](https://github.com/kubernetes/kubernetes/pull/55282)
|
|
||||||
|
|
||||||
* [k8s.io/api] Renamed `core/v1.ScaleIOVolumeSource` to `ScaleIOPersistentVolumeSource`
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54013](https://github.com/kubernetes/kubernetes/pull/54013)
|
|
||||||
|
|
||||||
* [k8s.io/api] Renamed `core/v1.RBDVolumeSource` to `RBDPersistentVolumeSource`
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54302](https://github.com/kubernetes/kubernetes/pull/54302)
|
|
||||||
|
|
||||||
* [k8s.io/api] Removed `core/v1.CreatedByAnnotation`
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54445](https://github.com/kubernetes/kubernetes/pull/54445)
|
|
||||||
|
|
||||||
* [k8s.io/api] Renamed `core/v1.StorageMediumHugepages` to `StorageMediumHugePages`
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54748](https://github.com/kubernetes/kubernetes/pull/54748)
|
|
||||||
|
|
||||||
* [k8s.io/api] `core/v1.Taint.TimeAdded` became a pointer
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/43016](https://github.com/kubernetes/kubernetes/pull/43016)
|
|
||||||
|
|
||||||
* [k8s.io/api] `core/v1.DefaultHardPodAffinitySymmetricWeight` type changed from int to int32
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53850](https://github.com/kubernetes/kubernetes/pull/53850)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] `ObjectCopier` interface was removed (requires switch to new generators with DeepCopy methods)
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53525](https://github.com/kubernetes/kubernetes/pull/53525)
|
|
||||||
|
|
||||||
**New Features:**
|
|
||||||
|
|
||||||
* Certificate manager was moved from kubelet to `k8s.io/client-go/util/certificates`
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/49654](https://github.com/kubernetes/kubernetes/pull/49654)
|
|
||||||
|
|
||||||
* [k8s.io/api] Workloads api types are promoted to `apps/v1` version
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53679](https://github.com/kubernetes/kubernetes/pull/53679)
|
|
||||||
|
|
||||||
* [k8s.io/api] Added `storage.k8s.io/v1alpha1` API group
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54463](https://github.com/kubernetes/kubernetes/pull/54463)
|
|
||||||
|
|
||||||
* [k8s.io/api] Added support for conditions in StatefulSet status
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/55268](https://github.com/kubernetes/kubernetes/pull/55268)
|
|
||||||
|
|
||||||
* [k8s.io/api] Added support for conditions in DaemonSet status
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/55272](https://github.com/kubernetes/kubernetes/pull/55272)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] Added polymorphic scale client in `k8s.io/client-go/scale`, which supports scaling of resources in arbitrary API groups
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53743](https://github.com/kubernetes/kubernetes/pull/53743)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] `meta.MetadataAccessor` got API chunking support
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53768](https://github.com/kubernetes/kubernetes/pull/53768)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] `unstructured.Unstructured` got getters and setters
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/51940](https://github.com/kubernetes/kubernetes/pull/51940)
|
|
||||||
|
|
||||||
**Bug fixes and Improvements:**
|
|
||||||
|
|
||||||
* The body in glog output is not truncated with log level 10
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/54801](https://github.com/kubernetes/kubernetes/pull/54801)
|
|
||||||
|
|
||||||
* [k8s.io/api] Unset `creationTimestamp` field is output as null if encoded from an unstructured object
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53464](https://github.com/kubernetes/kubernetes/pull/53464)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] Redirect behavior is restored for proxy subresources
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/52933](https://github.com/kubernetes/kubernetes/pull/52933)
|
|
||||||
|
|
||||||
* [k8s.io/apimachinery] Random string generation functions are optimized
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/53720](https://github.com/kubernetes/kubernetes/pull/53720)
|
|
||||||
|
|
||||||
# v5.0.1
|
|
||||||
|
|
||||||
Bug fix: picked up a security fix [kubernetes/kubernetes#53443](https://github.com/kubernetes/kubernetes/pull/53443) for `PodSecurityPolicy`.
|
|
||||||
|
|
||||||
# v5.0.0
|
|
||||||
|
|
||||||
**New features:**
|
|
||||||
|
|
||||||
* Added paging support
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/51876](https://github.com/kubernetes/kubernetes/pull/51876)
|
|
||||||
|
|
||||||
* Added support for client-side spam filtering of events
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/47367](https://github.com/kubernetes/kubernetes/pull/47367)
|
|
||||||
|
|
||||||
* Added support for http etag and caching
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/50404](https://github.com/kubernetes/kubernetes/pull/50404)
|
|
||||||
|
|
||||||
* Added priority queue support to informer cache
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/49752](https://github.com/kubernetes/kubernetes/pull/49752)
|
|
||||||
|
|
||||||
* Added openstack auth provider
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/39587](https://github.com/kubernetes/kubernetes/pull/39587)
|
|
||||||
|
|
||||||
* Added metrics for checking reflector health
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/48224](https://github.com/kubernetes/kubernetes/pull/48224)
|
|
||||||
|
|
||||||
* Client-go now includes the leaderelection package
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/39173](https://github.com/kubernetes/kubernetes/pull/39173)
|
|
||||||
|
|
||||||
**API changes:**
|
|
||||||
|
|
||||||
* Promoted Autoscaling v2alpha1 to v2beta1
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/50708](https://github.com/kubernetes/kubernetes/pull/50708)
|
|
||||||
|
|
||||||
* Promoted CronJobs to batch/v1beta1
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/41901](https://github.com/kubernetes/kubernetes/pull/41901)
|
|
||||||
|
|
||||||
* Promoted rbac.authorization.k8s.io/v1beta1 to rbac.authorization.k8s.io/v1
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/49642](https://github.com/kubernetes/kubernetes/pull/49642)
|
|
||||||
|
|
||||||
* Added a new API version apps/v1beta2
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/48746](https://github.com/kubernetes/kubernetes/pull/48746)
|
|
||||||
|
|
||||||
* Added a new API version scheduling/v1alpha1
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/48377](https://github.com/kubernetes/kubernetes/pull/48377)
|
|
||||||
|
|
||||||
**Breaking changes:**
|
|
||||||
|
|
||||||
* Moved pkg/api and pkg/apis to [k8s.io/api](https://github.com/kubernetes/api). Other kubernetes repositories also import types from there, so they are composable with client-go.
|
|
||||||
|
|
||||||
* Removed helper functions in pkg/api and pkg/apis. They are planned to be exported in other repos. The issue is tracked [here](https://github.com/kubernetes/kubernetes/issues/48209#issuecomment-314537745). During the transition, you'll have to copy the helper functions to your projects.
|
|
||||||
|
|
||||||
* The discovery client now fetches the protobuf encoded OpenAPI schema and returns `openapi_v2.Document`
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/46803](https://github.com/kubernetes/kubernetes/pull/46803)
|
|
||||||
|
|
||||||
* Enforced explicit references to API group client interfaces in clientsets to avoid ambiguity.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/49370](https://github.com/kubernetes/kubernetes/pull/49370)
|
|
||||||
|
|
||||||
* The generic RESTClient type (`k8s.io/client-go/rest`) no longer exposes `LabelSelectorParam` or `FieldSelectorParam` methods - use `VersionedParams` with `metav1.ListOptions` instead. The `UintParam` method has been removed. The `timeout` parameter will no longer cause an error when using `Param()`.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/48991](https://github.com/kubernetes/kubernetes/pull/48991)
|
|
||||||
|
|
||||||
# v4.0.0
|
|
||||||
|
|
||||||
No significant changes since v4.0.0-beta.0.
|
|
||||||
|
|
||||||
# v4.0.0-beta.0
|
|
||||||
|
|
||||||
**New features:**
|
|
||||||
|
|
||||||
* Added OpenAPISchema support in the discovery client
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/44531](https://github.com/kubernetes/kubernetes/pull/44531)
|
|
||||||
|
|
||||||
* Added mutation cache filter: MutationCache is able to take the result of update operations and stores them in an LRU that can be used to provide a more current view of a requested object.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/45838](https://github.com/kubernetes/kubernetes/pull/45838/commits/f88c7725b4f9446c652d160bdcfab7c6201bddea)
|
|
||||||
|
|
||||||
* Moved the remotecommand package (used by `kubectl exec/attach`) to client-go
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/41331](https://github.com/kubernetes/kubernetes/pull/41331)
|
|
||||||
|
|
||||||
* Added support for following redirects to the SpdyRoundTripper
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/44451](https://github.com/kubernetes/kubernetes/pull/44451)
|
|
||||||
|
|
||||||
* Added Azure Active Directory plugin
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/43987](https://github.com/kubernetes/kubernetes/pull/43987)
|
|
||||||
|
|
||||||
**Usability improvements:**
|
|
||||||
|
|
||||||
* Added several new examples and reorganized client-go/examples
|
|
||||||
|
|
||||||
* [Related PRs](https://github.com/kubernetes/kubernetes/commits/release-1.7/staging/src/k8s.io/client-go/examples)
|
|
||||||
|
|
||||||
**API changes:**
|
|
||||||
|
|
||||||
* Added networking.k8s.io/v1 API
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/39164](https://github.com/kubernetes/kubernetes/pull/39164)
|
|
||||||
|
|
||||||
* ControllerRevision type added for StatefulSet and DaemonSet history.
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/45867](https://github.com/kubernetes/kubernetes/pull/45867)
|
|
||||||
|
|
||||||
* Added support for initializers
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/38058](https://github.com/kubernetes/kubernetes/pull/38058)
|
|
||||||
|
|
||||||
* Added admissionregistration.k8s.io/v1alpha1 API
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/46294](https://github.com/kubernetes/kubernetes/pull/46294)
|
|
||||||
|
|
||||||
**Breaking changes:**
|
|
||||||
|
|
||||||
* Moved client-go/util/clock to apimachinery/pkg/util/clock
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/45933](https://github.com/kubernetes/kubernetes/pull/45933/commits/8013212db54e95050c622675c6706cce5de42b45)
|
|
||||||
|
|
||||||
* Some [API helpers](https://github.com/kubernetes/client-go/blob/release-3.0/pkg/api/helpers.go) were removed.
|
|
||||||
|
|
||||||
* Dynamic client takes GetOptions as an input parameter
|
|
||||||
|
|
||||||
* [https://github.com/kubernetes/kubernetes/pull/47251](https://github.com/kubernetes/kubernetes/pull/47251)
|
|
||||||
|
|
||||||
**Bug fixes:**
|
|
||||||
|
|
||||||
* PortForwarder: don't log an error if net.Listen fails. [https://github.com/kubernetes/kubernetes/pull/44636](https://github.com/kubernetes/kubernetes/pull/44636)
|
|
||||||
|
|
||||||
* oidc auth plugin not to override the Auth header if it's already exits. [https://github.com/kubernetes/kubernetes/pull/45529](https://github.com/kubernetes/kubernetes/pull/45529)
|
|
||||||
|
|
||||||
* The --namespace flag is now honored for in-cluster clients that have an empty configuration. [https://github.com/kubernetes/kubernetes/pull/46299](https://github.com/kubernetes/kubernetes/pull/46299)
|
|
||||||
|
|
||||||
* GCP auth plugin no longer overwrites existing Authorization headers. [https://github.com/kubernetes/kubernetes/pull/45575](https://github.com/kubernetes/kubernetes/pull/45575)
|
|
||||||
|
|
||||||
# v3.0.0
|
|
||||||
|
|
||||||
Bug fixes:
|
|
||||||
* Use OS-specific libs when computing client User-Agent in kubectl, etc. (https://github.com/kubernetes/kubernetes/pull/44423)
|
|
||||||
* kubectl commands run inside a pod using a kubeconfig file now use the namespace specified in the kubeconfig file, instead of using the pod namespace. If no kubeconfig file is used, or the kubeconfig does not specify a namespace, the pod namespace is still used as a fallback. (https://github.com/kubernetes/kubernetes/pull/44570)
|
|
||||||
* Restored the ability of kubectl running inside a pod to consume resource files specifying a different namespace than the one the pod is running in. (https://github.com/kubernetes/kubernetes/pull/44862)
|
|
||||||
|
|
||||||
# v3.0.0-beta.0
|
|
||||||
|
|
||||||
* Added dependency on k8s.io/apimachinery. The impacts include changing import path of API objects like `ListOptions` from `k8s.io/client-go/pkg/api/v1` to `k8s.io/apimachinery/pkg/apis/meta/v1`.
|
|
||||||
* Added generated listers (listers/) and informers (informers/)
|
|
||||||
* Kubernetes API changes:
|
|
||||||
* Added client support for:
|
|
||||||
* authentication/v1
|
|
||||||
* authorization/v1
|
|
||||||
* autoscaling/v2alpha1
|
|
||||||
* rbac/v1beta1
|
|
||||||
* settings/v1alpha1
|
|
||||||
* storage/v1
|
|
||||||
* Changed client support for:
|
|
||||||
* certificates from v1alpha1 to v1beta1
|
|
||||||
* policy from v1alpha1 to v1beta1
|
|
||||||
* Deleted client support for:
|
|
||||||
* extensions/v1beta1#Job
|
|
||||||
* CHANGED: pass typed options to dynamic client (https://github.com/kubernetes/kubernetes/pull/41887)
|
|
||||||
|
|
||||||
# v2.0.0
|
|
||||||
|
|
||||||
* Included bug fixes in k8s.io/kuberentes release-1.5 branch, up to commit
|
|
||||||
bde8578d9675129b7a2aa08f1b825ec6cc0f3420
|
|
||||||
|
|
||||||
# v2.0.0-alpha.1
|
|
||||||
|
|
||||||
* Removed top-level version folder (e.g., 1.4 and 1.5), switching to maintaining separate versions
|
|
||||||
in separate branches.
|
|
||||||
* Clientset supported multiple versions per API group
|
|
||||||
* Added ThirdPartyResources example
|
|
||||||
* Kubernetes API changes
|
|
||||||
* Apps API group graduated to v1beta1
|
|
||||||
* Policy API group graduated to v1beta1
|
|
||||||
* Added support for batch/v2alpha1/cronjob
|
|
||||||
* Renamed PetSet to StatefulSet
|
|
||||||
|
|
||||||
|
|
||||||
# v1.5.0
|
|
||||||
|
|
||||||
* Included the auth plugin (https://github.com/kubernetes/kubernetes/pull/33334)
|
|
||||||
* Added timeout field to RESTClient config (https://github.com/kubernetes/kubernetes/pull/33958)
|
|
7
vendor/k8s.io/client-go/CONTRIBUTING.md
generated
vendored
7
vendor/k8s.io/client-go/CONTRIBUTING.md
generated
vendored
|
@ -1,7 +0,0 @@
|
||||||
# Contributing guidelines
|
|
||||||
|
|
||||||
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
|
|
||||||
|
|
||||||
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/client-go](https://git.k8s.io/kubernetes/staging/src/k8s.io/client-go) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
|
|
||||||
|
|
||||||
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/staging.md) for more information
|
|
162
vendor/k8s.io/client-go/INSTALL.md
generated
vendored
162
vendor/k8s.io/client-go/INSTALL.md
generated
vendored
|
@ -1,162 +0,0 @@
|
||||||
# Installing client-go
|
|
||||||
|
|
||||||
## For the casual user
|
|
||||||
|
|
||||||
If you want to write a simple script, don't care about a reproducible client
|
|
||||||
library install, don't mind getting head (which may be less stable than a
|
|
||||||
particular release), then simply:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ go get k8s.io/client-go/...
|
|
||||||
```
|
|
||||||
|
|
||||||
This will install `k8s.io/client-go` in your `$GOPATH`. `k8s.io/client-go`
|
|
||||||
includes most of its own dependencies in its `k8s.io/client-go/vendor` path,
|
|
||||||
except for `k8s.io/apimachinery` and `glog`. `go get` will recursively download
|
|
||||||
these excluded repos to your `$GOPATH`, if they don't already exist. If
|
|
||||||
`k8s.io/apimachinery` preexisted in `$GOPATH`, you also need to:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ go get -u k8s.io/apimachinery/...
|
|
||||||
```
|
|
||||||
|
|
||||||
because the head of client-go is only guaranteed to work with the head of
|
|
||||||
apimachinery.
|
|
||||||
|
|
||||||
We excluded `k8s.io/apimachinery` and `glog` from `k8s.io/client-go/vendor` to
|
|
||||||
prevent `go get` users from hitting issues like
|
|
||||||
[#19](https://github.com/kubernetes/client-go/issues/19) and
|
|
||||||
[#83](https://github.com/kubernetes/client-go/issues/83). If your project share
|
|
||||||
other dependencies with client-go, and you hit issues similar to #19 or #83,
|
|
||||||
then you'll need to look down at the next section.
|
|
||||||
|
|
||||||
Note: the official go policy is that libraries should not vendor their
|
|
||||||
dependencies. This is unworkable for us, since our dependencies change and HEAD
|
|
||||||
on every dependency has not necessarily been tested with client-go. In fact,
|
|
||||||
HEAD from all dependencies may not even compile with client-go!
|
|
||||||
|
|
||||||
## Dependency management for the serious (or reluctant) user
|
|
||||||
|
|
||||||
Reasons why you might need to use a dependency management system:
|
|
||||||
* You use a dependency that client-go also uses, and don't want two copies of
|
|
||||||
the dependency compiled into your application. For some dependencies with
|
|
||||||
singletons or global inits (e.g. `glog`) this wouldn't even compile...
|
|
||||||
* You want to lock in a particular version (so you don't have to change your
|
|
||||||
code every time we change a public interface).
|
|
||||||
* You want your install to be reproducible. For example, for your CI system or
|
|
||||||
for new team members.
|
|
||||||
|
|
||||||
There are three tools you could in theory use for this. Instructions
|
|
||||||
for each follows.
|
|
||||||
|
|
||||||
### Godep
|
|
||||||
|
|
||||||
[godep](https://github.com/tools/godep) is an older dependency management tool, which is
|
|
||||||
used by the main Kubernetes repo and `client-go` to manage dependencies.
|
|
||||||
|
|
||||||
Before proceeding with the below instructions, you should ensure that your
|
|
||||||
$GOPATH is empty except for containing your own package and its dependencies,
|
|
||||||
and you have a copy of godep somewhere in your $PATH.
|
|
||||||
|
|
||||||
To install `client-go` and place its dependencies in your `$GOPATH`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
go get k8s.io/client-go/...
|
|
||||||
cd $GOPATH/src/k8s.io/client-go
|
|
||||||
git checkout v6.0.0
|
|
||||||
# cd 1.5 # only necessary with 1.5 and 1.4 clients.
|
|
||||||
godep restore ./...
|
|
||||||
```
|
|
||||||
|
|
||||||
At this point, `client-go`'s dependencies have been placed in your $GOPATH, but
|
|
||||||
if you were to build, `client-go` would still see its own copy of its
|
|
||||||
dependencies in its `vendor` directory. You have two options at this point.
|
|
||||||
|
|
||||||
If you would like to keep dependencies in your own project's vendor directory,
|
|
||||||
then you can continue like this:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd $GOPATH/src/<my-pkg>
|
|
||||||
godep save ./...
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, if you want to build using the dependencies in your `$GOPATH`,
|
|
||||||
then `rm -rf vendor/` to remove `client-go`'s copy of its dependencies.
|
|
||||||
|
|
||||||
### Glide
|
|
||||||
|
|
||||||
[Glide](https://github.com/Masterminds/glide) is another popular dependency
|
|
||||||
management tool for Go. Glide will manage your /vendor directory, but unlike
|
|
||||||
godep, will not use or modify your $GOPATH (there's no equivalent of
|
|
||||||
`godep restore` or `godep save`).
|
|
||||||
|
|
||||||
Generally, it's best to avoid Glide's many subcommands, favoring modifying
|
|
||||||
Glide's manifest file (`glide.yaml`) directly, then running
|
|
||||||
`glide update --strip-vendor`. First create a `glide.yaml` file at the root of
|
|
||||||
your project:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
package: ( your project's import path ) # e.g. github.com/foo/bar
|
|
||||||
import:
|
|
||||||
- package: k8s.io/client-go
|
|
||||||
version: v6.0.0
|
|
||||||
```
|
|
||||||
|
|
||||||
Second, add a Go file that imports `client-go` somewhere in your project,
|
|
||||||
otherwise `client-go`'s dependencies will not be added to your project's
|
|
||||||
vendor/. Then run the following command in the same directory as `glide.yaml`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
glide update --strip-vendor
|
|
||||||
```
|
|
||||||
|
|
||||||
This can also be abbreviated as:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
glide up -v
|
|
||||||
```
|
|
||||||
|
|
||||||
At this point, `k8s.io/client-go` should be added to your project's vendor/.
|
|
||||||
`client-go`'s dependencies should be flattened and be added to your project's
|
|
||||||
vendor/ as well.
|
|
||||||
|
|
||||||
Glide will detect the versions of dependencies `client-go` specified in
|
|
||||||
`client-go`'s Godep.json file, and automatically set the versions of these
|
|
||||||
imports in your /vendor directory. It will also record the detected version of
|
|
||||||
all dependencies in the `glide.lock` file.
|
|
||||||
|
|
||||||
Projects that require a different version of a dependency than `client-go`
|
|
||||||
requests can override the version manually in `glide.yaml`. For example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
package: ( your project's import path ) # e.g. github.com/foo/bar
|
|
||||||
import:
|
|
||||||
- package: k8s.io/client-go
|
|
||||||
version: v6.0.0
|
|
||||||
# Use a newer version of go-spew even though client-go wants an old one.
|
|
||||||
- package: github.com/davecgh/go-spew
|
|
||||||
version: v1.1.0
|
|
||||||
```
|
|
||||||
|
|
||||||
After modifying, run `glide up -v` again to re-populate your /vendor directory.
|
|
||||||
|
|
||||||
Optionally, Glide users can also use [`glide-vc`](https://github.com/sgotti/glide-vc)
|
|
||||||
after running `glide up -v` to remove unused files from /vendor.
|
|
||||||
|
|
||||||
### Dep (Not supported yet!)
|
|
||||||
|
|
||||||
[dep](https://github.com/golang/dep) is an up-and-coming dependency management
|
|
||||||
tool, which has the goal of being accepted as part of the standard go toolchain.
|
|
||||||
However, client-go does **NOT** work well with `dep` yet. To support `dep`, we
|
|
||||||
need to fix at least two issues:
|
|
||||||
1. publish native `Gopkg.toml` in client-go and other k8s.io repos, like `k8s.io/apimachinery`;
|
|
||||||
2. find a way to express transitive constraints (see https://github.com/golang/dep/issues/1124).
|
|
||||||
|
|
||||||
As a workaround, which may or may not be worthwhile, you can specify all
|
|
||||||
client-go dependencies manually as
|
|
||||||
[override](https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md#override)
|
|
||||||
in Gopkg.toml with the versions listed in [Godeps.json](./Godeps/Godeps.json),
|
|
||||||
and manually update them when you upgrade client-go version.
|
|
||||||
|
|
||||||
We are actively working on the two issues blocking using `dep`. For the
|
|
||||||
meantime, we recommend using `glide` or `godeps`.
|
|
15
vendor/k8s.io/client-go/OWNERS
generated
vendored
15
vendor/k8s.io/client-go/OWNERS
generated
vendored
|
@ -1,15 +0,0 @@
|
||||||
approvers:
|
|
||||||
- caesarxuchao
|
|
||||||
- deads2k
|
|
||||||
- lavalamp
|
|
||||||
- liggitt
|
|
||||||
- smarterclayton
|
|
||||||
- sttts
|
|
||||||
reviewers:
|
|
||||||
- caesarxuchao
|
|
||||||
- deads2k
|
|
||||||
- lavalamp
|
|
||||||
- liggitt
|
|
||||||
- soltysh
|
|
||||||
- sttts
|
|
||||||
- yliaog
|
|
192
vendor/k8s.io/client-go/README.md
generated
vendored
192
vendor/k8s.io/client-go/README.md
generated
vendored
|
@ -1,192 +0,0 @@
|
||||||
# client-go
|
|
||||||
|
|
||||||
Go clients for talking to a [kubernetes](http://kubernetes.io/) cluster.
|
|
||||||
|
|
||||||
We currently recommend using the v7.0.0 tag. See [INSTALL.md](/INSTALL.md) for
|
|
||||||
detailed installation instructions. `go get k8s.io/client-go/...` works, but
|
|
||||||
will give you head and doesn't handle the dependencies well.
|
|
||||||
|
|
||||||
[![BuildStatus Widget]][BuildStatus Result]
|
|
||||||
[![GoReport Widget]][GoReport Status]
|
|
||||||
[![GoDocWidget]][GoDocReference]
|
|
||||||
|
|
||||||
[BuildStatus Result]: https://travis-ci.org/kubernetes/client-go
|
|
||||||
[BuildStatus Widget]: https://travis-ci.org/kubernetes/client-go.svg?branch=master
|
|
||||||
|
|
||||||
[GoReport Status]: https://goreportcard.com/report/github.com/kubernetes/client-go
|
|
||||||
[GoReport Widget]: https://goreportcard.com/badge/github.com/kubernetes/client-go
|
|
||||||
|
|
||||||
[GoDocWidget]: https://godoc.org/k8s.io/client-go?status.svg
|
|
||||||
[GoDocReference]:https://godoc.org/k8s.io/client-go
|
|
||||||
|
|
||||||
## Table of Contents
|
|
||||||
|
|
||||||
- [What's included](#whats-included)
|
|
||||||
- [Versioning](#versioning)
|
|
||||||
- [Compatibility: your code <-> client-go](#compatibility-your-code---client-go)
|
|
||||||
- [Compatibility: client-go <-> Kubernetes clusters](#compatibility-client-go---kubernetes-clusters)
|
|
||||||
- [Compatibility matrix](#compatibility-matrix)
|
|
||||||
- [Why do the 1.4 and 1.5 branch contain top-level folder named after the version?](#why-do-the-14-and-15-branch-contain-top-level-folder-named-after-the-version)
|
|
||||||
- [Kubernetes tags](#kubernetes-tags)
|
|
||||||
- [How to get it](#how-to-get-it)
|
|
||||||
- [How to use it](#how-to-use-it)
|
|
||||||
- [Dependency management](#dependency-management)
|
|
||||||
- [Contributing code](#contributing-code)
|
|
||||||
|
|
||||||
### What's included
|
|
||||||
|
|
||||||
* The `kubernetes` package contains the clientset to access Kubernetes API.
|
|
||||||
* The `discovery` package is used to discover APIs supported by a Kubernetes API server.
|
|
||||||
* The `dynamic` package contains a dynamic client that can perform generic operations on arbitrary Kubernetes API objects.
|
|
||||||
* The `transport` package is used to set up auth and start a connection.
|
|
||||||
* The `tools/cache` package is useful for writing controllers.
|
|
||||||
|
|
||||||
### Versioning
|
|
||||||
|
|
||||||
`client-go` follows [semver](http://semver.org/). We will not make
|
|
||||||
backwards-incompatible changes without incrementing the major version number. A
|
|
||||||
change is backwards-incompatible either if it *i)* changes the public interfaces
|
|
||||||
of `client-go`, or *ii)* makes `client-go` incompatible with otherwise supported
|
|
||||||
versions of Kubernetes clusters.
|
|
||||||
|
|
||||||
Changes that add features in a backwards-compatible way will result in bumping
|
|
||||||
the minor version (second digit) number.
|
|
||||||
|
|
||||||
Bugfixes will result in the patch version (third digit) changing. PRs that are
|
|
||||||
cherry-picked into an older Kubernetes release branch will result in an update
|
|
||||||
to the corresponding branch in `client-go`, with a corresponding new tag
|
|
||||||
changing the patch version.
|
|
||||||
|
|
||||||
A consequence of this is that `client-go` version numbers will be unrelated to
|
|
||||||
Kubernetes version numbers.
|
|
||||||
|
|
||||||
#### Branches and tags.
|
|
||||||
|
|
||||||
We will create a new branch and tag for each increment in the major version number or
|
|
||||||
minor version number. We will create only a new tag for each increment in the patch
|
|
||||||
version number. See [semver](http://semver.org/) for definitions of major,
|
|
||||||
minor, and patch.
|
|
||||||
|
|
||||||
The master branch will track HEAD in the main Kubernetes repo and
|
|
||||||
accumulate changes. Consider HEAD to have the version `x.(y+1).0-alpha` or
|
|
||||||
`(x+1).0.0-alpha` (depending on whether it has accumulated a breaking change or
|
|
||||||
not), where `x` and `y` are the current major and minor versions.
|
|
||||||
|
|
||||||
#### Compatibility: your code <-> client-go
|
|
||||||
|
|
||||||
`client-go` follows [semver](http://semver.org/), so until the major version of
|
|
||||||
client-go gets increased, your code will compile and will continue to work with
|
|
||||||
explicitly supported versions of Kubernetes clusters. You must use a dependency
|
|
||||||
management system and pin a specific major version of `client-go` to get this
|
|
||||||
benefit, as HEAD follows the upstream Kubernetes repo.
|
|
||||||
|
|
||||||
#### Compatibility: client-go <-> Kubernetes clusters
|
|
||||||
|
|
||||||
Since Kubernetes is backwards compatible with clients, older `client-go`
|
|
||||||
versions will work with many different Kubernetes cluster versions.
|
|
||||||
|
|
||||||
We will backport bugfixes--but not new features--into older versions of
|
|
||||||
`client-go`.
|
|
||||||
|
|
||||||
|
|
||||||
#### Compatibility matrix
|
|
||||||
|
|
||||||
| | Kubernetes 1.4 | Kubernetes 1.5 | Kubernetes 1.6 | Kubernetes 1.7 | Kubernetes 1.8 | Kubernetes 1.9 | Kubernetes 1.10 |
|
|
||||||
|---------------------|----------------|----------------|----------------|----------------|----------------|----------------|-----------------|
|
|
||||||
| client-go 1.4 | ✓ | - | - | - | - | - | - |
|
|
||||||
| client-go 1.5 | + | - | - | - | - | - | - |
|
|
||||||
| client-go 2.0 | +- | ✓ | +- | +- | +- | +- | +- |
|
|
||||||
| client-go 3.0 | +- | +- | ✓ | - | +- | +- | +- |
|
|
||||||
| client-go 4.0 | +- | +- | +- | ✓ | +- | +- | +- |
|
|
||||||
| client-go 5.0 | +- | +- | +- | +- | ✓ | +- | +- |
|
|
||||||
| client-go 6.0 | +- | +- | +- | +- | +- | ✓ | +- |
|
|
||||||
| client-go 7.0 | +- | +- | +- | +- | +- | +- | ✓ |
|
|
||||||
| client-go HEAD | +- | +- | +- | +- | +- | + | + |
|
|
||||||
|
|
||||||
Key:
|
|
||||||
|
|
||||||
* `✓` Exactly the same features / API objects in both client-go and the Kubernetes
|
|
||||||
version.
|
|
||||||
* `+` client-go has features or API objects that may not be present in the
|
|
||||||
Kubernetes cluster, either due to that client-go has additional new API, or
|
|
||||||
that the server has removed old API. However, everything they have in
|
|
||||||
common (i.e., most APIs) will work. Please note that alpha APIs may vanish or
|
|
||||||
change significantly in a single release.
|
|
||||||
* `-` The Kubernetes cluster has features the client-go library can't use,
|
|
||||||
either due to the server has additional new API, or that client-go has
|
|
||||||
removed old API. However, everything they share in common (i.e., most APIs)
|
|
||||||
will work.
|
|
||||||
|
|
||||||
See the [CHANGELOG](./CHANGELOG.md) for a detailed description of changes
|
|
||||||
between client-go versions.
|
|
||||||
|
|
||||||
| Branch | Canonical source code location | Maintenance status |
|
|
||||||
|----------------|--------------------------------------|-------------------------------|
|
|
||||||
| client-go 1.4 | Kubernetes main repo, 1.4 branch | = - |
|
|
||||||
| client-go 1.5 | Kubernetes main repo, 1.5 branch | = - |
|
|
||||||
| client-go 2.0 | Kubernetes main repo, 1.5 branch | = - |
|
|
||||||
| client-go 3.0 | Kubernetes main repo, 1.6 branch | = - |
|
|
||||||
| client-go 4.0 | Kubernetes main repo, 1.7 branch | = - |
|
|
||||||
| client-go 5.0 | Kubernetes main repo, 1.8 branch | ✓ |
|
|
||||||
| client-go 6.0 | Kubernetes main repo, 1.9 branch | ✓ |
|
|
||||||
| client-go 7.0 | Kubernetes main repo, 1.10 branch | ✓ |
|
|
||||||
| client-go HEAD | Kubernetes main repo, master branch | ✓ |
|
|
||||||
|
|
||||||
Key:
|
|
||||||
|
|
||||||
* `✓` Changes in main Kubernetes repo are actively published to client-go by a bot
|
|
||||||
* `=` Maintenance is manual, only severe security bugs will be patched.
|
|
||||||
* `-` Deprecated; please upgrade.
|
|
||||||
|
|
||||||
#### Deprecation policy
|
|
||||||
|
|
||||||
We will maintain branches for at least six months after their first stable tag
|
|
||||||
is cut. (E.g., the clock for the release-2.0 branch started ticking when we
|
|
||||||
tagged v2.0.0, not when we made the first alpha.) This policy applies to
|
|
||||||
every version greater than or equal to 2.0.
|
|
||||||
|
|
||||||
#### Why do the 1.4 and 1.5 branch contain top-level folder named after the version?
|
|
||||||
|
|
||||||
For the initial release of client-go, we thought it would be easiest to keep
|
|
||||||
separate directories for each minor version. That soon proved to be a mistake.
|
|
||||||
We are keeping the top-level folders in the 1.4 and 1.5 branches so that
|
|
||||||
existing users won't be broken.
|
|
||||||
|
|
||||||
### Kubernetes tags
|
|
||||||
|
|
||||||
As of April 2018, client-go is still a mirror of
|
|
||||||
[k8s.io/kubernetes/staging/src/client-go](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/client-go),
|
|
||||||
the code development is still done in the staging area. Since Kubernetes 1.8
|
|
||||||
release, when syncing the code from the staging area, we also sync the Kubernetes
|
|
||||||
version tags to client-go, prefixed with "kubernetes-". For example, if you check
|
|
||||||
out the `kubernetes-v1.8.0` tag in client-go, the code you get is exactly the
|
|
||||||
same as if you check out the `v1.8.0` tag in kubernetes, and change directory to
|
|
||||||
`staging/src/k8s.io/client-go`. The purpose is to let users quickly find matching
|
|
||||||
commits among published repos, like
|
|
||||||
[sample-apiserver](https://github.com/kubernetes/sample-apiserver),
|
|
||||||
[apiextension-apiserver](https://github.com/kubernetes/apiextensions-apiserver),
|
|
||||||
etc. The Kubernetes version tag does NOT claim any backwards compatibility
|
|
||||||
guarantees for client-go. Please check the [semantic versions](#versioning) if
|
|
||||||
you care about backwards compatibility.
|
|
||||||
|
|
||||||
### How to get it
|
|
||||||
|
|
||||||
You can use `go get k8s.io/client-go/...` to get client-go, but **you will get
|
|
||||||
the unstable master branch** and `client-go`'s vendored dependencies will not be
|
|
||||||
added to your `$GOPATH`. So we think most users will want to use a dependency
|
|
||||||
management system. See [INSTALL.md](/INSTALL.md) for detailed instructions.
|
|
||||||
|
|
||||||
### How to use it
|
|
||||||
|
|
||||||
If your application runs in a Pod in the cluster, please refer to the
|
|
||||||
in-cluster [example](examples/in-cluster-client-configuration), otherwise please
|
|
||||||
refer to the out-of-cluster [example](examples/out-of-cluster-client-configuration).
|
|
||||||
|
|
||||||
### Dependency management
|
|
||||||
|
|
||||||
If your application depends on a package that client-go depends on, and you let the Go compiler find the dependency in `GOPATH`, you will end up with duplicated dependencies: one copy from the `GOPATH`, and one from the vendor folder of client-go. This will cause unexpected runtime error like flag redefinition, since the go compiler ends up importing both packages separately, even if they are exactly the same thing. If this happens, you can either
|
|
||||||
* run `godep restore` ([godep](https://github.com/tools/godep)) in the client-go/ folder, then remove the vendor folder of client-go. Then the packages in your GOPATH will be the only copy
|
|
||||||
* or run `godep save` in your application folder to flatten all dependencies.
|
|
||||||
|
|
||||||
### Contributing code
|
|
||||||
Please send pull requests against the client packages in the Kubernetes main [repository](https://github.com/kubernetes/kubernetes). Changes in the staging area will be published to this repository every day.
|
|
17
vendor/k8s.io/client-go/SECURITY_CONTACTS
generated
vendored
17
vendor/k8s.io/client-go/SECURITY_CONTACTS
generated
vendored
|
@ -1,17 +0,0 @@
|
||||||
# Defined below are the security contacts for this repo.
|
|
||||||
#
|
|
||||||
# They are the contact point for the Product Security Team to reach out
|
|
||||||
# to for triaging and handling of incoming issues.
|
|
||||||
#
|
|
||||||
# The below names agree to abide by the
|
|
||||||
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
|
|
||||||
# and will be removed and replaced if they violate that agreement.
|
|
||||||
#
|
|
||||||
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
|
|
||||||
# INSTRUCTIONS AT https://kubernetes.io/security/
|
|
||||||
|
|
||||||
cjcullen
|
|
||||||
jessfraz
|
|
||||||
liggitt
|
|
||||||
philips
|
|
||||||
tallclair
|
|
3
vendor/k8s.io/client-go/code-of-conduct.md
generated
vendored
3
vendor/k8s.io/client-go/code-of-conduct.md
generated
vendored
|
@ -1,3 +0,0 @@
|
||||||
# Kubernetes Community Code of Conduct
|
|
||||||
|
|
||||||
Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)
|
|
Loading…
Reference in a new issue