Merge pull request #402 from humblec/kube-update

Lift kube dependency to 1.14.2
This commit is contained in:
Humble Devassy Chirammal 2019-06-04 13:42:22 +05:30 committed by GitHub
commit 075861e214
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 76 additions and 33 deletions

42
Gopkg.lock generated
View File

@ -509,7 +509,7 @@
"websocket", "websocket",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "f3200d17e092c607f615320ecaad13d87ad9a2b3" revision = "60506f45cf65977eb3a9c6e30f995f54a721c271"
[[projects]] [[projects]]
branch = "master" branch = "master"
@ -520,7 +520,7 @@
"internal", "internal",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "aaccbc9213b0974828f81aaac109d194880e3014" revision = "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33"
[[projects]] [[projects]]
branch = "master" branch = "master"
@ -735,16 +735,16 @@
"storage/v1beta1", "storage/v1beta1",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "40a48860b5abbba9aa891b02b32da429b08d96a0" revision = "a675ac48af67cf21d815b5f8df288462096eb9c9"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[projects]] [[projects]]
digest = "1:d7276d849da38d07fd1cc29884d0424523f3c6e8086de9b477982100593a0c57" digest = "1:d7276d849da38d07fd1cc29884d0424523f3c6e8086de9b477982100593a0c57"
name = "k8s.io/apiextensions-apiserver" name = "k8s.io/apiextensions-apiserver"
packages = ["pkg/features"] packages = ["pkg/features"]
pruneopts = "NUT" pruneopts = "NUT"
revision = "53c4693659ed354d76121458fb819202dd1635fa" revision = "bf6753f2aa24fe1d69a2abeea1c106042bcf3f5f"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[projects]] [[projects]]
digest = "1:8796f2904a72f0337ee5fe1bb821213bea3c639f991402e92bae42b5c6b28d59" digest = "1:8796f2904a72f0337ee5fe1bb821213bea3c639f991402e92bae42b5c6b28d59"
@ -807,8 +807,8 @@
"third_party/forked/golang/reflect", "third_party/forked/golang/reflect",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "d7deff9243b165ee192f5551710ea4285dcfd615" revision = "6a84e37a896db9780c75367af8d2ed2bb944022e"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[projects]] [[projects]]
digest = "1:34093094960df1db1c921bea4dc054663f4bce54cf41de5c240f0864e23140c7" digest = "1:34093094960df1db1c921bea4dc054663f4bce54cf41de5c240f0864e23140c7"
@ -829,8 +829,8 @@
"pkg/util/feature", "pkg/util/feature",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "8b27c41bdbb11ff103caa673315e097bf0289171" revision = "f89599b3f64533b7e94fa4d169acbc861b464f2e"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[projects]] [[projects]]
digest = "1:1617a9d82f05ddcd88c9f3638359de6c12012f61f0fea110a37f5fc1861dc48b" digest = "1:1617a9d82f05ddcd88c9f3638359de6c12012f61f0fea110a37f5fc1861dc48b"
@ -850,11 +850,11 @@
"pkg/resource", "pkg/resource",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "2899ed30580fdbc8286718edb4382b529463099d" revision = "17bc0b7fcef59215541144136f75284656a789fb"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[projects]] [[projects]]
digest = "1:ed8df62a7a2db25586146293c42a345cec520b5d2e9b1da6b5097b8b32f19310" digest = "1:2499531cadfe972a397383261582156d21b29293e065fd14b1f60a67162bc0c2"
name = "k8s.io/client-go" name = "k8s.io/client-go"
packages = [ packages = [
"discovery", "discovery",
@ -1025,8 +1025,8 @@
"util/workqueue", "util/workqueue",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "6ee68ca5fd8355d024d02f9db0b3b667e8357a0f" revision = "ae8359b20417914b73a4b514b7a3d642597700bb"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[projects]] [[projects]]
branch = "release-1.14" branch = "release-1.14"
@ -1096,8 +1096,8 @@
"pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1", "pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "da8327669ac57b6e6a06676eeb7de19c9780f76d" revision = "a01cdd14b541c4af174e5d8aa90a783d7c9098c1"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[projects]] [[projects]]
branch = "master" branch = "master"
@ -1108,10 +1108,10 @@
"pkg/util/proto", "pkg/util/proto",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "b52b5b0f5a7c473a00ca5580c49c83449146ac17" revision = "db7b694dc208eead64d38030265f702db593fcf2"
[[projects]] [[projects]]
digest = "1:6857d140c29a2ee78849ee0bb79bc0717915cee197c8cae431b13c1f47d3ac54" digest = "1:3e6240c7a47f693ce5d6c3eb656417f54007750ccbc542c293cd676eac0a563d"
name = "k8s.io/kubernetes" name = "k8s.io/kubernetes"
packages = [ packages = [
"cmd/kubeadm/app/apis/kubeadm", "cmd/kubeadm/app/apis/kubeadm",
@ -1313,8 +1313,8 @@
"third_party/forked/golang/expansion", "third_party/forked/golang/expansion",
] ]
pruneopts = "NUT" pruneopts = "NUT"
revision = "641856db18352033a0d96dbc99153fa3b27298e5" revision = "66049e3b21efe110454d67df4fa62b08ea79a19b"
version = "v1.14.0" version = "v1.14.2"
[[projects]] [[projects]]
branch = "master" branch = "master"

View File

@ -16,23 +16,23 @@
version = "1.10.0" version = "1.10.0"
[[constraint]] [[constraint]]
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
name = "k8s.io/apimachinery" name = "k8s.io/apimachinery"
[[constraint]] [[constraint]]
name = "k8s.io/kubernetes" name = "k8s.io/kubernetes"
version = "=v1.14.0" version = "=v1.14.2"
[[override]] [[override]]
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
name = "k8s.io/api" name = "k8s.io/api"
[[override]] [[override]]
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
name = "k8s.io/apiserver" name = "k8s.io/apiserver"
[[override]] [[override]]
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
name = "k8s.io/cli-runtime" name = "k8s.io/cli-runtime"
[[override]] [[override]]
@ -41,15 +41,15 @@
[[constraint]] [[constraint]]
name = "k8s.io/client-go" name = "k8s.io/client-go"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[override]] [[override]]
name = "k8s.io/apiextensions-apiserver" name = "k8s.io/apiextensions-apiserver"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[[override]] [[override]]
name = "k8s.io/kube-aggregator" name = "k8s.io/kube-aggregator"
version = "kubernetes-1.14.0" version = "kubernetes-1.14.2"
[prune] [prune]
go-tests = true go-tests = true

View File

@ -17,6 +17,7 @@ limitations under the License.
package dynamic package dynamic
import ( import (
"fmt"
"io" "io"
"k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/meta"
@ -94,6 +95,9 @@ func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts meta
return nil, err return nil, err
} }
name = accessor.GetName() name = accessor.GetName()
if len(name) == 0 {
return nil, fmt.Errorf("name is required")
}
} }
result := c.client.client. result := c.client.client.
@ -122,6 +126,10 @@ func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts meta
if err != nil { if err != nil {
return nil, err return nil, err
} }
name := accessor.GetName()
if len(name) == 0 {
return nil, fmt.Errorf("name is required")
}
outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj) outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj)
if err != nil { if err != nil {
return nil, err return nil, err
@ -129,7 +137,7 @@ func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts meta
result := c.client.client. result := c.client.client.
Put(). Put().
AbsPath(append(c.makeURLSegments(accessor.GetName()), subresources...)...). AbsPath(append(c.makeURLSegments(name), subresources...)...).
Body(outBytes). Body(outBytes).
SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1). SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).
Do() Do()
@ -153,6 +161,10 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opt
if err != nil { if err != nil {
return nil, err return nil, err
} }
name := accessor.GetName()
if len(name) == 0 {
return nil, fmt.Errorf("name is required")
}
outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj) outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj)
if err != nil { if err != nil {
@ -161,7 +173,7 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opt
result := c.client.client. result := c.client.client.
Put(). Put().
AbsPath(append(c.makeURLSegments(accessor.GetName()), "status")...). AbsPath(append(c.makeURLSegments(name), "status")...).
Body(outBytes). Body(outBytes).
SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1). SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).
Do() Do()
@ -181,6 +193,9 @@ func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opt
} }
func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions, subresources ...string) error { func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions, subresources ...string) error {
if len(name) == 0 {
return fmt.Errorf("name is required")
}
if opts == nil { if opts == nil {
opts = &metav1.DeleteOptions{} opts = &metav1.DeleteOptions{}
} }
@ -216,6 +231,9 @@ func (c *dynamicResourceClient) DeleteCollection(opts *metav1.DeleteOptions, lis
} }
func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) { func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) {
if len(name) == 0 {
return nil, fmt.Errorf("name is required")
}
result := c.client.client.Get().AbsPath(append(c.makeURLSegments(name), subresources...)...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do() result := c.client.client.Get().AbsPath(append(c.makeURLSegments(name), subresources...)...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do()
if err := result.Error(); err != nil { if err := result.Error(); err != nil {
return nil, err return nil, err
@ -284,6 +302,9 @@ func (c *dynamicResourceClient) Watch(opts metav1.ListOptions) (watch.Interface,
} }
func (c *dynamicResourceClient) Patch(name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error) { func (c *dynamicResourceClient) Patch(name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (*unstructured.Unstructured, error) {
if len(name) == 0 {
return nil, fmt.Errorf("name is required")
}
result := c.client.client. result := c.client.client.
Patch(pt). Patch(pt).
AbsPath(append(c.makeURLSegments(name), subresources...)...). AbsPath(append(c.makeURLSegments(name), subresources...)...).

View File

@ -8692,7 +8692,7 @@ SOFTWARE.
================================================================================ ================================================================================
= vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2018-10-01/compute licensed under: = = vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-03-01/compute licensed under: =
Apache License Apache License

View File

@ -55,6 +55,9 @@ type KubeProxyIPVSConfiguration struct {
// excludeCIDRs is a list of CIDR's which the ipvs proxier should not touch // excludeCIDRs is a list of CIDR's which the ipvs proxier should not touch
// when cleaning up ipvs services. // when cleaning up ipvs services.
ExcludeCIDRs []string ExcludeCIDRs []string
// strict ARP configure arp_ignore and arp_announce to avoid answering ARP queries
// from kube-ipvs0 interface
StrictARP bool
} }
// KubeProxyConntrackConfiguration contains conntrack settings for // KubeProxyConntrackConfiguration contains conntrack settings for

View File

@ -24,11 +24,16 @@ import (
"k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume"
) )
const (
statusSuccess = "success"
statusFailUnknown = "fail-unknown"
)
var storageOperationMetric = prometheus.NewHistogramVec( var storageOperationMetric = prometheus.NewHistogramVec(
prometheus.HistogramOpts{ prometheus.HistogramOpts{
Name: "storage_operation_duration_seconds", Name: "storage_operation_duration_seconds",
Help: "Storage operation duration", Help: "Storage operation duration",
Buckets: []float64{.1, .25, .5, 1, 2.5, 5, 10, 15, 25, 50}, Buckets: []float64{.1, .25, .5, 1, 2.5, 5, 10, 15, 25, 50, 120, 300, 600},
}, },
[]string{"volume_plugin", "operation_name"}, []string{"volume_plugin", "operation_name"},
) )
@ -41,6 +46,14 @@ var storageOperationErrorMetric = prometheus.NewCounterVec(
[]string{"volume_plugin", "operation_name"}, []string{"volume_plugin", "operation_name"},
) )
var storageOperationStatusMetric = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "storage_operation_status_count",
Help: "Storage operation return statuses count",
},
[]string{"volume_plugin", "operation_name", "status"},
)
func init() { func init() {
registerMetrics() registerMetrics()
} }
@ -48,6 +61,7 @@ func init() {
func registerMetrics() { func registerMetrics() {
prometheus.MustRegister(storageOperationMetric) prometheus.MustRegister(storageOperationMetric)
prometheus.MustRegister(storageOperationErrorMetric) prometheus.MustRegister(storageOperationErrorMetric)
prometheus.MustRegister(storageOperationStatusMetric)
} }
// OperationCompleteHook returns a hook to call when an operation is completed // OperationCompleteHook returns a hook to call when an operation is completed
@ -56,11 +70,16 @@ func OperationCompleteHook(plugin, operationName string) func(*error) {
opComplete := func(err *error) { opComplete := func(err *error) {
timeTaken := time.Since(requestTime).Seconds() timeTaken := time.Since(requestTime).Seconds()
// Create metric with operation name and plugin name // Create metric with operation name and plugin name
status := statusSuccess
if *err != nil { if *err != nil {
// TODO: Establish well-known error codes to be able to distinguish
// user configuration errors from system errors.
status = statusFailUnknown
storageOperationErrorMetric.WithLabelValues(plugin, operationName).Inc() storageOperationErrorMetric.WithLabelValues(plugin, operationName).Inc()
} else { } else {
storageOperationMetric.WithLabelValues(plugin, operationName).Observe(timeTaken) storageOperationMetric.WithLabelValues(plugin, operationName).Observe(timeTaken)
} }
storageOperationStatusMetric.WithLabelValues(plugin, operationName, status).Inc()
} }
return opComplete return opComplete
} }