From 597a0e691a128a971632246699865e2dd960734b Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Thu, 29 Dec 2016 17:02:06 -0300 Subject: [PATCH 1/4] Deny location mapping in case of specific errors --- controllers/nginx/pkg/template/template.go | 11 ++ .../rootfs/etc/nginx/template/nginx.tmpl | 7 + core/pkg/cache/main_test.go | 92 +++++++++++++ core/pkg/ingress/annotations/auth/main.go | 77 ++++++----- .../pkg/ingress/annotations/auth/main_test.go | 42 +++++- core/pkg/ingress/annotations/authreq/main.go | 33 +++-- .../ingress/annotations/authreq/main_test.go | 8 +- core/pkg/ingress/annotations/authtls/main.go | 34 +++-- core/pkg/ingress/annotations/cors/main.go | 18 ++- .../ingress/annotations/healthcheck/main.go | 22 ++- .../annotations/healthcheck/main_test.go | 19 ++- .../ingress/annotations/ipwhitelist/main.go | 34 +++-- .../annotations/ipwhitelist/main_test.go | 47 +++++-- core/pkg/ingress/annotations/parser/main.go | 70 +++++----- .../ingress/annotations/parser/main_test.go | 6 + core/pkg/ingress/annotations/proxy/main.go | 33 ++--- .../ingress/annotations/proxy/main_test.go | 29 ++-- .../pkg/ingress/annotations/ratelimit/main.go | 21 ++- .../annotations/ratelimit/main_test.go | 26 ++-- core/pkg/ingress/annotations/rewrite/main.go | 24 ++-- .../ingress/annotations/rewrite/main_test.go | 39 ++++-- .../annotations/secureupstream/main.go | 12 +- .../annotations/secureupstream/main_test.go | 4 +- .../annotations/sslpassthrough/main.go | 21 +-- .../annotations/sslpassthrough/main_test.go | 18 +-- core/pkg/ingress/controller/annotations.go | 114 ++++++++++++++++ .../ingress/controller/annotations_test.go | 92 +++++++++++++ core/pkg/ingress/controller/controller.go | 128 +++++------------- core/pkg/ingress/controller/util.go | 16 +++ core/pkg/ingress/errors/errors.go | 89 ++++++++++++ core/pkg/ingress/errors/errors_test.go | 52 +++++++ core/pkg/ingress/resolver/main.go | 43 ++++++ core/pkg/ingress/types.go | 3 + core/pkg/task/queue_test.go | 17 +-- 34 files changed, 968 insertions(+), 333 deletions(-) create mode 100644 core/pkg/cache/main_test.go create mode 100644 core/pkg/ingress/controller/annotations.go create mode 100644 core/pkg/ingress/controller/annotations_test.go create mode 100644 core/pkg/ingress/errors/errors.go create mode 100644 core/pkg/ingress/errors/errors_test.go create mode 100644 core/pkg/ingress/resolver/main.go diff --git a/controllers/nginx/pkg/template/template.go b/controllers/nginx/pkg/template/template.go index 43b62d2bd..8dc2b9073 100644 --- a/controllers/nginx/pkg/template/template.go +++ b/controllers/nginx/pkg/template/template.go @@ -137,6 +137,7 @@ var ( "buildRateLimit": buildRateLimit, "buildSSPassthroughUpstreams": buildSSPassthroughUpstreams, "buildResolvers": buildResolvers, + "isLocationAllowed": isLocationAllowed, "contains": strings.Contains, "hasPrefix": strings.HasPrefix, @@ -352,3 +353,13 @@ func buildRateLimit(input interface{}) []string { return limits } + +func isLocationAllowed(input interface{}) bool { + loc, ok := input.(*ingress.Location) + if !ok { + glog.Errorf("expected an ingress.Location type but %T was returned", input) + return false + } + + return loc.Denied == nil +} diff --git a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl index f18b6a365..ef478fb2a 100644 --- a/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl +++ b/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl @@ -240,6 +240,7 @@ http { {{ end }} location {{ $path }} { + {{ if isLocationAllowed $location }} {{ if gt (len $location.Whitelist.CIDR) 0 }} {{ range $ip := $location.Whitelist.CIDR }} allow {{ $ip }};{{ end }} @@ -312,6 +313,10 @@ http { set $proxy_upstream_name "{{ $location.Backend }}"; {{ buildProxyPass $backends $location }} + {{ else }} + #{{ $location.Denied }} + return 503; + {{ end }} } {{ end }} @@ -326,6 +331,7 @@ http { # with an external software (like sysdig) location /nginx_status { allow 127.0.0.1; + allow ::1; deny all; access_log off; @@ -365,6 +371,7 @@ http { # TODO: enable extraction for vts module. location /internal_nginx_status { allow 127.0.0.1; + allow ::1; deny all; access_log off; diff --git a/core/pkg/cache/main_test.go b/core/pkg/cache/main_test.go new file mode 100644 index 000000000..72dc7617e --- /dev/null +++ b/core/pkg/cache/main_test.go @@ -0,0 +1,92 @@ +/* +Copyright 2015 The Kubernetes Authors. + +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. +*/ + +package cache + +import ( + "testing" + + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/client/cache" + "k8s.io/kubernetes/pkg/util/sets" +) + +func TestStoreToIngressLister(t *testing.T) { + store := cache.NewStore(cache.MetaNamespaceKeyFunc) + ids := sets.NewString("foo", "bar", "baz") + for id := range ids { + store.Add(&extensions.Ingress{ObjectMeta: api.ObjectMeta{Name: id}}) + } + sml := StoreToIngressLister{store} + + gotIngress := sml.List() + got := make([]string, len(gotIngress)) + for ix := range gotIngress { + ing, ok := gotIngress[ix].(*extensions.Ingress) + if !ok { + t.Errorf("expected an Ingress type") + } + got[ix] = ing.Name + } + if !ids.HasAll(got...) || len(got) != len(ids) { + t.Errorf("expected %v, got %v", ids, got) + } +} + +func TestStoreToSecretsLister(t *testing.T) { + store := cache.NewStore(cache.MetaNamespaceKeyFunc) + ids := sets.NewString("foo", "bar", "baz") + for id := range ids { + store.Add(&api.Secret{ObjectMeta: api.ObjectMeta{Name: id}}) + } + sml := StoreToSecretsLister{store} + + gotIngress := sml.List() + got := make([]string, len(gotIngress)) + for ix := range gotIngress { + s, ok := gotIngress[ix].(*api.Secret) + if !ok { + t.Errorf("expected a Secret type") + } + got[ix] = s.Name + } + if !ids.HasAll(got...) || len(got) != len(ids) { + t.Errorf("expected %v, got %v", ids, got) + } +} + +func TestStoreToConfigmapLister(t *testing.T) { + store := cache.NewStore(cache.MetaNamespaceKeyFunc) + ids := sets.NewString("foo", "bar", "baz") + for id := range ids { + store.Add(&api.ConfigMap{ObjectMeta: api.ObjectMeta{Name: id}}) + } + sml := StoreToConfigmapLister{store} + + gotIngress := sml.List() + got := make([]string, len(gotIngress)) + for ix := range gotIngress { + m, ok := gotIngress[ix].(*api.ConfigMap) + if !ok { + t.Errorf("expected an Ingress type") + } + got[ix] = m.Name + } + if !ids.HasAll(got...) || len(got) != len(ids) { + t.Errorf("expected %v, got %v", ids, got) + } +} diff --git a/core/pkg/ingress/annotations/auth/main.go b/core/pkg/ingress/annotations/auth/main.go index 70acde2e1..2921a550c 100644 --- a/core/pkg/ingress/annotations/auth/main.go +++ b/core/pkg/ingress/annotations/auth/main.go @@ -17,44 +17,31 @@ limitations under the License. package auth import ( - "errors" "fmt" "io/ioutil" "os" "regexp" + "github.com/pkg/errors" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" + ing_errors "k8s.io/ingress/core/pkg/ingress/errors" + "k8s.io/ingress/core/pkg/ingress/resolver" ) const ( authType = "ingress.kubernetes.io/auth-type" authSecret = "ingress.kubernetes.io/auth-secret" authRealm = "ingress.kubernetes.io/auth-realm" - - // DefAuthDirectory default directory used to store files - // to authenticate request - DefAuthDirectory = "/etc/ingress-controller/auth" ) -func init() { - // TODO: check permissions required - os.MkdirAll(DefAuthDirectory, 0655) -} - var ( authTypeRegex = regexp.MustCompile(`basic|digest`) - - // ErrInvalidAuthType is return in case of unsupported authentication type - ErrInvalidAuthType = errors.New("invalid authentication type") - - // ErrMissingSecretName is returned when the name of the secret is missing - ErrMissingSecretName = errors.New("secret name is missing") - - // ErrMissingAuthInSecret is returned when there is no auth key in secret data - ErrMissingAuthInSecret = errors.New("the secret does not contains the auth key") + // AuthDirectory default directory used to store files + // to authenticate request + AuthDirectory = "/etc/ingress-controller/auth" ) // BasicDigest returns authentication configuration for an Ingress rule @@ -65,40 +52,53 @@ type BasicDigest struct { Secured bool `json:"secured"` } -// ParseAnnotations parses the annotations contained in the ingress +type auth struct { + secretResolver resolver.Secret + authDirectory string +} + +// NewParser creates a new authentication annotation parser +func NewParser(authDirectory string, sr resolver.Secret) parser.IngressAnnotation { + // TODO: check permissions required + os.MkdirAll(authDirectory, 0655) + return auth{sr, authDirectory} +} + +// Parse parses the annotations contained in the ingress // rule used to add authentication in the paths defined in the rule // and generated an htpasswd compatible file to be used as source // during the authentication process -func ParseAnnotations(ing *extensions.Ingress, authDir string, fn func(string) (*api.Secret, error)) (*BasicDigest, error) { - if ing.GetAnnotations() == nil { - return &BasicDigest{}, parser.ErrMissingAnnotations - } - +func (a auth) Parse(ing *extensions.Ingress) (interface{}, error) { at, err := parser.GetStringAnnotation(authType, ing) if err != nil { - return &BasicDigest{}, err + return nil, err } if !authTypeRegex.MatchString(at) { - return &BasicDigest{}, ErrInvalidAuthType + return nil, ing_errors.NewLocationDenied("invalid authentication type") } s, err := parser.GetStringAnnotation(authSecret, ing) if err != nil { - return &BasicDigest{}, err + return nil, ing_errors.LocationDenied{ + Reason: errors.Wrap(err, "error reading secret name from annotation"), + } } - secret, err := fn(fmt.Sprintf("%v/%v", ing.Namespace, s)) + name := fmt.Sprintf("%v/%v", ing.Namespace, s) + secret, err := a.secretResolver.GetSecret(name) if err != nil { - return &BasicDigest{}, err + return nil, ing_errors.LocationDenied{ + Reason: errors.Wrapf(err, "unexpected error reading secret %v", name), + } } realm, _ := parser.GetStringAnnotation(authRealm, ing) - passFile := fmt.Sprintf("%v/%v-%v.passwd", authDir, ing.GetNamespace(), ing.GetName()) + passFile := fmt.Sprintf("%v/%v-%v.passwd", a.authDirectory, ing.GetNamespace(), ing.GetName()) err = dumpSecret(passFile, secret) if err != nil { - return &BasicDigest{}, err + return nil, err } return &BasicDigest{ @@ -114,9 +114,18 @@ func ParseAnnotations(ing *extensions.Ingress, authDir string, fn func(string) ( func dumpSecret(filename string, secret *api.Secret) error { val, ok := secret.Data["auth"] if !ok { - return ErrMissingAuthInSecret + return ing_errors.LocationDenied{ + Reason: errors.Errorf("the secret %v does not contains a key with value auth", secret.Name), + } } // TODO: check permissions required - return ioutil.WriteFile(filename, val, 0777) + err := ioutil.WriteFile(filename, val, 0777) + if err != nil { + return ing_errors.LocationDenied{ + Reason: errors.Wrap(err, "unexpected error creating password file"), + } + } + + return nil } diff --git a/core/pkg/ingress/annotations/auth/main_test.go b/core/pkg/ingress/annotations/auth/main_test.go index bb6999018..6d4027313 100644 --- a/core/pkg/ingress/annotations/auth/main_test.go +++ b/core/pkg/ingress/annotations/auth/main_test.go @@ -23,6 +23,7 @@ import ( "testing" "time" + "github.com/pkg/errors" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/util/intstr" @@ -63,7 +64,14 @@ func buildIngress() *extensions.Ingress { } } -func mockSecret(name string) (*api.Secret, error) { +type mockSecret struct { +} + +func (m mockSecret) GetSecret(name string) (*api.Secret, error) { + if name != "default/demo-secret" { + return nil, errors.Errorf("there is no secret with name %v", name) + } + return &api.Secret{ ObjectMeta: api.ObjectMeta{ Namespace: api.NamespaceDefault, @@ -72,9 +80,12 @@ func mockSecret(name string) (*api.Secret, error) { Data: map[string][]byte{"auth": []byte("foo:$apr1$OFG3Xybp$ckL0FHDAkoXYIlH9.cysT0")}, }, nil } + func TestIngressWithoutAuth(t *testing.T) { ing := buildIngress() - _, err := ParseAnnotations(ing, "", mockSecret) + _, dir, _ := dummySecretContent(t) + defer os.RemoveAll(dir) + _, err := NewParser(dir, mockSecret{}).Parse(ing) if err == nil { t.Error("Expected error with ingress without annotations") } @@ -92,11 +103,14 @@ func TestIngressAuth(t *testing.T) { _, dir, _ := dummySecretContent(t) defer os.RemoveAll(dir) - auth, err := ParseAnnotations(ing, dir, mockSecret) + i, err := NewParser(dir, mockSecret{}).Parse(ing) if err != nil { t.Errorf("Uxpected error with ingress: %v", err) } - + auth, ok := i.(*BasicDigest) + if !ok { + t.Errorf("expected a BasicDigest type") + } if auth.Type != "basic" { t.Errorf("Expected basic as auth type but returned %s", auth.Type) } @@ -108,6 +122,24 @@ func TestIngressAuth(t *testing.T) { } } +func TestIngressAuthWithoutSecret(t *testing.T) { + ing := buildIngress() + + data := map[string]string{} + data[authType] = "basic" + data[authSecret] = "invalid-secret" + data[authRealm] = "-realm-" + ing.SetAnnotations(data) + + _, dir, _ := dummySecretContent(t) + defer os.RemoveAll(dir) + + _, err := NewParser(dir, mockSecret{}).Parse(ing) + if err == nil { + t.Errorf("expected an error with invalid secret name") + } +} + func dummySecretContent(t *testing.T) (string, string, *api.Secret) { dir, err := ioutil.TempDir("", fmt.Sprintf("%v", time.Now().Unix())) if err != nil { @@ -119,7 +151,7 @@ func dummySecretContent(t *testing.T) (string, string, *api.Secret) { t.Error(err) } defer tmpfile.Close() - s, _ := mockSecret("demo") + s, _ := mockSecret{}.GetSecret("default/demo-secret") return tmpfile.Name(), dir, s } diff --git a/core/pkg/ingress/annotations/authreq/main.go b/core/pkg/ingress/annotations/authreq/main.go index 3e5f33c7c..560a73868 100644 --- a/core/pkg/ingress/annotations/authreq/main.go +++ b/core/pkg/ingress/annotations/authreq/main.go @@ -17,13 +17,13 @@ limitations under the License. package authreq import ( - "fmt" "net/url" "strings" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" + ing_errors "k8s.io/ingress/core/pkg/ingress/errors" ) const ( @@ -57,44 +57,49 @@ func validMethod(method string) bool { return false } +type authReq struct { +} + +// NewParser creates a new authentication request annotation parser +func NewParser() parser.IngressAnnotation { + return authReq{} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to use an external URL as source for authentication -func ParseAnnotations(ing *extensions.Ingress) (External, error) { - if ing.GetAnnotations() == nil { - return External{}, parser.ErrMissingAnnotations - } - +func (a authReq) Parse(ing *extensions.Ingress) (interface{}, error) { str, err := parser.GetStringAnnotation(authURL, ing) if err != nil { - return External{}, err + return nil, err } + if str == "" { - return External{}, fmt.Errorf("an empty string is not a valid URL") + return nil, ing_errors.NewLocationDenied("an empty string is not a valid URL") } ur, err := url.Parse(str) if err != nil { - return External{}, err + return nil, err } if ur.Scheme == "" { - return External{}, fmt.Errorf("url scheme is empty") + return nil, ing_errors.NewLocationDenied("url scheme is empty") } if ur.Host == "" { - return External{}, fmt.Errorf("url host is empty") + return nil, ing_errors.NewLocationDenied("url host is empty") } if strings.Contains(ur.Host, "..") { - return External{}, fmt.Errorf("invalid url host") + return nil, ing_errors.NewLocationDenied("invalid url host") } m, _ := parser.GetStringAnnotation(authMethod, ing) if len(m) != 0 && !validMethod(m) { - return External{}, fmt.Errorf("invalid HTTP method") + return nil, ing_errors.NewLocationDenied("invalid HTTP method") } sb, _ := parser.GetBoolAnnotation(authBody, ing) - return External{ + return &External{ URL: str, Method: m, SendBody: sb, diff --git a/core/pkg/ingress/annotations/authreq/main_test.go b/core/pkg/ingress/annotations/authreq/main_test.go index 57f182599..696d8bdc0 100644 --- a/core/pkg/ingress/annotations/authreq/main_test.go +++ b/core/pkg/ingress/annotations/authreq/main_test.go @@ -87,15 +87,17 @@ func TestAnnotations(t *testing.T) { data[authBody] = fmt.Sprintf("%v", test.sendBody) data[authMethod] = fmt.Sprintf("%v", test.method) - u, err := ParseAnnotations(ing) - + i, err := NewParser().Parse(ing) if test.expErr { if err == nil { t.Errorf("%v: expected error but retuned nil", test.title) } continue } - + u, ok := i.(*External) + if !ok { + t.Errorf("%v: expected an External type", test.title) + } if u.URL != test.url { t.Errorf("%v: expected \"%v\" but \"%v\" was returned", test.title, test.url, u.URL) } diff --git a/core/pkg/ingress/annotations/authtls/main.go b/core/pkg/ingress/annotations/authtls/main.go index 3d80e0deb..79d4b22d5 100644 --- a/core/pkg/ingress/annotations/authtls/main.go +++ b/core/pkg/ingress/annotations/authtls/main.go @@ -17,11 +17,10 @@ limitations under the License. package authtls import ( - "fmt" - "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" + ing_errors "k8s.io/ingress/core/pkg/ingress/errors" "k8s.io/ingress/core/pkg/k8s" ) @@ -30,6 +29,13 @@ const ( authTLSSecret = "ingress.kubernetes.io/auth-tls-secret" ) +// AuthCertificate has a method that searchs for a secret +// that contains a SSL certificate. +// The secret must contain 3 keys named: +type AuthCertificate interface { + GetAuthCertificate(string) (*SSLCert, error) +} + // SSLCert returns external authentication configuration for an Ingress rule type SSLCert struct { Secret string `json:"secret"` @@ -39,27 +45,31 @@ type SSLCert struct { PemSHA string `json:"pemSha"` } +type authTLS struct { + certResolver AuthCertificate +} + +// NewParser creates a new TLS authentication annotation parser +func NewParser(resolver AuthCertificate) parser.IngressAnnotation { + return authTLS{resolver} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to use an external URL as source for authentication -func ParseAnnotations(ing *extensions.Ingress, - fn func(secret string) (*SSLCert, error)) (*SSLCert, error) { - if ing.GetAnnotations() == nil { - return &SSLCert{}, parser.ErrMissingAnnotations - } - +func (a authTLS) Parse(ing *extensions.Ingress) (interface{}, error) { str, err := parser.GetStringAnnotation(authTLSSecret, ing) if err != nil { - return &SSLCert{}, err + return nil, err } if str == "" { - return &SSLCert{}, fmt.Errorf("an empty string is not a valid secret name") + return nil, ing_errors.NewLocationDenied("an empty string is not a valid secret name") } _, _, err = k8s.ParseNameNS(str) if err != nil { - return &SSLCert{}, err + return nil, ing_errors.NewLocationDenied("an empty string is not a valid secret name") } - return fn(str) + return a.certResolver.GetAuthCertificate(str) } diff --git a/core/pkg/ingress/annotations/cors/main.go b/core/pkg/ingress/annotations/cors/main.go index 53d9cca6d..71195863f 100644 --- a/core/pkg/ingress/annotations/cors/main.go +++ b/core/pkg/ingress/annotations/cors/main.go @@ -23,11 +23,19 @@ import ( ) const ( - cors = "ingress.kubernetes.io/enable-cors" + annotation = "ingress.kubernetes.io/enable-cors" ) -// ParseAnnotations parses the annotations contained in the ingress -// rule used to indicate if the location/s should allows CORS -func ParseAnnotations(ing *extensions.Ingress) (bool, error) { - return parser.GetBoolAnnotation(cors, ing) +type cors struct { +} + +// NewParser creates a new CORS annotation parser +func NewParser() parser.IngressAnnotation { + return cors{} +} + +// Parse parses the annotations contained in the ingress +// rule used to indicate if the location/s should allows CORS +func (a cors) Parse(ing *extensions.Ingress) (interface{}, error) { + return parser.GetBoolAnnotation(annotation, ing) } diff --git a/core/pkg/ingress/annotations/healthcheck/main.go b/core/pkg/ingress/annotations/healthcheck/main.go index 9dfc2050a..493195154 100644 --- a/core/pkg/ingress/annotations/healthcheck/main.go +++ b/core/pkg/ingress/annotations/healthcheck/main.go @@ -20,7 +20,7 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" - "k8s.io/ingress/core/pkg/ingress/defaults" + "k8s.io/ingress/core/pkg/ingress/resolver" ) const ( @@ -35,22 +35,32 @@ type Upstream struct { FailTimeout int `json:"failTimeout"` } +type healthCheck struct { + backendResolver resolver.DefaultBackend +} + +// NewParser creates a new health check annotation parser +func NewParser(br resolver.DefaultBackend) parser.IngressAnnotation { + return healthCheck{br} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to configure upstream check parameters -func ParseAnnotations(cfg defaults.Backend, ing *extensions.Ingress) *Upstream { +func (a healthCheck) Parse(ing *extensions.Ingress) (interface{}, error) { + defBackend := a.backendResolver.GetDefaultBackend() if ing.GetAnnotations() == nil { - return &Upstream{cfg.UpstreamMaxFails, cfg.UpstreamFailTimeout} + return &Upstream{defBackend.UpstreamMaxFails, defBackend.UpstreamFailTimeout}, nil } mf, err := parser.GetIntAnnotation(upsMaxFails, ing) if err != nil { - mf = cfg.UpstreamMaxFails + mf = defBackend.UpstreamMaxFails } ft, err := parser.GetIntAnnotation(upsFailTimeout, ing) if err != nil { - ft = cfg.UpstreamFailTimeout + ft = defBackend.UpstreamFailTimeout } - return &Upstream{mf, ft} + return &Upstream{mf, ft}, nil } diff --git a/core/pkg/ingress/annotations/healthcheck/main_test.go b/core/pkg/ingress/annotations/healthcheck/main_test.go index aba9c7385..21166cbe0 100644 --- a/core/pkg/ingress/annotations/healthcheck/main_test.go +++ b/core/pkg/ingress/annotations/healthcheck/main_test.go @@ -61,6 +61,13 @@ func buildIngress() *extensions.Ingress { } } +type mockBackend struct { +} + +func (m mockBackend) GetDefaultBackend() defaults.Backend { + return defaults.Backend{UpstreamFailTimeout: 1} +} + func TestIngressHealthCheck(t *testing.T) { ing := buildIngress() @@ -68,15 +75,17 @@ func TestIngressHealthCheck(t *testing.T) { data[upsMaxFails] = "2" ing.SetAnnotations(data) - cfg := defaults.Backend{UpstreamFailTimeout: 1} - - nginxHz := ParseAnnotations(cfg, ing) + hzi, _ := NewParser(mockBackend{}).Parse(ing) + nginxHz, ok := hzi.(*Upstream) + if !ok { + t.Errorf("expected a Upstream type") + } if nginxHz.MaxFails != 2 { - t.Errorf("Expected 2 as max-fails but returned %v", nginxHz.MaxFails) + t.Errorf("expected 2 as max-fails but returned %v", nginxHz.MaxFails) } if nginxHz.FailTimeout != 1 { - t.Errorf("Expected 0 as fail-timeout but returned %v", nginxHz.FailTimeout) + t.Errorf("expected 0 as fail-timeout but returned %v", nginxHz.FailTimeout) } } diff --git a/core/pkg/ingress/annotations/ipwhitelist/main.go b/core/pkg/ingress/annotations/ipwhitelist/main.go index 06a22f84d..0e44ff9d6 100644 --- a/core/pkg/ingress/annotations/ipwhitelist/main.go +++ b/core/pkg/ingress/annotations/ipwhitelist/main.go @@ -17,51 +17,55 @@ limitations under the License. package ipwhitelist import ( - "errors" "sort" "strings" + "github.com/pkg/errors" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/util/net/sets" "k8s.io/ingress/core/pkg/ingress/annotations/parser" - "k8s.io/ingress/core/pkg/ingress/defaults" + ing_errors "k8s.io/ingress/core/pkg/ingress/errors" + "k8s.io/ingress/core/pkg/ingress/resolver" ) const ( whitelist = "ingress.kubernetes.io/whitelist-source-range" ) -var ( - // ErrInvalidCIDR returned error when the whitelist annotation does not - // contains a valid IP or network address - ErrInvalidCIDR = errors.New("the annotation does not contains a valid IP address or network") -) - // SourceRange returns the CIDR type SourceRange struct { CIDR []string `json:"cidr"` } +type ipwhitelist struct { + backendResolver resolver.DefaultBackend +} + +// NewParser creates a new whitelist annotation parser +func NewParser(br resolver.DefaultBackend) parser.IngressAnnotation { + return ipwhitelist{br} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to limit access to certain client addresses or networks. // Multiple ranges can specified using commas as separator // e.g. `18.0.0.0/8,56.0.0.0/8` -func ParseAnnotations(cfg defaults.Backend, ing *extensions.Ingress) (*SourceRange, error) { - sort.Strings(cfg.WhitelistSourceRange) - if ing.GetAnnotations() == nil { - return &SourceRange{CIDR: cfg.WhitelistSourceRange}, parser.ErrMissingAnnotations - } +func (a ipwhitelist) Parse(ing *extensions.Ingress) (interface{}, error) { + defBackend := a.backendResolver.GetDefaultBackend() + sort.Strings(defBackend.WhitelistSourceRange) val, err := parser.GetStringAnnotation(whitelist, ing) if err != nil { - return &SourceRange{CIDR: cfg.WhitelistSourceRange}, err + return &SourceRange{CIDR: defBackend.WhitelistSourceRange}, err } values := strings.Split(val, ",") ipnets, err := sets.ParseIPNets(values...) if err != nil { - return &SourceRange{CIDR: cfg.WhitelistSourceRange}, ErrInvalidCIDR + return &SourceRange{CIDR: defBackend.WhitelistSourceRange}, ing_errors.LocationDenied{ + Reason: errors.Wrap(err, "the annotation does not contains a valid IP address or network"), + } } cidrs := []string{} diff --git a/core/pkg/ingress/annotations/ipwhitelist/main_test.go b/core/pkg/ingress/annotations/ipwhitelist/main_test.go index 257547ddf..d3f60adc1 100644 --- a/core/pkg/ingress/annotations/ipwhitelist/main_test.go +++ b/core/pkg/ingress/annotations/ipwhitelist/main_test.go @@ -62,6 +62,13 @@ func buildIngress() *extensions.Ingress { } } +type mockBackend struct { +} + +func (m mockBackend) GetDefaultBackend() defaults.Backend { + return defaults.Backend{} +} + func TestParseAnnotations(t *testing.T) { // TODO: convert test cases to tables ing := buildIngress() @@ -77,38 +84,56 @@ func TestParseAnnotations(t *testing.T) { CIDR: enet, } - sr, err := ParseAnnotations(defaults.Backend{}, ing) + p := NewParser(mockBackend{}) + + i, err := p.Parse(ing) if err != nil { - t.Errorf("Unexpected error: %v", err) + t.Errorf("unexpected error: %v", err) + } + sr, ok := i.(*SourceRange) + if !ok { + t.Errorf("expected a SourceRange type") } if !reflect.DeepEqual(sr, expected) { - t.Errorf("Expected %v but returned %s", sr, expected) + t.Errorf("expected %v but returned %s", sr, expected) } data[whitelist] = "www" - _, err = ParseAnnotations(defaults.Backend{}, ing) + _, err = p.Parse(ing) if err == nil { - t.Errorf("Expected error parsing an invalid cidr") + t.Errorf("expected error parsing an invalid cidr") } delete(data, whitelist) ing.SetAnnotations(data) - sr, err = ParseAnnotations(defaults.Backend{}, ing) + i, err = p.Parse(ing) + sr, ok = i.(*SourceRange) + if !ok { + t.Errorf("expected a SourceRange type") + } if err == nil { - t.Errorf("Expected error parsing an invalid cidr") + t.Errorf("expected error parsing an invalid cidr") } if !strsEquals(sr.CIDR, []string{}) { - t.Errorf("Expected empty CIDR but %v returned", sr.CIDR) + t.Errorf("expected empty CIDR but %v returned", sr.CIDR) } - sr, _ = ParseAnnotations(defaults.Backend{}, &extensions.Ingress{}) + i, _ = p.Parse(&extensions.Ingress{}) + sr, ok = i.(*SourceRange) + if !ok { + t.Errorf("expected a SourceRange type") + } if !strsEquals(sr.CIDR, []string{}) { - t.Errorf("Expected empty CIDR but %v returned", sr.CIDR) + t.Errorf("expected empty CIDR but %v returned", sr.CIDR) } data[whitelist] = "2.2.2.2/32,1.1.1.1/32,3.3.3.0/24" - sr, _ = ParseAnnotations(defaults.Backend{}, ing) + i, _ = p.Parse(ing) + sr, ok = i.(*SourceRange) + if !ok { + t.Errorf("expected a SourceRange type") + } ecidr := []string{"1.1.1.1/32", "2.2.2.2/32", "3.3.3.0/24"} if !strsEquals(sr.CIDR, ecidr) { t.Errorf("Expected %v CIDR but %v returned", ecidr, sr.CIDR) diff --git a/core/pkg/ingress/annotations/parser/main.go b/core/pkg/ingress/annotations/parser/main.go index 31736cf82..eb505ae74 100644 --- a/core/pkg/ingress/annotations/parser/main.go +++ b/core/pkg/ingress/annotations/parser/main.go @@ -17,32 +17,30 @@ limitations under the License. package parser import ( - "errors" - "fmt" "strconv" "k8s.io/kubernetes/pkg/apis/extensions" + + "k8s.io/ingress/core/pkg/ingress/errors" ) -var ( - // ErrMissingAnnotations is returned when the ingress rule - // does not contains annotations related with rate limit - ErrMissingAnnotations = errors.New("Ingress rule without annotations") - - // ErrInvalidName ... - ErrInvalidName = errors.New("invalid annotation name") -) +// IngressAnnotation has a method to parse annotations located in Ingress +type IngressAnnotation interface { + Parse(ing *extensions.Ingress) (interface{}, error) +} type ingAnnotations map[string]string func (a ingAnnotations) parseBool(name string) (bool, error) { val, ok := a[name] if ok { - if b, err := strconv.ParseBool(val); err == nil { - return b, nil + b, err := strconv.ParseBool(val) + if err != nil { + return false, errors.NewInvalidAnnotationContent(name) } + return b, nil } - return false, ErrMissingAnnotations + return false, errors.ErrMissingAnnotations } func (a ingAnnotations) parseString(name string) (string, error) { @@ -50,7 +48,7 @@ func (a ingAnnotations) parseString(name string) (string, error) { if ok { return val, nil } - return "", ErrMissingAnnotations + return "", errors.ErrMissingAnnotations } func (a ingAnnotations) parseInt(name string) (int, error) { @@ -58,45 +56,47 @@ func (a ingAnnotations) parseInt(name string) (int, error) { if ok { i, err := strconv.Atoi(val) if err != nil { - return 0, fmt.Errorf("invalid annotations value: %v", err) + return 0, errors.NewInvalidAnnotationContent(name) } return i, nil } - return 0, ErrMissingAnnotations + return 0, errors.ErrMissingAnnotations } -// GetBoolAnnotation ... -func GetBoolAnnotation(name string, ing *extensions.Ingress) (bool, error) { - if ing == nil || ing.GetAnnotations() == nil { - return false, ErrMissingAnnotations +func checkAnnotation(name string, ing *extensions.Ingress) error { + if ing == nil || len(ing.GetAnnotations()) == 0 { + return errors.ErrMissingAnnotations } if name == "" { - return false, ErrInvalidName + return errors.ErrInvalidAnnotationName } + return nil +} + +// GetBoolAnnotation extracts a boolean from an Ingress annotation +func GetBoolAnnotation(name string, ing *extensions.Ingress) (bool, error) { + err := checkAnnotation(name, ing) + if err != nil { + return false, err + } return ingAnnotations(ing.GetAnnotations()).parseBool(name) } -// GetStringAnnotation ... +// GetStringAnnotation extracts a string from an Ingress annotation func GetStringAnnotation(name string, ing *extensions.Ingress) (string, error) { - if ing == nil || ing.GetAnnotations() == nil { - return "", ErrMissingAnnotations + err := checkAnnotation(name, ing) + if err != nil { + return "", err } - if name == "" { - return "", ErrInvalidName - } - return ingAnnotations(ing.GetAnnotations()).parseString(name) } -// GetIntAnnotation ... +// GetIntAnnotation extracts an int from an Ingress annotation func GetIntAnnotation(name string, ing *extensions.Ingress) (int, error) { - if ing == nil || ing.GetAnnotations() == nil { - return 0, ErrMissingAnnotations + err := checkAnnotation(name, ing) + if err != nil { + return 0, err } - if name == "" { - return 0, ErrInvalidName - } - return ingAnnotations(ing.GetAnnotations()).parseInt(name) } diff --git a/core/pkg/ingress/annotations/parser/main_test.go b/core/pkg/ingress/annotations/parser/main_test.go index 1c756cdc2..099e76556 100644 --- a/core/pkg/ingress/annotations/parser/main_test.go +++ b/core/pkg/ingress/annotations/parser/main_test.go @@ -70,6 +70,8 @@ func TestGetBoolAnnotation(t *testing.T) { if u != test.exp { t.Errorf("%v: expected \"%v\" but \"%v\" was returned", test.name, test.exp, u) } + + delete(data, test.field) } } @@ -110,6 +112,8 @@ func TestGetStringAnnotation(t *testing.T) { if s != test.exp { t.Errorf("%v: expected \"%v\" but \"%v\" was returned", test.name, test.exp, s) } + + delete(data, test.field) } } @@ -150,5 +154,7 @@ func TestGetIntAnnotation(t *testing.T) { if s != test.exp { t.Errorf("%v: expected \"%v\" but \"%v\" was returned", test.name, test.exp, s) } + + delete(data, test.field) } } diff --git a/core/pkg/ingress/annotations/proxy/main.go b/core/pkg/ingress/annotations/proxy/main.go index d749f1849..97f3dddc0 100644 --- a/core/pkg/ingress/annotations/proxy/main.go +++ b/core/pkg/ingress/annotations/proxy/main.go @@ -20,7 +20,7 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" - "k8s.io/ingress/core/pkg/ingress/defaults" + "k8s.io/ingress/core/pkg/ingress/resolver" ) const ( @@ -38,37 +38,38 @@ type Configuration struct { BufferSize string `json:"bufferSize"` } +type proxy struct { + backendResolver resolver.DefaultBackend +} + +// NewParser creates a new reverse proxy configuration annotation parser +func NewParser(br resolver.DefaultBackend) parser.IngressAnnotation { + return proxy{br} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to configure upstream check parameters -func ParseAnnotations(cfg defaults.Backend, ing *extensions.Ingress) *Configuration { - if ing == nil || ing.GetAnnotations() == nil { - return &Configuration{ - cfg.ProxyConnectTimeout, - cfg.ProxySendTimeout, - cfg.ProxyReadTimeout, - cfg.ProxyBufferSize, - } - } - +func (a proxy) Parse(ing *extensions.Ingress) (interface{}, error) { + defBackend := a.backendResolver.GetDefaultBackend() ct, err := parser.GetIntAnnotation(connect, ing) if err != nil { - ct = cfg.ProxyConnectTimeout + ct = defBackend.ProxyConnectTimeout } st, err := parser.GetIntAnnotation(send, ing) if err != nil { - st = cfg.ProxySendTimeout + st = defBackend.ProxySendTimeout } rt, err := parser.GetIntAnnotation(read, ing) if err != nil { - rt = cfg.ProxyReadTimeout + rt = defBackend.ProxyReadTimeout } bs, err := parser.GetStringAnnotation(bufferSize, ing) if err != nil || bs == "" { - bs = cfg.ProxyBufferSize + bs = defBackend.ProxyBufferSize } - return &Configuration{ct, st, rt, bs} + return &Configuration{ct, st, rt, bs}, nil } diff --git a/core/pkg/ingress/annotations/proxy/main_test.go b/core/pkg/ingress/annotations/proxy/main_test.go index 337408d68..6b39a2d12 100644 --- a/core/pkg/ingress/annotations/proxy/main_test.go +++ b/core/pkg/ingress/annotations/proxy/main_test.go @@ -61,7 +61,14 @@ func buildIngress() *extensions.Ingress { } } -func TestIngressHealthCheck(t *testing.T) { +type mockBackend struct { +} + +func (m mockBackend) GetDefaultBackend() defaults.Backend { + return defaults.Backend{UpstreamFailTimeout: 1} +} + +func TestProxy(t *testing.T) { ing := buildIngress() data := map[string]string{} @@ -71,20 +78,24 @@ func TestIngressHealthCheck(t *testing.T) { data[bufferSize] = "1k" ing.SetAnnotations(data) - cfg := defaults.Backend{UpstreamFailTimeout: 1} - - p := ParseAnnotations(cfg, ing) - + i, err := NewParser(mockBackend{}).Parse(ing) + if err != nil { + t.Errorf("unexpected error parsing a valid") + } + p, ok := i.(*Configuration) + if !ok { + t.Errorf("expected a Configuration type") + } if p.ConnectTimeout != 1 { - t.Errorf("Expected 1 as connect-timeout but returned %v", p.ConnectTimeout) + t.Errorf("expected 1 as connect-timeout but returned %v", p.ConnectTimeout) } if p.SendTimeout != 2 { - t.Errorf("Expected 2 as send-timeout but returned %v", p.SendTimeout) + t.Errorf("expected 2 as send-timeout but returned %v", p.SendTimeout) } if p.ReadTimeout != 3 { - t.Errorf("Expected 3 as read-timeout but returned %v", p.ReadTimeout) + t.Errorf("expected 3 as read-timeout but returned %v", p.ReadTimeout) } if p.BufferSize != "1k" { - t.Errorf("Expected 1k as buffer-size but returned %v", p.BufferSize) + t.Errorf("expected 1k as buffer-size but returned %v", p.BufferSize) } } diff --git a/core/pkg/ingress/annotations/ratelimit/main.go b/core/pkg/ingress/annotations/ratelimit/main.go index 774bf6e07..83ce4d2c0 100644 --- a/core/pkg/ingress/annotations/ratelimit/main.go +++ b/core/pkg/ingress/annotations/ratelimit/main.go @@ -17,7 +17,6 @@ limitations under the License. package ratelimit import ( - "errors" "fmt" "k8s.io/kubernetes/pkg/apis/extensions" @@ -37,11 +36,6 @@ const ( defSharedSize = 5 ) -var ( - // ErrInvalidRateLimit is returned when the annotation caontains invalid values - ErrInvalidRateLimit = errors.New("invalid rate limit value. Must be > 0") -) - // RateLimit returns rate limit configuration for an Ingress rule // Is possible to limit the number of connections per IP address or // connections per second. @@ -63,12 +57,17 @@ type Zone struct { SharedSize int `json:"sharedSize"` } +type ratelimit struct { +} + +// NewParser creates a new ratelimit annotation parser +func NewParser() parser.IngressAnnotation { + return ratelimit{} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to rewrite the defined paths -func ParseAnnotations(ing *extensions.Ingress) (*RateLimit, error) { - if ing.GetAnnotations() == nil { - return &RateLimit{}, parser.ErrMissingAnnotations - } +func (a ratelimit) Parse(ing *extensions.Ingress) (interface{}, error) { rps, _ := parser.GetIntAnnotation(limitRPS, ing) conn, _ := parser.GetIntAnnotation(limitIP, ing) @@ -77,7 +76,7 @@ func ParseAnnotations(ing *extensions.Ingress) (*RateLimit, error) { return &RateLimit{ Connections: Zone{}, RPS: Zone{}, - }, ErrInvalidRateLimit + }, nil } zoneName := fmt.Sprintf("%v_%v", ing.GetNamespace(), ing.GetName()) diff --git a/core/pkg/ingress/annotations/ratelimit/main_test.go b/core/pkg/ingress/annotations/ratelimit/main_test.go index 3095662ce..46ad25d54 100644 --- a/core/pkg/ingress/annotations/ratelimit/main_test.go +++ b/core/pkg/ingress/annotations/ratelimit/main_test.go @@ -61,9 +61,9 @@ func buildIngress() *extensions.Ingress { func TestWithoutAnnotations(t *testing.T) { ing := buildIngress() - _, err := ParseAnnotations(ing) - if err == nil { - t.Error("Expected error with ingress without annotations") + _, err := NewParser().Parse(ing) + if err != nil { + t.Error("unexpected error with ingress without annotations") } } @@ -75,9 +75,9 @@ func TestBadRateLimiting(t *testing.T) { data[limitRPS] = "0" ing.SetAnnotations(data) - _, err := ParseAnnotations(ing) - if err == nil { - t.Errorf("Expected error with invalid limits (0)") + _, err := NewParser().Parse(ing) + if err != nil { + t.Errorf("unexpected error with invalid limits (0)") } data = map[string]string{} @@ -85,16 +85,18 @@ func TestBadRateLimiting(t *testing.T) { data[limitRPS] = "100" ing.SetAnnotations(data) - rateLimit, err := ParseAnnotations(ing) + i, err := NewParser().Parse(ing) if err != nil { - t.Errorf("Uxpected error: %v", err) + t.Errorf("unexpected error: %v", err) + } + rateLimit, ok := i.(*RateLimit) + if !ok { + t.Errorf("expected a RateLimit type") } - if rateLimit.Connections.Limit != 5 { - t.Errorf("Expected 5 in limit by ip but %v was returend", rateLimit.Connections) + t.Errorf("expected 5 in limit by ip but %v was returend", rateLimit.Connections) } - if rateLimit.RPS.Limit != 100 { - t.Errorf("Expected 100 in limit by rps but %v was returend", rateLimit.RPS) + t.Errorf("expected 100 in limit by rps but %v was returend", rateLimit.RPS) } } diff --git a/core/pkg/ingress/annotations/rewrite/main.go b/core/pkg/ingress/annotations/rewrite/main.go index 33ff7bcad..c7e57c253 100644 --- a/core/pkg/ingress/annotations/rewrite/main.go +++ b/core/pkg/ingress/annotations/rewrite/main.go @@ -17,12 +17,10 @@ limitations under the License. package rewrite import ( - "errors" - "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" - "k8s.io/ingress/core/pkg/ingress/defaults" + "k8s.io/ingress/core/pkg/ingress/resolver" ) const ( @@ -42,19 +40,27 @@ type Redirect struct { SSLRedirect bool `json:"sslRedirect"` } +type rewrite struct { + backendResolver resolver.DefaultBackend +} + +// NewParser creates a new reqrite annotation parser +func NewParser(br resolver.DefaultBackend) parser.IngressAnnotation { + return rewrite{br} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to rewrite the defined paths -func ParseAnnotations(cfg defaults.Backend, ing *extensions.Ingress) (*Redirect, error) { - if ing.GetAnnotations() == nil { - return &Redirect{}, errors.New("no annotations present") +func (a rewrite) Parse(ing *extensions.Ingress) (interface{}, error) { + rt, err := parser.GetStringAnnotation(rewriteTo, ing) + if err != nil { + return nil, err } sslRe, err := parser.GetBoolAnnotation(sslRedirect, ing) if err != nil { - sslRe = cfg.SSLRedirect + sslRe = a.backendResolver.GetDefaultBackend().SSLRedirect } - - rt, _ := parser.GetStringAnnotation(rewriteTo, ing) abu, _ := parser.GetBoolAnnotation(addBaseURL, ing) return &Redirect{ Target: rt, diff --git a/core/pkg/ingress/annotations/rewrite/main_test.go b/core/pkg/ingress/annotations/rewrite/main_test.go index c20919fd9..56ba6a9b7 100644 --- a/core/pkg/ingress/annotations/rewrite/main_test.go +++ b/core/pkg/ingress/annotations/rewrite/main_test.go @@ -65,9 +65,17 @@ func buildIngress() *extensions.Ingress { } } +type mockBackend struct { + redirect bool +} + +func (m mockBackend) GetDefaultBackend() defaults.Backend { + return defaults.Backend{SSLRedirect: m.redirect} +} + func TestWithoutAnnotations(t *testing.T) { ing := buildIngress() - _, err := ParseAnnotations(defaults.Backend{}, ing) + _, err := NewParser(mockBackend{}).Parse(ing) if err == nil { t.Error("Expected error with ingress without annotations") } @@ -80,11 +88,14 @@ func TestRedirect(t *testing.T) { data[rewriteTo] = defRoute ing.SetAnnotations(data) - redirect, err := ParseAnnotations(defaults.Backend{}, ing) + i, err := NewParser(mockBackend{}).Parse(ing) if err != nil { - t.Errorf("Uxpected error with ingress: %v", err) + t.Errorf("Unexpected error with ingress: %v", err) + } + redirect, ok := i.(*Redirect) + if !ok { + t.Errorf("expected a Redirect type") } - if redirect.Target != defRoute { t.Errorf("Expected %v as redirect but returned %s", defRoute, redirect.Target) } @@ -93,13 +104,18 @@ func TestRedirect(t *testing.T) { func TestSSLRedirect(t *testing.T) { ing := buildIngress() - cfg := defaults.Backend{SSLRedirect: true} - data := map[string]string{} - + data[rewriteTo] = defRoute ing.SetAnnotations(data) - redirect, _ := ParseAnnotations(cfg, ing) + i, _ := NewParser(mockBackend{true}).Parse(ing) + redirect, ok := i.(*Redirect) + if !ok { + t.Errorf("expected a Redirect type") + } + if !redirect.SSLRedirect { + t.Errorf("Expected true but returned false") + } if !redirect.SSLRedirect { t.Errorf("Expected true but returned false") @@ -108,8 +124,11 @@ func TestSSLRedirect(t *testing.T) { data[sslRedirect] = "false" ing.SetAnnotations(data) - redirect, _ = ParseAnnotations(cfg, ing) - + i, _ = NewParser(mockBackend{false}).Parse(ing) + redirect, ok = i.(*Redirect) + if !ok { + t.Errorf("expected a Redirect type") + } if redirect.SSLRedirect { t.Errorf("Expected false but returned true") } diff --git a/core/pkg/ingress/annotations/secureupstream/main.go b/core/pkg/ingress/annotations/secureupstream/main.go index 32240df32..732b577cd 100644 --- a/core/pkg/ingress/annotations/secureupstream/main.go +++ b/core/pkg/ingress/annotations/secureupstream/main.go @@ -26,8 +26,16 @@ const ( secureUpstream = "ingress.kubernetes.io/secure-backends" ) -// ParseAnnotations parses the annotations contained in the ingress +type su struct { +} + +// NewParser creates a new secure upstream annotation parser +func NewParser() parser.IngressAnnotation { + return su{} +} + +// Parse parses the annotations contained in the ingress // rule used to indicate if the upstream servers should use SSL -func ParseAnnotations(ing *extensions.Ingress) (bool, error) { +func (a su) Parse(ing *extensions.Ingress) (interface{}, error) { return parser.GetBoolAnnotation(secureUpstream, ing) } diff --git a/core/pkg/ingress/annotations/secureupstream/main_test.go b/core/pkg/ingress/annotations/secureupstream/main_test.go index eeb319600..a841e28c7 100644 --- a/core/pkg/ingress/annotations/secureupstream/main_test.go +++ b/core/pkg/ingress/annotations/secureupstream/main_test.go @@ -65,7 +65,7 @@ func TestAnnotations(t *testing.T) { data[secureUpstream] = "true" ing.SetAnnotations(data) - _, err := ParseAnnotations(ing) + _, err := NewParser().Parse(ing) if err != nil { t.Error("Expected error with ingress without annotations") } @@ -73,7 +73,7 @@ func TestAnnotations(t *testing.T) { func TestWithoutAnnotations(t *testing.T) { ing := buildIngress() - _, err := ParseAnnotations(ing) + _, err := NewParser().Parse(ing) if err == nil { t.Error("Expected error with ingress without annotations") } diff --git a/core/pkg/ingress/annotations/sslpassthrough/main.go b/core/pkg/ingress/annotations/sslpassthrough/main.go index 765cca227..99fcd0ab3 100644 --- a/core/pkg/ingress/annotations/sslpassthrough/main.go +++ b/core/pkg/ingress/annotations/sslpassthrough/main.go @@ -17,28 +17,29 @@ limitations under the License. package sslpassthrough import ( - "fmt" - "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" - "k8s.io/ingress/core/pkg/ingress/defaults" + ing_errors "k8s.io/ingress/core/pkg/ingress/errors" ) const ( passthrough = "ingress.kubernetes.io/ssl-passthrough" ) +type sslpt struct { +} + +// NewParser creates a new SSL passthrough annotation parser +func NewParser() parser.IngressAnnotation { + return sslpt{} +} + // ParseAnnotations parses the annotations contained in the ingress // rule used to indicate if is required to configure -func ParseAnnotations(cfg defaults.Backend, ing *extensions.Ingress) (bool, error) { - +func (a sslpt) Parse(ing *extensions.Ingress) (interface{}, error) { if ing.GetAnnotations() == nil { - return false, parser.ErrMissingAnnotations - } - - if len(ing.Spec.TLS) == 0 { - return false, fmt.Errorf("ingres rule %v/%v does not contains a TLS section", ing.Name, ing.Namespace) + return false, ing_errors.ErrMissingAnnotations } return parser.GetBoolAnnotation(passthrough, ing) diff --git a/core/pkg/ingress/annotations/sslpassthrough/main_test.go b/core/pkg/ingress/annotations/sslpassthrough/main_test.go index 1ae6d64b3..3f1f6286b 100644 --- a/core/pkg/ingress/annotations/sslpassthrough/main_test.go +++ b/core/pkg/ingress/annotations/sslpassthrough/main_test.go @@ -22,8 +22,6 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/util/intstr" - - "k8s.io/ingress/core/pkg/ingress/defaults" ) func buildIngress() *extensions.Ingress { @@ -44,7 +42,7 @@ func buildIngress() *extensions.Ingress { func TestParseAnnotations(t *testing.T) { ing := buildIngress() - _, err := ParseAnnotations(defaults.Backend{}, ing) + _, err := NewParser().Parse(ing) if err == nil { t.Errorf("unexpected error: %v", err) } @@ -53,9 +51,9 @@ func TestParseAnnotations(t *testing.T) { data[passthrough] = "true" ing.SetAnnotations(data) // test ingress using the annotation without a TLS section - val, err := ParseAnnotations(defaults.Backend{}, ing) - if err == nil { - t.Errorf("expected error parsing an invalid cidr") + _, err = NewParser().Parse(ing) + if err != nil { + t.Errorf("unexpected error parsing ingress with sslpassthrough") } // test with a valid host @@ -64,9 +62,13 @@ func TestParseAnnotations(t *testing.T) { Hosts: []string{"foo.bar.com"}, }, } - val, err = ParseAnnotations(defaults.Backend{}, ing) + i, err := NewParser().Parse(ing) if err != nil { - t.Errorf("expected error parsing an invalid cidr") + t.Errorf("expected error parsing ingress with sslpassthrough") + } + val, ok := i.(bool) + if !ok { + t.Errorf("expected a bool type") } if !val { t.Errorf("expected true but false returned") diff --git a/core/pkg/ingress/controller/annotations.go b/core/pkg/ingress/controller/annotations.go new file mode 100644 index 000000000..27c0baf1a --- /dev/null +++ b/core/pkg/ingress/controller/annotations.go @@ -0,0 +1,114 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package controller + +import ( + "github.com/golang/glog" + + "k8s.io/kubernetes/pkg/apis/extensions" + + "k8s.io/ingress/core/pkg/ingress/annotations/auth" + "k8s.io/ingress/core/pkg/ingress/annotations/authreq" + "k8s.io/ingress/core/pkg/ingress/annotations/authtls" + "k8s.io/ingress/core/pkg/ingress/annotations/cors" + "k8s.io/ingress/core/pkg/ingress/annotations/healthcheck" + "k8s.io/ingress/core/pkg/ingress/annotations/ipwhitelist" + "k8s.io/ingress/core/pkg/ingress/annotations/parser" + "k8s.io/ingress/core/pkg/ingress/annotations/proxy" + "k8s.io/ingress/core/pkg/ingress/annotations/ratelimit" + "k8s.io/ingress/core/pkg/ingress/annotations/rewrite" + "k8s.io/ingress/core/pkg/ingress/annotations/secureupstream" + "k8s.io/ingress/core/pkg/ingress/annotations/sslpassthrough" + "k8s.io/ingress/core/pkg/ingress/errors" + "k8s.io/ingress/core/pkg/ingress/resolver" +) + +type extractorConfig interface { + resolver.AuthCertificate + resolver.DefaultBackend + resolver.Secret +} + +type annotationExtractor struct { + annotations map[string]parser.IngressAnnotation +} + +func newAnnotationExtractor(cfg extractorConfig) annotationExtractor { + return annotationExtractor{ + map[string]parser.IngressAnnotation{ + "BasicDigestAuth": auth.NewParser(auth.AuthDirectory, cfg), + "ExternalAuth": authreq.NewParser(), + "CertificateAuth": authtls.NewParser(cfg), + "EnableCORS": cors.NewParser(), + "HealthCheck": healthcheck.NewParser(cfg), + "Whitelist": ipwhitelist.NewParser(cfg), + "Proxy": proxy.NewParser(cfg), + "RateLimit": ratelimit.NewParser(), + "Redirect": rewrite.NewParser(cfg), + "SecureUpstream": secureupstream.NewParser(), + "SSLPassthrough": sslpassthrough.NewParser(), + }, + } +} + +func (e *annotationExtractor) Extract(ing *extensions.Ingress) map[string]interface{} { + anns := make(map[string]interface{}, 0) + for name, annotationParser := range e.annotations { + val, err := annotationParser.Parse(ing) + glog.V(5).Infof("annotation %v in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), val) + if err != nil { + _, de := anns["Denied"] + if errors.IsLocationDenied(err) && !de { + anns["Denied"] = err + glog.Errorf("error reading %v annotation in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), err) + continue + } + if !errors.IsMissingAnnotations(err) { + glog.Errorf("error reading %v annotation in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), err) + continue + } + glog.V(5).Infof("error reading %v annotation in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), err) + } + + if val != nil { + anns[name] = val + } + } + + return anns +} + +const ( + secureUpstream = "SecureUpstream" + healthCheck = "HealthCheck" + sslPassthrough = "SSLPassthrough" +) + +func (e *annotationExtractor) SecureUpstream(ing *extensions.Ingress) bool { + val, _ := e.annotations[secureUpstream].Parse(ing) + return val.(bool) +} + +func (e *annotationExtractor) HealthCheck(ing *extensions.Ingress) *healthcheck.Upstream { + val, _ := e.annotations[healthCheck].Parse(ing) + return val.(*healthcheck.Upstream) +} + +func (e *annotationExtractor) SSLPassthrough(ing *extensions.Ingress) bool { + val, _ := e.annotations[sslPassthrough].Parse(ing) + return val.(bool) +} diff --git a/core/pkg/ingress/controller/annotations_test.go b/core/pkg/ingress/controller/annotations_test.go new file mode 100644 index 000000000..431e3c1a8 --- /dev/null +++ b/core/pkg/ingress/controller/annotations_test.go @@ -0,0 +1,92 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package controller + +import ( + "testing" + + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/extensions" + "k8s.io/kubernetes/pkg/util/intstr" + + "k8s.io/ingress/core/pkg/ingress/annotations/authtls" + "k8s.io/ingress/core/pkg/ingress/defaults" +) + +type mockCfg struct { +} + +func (m mockCfg) GetDefaultBackend() defaults.Backend { + return defaults.Backend{} +} + +func (m mockCfg) GetSecret(string) (*api.Secret, error) { + return nil, nil +} + +func (m mockCfg) GetAuthCertificate(string) (*authtls.SSLCert, error) { + return nil, nil +} + +func TestAnnotationExtractor(t *testing.T) { + ec := newAnnotationExtractor(mockCfg{}) + ing := buildIngress() + + m := ec.Extract(ing) + // the map at least should contains HealthCheck and Proxy information (defaults) + if _, ok := m["HealthCheck"]; !ok { + t.Error("expected HealthCheck annotation") + } + if _, ok := m["Proxy"]; !ok { + t.Error("expected Proxy annotation") + } +} + +func buildIngress() *extensions.Ingress { + defaultBackend := extensions.IngressBackend{ + ServiceName: "default-backend", + ServicePort: intstr.FromInt(80), + } + + return &extensions.Ingress{ + ObjectMeta: api.ObjectMeta{ + Name: "foo", + Namespace: api.NamespaceDefault, + }, + Spec: extensions.IngressSpec{ + Backend: &extensions.IngressBackend{ + ServiceName: "default-backend", + ServicePort: intstr.FromInt(80), + }, + Rules: []extensions.IngressRule{ + { + Host: "foo.bar.com", + IngressRuleValue: extensions.IngressRuleValue{ + HTTP: &extensions.HTTPIngressRuleValue{ + Paths: []extensions.HTTPIngressPath{ + { + Path: "/foo", + Backend: defaultBackend, + }, + }, + }, + }, + }, + }, + }, + } +} diff --git a/core/pkg/ingress/controller/controller.go b/core/pkg/ingress/controller/controller.go index 46679ee99..1851bb9b5 100644 --- a/core/pkg/ingress/controller/controller.go +++ b/core/pkg/ingress/controller/controller.go @@ -39,18 +39,11 @@ import ( cache_store "k8s.io/ingress/core/pkg/cache" "k8s.io/ingress/core/pkg/ingress" - "k8s.io/ingress/core/pkg/ingress/annotations/auth" - "k8s.io/ingress/core/pkg/ingress/annotations/authreq" "k8s.io/ingress/core/pkg/ingress/annotations/authtls" - "k8s.io/ingress/core/pkg/ingress/annotations/cors" "k8s.io/ingress/core/pkg/ingress/annotations/healthcheck" - "k8s.io/ingress/core/pkg/ingress/annotations/ipwhitelist" "k8s.io/ingress/core/pkg/ingress/annotations/proxy" - "k8s.io/ingress/core/pkg/ingress/annotations/ratelimit" - "k8s.io/ingress/core/pkg/ingress/annotations/rewrite" - "k8s.io/ingress/core/pkg/ingress/annotations/secureupstream" "k8s.io/ingress/core/pkg/ingress/annotations/service" - "k8s.io/ingress/core/pkg/ingress/annotations/sslpassthrough" + "k8s.io/ingress/core/pkg/ingress/defaults" "k8s.io/ingress/core/pkg/ingress/status" "k8s.io/ingress/core/pkg/k8s" local_strings "k8s.io/ingress/core/pkg/strings" @@ -90,6 +83,8 @@ type GenericController struct { secrLister cache_store.StoreToSecretsLister mapLister cache_store.StoreToConfigmapLister + annotations annotationExtractor + recorder record.EventRecorder syncQueue *task.Queue @@ -268,6 +263,8 @@ func newIngressController(config *Configuration) *GenericController { IngressLister: ic.ingLister, }) + ic.annotations = newAnnotationExtractor(ic) + return &ic } @@ -289,8 +286,13 @@ func (ic GenericController) IngressClass() string { return ic.cfg.IngressClass } -// getSecret searchs for a secret in the local secrets Store -func (ic *GenericController) getSecret(name string) (*api.Secret, error) { +// GetDefaultBackend returns the default backend +func (ic GenericController) GetDefaultBackend() defaults.Backend { + return ic.cfg.Backend.BackendDefaults() +} + +// GetSecret searchs for a secret in the local secrets Store +func (ic GenericController) GetSecret(name string) (*api.Secret, error) { s, exists, err := ic.secrLister.Store.GetByKey(name) if err != nil { return nil, err @@ -551,53 +553,10 @@ func (ic *GenericController) getBackendServers() ([]*ingress.Backend, []*ingress upstreams := ic.createUpstreams(ings) servers := ic.createServers(ings, upstreams) - upsDefaults := ic.cfg.Backend.BackendDefaults() - for _, ingIf := range ings { ing := ingIf.(*extensions.Ingress) - nginxAuth, err := auth.ParseAnnotations(ing, auth.DefAuthDirectory, ic.getSecret) - glog.V(5).Infof("auth annotation: %v", nginxAuth) - if err != nil { - glog.V(5).Infof("error reading authentication in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } - - rl, err := ratelimit.ParseAnnotations(ing) - glog.V(5).Infof("rate limit annotation: %v", rl) - if err != nil { - glog.V(5).Infof("error reading rate limit annotation in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } - - locRew, err := rewrite.ParseAnnotations(upsDefaults, ing) - if err != nil { - glog.V(5).Infof("error parsing rewrite annotations for Ingress rule %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } - - wl, err := ipwhitelist.ParseAnnotations(upsDefaults, ing) - glog.V(5).Infof("white list annotation: %v", wl) - if err != nil { - glog.V(5).Infof("error reading white list annotation in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } - - eCORS, err := cors.ParseAnnotations(ing) - if err != nil { - glog.V(5).Infof("error reading CORS annotation in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } - - ra, err := authreq.ParseAnnotations(ing) - glog.V(5).Infof("auth request annotation: %v", ra) - if err != nil { - glog.V(5).Infof("error reading auth request annotation in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } - - prx := proxy.ParseAnnotations(upsDefaults, ing) - glog.V(5).Infof("proxy timeouts annotation: %v", prx) - - certAuth, err := authtls.ParseAnnotations(ing, ic.getAuthCertificate) - glog.V(5).Infof("auth request annotation: %v", certAuth) - if err != nil { - glog.V(5).Infof("error reading certificate auth annotation in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } + anns := ic.annotations.Extract(ing) for _, rule := range ing.Spec.Rules { host := rule.Host @@ -664,34 +623,21 @@ func (ic *GenericController) getBackendServers() ([]*ingress.Backend, []*ingress glog.V(3).Infof("replacing ingress rule %v/%v location %v upstream %v (%v)", ing.Namespace, ing.Name, loc.Path, ups.Name, loc.Backend) loc.Backend = ups.Name loc.IsDefBackend = false - loc.BasicDigestAuth = *nginxAuth - loc.RateLimit = *rl - loc.Redirect = *locRew - loc.Whitelist = *wl loc.Backend = ups.Name - loc.EnableCORS = eCORS - loc.ExternalAuth = ra - loc.Proxy = *prx - loc.CertificateAuth = *certAuth + mergeLocationAnnotations(loc, anns) break } } // is a new location if addLoc { glog.V(3).Infof("adding location %v in ingress rule %v/%v upstream %v", nginxPath, ing.Namespace, ing.Name, ups.Name) - server.Locations = append(server.Locations, &ingress.Location{ - Path: nginxPath, - Backend: ups.Name, - IsDefBackend: false, - BasicDigestAuth: *nginxAuth, - RateLimit: *rl, - Redirect: *locRew, - Whitelist: *wl, - EnableCORS: eCORS, - ExternalAuth: ra, - Proxy: *prx, - CertificateAuth: *certAuth, - }) + loc := &ingress.Location{ + Path: nginxPath, + Backend: ups.Name, + IsDefBackend: false, + } + mergeLocationAnnotations(loc, anns) + server.Locations = append(server.Locations, loc) } } } @@ -721,7 +667,8 @@ func (ic *GenericController) getBackendServers() ([]*ingress.Backend, []*ingress return aUpstreams, aServers } -func (ic *GenericController) getAuthCertificate(secretName string) (*authtls.SSLCert, error) { +// GetAuthCertificate ... +func (ic GenericController) GetAuthCertificate(secretName string) (*authtls.SSLCert, error) { bc, exists := ic.sslCertTracker.Get(secretName) if !exists { return &authtls.SSLCert{}, fmt.Errorf("secret %v does not exists", secretName) @@ -741,16 +688,11 @@ func (ic *GenericController) createUpstreams(data []interface{}) map[string]*ing upstreams := make(map[string]*ingress.Backend) upstreams[defUpstreamName] = ic.getDefaultUpstream() - upsDefaults := ic.cfg.Backend.BackendDefaults() for _, ingIf := range data { ing := ingIf.(*extensions.Ingress) - secUpstream, err := secureupstream.ParseAnnotations(ing) - if err != nil { - glog.V(5).Infof("error reading secure upstream in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } - - hz := healthcheck.ParseAnnotations(upsDefaults, ing) + secUpstream := ic.annotations.SecureUpstream(ing) + hz := ic.annotations.HealthCheck(ing) var defBackend string if ing.Spec.Backend != nil { @@ -843,9 +785,16 @@ func (ic *GenericController) serviceEndpoints(svcKey, backendPort string, func (ic *GenericController) createServers(data []interface{}, upstreams map[string]*ingress.Backend) map[string]*ingress.Server { servers := make(map[string]*ingress.Server) - ngxProxy := *proxy.ParseAnnotations(ic.cfg.Backend.BackendDefaults(), nil) - upsDefaults := ic.cfg.Backend.BackendDefaults() + bdef := ic.GetDefaultBackend() + ngxProxy := proxy.Configuration{ + ConnectTimeout: bdef.ProxyConnectTimeout, + SendTimeout: bdef.ProxySendTimeout, + ReadTimeout: bdef.ProxyReadTimeout, + BufferSize: bdef.ProxyBufferSize, + } + + dun := ic.getDefaultUpstream().Name // default server servers[defServerName] = &ingress.Server{ @@ -854,7 +803,7 @@ func (ic *GenericController) createServers(data []interface{}, upstreams map[str { Path: rootLocation, IsDefBackend: true, - Backend: ic.getDefaultUpstream().Name, + Backend: dun, Proxy: ngxProxy, }, }} @@ -863,10 +812,7 @@ func (ic *GenericController) createServers(data []interface{}, upstreams map[str for _, ingIf := range data { ing := ingIf.(*extensions.Ingress) // check if ssl passthrough is configured - sslpt, err := sslpassthrough.ParseAnnotations(upsDefaults, ing) - if err != nil { - glog.V(5).Infof("error reading ssl passthrough annotation in Ingress %v/%v: %v", ing.GetNamespace(), ing.GetName(), err) - } + sslpt := ic.annotations.SSLPassthrough(ing) for _, rule := range ing.Spec.Rules { host := rule.Host @@ -883,7 +829,7 @@ func (ic *GenericController) createServers(data []interface{}, upstreams map[str { Path: rootLocation, IsDefBackend: true, - Backend: ic.getDefaultUpstream().Name, + Backend: dun, Proxy: ngxProxy, }, }, SSLPassthrough: sslpt} diff --git a/core/pkg/ingress/controller/util.go b/core/pkg/ingress/controller/util.go index c3e4f249c..57b31dba3 100644 --- a/core/pkg/ingress/controller/util.go +++ b/core/pkg/ingress/controller/util.go @@ -19,6 +19,9 @@ package controller import ( "strings" + "github.com/golang/glog" + "github.com/imdario/mergo" + "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress" @@ -93,3 +96,16 @@ func IsValidClass(ing *extensions.Ingress, class string) bool { return cc == class } + +const denied = "Denied" + +func mergeLocationAnnotations(loc *ingress.Location, anns map[string]interface{}) { + if _, ok := anns[denied]; ok { + loc.Denied = anns[denied].(error) + } + delete(anns, denied) + err := mergo.Map(loc, anns) + if err != nil { + glog.Errorf("unexpected error merging extracted annotations in location type: %v", err) + } +} diff --git a/core/pkg/ingress/errors/errors.go b/core/pkg/ingress/errors/errors.go new file mode 100644 index 000000000..924753963 --- /dev/null +++ b/core/pkg/ingress/errors/errors.go @@ -0,0 +1,89 @@ +/* +Copyright 2016 The Kubernetes Authors. + +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. +*/ + +package errors + +import ( + "fmt" + + "github.com/pkg/errors" +) + +var ( + // ErrMissingAnnotations the ingress rule does not contains annotations + // This is an error only when annotations are being parsed + ErrMissingAnnotations = errors.New("ingress rule without annotations") + + // ErrInvalidAnnotationName the ingress rule does contains an invalid + // annotation name + ErrInvalidAnnotationName = errors.New("invalid annotation name") + + // ErrInvalidAnnotationContent the ingress rule annotation content is + // invalid + ErrInvalidAnnotationContent = errors.New("invalid annotation content") +) + +// NewInvalidAnnotationContent returns a new InvalidContent error +func NewInvalidAnnotationContent(name string) error { + return InvalidContent{ + Name: fmt.Sprintf("the annotation %v does not contains a valid value", name), + } +} + +// NewLocationDenied returns a new LocationDenied error +func NewLocationDenied(reason string) error { + return LocationDenied{ + Reason: errors.Errorf("Location denied, reason: %v", reason), + } +} + +// InvalidContent error +type InvalidContent struct { + Name string +} + +func (e InvalidContent) Error() string { + return e.Name +} + +// LocationDenied error +type LocationDenied struct { + Reason error +} + +func (e LocationDenied) Error() string { + return e.Reason.Error() +} + +// IsLocationDenied checks if the err is an error which +// indicates a location should return HTTP code 503 +func IsLocationDenied(e error) bool { + _, ok := e.(LocationDenied) + return ok +} + +// IsMissingAnnotations checks if the err is an error which +// indicates the ingress does not contains annotations +func IsMissingAnnotations(e error) bool { + return e == ErrMissingAnnotations +} + +// IsInvalidContent checks if the err is an error which +// indicates an annotations value is not valid +func IsInvalidContent(e error) bool { + _, ok := e.(InvalidContent) + return ok +} diff --git a/core/pkg/ingress/errors/errors_test.go b/core/pkg/ingress/errors/errors_test.go new file mode 100644 index 000000000..c0bd52406 --- /dev/null +++ b/core/pkg/ingress/errors/errors_test.go @@ -0,0 +1,52 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package errors + +import "testing" + +func TestIsLocationDenied(t *testing.T) { + err := NewLocationDenied("demo") + if !IsLocationDenied(err) { + t.Error("expected true") + } + if IsLocationDenied(nil) { + t.Error("expected false") + } +} + +func TestIsMissingAnnotations(t *testing.T) { + if !IsMissingAnnotations(ErrMissingAnnotations) { + t.Error("expected true") + } +} + +func TestInvalidContent(t *testing.T) { + if IsInvalidContent(ErrMissingAnnotations) { + t.Error("expected false") + } + err := NewInvalidAnnotationContent("demo") + if !IsInvalidContent(err) { + t.Error("expected true") + } + if IsInvalidContent(nil) { + t.Error("expected false") + } + err = NewLocationDenied("demo") + if IsInvalidContent(err) { + t.Error("expected false") + } +} diff --git a/core/pkg/ingress/resolver/main.go b/core/pkg/ingress/resolver/main.go new file mode 100644 index 000000000..c345ad289 --- /dev/null +++ b/core/pkg/ingress/resolver/main.go @@ -0,0 +1,43 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package resolver + +import ( + "k8s.io/kubernetes/pkg/api" + + "k8s.io/ingress/core/pkg/ingress/annotations/authtls" + "k8s.io/ingress/core/pkg/ingress/defaults" +) + +// DefaultBackend has a method that returns the backend +// that must be used as default +type DefaultBackend interface { + GetDefaultBackend() defaults.Backend +} + +// Secret has a method that searchs for secrets contenating +// the namespace and name using a the character / +type Secret interface { + GetSecret(string) (*api.Secret, error) +} + +// AuthCertificate has a method that searchs for a secret +// that contains a SSL certificate. +// The secret must contain 3 keys named: +type AuthCertificate interface { + GetAuthCertificate(string) (*authtls.SSLCert, error) +} diff --git a/core/pkg/ingress/types.go b/core/pkg/ingress/types.go index 7a0f5929a..e26b1e9c5 100644 --- a/core/pkg/ingress/types.go +++ b/core/pkg/ingress/types.go @@ -203,6 +203,9 @@ type Location struct { // an Ingress rule. // +optional BasicDigestAuth auth.BasicDigest `json:"basicDigestAuth,omitempty"` + // Denied returns an error when this location cannot not be allowed + // Requesting a denied location should return HTTP code 403. + Denied error // EnableCORS indicates if path must support CORS // +optional EnableCORS bool `json:"enableCors,omitempty"` diff --git a/core/pkg/task/queue_test.go b/core/pkg/task/queue_test.go index 295c62637..5d2cf2f41 100644 --- a/core/pkg/task/queue_test.go +++ b/core/pkg/task/queue_test.go @@ -18,11 +18,12 @@ package task import ( "fmt" + "sync/atomic" "testing" "time" ) -var sr int = 0 +var sr uint32 type mockEnqueueObj struct { k string @@ -31,7 +32,7 @@ type mockEnqueueObj struct { func mockSynFn(interface{}) error { // sr will be plus one times after enqueue - sr++ + atomic.AddUint32(&sr, 1) return nil } @@ -60,7 +61,7 @@ func TestShutdown(t *testing.T) { func TestEnqueueSuccess(t *testing.T) { // initialize result - sr = 0 + atomic.StoreUint32(&sr, 0) q := NewCustomTaskQueue(mockSynFn, mockKeyFn) stopCh := make(chan struct{}) // run queue @@ -73,7 +74,7 @@ func TestEnqueueSuccess(t *testing.T) { q.Enqueue(mo) // wait for 'mockSynFn' time.Sleep(time.Millisecond * 10) - if sr != 1 { + if atomic.LoadUint32(&sr) != 1 { t.Errorf("sr should be 1, but is %d", sr) } @@ -83,7 +84,7 @@ func TestEnqueueSuccess(t *testing.T) { func TestEnqueueFailed(t *testing.T) { // initialize result - sr = 0 + atomic.StoreUint32(&sr, 0) q := NewCustomTaskQueue(mockSynFn, mockKeyFn) stopCh := make(chan struct{}) // run queue @@ -102,14 +103,14 @@ func TestEnqueueFailed(t *testing.T) { // wait for 'mockSynFn' time.Sleep(time.Millisecond * 10) // queue is shutdown, so mockSynFn should not be executed, so the result should be 0 - if sr != 0 { + if atomic.LoadUint32(&sr) != 0 { t.Errorf("queue has been shutdown, so sr should be 0, but is %d", sr) } } func TestEnqueueKeyError(t *testing.T) { // initialize result - sr = 0 + atomic.StoreUint32(&sr, 0) q := NewCustomTaskQueue(mockSynFn, mockErrorKeyFn) stopCh := make(chan struct{}) // run queue @@ -124,7 +125,7 @@ func TestEnqueueKeyError(t *testing.T) { // wait for 'mockSynFn' time.Sleep(time.Millisecond * 10) // key error, so the result should be 0 - if sr != 0 { + if atomic.LoadUint32(&sr) != 0 { t.Errorf("error occurs while get key, so sr should be 0, but is %d", sr) } // shutdown queue before exit From 9085e24a29858bb6b8def72e49f91cef8597a42e Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Thu, 5 Jan 2017 18:10:28 -0300 Subject: [PATCH 2/4] Update godeps --- Godeps/Godeps.json | 822 ++- vendor/github.com/fatih/structs/.travis.yml | 9 - vendor/github.com/fatih/structs/LICENSE | 21 - vendor/github.com/fatih/structs/README.md | 164 - vendor/github.com/fatih/structs/field.go | 133 - vendor/github.com/fatih/structs/structs.go | 449 -- vendor/github.com/fatih/structs/tags.go | 32 - vendor/github.com/juju/ratelimit/LICENSE | 191 + vendor/github.com/juju/ratelimit/README.md | 117 + vendor/github.com/juju/ratelimit/ratelimit.go | 245 + vendor/github.com/juju/ratelimit/reader.go | 51 + .../{fatih/structs => pkg/errors}/.gitignore | 1 + vendor/github.com/pkg/errors/.travis.yml | 10 + vendor/github.com/pkg/errors/LICENSE | 23 + vendor/github.com/pkg/errors/README.md | 52 + vendor/github.com/pkg/errors/appveyor.yml | 32 + vendor/github.com/pkg/errors/errors.go | 236 + vendor/github.com/pkg/errors/stack.go | 178 + .../prometheus/common/model/metric.go | 2 +- .../github.com/prometheus/procfs/.travis.yml | 4 +- .../github.com/prometheus/procfs/AUTHORS.md | 1 + .../prometheus/procfs/mountstats.go | 552 ++ vendor/github.com/prometheus/procfs/proc.go | 12 + .../segmentio/go-camelcase/.gitignore | 27 - .../segmentio/go-camelcase/Readme.md | 22 - .../segmentio/go-camelcase/camel.go | 105 - .../segmentio/go-camelcase/circle.yml | 21 - .../k8s.io/kubernetes/pkg/api/rest/delete.go | 10 +- vendor/k8s.io/kubernetes/pkg/api/rest/rest.go | 4 + .../pkg/api/validation/validation.go | 9 - .../apis/componentconfig/types.generated.go | 6127 +++++++++-------- .../pkg/apis/componentconfig/types.go | 3 + .../apis/componentconfig/v1alpha1/defaults.go | 3 + .../apis/componentconfig/v1alpha1/types.go | 2 + .../v1alpha1/zz_generated.conversion.go | 6 + .../v1alpha1/zz_generated.deepcopy.go | 7 + .../componentconfig/zz_generated.deepcopy.go | 1 + .../kubernetes/pkg/client/cache/reflector.go | 4 + .../k8s.io/kubernetes/pkg/storage/cacher.go | 30 +- .../kubernetes/pkg/util/flowcontrol/BUILD | 2 +- .../pkg/util/flowcontrol/throttle.go | 2 +- .../kubernetes/pkg/util/mount/mount_linux.go | 6 +- .../k8s.io/kubernetes/pkg/util/rand/rand.go | 12 +- .../kubernetes/pkg/util/ratelimit/BUILD | 25 - .../kubernetes/pkg/util/ratelimit/bucket.go | 170 - .../kubernetes/pkg/util/workqueue/BUILD | 2 +- .../util/workqueue/default_rate_limiters.go | 4 +- vendor/k8s.io/kubernetes/pkg/version/base.go | 6 +- .../k8s.io/kubernetes/pkg/volume/util/util.go | 2 +- .../kubernetes/pkg/volume/volume_linux.go | 11 + 50 files changed, 5284 insertions(+), 4676 deletions(-) delete mode 100644 vendor/github.com/fatih/structs/.travis.yml delete mode 100644 vendor/github.com/fatih/structs/LICENSE delete mode 100644 vendor/github.com/fatih/structs/README.md delete mode 100644 vendor/github.com/fatih/structs/field.go delete mode 100644 vendor/github.com/fatih/structs/structs.go delete mode 100644 vendor/github.com/fatih/structs/tags.go create mode 100644 vendor/github.com/juju/ratelimit/LICENSE create mode 100644 vendor/github.com/juju/ratelimit/README.md create mode 100644 vendor/github.com/juju/ratelimit/ratelimit.go create mode 100644 vendor/github.com/juju/ratelimit/reader.go rename vendor/github.com/{fatih/structs => pkg/errors}/.gitignore (97%) create mode 100644 vendor/github.com/pkg/errors/.travis.yml create mode 100644 vendor/github.com/pkg/errors/LICENSE create mode 100644 vendor/github.com/pkg/errors/README.md create mode 100644 vendor/github.com/pkg/errors/appveyor.yml create mode 100644 vendor/github.com/pkg/errors/errors.go create mode 100644 vendor/github.com/pkg/errors/stack.go create mode 100644 vendor/github.com/prometheus/procfs/mountstats.go delete mode 100644 vendor/github.com/segmentio/go-camelcase/.gitignore delete mode 100644 vendor/github.com/segmentio/go-camelcase/Readme.md delete mode 100644 vendor/github.com/segmentio/go-camelcase/camel.go delete mode 100644 vendor/github.com/segmentio/go-camelcase/circle.yml delete mode 100644 vendor/k8s.io/kubernetes/pkg/util/ratelimit/BUILD delete mode 100644 vendor/k8s.io/kubernetes/pkg/util/ratelimit/bucket.go diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 7bd8083ef..e35bf4ccf 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -166,10 +166,6 @@ "ImportPath": "github.com/exponent-io/jsonpath", "Rev": "d6023ce2651d8eafb5c75bb0c7167536102ec9f5" }, - { - "ImportPath": "github.com/fatih/structs", - "Rev": "d2e1722acaab51fc7fc55686706d08bbf9e4fafb" - }, { "ImportPath": "github.com/ghodss/yaml", "Rev": "73d445a93680fa1a78ae23a5839bad48f32ba1ee" @@ -233,6 +229,10 @@ "ImportPath": "github.com/jonboulle/clockwork", "Rev": "72f9bd7c4e0c2a40055ab3d0f09654f730cce982" }, + { + "ImportPath": "github.com/juju/ratelimit", + "Rev": "77ed1c8a01217656d2080ad51981f6e99adaa177" + }, { "ImportPath": "github.com/mailru/easyjson/buffer", "Rev": "d5b7844b561a7bc640052f1b935f7b800330d7e0" @@ -267,6 +267,11 @@ "ImportPath": "github.com/pborman/uuid", "Rev": "ca53cad383cad2479bbba7f7a1a05797ec1386e4" }, + { + "ImportPath": "github.com/pkg/errors", + "Comment": "v0.7.0-13-ga221380", + "Rev": "a22138067af1c4942683050411a841ade67fe1eb" + }, { "ImportPath": "github.com/prometheus/client_golang/prometheus", "Comment": "v0.8.0-42-g575f371", @@ -284,23 +289,19 @@ }, { "ImportPath": "github.com/prometheus/common/expfmt", - "Rev": "0d5de9d6d8629cb8bee6d4674da4127cd8b615a3" + "Rev": "6d76b79f239843a04e8ad8dfd8fcadfa3920236f" }, { "ImportPath": "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg", - "Rev": "0d5de9d6d8629cb8bee6d4674da4127cd8b615a3" + "Rev": "6d76b79f239843a04e8ad8dfd8fcadfa3920236f" }, { "ImportPath": "github.com/prometheus/common/model", - "Rev": "0d5de9d6d8629cb8bee6d4674da4127cd8b615a3" + "Rev": "6d76b79f239843a04e8ad8dfd8fcadfa3920236f" }, { "ImportPath": "github.com/prometheus/procfs", - "Rev": "abf152e5f3e97f2fafac028d2cc06c1feb87ffa5" - }, - { - "ImportPath": "github.com/segmentio/go-camelcase", - "Rev": "7085f1e3c734f696a4cd28568c33abae3100126f" + "Rev": "fcdb11ccb4389efb1b210b7ffb623ab71c5fdd60" }, { "ImportPath": "github.com/spf13/cobra", @@ -490,998 +491,993 @@ }, { "ImportPath": "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/federation/apis/federation", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/federation/apis/federation/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/federation/apis/federation/v1beta1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/annotations", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/endpoints", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/errors", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/events", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/meta", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/meta/metatypes", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/pod", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/resource", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/rest", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/service", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/testapi", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/unversioned", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/unversioned/validation", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/util", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/v1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/validation", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/api/validation/path", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apimachinery", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apimachinery/announced", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apimachinery/registered", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/apps", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/v1beta1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/v1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/batch", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/v1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/componentconfig", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/componentconfig/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions/validation", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/policy", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/policy/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/policy/v1beta1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/storage", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/storage/install", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/storage/util", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/apis/storage/v1beta1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/auth/authenticator", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/auth/user", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/capabilities", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/cache", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/leaderelection", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/leaderelection/resourcelock", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/metrics", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/record", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/restclient", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/retry", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/testing/core", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/transport", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/typed/discovery", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/typed/discovery/fake", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/typed/dynamic", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/auth", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/clientcmd", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api/latest", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api/v1", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/gce", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/controller", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/controller/deployment/util", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/conversion", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/conversion/queryparams", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/credentialprovider", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/fieldpath", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/fields", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/genericapiserver/openapi/common", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/healthz", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/kubectl", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/kubectl/cmd/util", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/kubectl/resource", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/kubelet/qos", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/kubelet/types", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/labels", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/master/ports", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/runtime", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/json", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/protobuf", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/recognizer", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/streaming", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/runtime/serializer/versioning", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/security/apparmor", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/selection", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/serviceaccount", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/storage", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/types", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/cert", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/chmod", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/chown", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/clock", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/config", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/diff", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/errors", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/exec", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/flag", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/flowcontrol", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/framer", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/hash", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/homedir", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/integer", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/intstr", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/io", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/json", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/jsonpath", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/labels", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/mount", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/net", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/net/sets", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/node", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/parsers", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/pod", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/rand", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" - }, - { - "ImportPath": "k8s.io/kubernetes/pkg/util/ratelimit", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/runtime", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/sets", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/slice", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/strategicpatch", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/sysctl", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/uuid", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/validation", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/validation/field", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/wait", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/workqueue", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/util/yaml", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/version", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/volume", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/volume/util", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/watch", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/pkg/watch/versioned", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/plugin/pkg/client/auth", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/plugin/pkg/client/auth/gcp", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/plugin/pkg/client/auth/oidc", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/third_party/forked/golang/json", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/third_party/forked/golang/reflect", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" }, { "ImportPath": "k8s.io/kubernetes/third_party/forked/golang/template", - "Comment": "v1.5.0-beta.2", - "Rev": "0776eab45fe28f02bbeac0f05ae1a203051a21eb" + "Comment": "v1.5.1", + "Rev": "82450d03cb057bab0950214ef122b67c83fb11df" } ] } diff --git a/vendor/github.com/fatih/structs/.travis.yml b/vendor/github.com/fatih/structs/.travis.yml deleted file mode 100644 index 2bbcdef5f..000000000 --- a/vendor/github.com/fatih/structs/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: go -go: 1.5 -sudo: false -before_install: -- go get github.com/axw/gocov/gocov -- go get github.com/mattn/goveralls -- if ! go get github.com/golang/tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi -script: -- $HOME/gopath/bin/goveralls -service=travis-ci diff --git a/vendor/github.com/fatih/structs/LICENSE b/vendor/github.com/fatih/structs/LICENSE deleted file mode 100644 index 34504e4b3..000000000 --- a/vendor/github.com/fatih/structs/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Fatih Arslan - -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. \ No newline at end of file diff --git a/vendor/github.com/fatih/structs/README.md b/vendor/github.com/fatih/structs/README.md deleted file mode 100644 index 752ba5717..000000000 --- a/vendor/github.com/fatih/structs/README.md +++ /dev/null @@ -1,164 +0,0 @@ -# Structs [![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/fatih/structs) [![Build Status](http://img.shields.io/travis/fatih/structs.svg?style=flat-square)](https://travis-ci.org/fatih/structs) [![Coverage Status](http://img.shields.io/coveralls/fatih/structs.svg?style=flat-square)](https://coveralls.io/r/fatih/structs) - -Structs contains various utilities to work with Go (Golang) structs. It was -initially used by me to convert a struct into a `map[string]interface{}`. With -time I've added other utilities for structs. It's basically a high level -package based on primitives from the reflect package. Feel free to add new -functions or improve the existing code. - -## Install - -```bash -go get github.com/fatih/structs -``` - -## Usage and Examples - -Just like the standard lib `strings`, `bytes` and co packages, `structs` has -many global functions to manipulate or organize your struct data. Lets define -and declare a struct: - -```go -type Server struct { - Name string `json:"name,omitempty"` - ID int - Enabled bool - users []string // not exported - http.Server // embedded -} - -server := &Server{ - Name: "gopher", - ID: 123456, - Enabled: true, -} -``` - -```go -// Convert a struct to a map[string]interface{} -// => {"Name":"gopher", "ID":123456, "Enabled":true} -m := structs.Map(server) - -// Convert the values of a struct to a []interface{} -// => ["gopher", 123456, true] -v := structs.Values(server) - -// Convert the names of a struct to a []string -// (see "Names methods" for more info about fields) -n := structs.Names(server) - -// Convert the values of a struct to a []*Field -// (see "Field methods" for more info about fields) -f := structs.Fields(server) - -// Return the struct name => "Server" -n := structs.Name(server) - -// Check if any field of a struct is initialized or not. -h := structs.HasZero(server) - -// Check if all fields of a struct is initialized or not. -z := structs.IsZero(server) - -// Check if server is a struct or a pointer to struct -i := structs.IsStruct(server) -``` - -### Struct methods - -The structs functions can be also used as independent methods by creating a new -`*structs.Struct`. This is handy if you want to have more control over the -structs (such as retrieving a single Field). - -```go -// Create a new struct type: -s := structs.New(server) - -m := s.Map() // Get a map[string]interface{} -v := s.Values() // Get a []interface{} -f := s.Fields() // Get a []*Field -n := s.Names() // Get a []string -f := s.Field(name) // Get a *Field based on the given field name -f, ok := s.FieldOk(name) // Get a *Field based on the given field name -n := s.Name() // Get the struct name -h := s.HasZero() // Check if any field is initialized -z := s.IsZero() // Check if all fields are initialized -``` - -### Field methods - -We can easily examine a single Field for more detail. Below you can see how we -get and interact with various field methods: - - -```go -s := structs.New(server) - -// Get the Field struct for the "Name" field -name := s.Field("Name") - -// Get the underlying value, value => "gopher" -value := name.Value().(string) - -// Set the field's value -name.Set("another gopher") - -// Get the field's kind, kind => "string" -name.Kind() - -// Check if the field is exported or not -if name.IsExported() { - fmt.Println("Name field is exported") -} - -// Check if the value is a zero value, such as "" for string, 0 for int -if !name.IsZero() { - fmt.Println("Name is initialized") -} - -// Check if the field is an anonymous (embedded) field -if !name.IsEmbedded() { - fmt.Println("Name is not an embedded field") -} - -// Get the Field's tag value for tag name "json", tag value => "name,omitempty" -tagValue := name.Tag("json") -``` - -Nested structs are supported too: - -```go -addrField := s.Field("Server").Field("Addr") - -// Get the value for addr -a := addrField.Value().(string) - -// Or get all fields -httpServer := s.Field("Server").Fields() -``` - -We can also get a slice of Fields from the Struct type to iterate over all -fields. This is handy if you wish to examine all fields: - -```go -// Convert the fields of a struct to a []*Field -fields := s.Fields() - -for _, f := range fields { - fmt.Printf("field name: %+v\n", f.Name()) - - if f.IsExported() { - fmt.Printf("value : %+v\n", f.Value()) - fmt.Printf("is zero : %+v\n", f.IsZero()) - } -} -``` - -## Credits - - * [Fatih Arslan](https://github.com/fatih) - * [Cihangir Savas](https://github.com/cihangir) - -## License - -The MIT License (MIT) - see LICENSE.md for more details diff --git a/vendor/github.com/fatih/structs/field.go b/vendor/github.com/fatih/structs/field.go deleted file mode 100644 index 1178b0ca6..000000000 --- a/vendor/github.com/fatih/structs/field.go +++ /dev/null @@ -1,133 +0,0 @@ -package structs - -import ( - "errors" - "fmt" - "reflect" -) - -var ( - errNotExported = errors.New("field is not exported") - errNotSettable = errors.New("field is not settable") -) - -// Field represents a single struct field that encapsulates high level -// functions around the field. -type Field struct { - value reflect.Value - field reflect.StructField - defaultTag string -} - -// Tag returns the value associated with key in the tag string. If there is no -// such key in the tag, Tag returns the empty string. -func (f *Field) Tag(key string) string { - return f.field.Tag.Get(key) -} - -// Value returns the underlying value of of the field. It panics if the field -// is not exported. -func (f *Field) Value() interface{} { - return f.value.Interface() -} - -// IsEmbedded returns true if the given field is an anonymous field (embedded) -func (f *Field) IsEmbedded() bool { - return f.field.Anonymous -} - -// IsExported returns true if the given field is exported. -func (f *Field) IsExported() bool { - return f.field.PkgPath == "" -} - -// IsZero returns true if the given field is not initalized (has a zero value). -// It panics if the field is not exported. -func (f *Field) IsZero() bool { - zero := reflect.Zero(f.value.Type()).Interface() - current := f.Value() - - return reflect.DeepEqual(current, zero) -} - -// Name returns the name of the given field -func (f *Field) Name() string { - return f.field.Name -} - -// Kind returns the fields kind, such as "string", "map", "bool", etc .. -func (f *Field) Kind() reflect.Kind { - return f.value.Kind() -} - -// Set sets the field to given value v. It retuns an error if the field is not -// settable (not addresable or not exported) or if the given value's type -// doesn't match the fields type. -func (f *Field) Set(val interface{}) error { - // we can't set unexported fields, so be sure this field is exported - if !f.IsExported() { - return errNotExported - } - - // do we get here? not sure... - if !f.value.CanSet() { - return errNotSettable - } - - given := reflect.ValueOf(val) - - if f.value.Kind() != given.Kind() { - return fmt.Errorf("wrong kind. got: %s want: %s", given.Kind(), f.value.Kind()) - } - - f.value.Set(given) - return nil -} - -// Zero sets the field to its zero value. It returns an error if the field is not -// settable (not addressable or not exported). -func (f *Field) Zero() error { - zero := reflect.Zero(f.value.Type()).Interface() - return f.Set(zero) -} - -// Fields returns a slice of Fields. This is particular handy to get the fields -// of a nested struct . A struct tag with the content of "-" ignores the -// checking of that particular field. Example: -// -// // Field is ignored by this package. -// Field *http.Request `structs:"-"` -// -// It panics if field is not exported or if field's kind is not struct -func (f *Field) Fields() []*Field { - return getFields(f.value, f.defaultTag) -} - -// Field returns the field from a nested struct. It panics if the nested struct -// is not exported or if the field was not found. -func (f *Field) Field(name string) *Field { - field, ok := f.FieldOk(name) - if !ok { - panic("field not found") - } - - return field -} - -// Field returns the field from a nested struct. The boolean returns true if -// the field was found. It panics if the nested struct is not exported or if -// the field was not found. -func (f *Field) FieldOk(name string) (*Field, bool) { - v := strctVal(f.value.Interface()) - t := v.Type() - - field, ok := t.FieldByName(name) - if !ok { - return nil, false - } - - return &Field{ - field: field, - value: v.FieldByName(name), - }, true -} diff --git a/vendor/github.com/fatih/structs/structs.go b/vendor/github.com/fatih/structs/structs.go deleted file mode 100644 index a0b77e67d..000000000 --- a/vendor/github.com/fatih/structs/structs.go +++ /dev/null @@ -1,449 +0,0 @@ -// Package structs contains various utilities functions to work with structs. -package structs - -import "reflect" - -var ( - // DefaultTagName is the default tag name for struct fields which provides - // a more granular to tweak certain structs. Lookup the necessary functions - // for more info. - DefaultTagName = "structs" // struct's field default tag name -) - -// Struct encapsulates a struct type to provide several high level functions -// around the struct. -type Struct struct { - raw interface{} - value reflect.Value - TagName string -} - -// New returns a new *Struct with the struct s. It panics if the s's kind is -// not struct. -func New(s interface{}) *Struct { - return &Struct{ - raw: s, - value: strctVal(s), - TagName: DefaultTagName, - } -} - -// Map converts the given struct to a map[string]interface{}, where the keys -// of the map are the field names and the values of the map the associated -// values of the fields. The default key string is the struct field name but -// can be changed in the struct field's tag value. The "structs" key in the -// struct's field tag value is the key name. Example: -// -// // Field appears in map as key "myName". -// Name string `structs:"myName"` -// -// A tag value with the content of "-" ignores that particular field. Example: -// -// // Field is ignored by this package. -// Field bool `structs:"-"` -// -// A tag value with the option of "omitnested" stops iterating further if the type -// is a struct. Example: -// -// // Field is not processed further by this package. -// Field time.Time `structs:"myName,omitnested"` -// Field *http.Request `structs:",omitnested"` -// -// A tag value with the option of "omitempty" ignores that particular field if -// the field value is empty. Example: -// -// // Field appears in map as key "myName", but the field is -// // skipped if empty. -// Field string `structs:"myName,omitempty"` -// -// // Field appears in map as key "Field" (the default), but -// // the field is skipped if empty. -// Field string `structs:",omitempty"` -// -// Note that only exported fields of a struct can be accessed, non exported -// fields will be neglected. -func (s *Struct) Map() map[string]interface{} { - out := make(map[string]interface{}) - - fields := s.structFields() - - for _, field := range fields { - name := field.Name - val := s.value.FieldByName(name) - - var finalVal interface{} - - tagName, tagOpts := parseTag(field.Tag.Get(s.TagName)) - if tagName != "" { - name = tagName - } - - // if the value is a zero value and the field is marked as omitempty do - // not include - if tagOpts.Has("omitempty") { - zero := reflect.Zero(val.Type()).Interface() - current := val.Interface() - - if reflect.DeepEqual(current, zero) { - continue - } - } - - if IsStruct(val.Interface()) && !tagOpts.Has("omitnested") { - // look out for embedded structs, and convert them to a - // map[string]interface{} too - n := New(val.Interface()) - n.TagName = s.TagName - finalVal = n.Map() - } else { - finalVal = val.Interface() - } - - out[name] = finalVal - } - - return out -} - -// Values converts the given s struct's field values to a []interface{}. A -// struct tag with the content of "-" ignores the that particular field. -// Example: -// -// // Field is ignored by this package. -// Field int `structs:"-"` -// -// A value with the option of "omitnested" stops iterating further if the type -// is a struct. Example: -// -// // Fields is not processed further by this package. -// Field time.Time `structs:",omitnested"` -// Field *http.Request `structs:",omitnested"` -// -// A tag value with the option of "omitempty" ignores that particular field and -// is not added to the values if the field value is empty. Example: -// -// // Field is skipped if empty -// Field string `structs:",omitempty"` -// -// Note that only exported fields of a struct can be accessed, non exported -// fields will be neglected. -func (s *Struct) Values() []interface{} { - fields := s.structFields() - - var t []interface{} - - for _, field := range fields { - val := s.value.FieldByName(field.Name) - - _, tagOpts := parseTag(field.Tag.Get(s.TagName)) - - // if the value is a zero value and the field is marked as omitempty do - // not include - if tagOpts.Has("omitempty") { - zero := reflect.Zero(val.Type()).Interface() - current := val.Interface() - - if reflect.DeepEqual(current, zero) { - continue - } - } - - if IsStruct(val.Interface()) && !tagOpts.Has("omitnested") { - // look out for embedded structs, and convert them to a - // []interface{} to be added to the final values slice - for _, embeddedVal := range Values(val.Interface()) { - t = append(t, embeddedVal) - } - } else { - t = append(t, val.Interface()) - } - } - - return t -} - -// Fields returns a slice of Fields. A struct tag with the content of "-" -// ignores the checking of that particular field. Example: -// -// // Field is ignored by this package. -// Field bool `structs:"-"` -// -// It panics if s's kind is not struct. -func (s *Struct) Fields() []*Field { - return getFields(s.value, s.TagName) -} - -// Names returns a slice of field names. A struct tag with the content of "-" -// ignores the checking of that particular field. Example: -// -// // Field is ignored by this package. -// Field bool `structs:"-"` -// -// It panics if s's kind is not struct. -func (s *Struct) Names() []string { - fields := getFields(s.value, s.TagName) - - names := make([]string, len(fields)) - - for i, field := range fields { - names[i] = field.Name() - } - - return names -} - -func getFields(v reflect.Value, tagName string) []*Field { - if v.Kind() == reflect.Ptr { - v = v.Elem() - } - - t := v.Type() - - var fields []*Field - - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - - if tag := field.Tag.Get(tagName); tag == "-" { - continue - } - - f := &Field{ - field: field, - value: v.FieldByName(field.Name), - } - - fields = append(fields, f) - - } - - return fields -} - -// Field returns a new Field struct that provides several high level functions -// around a single struct field entity. It panics if the field is not found. -func (s *Struct) Field(name string) *Field { - f, ok := s.FieldOk(name) - if !ok { - panic("field not found") - } - - return f -} - -// Field returns a new Field struct that provides several high level functions -// around a single struct field entity. The boolean returns true if the field -// was found. -func (s *Struct) FieldOk(name string) (*Field, bool) { - t := s.value.Type() - - field, ok := t.FieldByName(name) - if !ok { - return nil, false - } - - return &Field{ - field: field, - value: s.value.FieldByName(name), - defaultTag: s.TagName, - }, true -} - -// IsZero returns true if all fields in a struct is a zero value (not -// initialized) A struct tag with the content of "-" ignores the checking of -// that particular field. Example: -// -// // Field is ignored by this package. -// Field bool `structs:"-"` -// -// A value with the option of "omitnested" stops iterating further if the type -// is a struct. Example: -// -// // Field is not processed further by this package. -// Field time.Time `structs:"myName,omitnested"` -// Field *http.Request `structs:",omitnested"` -// -// Note that only exported fields of a struct can be accessed, non exported -// fields will be neglected. It panics if s's kind is not struct. -func (s *Struct) IsZero() bool { - fields := s.structFields() - - for _, field := range fields { - val := s.value.FieldByName(field.Name) - - _, tagOpts := parseTag(field.Tag.Get(s.TagName)) - - if IsStruct(val.Interface()) && !tagOpts.Has("omitnested") { - ok := IsZero(val.Interface()) - if !ok { - return false - } - - continue - } - - // zero value of the given field, such as "" for string, 0 for int - zero := reflect.Zero(val.Type()).Interface() - - // current value of the given field - current := val.Interface() - - if !reflect.DeepEqual(current, zero) { - return false - } - } - - return true -} - -// HasZero returns true if a field in a struct is not initialized (zero value). -// A struct tag with the content of "-" ignores the checking of that particular -// field. Example: -// -// // Field is ignored by this package. -// Field bool `structs:"-"` -// -// A value with the option of "omitnested" stops iterating further if the type -// is a struct. Example: -// -// // Field is not processed further by this package. -// Field time.Time `structs:"myName,omitnested"` -// Field *http.Request `structs:",omitnested"` -// -// Note that only exported fields of a struct can be accessed, non exported -// fields will be neglected. It panics if s's kind is not struct. -func (s *Struct) HasZero() bool { - fields := s.structFields() - - for _, field := range fields { - val := s.value.FieldByName(field.Name) - - _, tagOpts := parseTag(field.Tag.Get(s.TagName)) - - if IsStruct(val.Interface()) && !tagOpts.Has("omitnested") { - ok := HasZero(val.Interface()) - if ok { - return true - } - - continue - } - - // zero value of the given field, such as "" for string, 0 for int - zero := reflect.Zero(val.Type()).Interface() - - // current value of the given field - current := val.Interface() - - if reflect.DeepEqual(current, zero) { - return true - } - } - - return false -} - -// Name returns the structs's type name within its package. For more info refer -// to Name() function. -func (s *Struct) Name() string { - return s.value.Type().Name() -} - -// structFields returns the exported struct fields for a given s struct. This -// is a convenient helper method to avoid duplicate code in some of the -// functions. -func (s *Struct) structFields() []reflect.StructField { - t := s.value.Type() - - var f []reflect.StructField - - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - // we can't access the value of unexported fields - if field.PkgPath != "" { - continue - } - - // don't check if it's omitted - if tag := field.Tag.Get(s.TagName); tag == "-" { - continue - } - - f = append(f, field) - } - - return f -} - -func strctVal(s interface{}) reflect.Value { - v := reflect.ValueOf(s) - - // if pointer get the underlying element≤ - if v.Kind() == reflect.Ptr { - v = v.Elem() - } - - if v.Kind() != reflect.Struct { - panic("not struct") - } - - return v -} - -// Map converts the given struct to a map[string]interface{}. For more info -// refer to Struct types Map() method. It panics if s's kind is not struct. -func Map(s interface{}) map[string]interface{} { - return New(s).Map() -} - -// Values converts the given struct to a []interface{}. For more info refer to -// Struct types Values() method. It panics if s's kind is not struct. -func Values(s interface{}) []interface{} { - return New(s).Values() -} - -// Fields returns a slice of *Field. For more info refer to Struct types -// Fields() method. It panics if s's kind is not struct. -func Fields(s interface{}) []*Field { - return New(s).Fields() -} - -// Names returns a slice of field names. For more info refer to Struct types -// Names() method. It panics if s's kind is not struct. -func Names(s interface{}) []string { - return New(s).Names() -} - -// IsZero returns true if all fields is equal to a zero value. For more info -// refer to Struct types IsZero() method. It panics if s's kind is not struct. -func IsZero(s interface{}) bool { - return New(s).IsZero() -} - -// HasZero returns true if any field is equal to a zero value. For more info -// refer to Struct types HasZero() method. It panics if s's kind is not struct. -func HasZero(s interface{}) bool { - return New(s).HasZero() -} - -// IsStruct returns true if the given variable is a struct or a pointer to -// struct. -func IsStruct(s interface{}) bool { - v := reflect.ValueOf(s) - if v.Kind() == reflect.Ptr { - v = v.Elem() - } - - // uninitialized zero value of a struct - if v.Kind() == reflect.Invalid { - return false - } - - return v.Kind() == reflect.Struct -} - -// Name returns the structs's type name within its package. It returns an -// empty string for unnamed types. It panics if s's kind is not struct. -func Name(s interface{}) string { - return New(s).Name() -} diff --git a/vendor/github.com/fatih/structs/tags.go b/vendor/github.com/fatih/structs/tags.go deleted file mode 100644 index 8859341c1..000000000 --- a/vendor/github.com/fatih/structs/tags.go +++ /dev/null @@ -1,32 +0,0 @@ -package structs - -import "strings" - -// tagOptions contains a slice of tag options -type tagOptions []string - -// Has returns true if the given optiton is available in tagOptions -func (t tagOptions) Has(opt string) bool { - for _, tagOpt := range t { - if tagOpt == opt { - return true - } - } - - return false -} - -// parseTag splits a struct field's tag into its name and a list of options -// which comes after a name. A tag is in the form of: "name,option1,option2". -// The name can be neglectected. -func parseTag(tag string) (string, tagOptions) { - // tag is one of followings: - // "" - // "name" - // "name,opt" - // "name,opt,opt2" - // ",opt" - - res := strings.Split(tag, ",") - return res[0], res[1:] -} diff --git a/vendor/github.com/juju/ratelimit/LICENSE b/vendor/github.com/juju/ratelimit/LICENSE new file mode 100644 index 000000000..ade9307b3 --- /dev/null +++ b/vendor/github.com/juju/ratelimit/LICENSE @@ -0,0 +1,191 @@ +All files in this repository are licensed as follows. If you contribute +to this repository, it is assumed that you license your contribution +under the same license unless you state otherwise. + +All files Copyright (C) 2015 Canonical Ltd. unless otherwise specified in the file. + +This software is licensed under the LGPLv3, included below. + +As a special exception to the GNU Lesser General Public License version 3 +("LGPL3"), the copyright holders of this Library give you permission to +convey to a third party a Combined Work that links statically or dynamically +to this Library without providing any Minimal Corresponding Source or +Minimal Application Code as set out in 4d or providing the installation +information set out in section 4e, provided that you comply with the other +provisions of LGPL3 and provided that you meet, for the Application the +terms and conditions of the license(s) which apply to the Application. + +Except as stated in this special exception, the provisions of LGPL3 will +continue to comply in full to this Library. If you modify this Library, you +may apply this exception to your version of this Library, but you are not +obliged to do so. If you do not wish to do so, delete this exception +statement from your version. This exception does not (and cannot) modify any +license terms which apply to the Application, with which you must still +comply. + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/vendor/github.com/juju/ratelimit/README.md b/vendor/github.com/juju/ratelimit/README.md new file mode 100644 index 000000000..a0fdfe2b1 --- /dev/null +++ b/vendor/github.com/juju/ratelimit/README.md @@ -0,0 +1,117 @@ +# ratelimit +-- + import "github.com/juju/ratelimit" + +The ratelimit package provides an efficient token bucket implementation. See +http://en.wikipedia.org/wiki/Token_bucket. + +## Usage + +#### func Reader + +```go +func Reader(r io.Reader, bucket *Bucket) io.Reader +``` +Reader returns a reader that is rate limited by the given token bucket. Each +token in the bucket represents one byte. + +#### func Writer + +```go +func Writer(w io.Writer, bucket *Bucket) io.Writer +``` +Writer returns a writer that is rate limited by the given token bucket. Each +token in the bucket represents one byte. + +#### type Bucket + +```go +type Bucket struct { +} +``` + +Bucket represents a token bucket that fills at a predetermined rate. Methods on +Bucket may be called concurrently. + +#### func NewBucket + +```go +func NewBucket(fillInterval time.Duration, capacity int64) *Bucket +``` +NewBucket returns a new token bucket that fills at the rate of one token every +fillInterval, up to the given maximum capacity. Both arguments must be positive. +The bucket is initially full. + +#### func NewBucketWithQuantum + +```go +func NewBucketWithQuantum(fillInterval time.Duration, capacity, quantum int64) *Bucket +``` +NewBucketWithQuantum is similar to NewBucket, but allows the specification of +the quantum size - quantum tokens are added every fillInterval. + +#### func NewBucketWithRate + +```go +func NewBucketWithRate(rate float64, capacity int64) *Bucket +``` +NewBucketWithRate returns a token bucket that fills the bucket at the rate of +rate tokens per second up to the given maximum capacity. Because of limited +clock resolution, at high rates, the actual rate may be up to 1% different from +the specified rate. + +#### func (*Bucket) Rate + +```go +func (tb *Bucket) Rate() float64 +``` +Rate returns the fill rate of the bucket, in tokens per second. + +#### func (*Bucket) Take + +```go +func (tb *Bucket) Take(count int64) time.Duration +``` +Take takes count tokens from the bucket without blocking. It returns the time +that the caller should wait until the tokens are actually available. + +Note that if the request is irrevocable - there is no way to return tokens to +the bucket once this method commits us to taking them. + +#### func (*Bucket) TakeAvailable + +```go +func (tb *Bucket) TakeAvailable(count int64) int64 +``` +TakeAvailable takes up to count immediately available tokens from the bucket. It +returns the number of tokens removed, or zero if there are no available tokens. +It does not block. + +#### func (*Bucket) TakeMaxDuration + +```go +func (tb *Bucket) TakeMaxDuration(count int64, maxWait time.Duration) (time.Duration, bool) +``` +TakeMaxDuration is like Take, except that it will only take tokens from the +bucket if the wait time for the tokens is no greater than maxWait. + +If it would take longer than maxWait for the tokens to become available, it does +nothing and reports false, otherwise it returns the time that the caller should +wait until the tokens are actually available, and reports true. + +#### func (*Bucket) Wait + +```go +func (tb *Bucket) Wait(count int64) +``` +Wait takes count tokens from the bucket, waiting until they are available. + +#### func (*Bucket) WaitMaxDuration + +```go +func (tb *Bucket) WaitMaxDuration(count int64, maxWait time.Duration) bool +``` +WaitMaxDuration is like Wait except that it will only take tokens from the +bucket if it needs to wait for no greater than maxWait. It reports whether any +tokens have been removed from the bucket If no tokens have been removed, it +returns immediately. diff --git a/vendor/github.com/juju/ratelimit/ratelimit.go b/vendor/github.com/juju/ratelimit/ratelimit.go new file mode 100644 index 000000000..3ef32fbcc --- /dev/null +++ b/vendor/github.com/juju/ratelimit/ratelimit.go @@ -0,0 +1,245 @@ +// Copyright 2014 Canonical Ltd. +// Licensed under the LGPLv3 with static-linking exception. +// See LICENCE file for details. + +// The ratelimit package provides an efficient token bucket implementation +// that can be used to limit the rate of arbitrary things. +// See http://en.wikipedia.org/wiki/Token_bucket. +package ratelimit + +import ( + "math" + "strconv" + "sync" + "time" +) + +// Bucket represents a token bucket that fills at a predetermined rate. +// Methods on Bucket may be called concurrently. +type Bucket struct { + startTime time.Time + capacity int64 + quantum int64 + fillInterval time.Duration + + // The mutex guards the fields following it. + mu sync.Mutex + + // avail holds the number of available tokens + // in the bucket, as of availTick ticks from startTime. + // It will be negative when there are consumers + // waiting for tokens. + avail int64 + availTick int64 +} + +// NewBucket returns a new token bucket that fills at the +// rate of one token every fillInterval, up to the given +// maximum capacity. Both arguments must be +// positive. The bucket is initially full. +func NewBucket(fillInterval time.Duration, capacity int64) *Bucket { + return NewBucketWithQuantum(fillInterval, capacity, 1) +} + +// rateMargin specifes the allowed variance of actual +// rate from specified rate. 1% seems reasonable. +const rateMargin = 0.01 + +// NewBucketWithRate returns a token bucket that fills the bucket +// at the rate of rate tokens per second up to the given +// maximum capacity. Because of limited clock resolution, +// at high rates, the actual rate may be up to 1% different from the +// specified rate. +func NewBucketWithRate(rate float64, capacity int64) *Bucket { + for quantum := int64(1); quantum < 1<<50; quantum = nextQuantum(quantum) { + fillInterval := time.Duration(1e9 * float64(quantum) / rate) + if fillInterval <= 0 { + continue + } + tb := NewBucketWithQuantum(fillInterval, capacity, quantum) + if diff := math.Abs(tb.Rate() - rate); diff/rate <= rateMargin { + return tb + } + } + panic("cannot find suitable quantum for " + strconv.FormatFloat(rate, 'g', -1, 64)) +} + +// nextQuantum returns the next quantum to try after q. +// We grow the quantum exponentially, but slowly, so we +// get a good fit in the lower numbers. +func nextQuantum(q int64) int64 { + q1 := q * 11 / 10 + if q1 == q { + q1++ + } + return q1 +} + +// NewBucketWithQuantum is similar to NewBucket, but allows +// the specification of the quantum size - quantum tokens +// are added every fillInterval. +func NewBucketWithQuantum(fillInterval time.Duration, capacity, quantum int64) *Bucket { + if fillInterval <= 0 { + panic("token bucket fill interval is not > 0") + } + if capacity <= 0 { + panic("token bucket capacity is not > 0") + } + if quantum <= 0 { + panic("token bucket quantum is not > 0") + } + return &Bucket{ + startTime: time.Now(), + capacity: capacity, + quantum: quantum, + avail: capacity, + fillInterval: fillInterval, + } +} + +// Wait takes count tokens from the bucket, waiting until they are +// available. +func (tb *Bucket) Wait(count int64) { + if d := tb.Take(count); d > 0 { + time.Sleep(d) + } +} + +// WaitMaxDuration is like Wait except that it will +// only take tokens from the bucket if it needs to wait +// for no greater than maxWait. It reports whether +// any tokens have been removed from the bucket +// If no tokens have been removed, it returns immediately. +func (tb *Bucket) WaitMaxDuration(count int64, maxWait time.Duration) bool { + d, ok := tb.TakeMaxDuration(count, maxWait) + if d > 0 { + time.Sleep(d) + } + return ok +} + +const infinityDuration time.Duration = 0x7fffffffffffffff + +// Take takes count tokens from the bucket without blocking. It returns +// the time that the caller should wait until the tokens are actually +// available. +// +// Note that if the request is irrevocable - there is no way to return +// tokens to the bucket once this method commits us to taking them. +func (tb *Bucket) Take(count int64) time.Duration { + d, _ := tb.take(time.Now(), count, infinityDuration) + return d +} + +// TakeMaxDuration is like Take, except that +// it will only take tokens from the bucket if the wait +// time for the tokens is no greater than maxWait. +// +// If it would take longer than maxWait for the tokens +// to become available, it does nothing and reports false, +// otherwise it returns the time that the caller should +// wait until the tokens are actually available, and reports +// true. +func (tb *Bucket) TakeMaxDuration(count int64, maxWait time.Duration) (time.Duration, bool) { + return tb.take(time.Now(), count, maxWait) +} + +// TakeAvailable takes up to count immediately available tokens from the +// bucket. It returns the number of tokens removed, or zero if there are +// no available tokens. It does not block. +func (tb *Bucket) TakeAvailable(count int64) int64 { + return tb.takeAvailable(time.Now(), count) +} + +// takeAvailable is the internal version of TakeAvailable - it takes the +// current time as an argument to enable easy testing. +func (tb *Bucket) takeAvailable(now time.Time, count int64) int64 { + if count <= 0 { + return 0 + } + tb.mu.Lock() + defer tb.mu.Unlock() + + tb.adjust(now) + if tb.avail <= 0 { + return 0 + } + if count > tb.avail { + count = tb.avail + } + tb.avail -= count + return count +} + +// Available returns the number of available tokens. It will be negative +// when there are consumers waiting for tokens. Note that if this +// returns greater than zero, it does not guarantee that calls that take +// tokens from the buffer will succeed, as the number of available +// tokens could have changed in the meantime. This method is intended +// primarily for metrics reporting and debugging. +func (tb *Bucket) Available() int64 { + return tb.available(time.Now()) +} + +// available is the internal version of available - it takes the current time as +// an argument to enable easy testing. +func (tb *Bucket) available(now time.Time) int64 { + tb.mu.Lock() + defer tb.mu.Unlock() + tb.adjust(now) + return tb.avail +} + +// Capacity returns the capacity that the bucket was created with. +func (tb *Bucket) Capacity() int64 { + return tb.capacity +} + +// Rate returns the fill rate of the bucket, in tokens per second. +func (tb *Bucket) Rate() float64 { + return 1e9 * float64(tb.quantum) / float64(tb.fillInterval) +} + +// take is the internal version of Take - it takes the current time as +// an argument to enable easy testing. +func (tb *Bucket) take(now time.Time, count int64, maxWait time.Duration) (time.Duration, bool) { + if count <= 0 { + return 0, true + } + tb.mu.Lock() + defer tb.mu.Unlock() + + currentTick := tb.adjust(now) + avail := tb.avail - count + if avail >= 0 { + tb.avail = avail + return 0, true + } + // Round up the missing tokens to the nearest multiple + // of quantum - the tokens won't be available until + // that tick. + endTick := currentTick + (-avail+tb.quantum-1)/tb.quantum + endTime := tb.startTime.Add(time.Duration(endTick) * tb.fillInterval) + waitTime := endTime.Sub(now) + if waitTime > maxWait { + return 0, false + } + tb.avail = avail + return waitTime, true +} + +// adjust adjusts the current bucket capacity based on the current time. +// It returns the current tick. +func (tb *Bucket) adjust(now time.Time) (currentTick int64) { + currentTick = int64(now.Sub(tb.startTime) / tb.fillInterval) + + if tb.avail >= tb.capacity { + return + } + tb.avail += (currentTick - tb.availTick) * tb.quantum + if tb.avail > tb.capacity { + tb.avail = tb.capacity + } + tb.availTick = currentTick + return +} diff --git a/vendor/github.com/juju/ratelimit/reader.go b/vendor/github.com/juju/ratelimit/reader.go new file mode 100644 index 000000000..6403bf78d --- /dev/null +++ b/vendor/github.com/juju/ratelimit/reader.go @@ -0,0 +1,51 @@ +// Copyright 2014 Canonical Ltd. +// Licensed under the LGPLv3 with static-linking exception. +// See LICENCE file for details. + +package ratelimit + +import "io" + +type reader struct { + r io.Reader + bucket *Bucket +} + +// Reader returns a reader that is rate limited by +// the given token bucket. Each token in the bucket +// represents one byte. +func Reader(r io.Reader, bucket *Bucket) io.Reader { + return &reader{ + r: r, + bucket: bucket, + } +} + +func (r *reader) Read(buf []byte) (int, error) { + n, err := r.r.Read(buf) + if n <= 0 { + return n, err + } + r.bucket.Wait(int64(n)) + return n, err +} + +type writer struct { + w io.Writer + bucket *Bucket +} + +// Writer returns a reader that is rate limited by +// the given token bucket. Each token in the bucket +// represents one byte. +func Writer(w io.Writer, bucket *Bucket) io.Writer { + return &writer{ + w: w, + bucket: bucket, + } +} + +func (w *writer) Write(buf []byte) (int, error) { + w.bucket.Wait(int64(len(buf))) + return w.w.Write(buf) +} diff --git a/vendor/github.com/fatih/structs/.gitignore b/vendor/github.com/pkg/errors/.gitignore similarity index 97% rename from vendor/github.com/fatih/structs/.gitignore rename to vendor/github.com/pkg/errors/.gitignore index 836562412..daf913b1b 100644 --- a/vendor/github.com/fatih/structs/.gitignore +++ b/vendor/github.com/pkg/errors/.gitignore @@ -21,3 +21,4 @@ _testmain.go *.exe *.test +*.prof diff --git a/vendor/github.com/pkg/errors/.travis.yml b/vendor/github.com/pkg/errors/.travis.yml new file mode 100644 index 000000000..024e28466 --- /dev/null +++ b/vendor/github.com/pkg/errors/.travis.yml @@ -0,0 +1,10 @@ +language: go +go_import_path: github.com/pkg/errors +go: + - 1.4.3 + - 1.5.4 + - 1.6.2 + - tip + +script: + - go test -v ./... diff --git a/vendor/github.com/pkg/errors/LICENSE b/vendor/github.com/pkg/errors/LICENSE new file mode 100644 index 000000000..835ba3e75 --- /dev/null +++ b/vendor/github.com/pkg/errors/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2015, Dave Cheney +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/pkg/errors/README.md b/vendor/github.com/pkg/errors/README.md new file mode 100644 index 000000000..273db3c98 --- /dev/null +++ b/vendor/github.com/pkg/errors/README.md @@ -0,0 +1,52 @@ +# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) + +Package errors provides simple error handling primitives. + +`go get github.com/pkg/errors` + +The traditional error handling idiom in Go is roughly akin to +```go +if err != nil { + return err +} +``` +which applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error. + +## Adding context to an error + +The errors.Wrap function returns a new error that adds context to the original error. For example +```go +_, err := ioutil.ReadAll(r) +if err != nil { + return errors.Wrap(err, "read failed") +} +``` +## Retrieving the cause of an error + +Using `errors.Wrap` constructs a stack of errors, adding context to the preceding error. Depending on the nature of the error it may be necessary to reverse the operation of errors.Wrap to retrieve the original error for inspection. Any error value which implements this interface can be inspected by `errors.Cause`. +```go +type causer interface { + Cause() error +} +``` +`errors.Cause` will recursively retrieve the topmost error which does not implement `causer`, which is assumed to be the original cause. For example: +```go +switch err := errors.Cause(err).(type) { +case *MyError: + // handle specifically +default: + // unknown error +} +``` + +[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors). + +## Contributing + +We welcome pull requests, bug fixes and issue reports. With that said, the bar for adding new symbols to this package is intentionally set high. + +Before proposing a change, please discuss your change by raising an issue. + +## Licence + +BSD-2-Clause diff --git a/vendor/github.com/pkg/errors/appveyor.yml b/vendor/github.com/pkg/errors/appveyor.yml new file mode 100644 index 000000000..a932eade0 --- /dev/null +++ b/vendor/github.com/pkg/errors/appveyor.yml @@ -0,0 +1,32 @@ +version: build-{build}.{branch} + +clone_folder: C:\gopath\src\github.com\pkg\errors +shallow_clone: true # for startup speed + +environment: + GOPATH: C:\gopath + +platform: + - x64 + +# http://www.appveyor.com/docs/installed-software +install: + # some helpful output for debugging builds + - go version + - go env + # pre-installed MinGW at C:\MinGW is 32bit only + # but MSYS2 at C:\msys64 has mingw64 + - set PATH=C:\msys64\mingw64\bin;%PATH% + - gcc --version + - g++ --version + +build_script: + - go install -v ./... + +test_script: + - set PATH=C:\gopath\bin;%PATH% + - go test -v ./... + +#artifacts: +# - path: '%GOPATH%\bin\*.exe' +deploy: off diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go new file mode 100644 index 000000000..75780c991 --- /dev/null +++ b/vendor/github.com/pkg/errors/errors.go @@ -0,0 +1,236 @@ +// Package errors provides simple error handling primitives. +// +// The traditional error handling idiom in Go is roughly akin to +// +// if err != nil { +// return err +// } +// +// which applied recursively up the call stack results in error reports +// without context or debugging information. The errors package allows +// programmers to add context to the failure path in their code in a way +// that does not destroy the original value of the error. +// +// Adding context to an error +// +// The errors.Wrap function returns a new error that adds context to the +// original error. For example +// +// _, err := ioutil.ReadAll(r) +// if err != nil { +// return errors.Wrap(err, "read failed") +// } +// +// Retrieving the cause of an error +// +// Using errors.Wrap constructs a stack of errors, adding context to the +// preceding error. Depending on the nature of the error it may be necessary +// to reverse the operation of errors.Wrap to retrieve the original error +// for inspection. Any error value which implements this interface +// +// type causer interface { +// Cause() error +// } +// +// can be inspected by errors.Cause. errors.Cause will recursively retrieve +// the topmost error which does not implement causer, which is assumed to be +// the original cause. For example: +// +// switch err := errors.Cause(err).(type) { +// case *MyError: +// // handle specifically +// default: +// // unknown error +// } +// +// causer interface is not exported by this package, but is considered a part +// of stable public API. +// +// Formatted printing of errors +// +// All error values returned from this package implement fmt.Formatter and can +// be formatted by the fmt package. The following verbs are supported +// +// %s print the error. If the error has a Cause it will be +// printed recursively +// %v see %s +// %+v extended format. Each Frame of the error's StackTrace will +// be printed in detail. +// +// Retrieving the stack trace of an error or wrapper +// +// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are +// invoked. This information can be retrieved with the following interface. +// +// type stackTracer interface { +// StackTrace() errors.StackTrace +// } +// +// Where errors.StackTrace is defined as +// +// type StackTrace []Frame +// +// The Frame type represents a call site in the stack trace. Frame supports +// the fmt.Formatter interface that can be used for printing information about +// the stack trace of this error. For example: +// +// if err, ok := err.(stackTracer); ok { +// for _, f := range err.StackTrace() { +// fmt.Printf("%+s:%d", f) +// } +// } +// +// stackTracer interface is not exported by this package, but is considered a part +// of stable public API. +// +// See the documentation for Frame.Format for more details. +package errors + +import ( + "fmt" + "io" +) + +// New returns an error with the supplied message. +// New also records the stack trace at the point it was called. +func New(message string) error { + return &fundamental{ + msg: message, + stack: callers(), + } +} + +// Errorf formats according to a format specifier and returns the string +// as a value that satisfies error. +// Errorf also records the stack trace at the point it was called. +func Errorf(format string, args ...interface{}) error { + return &fundamental{ + msg: fmt.Sprintf(format, args...), + stack: callers(), + } +} + +// fundamental is an error that has a message and a stack, but no caller. +type fundamental struct { + msg string + *stack +} + +func (f *fundamental) Error() string { return f.msg } + +func (f *fundamental) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + if s.Flag('+') { + io.WriteString(s, f.msg) + f.stack.Format(s, verb) + return + } + fallthrough + case 's', 'q': + io.WriteString(s, f.msg) + } +} + +type withStack struct { + error + *stack +} + +func (w *withStack) Cause() error { return w.error } + +func (w *withStack) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + if s.Flag('+') { + fmt.Fprintf(s, "%+v", w.Cause()) + w.stack.Format(s, verb) + return + } + fallthrough + case 's': + io.WriteString(s, w.Error()) + case 'q': + fmt.Fprintf(s, "%q", w.Error()) + } +} + +// Wrap returns an error annotating err with message. +// If err is nil, Wrap returns nil. +func Wrap(err error, message string) error { + if err == nil { + return nil + } + err = &withMessage{ + cause: err, + msg: message, + } + return &withStack{ + err, + callers(), + } +} + +// Wrapf returns an error annotating err with the format specifier. +// If err is nil, Wrapf returns nil. +func Wrapf(err error, format string, args ...interface{}) error { + if err == nil { + return nil + } + err = &withMessage{ + cause: err, + msg: fmt.Sprintf(format, args...), + } + return &withStack{ + err, + callers(), + } +} + +type withMessage struct { + cause error + msg string +} + +func (w *withMessage) Error() string { return w.msg + ": " + w.cause.Error() } +func (w *withMessage) Cause() error { return w.cause } + +func (w *withMessage) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + if s.Flag('+') { + fmt.Fprintf(s, "%+v\n", w.Cause()) + io.WriteString(s, w.msg) + return + } + fallthrough + case 's', 'q': + io.WriteString(s, w.Error()) + } +} + +// Cause returns the underlying cause of the error, if possible. +// An error value has a cause if it implements the following +// interface: +// +// type causer interface { +// Cause() error +// } +// +// If the error does not implement Cause, the original error will +// be returned. If the error is nil, nil will be returned without further +// investigation. +func Cause(err error) error { + type causer interface { + Cause() error + } + + for err != nil { + cause, ok := err.(causer) + if !ok { + break + } + err = cause.Cause() + } + return err +} diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go new file mode 100644 index 000000000..6b1f2891a --- /dev/null +++ b/vendor/github.com/pkg/errors/stack.go @@ -0,0 +1,178 @@ +package errors + +import ( + "fmt" + "io" + "path" + "runtime" + "strings" +) + +// Frame represents a program counter inside a stack frame. +type Frame uintptr + +// pc returns the program counter for this frame; +// multiple frames may have the same PC value. +func (f Frame) pc() uintptr { return uintptr(f) - 1 } + +// file returns the full path to the file that contains the +// function for this Frame's pc. +func (f Frame) file() string { + fn := runtime.FuncForPC(f.pc()) + if fn == nil { + return "unknown" + } + file, _ := fn.FileLine(f.pc()) + return file +} + +// line returns the line number of source code of the +// function for this Frame's pc. +func (f Frame) line() int { + fn := runtime.FuncForPC(f.pc()) + if fn == nil { + return 0 + } + _, line := fn.FileLine(f.pc()) + return line +} + +// Format formats the frame according to the fmt.Formatter interface. +// +// %s source file +// %d source line +// %n function name +// %v equivalent to %s:%d +// +// Format accepts flags that alter the printing of some verbs, as follows: +// +// %+s path of source file relative to the compile time GOPATH +// %+v equivalent to %+s:%d +func (f Frame) Format(s fmt.State, verb rune) { + switch verb { + case 's': + switch { + case s.Flag('+'): + pc := f.pc() + fn := runtime.FuncForPC(pc) + if fn == nil { + io.WriteString(s, "unknown") + } else { + file, _ := fn.FileLine(pc) + fmt.Fprintf(s, "%s\n\t%s", fn.Name(), file) + } + default: + io.WriteString(s, path.Base(f.file())) + } + case 'd': + fmt.Fprintf(s, "%d", f.line()) + case 'n': + name := runtime.FuncForPC(f.pc()).Name() + io.WriteString(s, funcname(name)) + case 'v': + f.Format(s, 's') + io.WriteString(s, ":") + f.Format(s, 'd') + } +} + +// StackTrace is stack of Frames from innermost (newest) to outermost (oldest). +type StackTrace []Frame + +func (st StackTrace) Format(s fmt.State, verb rune) { + switch verb { + case 'v': + switch { + case s.Flag('+'): + for _, f := range st { + fmt.Fprintf(s, "\n%+v", f) + } + case s.Flag('#'): + fmt.Fprintf(s, "%#v", []Frame(st)) + default: + fmt.Fprintf(s, "%v", []Frame(st)) + } + case 's': + fmt.Fprintf(s, "%s", []Frame(st)) + } +} + +// stack represents a stack of program counters. +type stack []uintptr + +func (s *stack) Format(st fmt.State, verb rune) { + switch verb { + case 'v': + switch { + case st.Flag('+'): + for _, pc := range *s { + f := Frame(pc) + fmt.Fprintf(st, "\n%+v", f) + } + } + } +} + +func (s *stack) StackTrace() StackTrace { + f := make([]Frame, len(*s)) + for i := 0; i < len(f); i++ { + f[i] = Frame((*s)[i]) + } + return f +} + +func callers() *stack { + const depth = 32 + var pcs [depth]uintptr + n := runtime.Callers(3, pcs[:]) + var st stack = pcs[0:n] + return &st +} + +// funcname removes the path prefix component of a function's name reported by func.Name(). +func funcname(name string) string { + i := strings.LastIndex(name, "/") + name = name[i+1:] + i = strings.Index(name, ".") + return name[i+1:] +} + +func trimGOPATH(name, file string) string { + // Here we want to get the source file path relative to the compile time + // GOPATH. As of Go 1.6.x there is no direct way to know the compiled + // GOPATH at runtime, but we can infer the number of path segments in the + // GOPATH. We note that fn.Name() returns the function name qualified by + // the import path, which does not include the GOPATH. Thus we can trim + // segments from the beginning of the file path until the number of path + // separators remaining is one more than the number of path separators in + // the function name. For example, given: + // + // GOPATH /home/user + // file /home/user/src/pkg/sub/file.go + // fn.Name() pkg/sub.Type.Method + // + // We want to produce: + // + // pkg/sub/file.go + // + // From this we can easily see that fn.Name() has one less path separator + // than our desired output. We count separators from the end of the file + // path until it finds two more than in the function name and then move + // one character forward to preserve the initial path segment without a + // leading separator. + const sep = "/" + goal := strings.Count(name, sep) + 2 + i := len(file) + for n := 0; n < goal; n++ { + i = strings.LastIndex(file[:i], sep) + if i == -1 { + // not enough separators found, set i so that the slice expression + // below leaves file unmodified + i = -len(sep) + break + } + } + // get back to 0 or trim the leading separator + file = file[i+len(sep):] + return file +} diff --git a/vendor/github.com/prometheus/common/model/metric.go b/vendor/github.com/prometheus/common/model/metric.go index 9dff899cb..f7250909b 100644 --- a/vendor/github.com/prometheus/common/model/metric.go +++ b/vendor/github.com/prometheus/common/model/metric.go @@ -44,7 +44,7 @@ func (m Metric) Before(o Metric) bool { // Clone returns a copy of the Metric. func (m Metric) Clone() Metric { - clone := Metric{} + clone := make(Metric, len(m)) for k, v := range m { clone[k] = v } diff --git a/vendor/github.com/prometheus/procfs/.travis.yml b/vendor/github.com/prometheus/procfs/.travis.yml index 2b4554da5..a9e28bf5d 100644 --- a/vendor/github.com/prometheus/procfs/.travis.yml +++ b/vendor/github.com/prometheus/procfs/.travis.yml @@ -1,5 +1,5 @@ sudo: false language: go go: - - 1.5 - - 1.6 + - 1.6.4 + - 1.7.4 diff --git a/vendor/github.com/prometheus/procfs/AUTHORS.md b/vendor/github.com/prometheus/procfs/AUTHORS.md index 0c802dd87..d55863560 100644 --- a/vendor/github.com/prometheus/procfs/AUTHORS.md +++ b/vendor/github.com/prometheus/procfs/AUTHORS.md @@ -14,6 +14,7 @@ The following individuals have contributed code to this repository * Ji-Hoon, Seol * Jonas Große Sundrup * Julius Volz +* Matt Layher * Matthias Rampke * Nicky Gerritsen * Rémi Audebert diff --git a/vendor/github.com/prometheus/procfs/mountstats.go b/vendor/github.com/prometheus/procfs/mountstats.go new file mode 100644 index 000000000..3b7d3ec84 --- /dev/null +++ b/vendor/github.com/prometheus/procfs/mountstats.go @@ -0,0 +1,552 @@ +package procfs + +// While implementing parsing of /proc/[pid]/mountstats, this blog was used +// heavily as a reference: +// https://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsIndex +// +// Special thanks to Chris Siebenmann for all of his posts explaining the +// various statistics available for NFS. + +import ( + "bufio" + "fmt" + "io" + "strconv" + "strings" + "time" +) + +// Constants shared between multiple functions. +const ( + deviceEntryLen = 8 + + fieldBytesLen = 8 + fieldEventsLen = 27 + + statVersion10 = "1.0" + statVersion11 = "1.1" + + fieldTransport10Len = 10 + fieldTransport11Len = 13 +) + +// A Mount is a device mount parsed from /proc/[pid]/mountstats. +type Mount struct { + // Name of the device. + Device string + // The mount point of the device. + Mount string + // The filesystem type used by the device. + Type string + // If available additional statistics related to this Mount. + // Use a type assertion to determine if additional statistics are available. + Stats MountStats +} + +// A MountStats is a type which contains detailed statistics for a specific +// type of Mount. +type MountStats interface { + mountStats() +} + +// A MountStatsNFS is a MountStats implementation for NFSv3 and v4 mounts. +type MountStatsNFS struct { + // The version of statistics provided. + StatVersion string + // The age of the NFS mount. + Age time.Duration + // Statistics related to byte counters for various operations. + Bytes NFSBytesStats + // Statistics related to various NFS event occurrences. + Events NFSEventsStats + // Statistics broken down by filesystem operation. + Operations []NFSOperationStats + // Statistics about the NFS RPC transport. + Transport NFSTransportStats +} + +// mountStats implements MountStats. +func (m MountStatsNFS) mountStats() {} + +// A NFSBytesStats contains statistics about the number of bytes read and written +// by an NFS client to and from an NFS server. +type NFSBytesStats struct { + // Number of bytes read using the read() syscall. + Read int + // Number of bytes written using the write() syscall. + Write int + // Number of bytes read using the read() syscall in O_DIRECT mode. + DirectRead int + // Number of bytes written using the write() syscall in O_DIRECT mode. + DirectWrite int + // Number of bytes read from the NFS server, in total. + ReadTotal int + // Number of bytes written to the NFS server, in total. + WriteTotal int + // Number of pages read directly via mmap()'d files. + ReadPages int + // Number of pages written directly via mmap()'d files. + WritePages int +} + +// A NFSEventsStats contains statistics about NFS event occurrences. +type NFSEventsStats struct { + // Number of times cached inode attributes are re-validated from the server. + InodeRevalidate int + // Number of times cached dentry nodes are re-validated from the server. + DnodeRevalidate int + // Number of times an inode cache is cleared. + DataInvalidate int + // Number of times cached inode attributes are invalidated. + AttributeInvalidate int + // Number of times files or directories have been open()'d. + VFSOpen int + // Number of times a directory lookup has occurred. + VFSLookup int + // Number of times permissions have been checked. + VFSAccess int + // Number of updates (and potential writes) to pages. + VFSUpdatePage int + // Number of pages read directly via mmap()'d files. + VFSReadPage int + // Number of times a group of pages have been read. + VFSReadPages int + // Number of pages written directly via mmap()'d files. + VFSWritePage int + // Number of times a group of pages have been written. + VFSWritePages int + // Number of times directory entries have been read with getdents(). + VFSGetdents int + // Number of times attributes have been set on inodes. + VFSSetattr int + // Number of pending writes that have been forcefully flushed to the server. + VFSFlush int + // Number of times fsync() has been called on directories and files. + VFSFsync int + // Number of times locking has been attemped on a file. + VFSLock int + // Number of times files have been closed and released. + VFSFileRelease int + // Unknown. Possibly unused. + CongestionWait int + // Number of times files have been truncated. + Truncation int + // Number of times a file has been grown due to writes beyond its existing end. + WriteExtension int + // Number of times a file was removed while still open by another process. + SillyRename int + // Number of times the NFS server gave less data than expected while reading. + ShortRead int + // Number of times the NFS server wrote less data than expected while writing. + ShortWrite int + // Number of times the NFS server indicated EJUKEBOX; retrieving data from + // offline storage. + JukeboxDelay int + // Number of NFS v4.1+ pNFS reads. + PNFSRead int + // Number of NFS v4.1+ pNFS writes. + PNFSWrite int +} + +// A NFSOperationStats contains statistics for a single operation. +type NFSOperationStats struct { + // The name of the operation. + Operation string + // Number of requests performed for this operation. + Requests int + // Number of times an actual RPC request has been transmitted for this operation. + Transmissions int + // Number of times a request has had a major timeout. + MajorTimeouts int + // Number of bytes sent for this operation, including RPC headers and payload. + BytesSent int + // Number of bytes received for this operation, including RPC headers and payload. + BytesReceived int + // Duration all requests spent queued for transmission before they were sent. + CumulativeQueueTime time.Duration + // Duration it took to get a reply back after the request was transmitted. + CumulativeTotalResponseTime time.Duration + // Duration from when a request was enqueued to when it was completely handled. + CumulativeTotalRequestTime time.Duration +} + +// A NFSTransportStats contains statistics for the NFS mount RPC requests and +// responses. +type NFSTransportStats struct { + // The local port used for the NFS mount. + Port int + // Number of times the client has had to establish a connection from scratch + // to the NFS server. + Bind int + // Number of times the client has made a TCP connection to the NFS server. + Connect int + // Duration (in jiffies, a kernel internal unit of time) the NFS mount has + // spent waiting for connections to the server to be established. + ConnectIdleTime int + // Duration since the NFS mount last saw any RPC traffic. + IdleTime time.Duration + // Number of RPC requests for this mount sent to the NFS server. + Sends int + // Number of RPC responses for this mount received from the NFS server. + Receives int + // Number of times the NFS server sent a response with a transaction ID + // unknown to this client. + BadTransactionIDs int + // A running counter, incremented on each request as the current difference + // ebetween sends and receives. + CumulativeActiveRequests int + // A running counter, incremented on each request by the current backlog + // queue size. + CumulativeBacklog int + + // Stats below only available with stat version 1.1. + + // Maximum number of simultaneously active RPC requests ever used. + MaximumRPCSlotsUsed int + // A running counter, incremented on each request as the current size of the + // sending queue. + CumulativeSendingQueue int + // A running counter, incremented on each request as the current size of the + // pending queue. + CumulativePendingQueue int +} + +// parseMountStats parses a /proc/[pid]/mountstats file and returns a slice +// of Mount structures containing detailed information about each mount. +// If available, statistics for each mount are parsed as well. +func parseMountStats(r io.Reader) ([]*Mount, error) { + const ( + device = "device" + statVersionPrefix = "statvers=" + + nfs3Type = "nfs" + nfs4Type = "nfs4" + ) + + var mounts []*Mount + + s := bufio.NewScanner(r) + for s.Scan() { + // Only look for device entries in this function + ss := strings.Fields(string(s.Bytes())) + if len(ss) == 0 || ss[0] != device { + continue + } + + m, err := parseMount(ss) + if err != nil { + return nil, err + } + + // Does this mount also possess statistics information? + if len(ss) > deviceEntryLen { + // Only NFSv3 and v4 are supported for parsing statistics + if m.Type != nfs3Type && m.Type != nfs4Type { + return nil, fmt.Errorf("cannot parse MountStats for fstype %q", m.Type) + } + + statVersion := strings.TrimPrefix(ss[8], statVersionPrefix) + + stats, err := parseMountStatsNFS(s, statVersion) + if err != nil { + return nil, err + } + + m.Stats = stats + } + + mounts = append(mounts, m) + } + + return mounts, s.Err() +} + +// parseMount parses an entry in /proc/[pid]/mountstats in the format: +// device [device] mounted on [mount] with fstype [type] +func parseMount(ss []string) (*Mount, error) { + if len(ss) < deviceEntryLen { + return nil, fmt.Errorf("invalid device entry: %v", ss) + } + + // Check for specific words appearing at specific indices to ensure + // the format is consistent with what we expect + format := []struct { + i int + s string + }{ + {i: 0, s: "device"}, + {i: 2, s: "mounted"}, + {i: 3, s: "on"}, + {i: 5, s: "with"}, + {i: 6, s: "fstype"}, + } + + for _, f := range format { + if ss[f.i] != f.s { + return nil, fmt.Errorf("invalid device entry: %v", ss) + } + } + + return &Mount{ + Device: ss[1], + Mount: ss[4], + Type: ss[7], + }, nil +} + +// parseMountStatsNFS parses a MountStatsNFS by scanning additional information +// related to NFS statistics. +func parseMountStatsNFS(s *bufio.Scanner, statVersion string) (*MountStatsNFS, error) { + // Field indicators for parsing specific types of data + const ( + fieldAge = "age:" + fieldBytes = "bytes:" + fieldEvents = "events:" + fieldPerOpStats = "per-op" + fieldTransport = "xprt:" + ) + + stats := &MountStatsNFS{ + StatVersion: statVersion, + } + + for s.Scan() { + ss := strings.Fields(string(s.Bytes())) + if len(ss) == 0 { + break + } + if len(ss) < 2 { + return nil, fmt.Errorf("not enough information for NFS stats: %v", ss) + } + + switch ss[0] { + case fieldAge: + // Age integer is in seconds + d, err := time.ParseDuration(ss[1] + "s") + if err != nil { + return nil, err + } + + stats.Age = d + case fieldBytes: + bstats, err := parseNFSBytesStats(ss[1:]) + if err != nil { + return nil, err + } + + stats.Bytes = *bstats + case fieldEvents: + estats, err := parseNFSEventsStats(ss[1:]) + if err != nil { + return nil, err + } + + stats.Events = *estats + case fieldTransport: + if len(ss) < 3 { + return nil, fmt.Errorf("not enough information for NFS transport stats: %v", ss) + } + + tstats, err := parseNFSTransportStats(ss[2:], statVersion) + if err != nil { + return nil, err + } + + stats.Transport = *tstats + } + + // When encountering "per-operation statistics", we must break this + // loop and parse them seperately to ensure we can terminate parsing + // before reaching another device entry; hence why this 'if' statement + // is not just another switch case + if ss[0] == fieldPerOpStats { + break + } + } + + if err := s.Err(); err != nil { + return nil, err + } + + // NFS per-operation stats appear last before the next device entry + perOpStats, err := parseNFSOperationStats(s) + if err != nil { + return nil, err + } + + stats.Operations = perOpStats + + return stats, nil +} + +// parseNFSBytesStats parses a NFSBytesStats line using an input set of +// integer fields. +func parseNFSBytesStats(ss []string) (*NFSBytesStats, error) { + if len(ss) != fieldBytesLen { + return nil, fmt.Errorf("invalid NFS bytes stats: %v", ss) + } + + ns := make([]int, 0, fieldBytesLen) + for _, s := range ss { + n, err := strconv.Atoi(s) + if err != nil { + return nil, err + } + + ns = append(ns, n) + } + + return &NFSBytesStats{ + Read: ns[0], + Write: ns[1], + DirectRead: ns[2], + DirectWrite: ns[3], + ReadTotal: ns[4], + WriteTotal: ns[5], + ReadPages: ns[6], + WritePages: ns[7], + }, nil +} + +// parseNFSEventsStats parses a NFSEventsStats line using an input set of +// integer fields. +func parseNFSEventsStats(ss []string) (*NFSEventsStats, error) { + if len(ss) != fieldEventsLen { + return nil, fmt.Errorf("invalid NFS events stats: %v", ss) + } + + ns := make([]int, 0, fieldEventsLen) + for _, s := range ss { + n, err := strconv.Atoi(s) + if err != nil { + return nil, err + } + + ns = append(ns, n) + } + + return &NFSEventsStats{ + InodeRevalidate: ns[0], + DnodeRevalidate: ns[1], + DataInvalidate: ns[2], + AttributeInvalidate: ns[3], + VFSOpen: ns[4], + VFSLookup: ns[5], + VFSAccess: ns[6], + VFSUpdatePage: ns[7], + VFSReadPage: ns[8], + VFSReadPages: ns[9], + VFSWritePage: ns[10], + VFSWritePages: ns[11], + VFSGetdents: ns[12], + VFSSetattr: ns[13], + VFSFlush: ns[14], + VFSFsync: ns[15], + VFSLock: ns[16], + VFSFileRelease: ns[17], + CongestionWait: ns[18], + Truncation: ns[19], + WriteExtension: ns[20], + SillyRename: ns[21], + ShortRead: ns[22], + ShortWrite: ns[23], + JukeboxDelay: ns[24], + PNFSRead: ns[25], + PNFSWrite: ns[26], + }, nil +} + +// parseNFSOperationStats parses a slice of NFSOperationStats by scanning +// additional information about per-operation statistics until an empty +// line is reached. +func parseNFSOperationStats(s *bufio.Scanner) ([]NFSOperationStats, error) { + const ( + // Number of expected fields in each per-operation statistics set + numFields = 9 + ) + + var ops []NFSOperationStats + + for s.Scan() { + ss := strings.Fields(string(s.Bytes())) + if len(ss) == 0 { + // Must break when reading a blank line after per-operation stats to + // enable top-level function to parse the next device entry + break + } + + if len(ss) != numFields { + return nil, fmt.Errorf("invalid NFS per-operations stats: %v", ss) + } + + // Skip string operation name for integers + ns := make([]int, 0, numFields-1) + for _, st := range ss[1:] { + n, err := strconv.Atoi(st) + if err != nil { + return nil, err + } + + ns = append(ns, n) + } + + ops = append(ops, NFSOperationStats{ + Operation: strings.TrimSuffix(ss[0], ":"), + Requests: ns[0], + Transmissions: ns[1], + MajorTimeouts: ns[2], + BytesSent: ns[3], + BytesReceived: ns[4], + CumulativeQueueTime: time.Duration(ns[5]) * time.Millisecond, + CumulativeTotalResponseTime: time.Duration(ns[6]) * time.Millisecond, + CumulativeTotalRequestTime: time.Duration(ns[7]) * time.Millisecond, + }) + } + + return ops, s.Err() +} + +// parseNFSTransportStats parses a NFSTransportStats line using an input set of +// integer fields matched to a specific stats version. +func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats, error) { + switch statVersion { + case statVersion10: + if len(ss) != fieldTransport10Len { + return nil, fmt.Errorf("invalid NFS transport stats 1.0 statement: %v", ss) + } + case statVersion11: + if len(ss) != fieldTransport11Len { + return nil, fmt.Errorf("invalid NFS transport stats 1.1 statement: %v", ss) + } + default: + return nil, fmt.Errorf("unrecognized NFS transport stats version: %q", statVersion) + } + + // Allocate enough for v1.1 stats since zero value for v1.1 stats will be okay + // in a v1.0 response + ns := make([]int, 0, fieldTransport11Len) + for _, s := range ss { + n, err := strconv.Atoi(s) + if err != nil { + return nil, err + } + + ns = append(ns, n) + } + + return &NFSTransportStats{ + Port: ns[0], + Bind: ns[1], + Connect: ns[2], + ConnectIdleTime: ns[3], + IdleTime: time.Duration(ns[4]) * time.Second, + Sends: ns[5], + Receives: ns[6], + BadTransactionIDs: ns[7], + CumulativeActiveRequests: ns[8], + CumulativeBacklog: ns[9], + MaximumRPCSlotsUsed: ns[10], + CumulativeSendingQueue: ns[11], + CumulativePendingQueue: ns[12], + }, nil +} diff --git a/vendor/github.com/prometheus/procfs/proc.go b/vendor/github.com/prometheus/procfs/proc.go index 0d0a6a90f..8717e1fe0 100644 --- a/vendor/github.com/prometheus/procfs/proc.go +++ b/vendor/github.com/prometheus/procfs/proc.go @@ -192,6 +192,18 @@ func (p Proc) FileDescriptorsLen() (int, error) { return len(fds), nil } +// MountStats retrieves statistics and configuration for mount points in a +// process's namespace. +func (p Proc) MountStats() ([]*Mount, error) { + f, err := os.Open(p.path("mountstats")) + if err != nil { + return nil, err + } + defer f.Close() + + return parseMountStats(f) +} + func (p Proc) fileDescriptors() ([]string, error) { d, err := os.Open(p.path("fd")) if err != nil { diff --git a/vendor/github.com/segmentio/go-camelcase/.gitignore b/vendor/github.com/segmentio/go-camelcase/.gitignore deleted file mode 100644 index b16f253a9..000000000 --- a/vendor/github.com/segmentio/go-camelcase/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -# Compiled Object files, Static and Dynamic libs (Shared Objects) -*.o -*.a -*.so - -# Folders -_obj -_test - -# Architecture specific extensions/prefixes -*.[568vq] -[568vq].out - -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* - -_testmain.go - -*.exe -*.test -*.prof - -# Emacs -*~ diff --git a/vendor/github.com/segmentio/go-camelcase/Readme.md b/vendor/github.com/segmentio/go-camelcase/Readme.md deleted file mode 100644 index b9f1aa0f6..000000000 --- a/vendor/github.com/segmentio/go-camelcase/Readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# go-camelcase - -Fast camelcase implementation that avoids Go's regexps. Direct fork of our [snakecase](https://github.com/segmentio/go-snakecase) implementation. - --- - - import "github.com/segmentio/go-camelcase" - -Convert strings to camelCase - -## Usage - -#### func Camelcase - -```go -func Camelcase(str string) string -``` -Camelcase representation of `str`. - -# License - - MIT \ No newline at end of file diff --git a/vendor/github.com/segmentio/go-camelcase/camel.go b/vendor/github.com/segmentio/go-camelcase/camel.go deleted file mode 100644 index 675c9d306..000000000 --- a/vendor/github.com/segmentio/go-camelcase/camel.go +++ /dev/null @@ -1,105 +0,0 @@ -// -// Fast camel-case implementation. -// -package camelcase - -// Camelcase the given string. -func Camelcase(s string) string { - b := make([]byte, 0, 64) - l := len(s) - i := 0 - - for i < l { - - // skip leading bytes that aren't letters or digits - for i < l && !isWord(s[i]) { - i++ - } - - // set the first byte to uppercase if it needs to - if i < l { - c := s[i] - - // simply append contiguous digits - if isDigit(c) { - for i < l { - if c = s[i]; !isDigit(c) { - break - } - b = append(b, c) - i++ - } - continue - } - - // the sequence starts with and uppercase letter, we append - // all following uppercase letters as equivalent lowercases - if isUpper(c) { - b = append(b, c) - i++ - - for i < l { - if c = s[i]; !isUpper(c) { - break - } - b = append(b, toLower(c)) - i++ - } - - } else { - b = append(b, toUpper(c)) - i++ - } - - // append all trailing lowercase letters - for i < l { - if c = s[i]; !isLower(c) { - break - } - b = append(b, c) - i++ - } - } - } - - // the first byte must always be lowercase - if len(b) != 0 { - b[0] = toLower(b[0]) - } - - return string(b) -} - -func isWord(c byte) bool { - return isLetter(c) || isDigit(c) -} - -func isLetter(c byte) bool { - return isLower(c) || isUpper(c) -} - -func isUpper(c byte) bool { - return c >= 'A' && c <= 'Z' -} - -func isLower(c byte) bool { - return c >= 'a' && c <= 'z' -} - -func isDigit(c byte) bool { - return c >= '0' && c <= '9' -} - -func toLower(c byte) byte { - if isUpper(c) { - return c + ('a' - 'A') - } - return c -} - -func toUpper(c byte) byte { - if isLower(c) { - return c - ('a' - 'A') - } - return c -} diff --git a/vendor/github.com/segmentio/go-camelcase/circle.yml b/vendor/github.com/segmentio/go-camelcase/circle.yml deleted file mode 100644 index 80d39fdb2..000000000 --- a/vendor/github.com/segmentio/go-camelcase/circle.yml +++ /dev/null @@ -1,21 +0,0 @@ -machine: - services: - - docker - -dependencies: - override: - - docker pull segment/golang:latest - -test: - override: - - > - docker run - $(env | grep -E '^CIRCLE_|^DOCKER_|^CIRCLECI=|^CI=' | sed 's/^/--env /g' | tr "\\n" " ") - --rm - --tty - --interactive - --name go - --volume /var/run/docker.sock:/run/docker.sock - --volume ${PWD}:/go/src/github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME} - --workdir /go/src/github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME} - segment/golang:latest diff --git a/vendor/k8s.io/kubernetes/pkg/api/rest/delete.go b/vendor/k8s.io/kubernetes/pkg/api/rest/delete.go index 5a76f214a..3f853d8c5 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/rest/delete.go +++ b/vendor/k8s.io/kubernetes/pkg/api/rest/delete.go @@ -80,7 +80,15 @@ func BeforeDelete(strategy RESTDeleteStrategy, ctx api.Context, obj runtime.Obje // if we are already being deleted, we may only shorten the deletion grace period // this means the object was gracefully deleted previously but deletionGracePeriodSeconds was not set, // so we force deletion immediately - if objectMeta.DeletionGracePeriodSeconds == nil { + // IMPORTANT: + // The deletion operation happens in two phases. + // 1. Update to set DeletionGracePeriodSeconds and DeletionTimestamp + // 2. Delete the object from storage. + // If the update succeeds, but the delete fails (network error, internal storage error, etc.), + // a resource was previously left in a state that was non-recoverable. We + // check if the existing stored resource has a grace period as 0 and if so + // attempt to delete immediately in order to recover from this scenario. + if objectMeta.DeletionGracePeriodSeconds == nil || *objectMeta.DeletionGracePeriodSeconds == 0 { return false, false, nil } // only a shorter grace period may be provided by a user diff --git a/vendor/k8s.io/kubernetes/pkg/api/rest/rest.go b/vendor/k8s.io/kubernetes/pkg/api/rest/rest.go index c4dd06e07..2098ccdbe 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/rest/rest.go +++ b/vendor/k8s.io/kubernetes/pkg/api/rest/rest.go @@ -289,6 +289,10 @@ type StorageMetadata interface { // ProducesMIMETypes returns a list of the MIME types the specified HTTP verb (GET, POST, DELETE, // PATCH) can respond with. ProducesMIMETypes(verb string) []string + + // ProducesObject returns an object the specified HTTP verb respond with. It will overwrite storage object if + // it is not nil. Only the type of the return object matters, the value will be ignored. + ProducesObject(verb string) interface{} } // ConnectRequest is an object passed to admission control for Connect operations diff --git a/vendor/k8s.io/kubernetes/pkg/api/validation/validation.go b/vendor/k8s.io/kubernetes/pkg/api/validation/validation.go index b3ca343fe..1c24a0d8c 100644 --- a/vendor/k8s.io/kubernetes/pkg/api/validation/validation.go +++ b/vendor/k8s.io/kubernetes/pkg/api/validation/validation.go @@ -2665,15 +2665,6 @@ func ValidateServiceUpdate(service, oldService *api.Service) field.ErrorList { } } - // TODO(freehan): allow user to update loadbalancerSourceRanges - // Only allow removing LoadBalancerSourceRanges when change service type from LoadBalancer - // to non-LoadBalancer or adding LoadBalancerSourceRanges when change service type from - // non-LoadBalancer to LoadBalancer. - if service.Spec.Type != api.ServiceTypeLoadBalancer && oldService.Spec.Type != api.ServiceTypeLoadBalancer || - service.Spec.Type == api.ServiceTypeLoadBalancer && oldService.Spec.Type == api.ServiceTypeLoadBalancer { - allErrs = append(allErrs, ValidateImmutableField(service.Spec.LoadBalancerSourceRanges, oldService.Spec.LoadBalancerSourceRanges, field.NewPath("spec", "loadBalancerSourceRanges"))...) - } - allErrs = append(allErrs, validateServiceFields(service)...) allErrs = append(allErrs, validateServiceAnnotations(service, oldService)...) return allErrs diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.generated.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.generated.go index e11812acc..c872496ea 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.generated.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.generated.go @@ -1393,7 +1393,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep153 := !z.EncBinary() yy2arr153 := z.EncBasicHandle().StructToArray - var yyq153 [113]bool + var yyq153 [114]bool _, _, _ = yysep153, yyq153, yy2arr153 const yyr153 bool = false yyq153[0] = x.Kind != "" @@ -1419,15 +1419,15 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { yyq153[97] = true yyq153[98] = x.EvictionMaxPodGracePeriod != 0 yyq153[99] = x.EvictionMinimumReclaim != "" - yyq153[108] = len(x.AllowedUnsafeSysctls) != 0 - yyq153[110] = x.EnableCRI != false - yyq153[111] = x.ExperimentalFailSwapOn != false - yyq153[112] = x.ExperimentalCheckNodeCapabilitiesBeforeMount != false + yyq153[109] = len(x.AllowedUnsafeSysctls) != 0 + yyq153[111] = x.EnableCRI != false + yyq153[112] = x.ExperimentalFailSwapOn != false + yyq153[113] = x.ExperimentalCheckNodeCapabilitiesBeforeMount != false var yynn153 int if yyr153 || yy2arr153 { - r.EncodeArrayStart(113) + r.EncodeArrayStart(114) } else { - yynn153 = 86 + yynn153 = 87 for _, b := range yyq153 { if b { yynn153++ @@ -3584,17 +3584,17 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym477 if false { } else { - r.EncodeInt(int64(x.PodsPerCore)) + r.EncodeBool(bool(x.ExperimentalKernelMemcgNotification)) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("podsPerCore")) + r.EncodeString(codecSelferC_UTF81234, string("experimentalKernelMemcgNotification")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yym478 := z.EncBinary() _ = yym478 if false { } else { - r.EncodeInt(int64(x.PodsPerCore)) + r.EncodeBool(bool(x.ExperimentalKernelMemcgNotification)) } } if yyr153 || yy2arr153 { @@ -3602,6 +3602,25 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { yym480 := z.EncBinary() _ = yym480 if false { + } else { + r.EncodeInt(int64(x.PodsPerCore)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("podsPerCore")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym481 := z.EncBinary() + _ = yym481 + if false { + } else { + r.EncodeInt(int64(x.PodsPerCore)) + } + } + if yyr153 || yy2arr153 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym483 := z.EncBinary() + _ = yym483 + if false { } else { r.EncodeBool(bool(x.EnableControllerAttachDetach)) } @@ -3609,8 +3628,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enableControllerAttachDetach")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym481 := z.EncBinary() - _ = yym481 + yym484 := z.EncBinary() + _ = yym484 if false { } else { r.EncodeBool(bool(x.EnableControllerAttachDetach)) @@ -3621,8 +3640,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { if x.SystemReserved == nil { r.EncodeNil() } else { - yym483 := z.EncBinary() - _ = yym483 + yym486 := z.EncBinary() + _ = yym486 if false { } else if z.HasExtensions() && z.EncExt(x.SystemReserved) { } else { @@ -3636,8 +3655,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { if x.SystemReserved == nil { r.EncodeNil() } else { - yym484 := z.EncBinary() - _ = yym484 + yym487 := z.EncBinary() + _ = yym487 if false { } else if z.HasExtensions() && z.EncExt(x.SystemReserved) { } else { @@ -3650,8 +3669,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { if x.KubeReserved == nil { r.EncodeNil() } else { - yym486 := z.EncBinary() - _ = yym486 + yym489 := z.EncBinary() + _ = yym489 if false { } else if z.HasExtensions() && z.EncExt(x.KubeReserved) { } else { @@ -3665,8 +3684,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { if x.KubeReserved == nil { r.EncodeNil() } else { - yym487 := z.EncBinary() - _ = yym487 + yym490 := z.EncBinary() + _ = yym490 if false { } else if z.HasExtensions() && z.EncExt(x.KubeReserved) { } else { @@ -3676,8 +3695,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } if yyr153 || yy2arr153 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym489 := z.EncBinary() - _ = yym489 + yym492 := z.EncBinary() + _ = yym492 if false { } else { r.EncodeBool(bool(x.ProtectKernelDefaults)) @@ -3686,30 +3705,11 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("protectKernelDefaults")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym490 := z.EncBinary() - _ = yym490 - if false { - } else { - r.EncodeBool(bool(x.ProtectKernelDefaults)) - } - } - if yyr153 || yy2arr153 { - z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym492 := z.EncBinary() - _ = yym492 - if false { - } else { - r.EncodeBool(bool(x.MakeIPTablesUtilChains)) - } - } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("makeIPTablesUtilChains")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) yym493 := z.EncBinary() _ = yym493 if false { } else { - r.EncodeBool(bool(x.MakeIPTablesUtilChains)) + r.EncodeBool(bool(x.ProtectKernelDefaults)) } } if yyr153 || yy2arr153 { @@ -3718,17 +3718,17 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym495 if false { } else { - r.EncodeInt(int64(x.IPTablesMasqueradeBit)) + r.EncodeBool(bool(x.MakeIPTablesUtilChains)) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("iptablesMasqueradeBit")) + r.EncodeString(codecSelferC_UTF81234, string("makeIPTablesUtilChains")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yym496 := z.EncBinary() _ = yym496 if false { } else { - r.EncodeInt(int64(x.IPTablesMasqueradeBit)) + r.EncodeBool(bool(x.MakeIPTablesUtilChains)) } } if yyr153 || yy2arr153 { @@ -3736,6 +3736,25 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { yym498 := z.EncBinary() _ = yym498 if false { + } else { + r.EncodeInt(int64(x.IPTablesMasqueradeBit)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("iptablesMasqueradeBit")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym499 := z.EncBinary() + _ = yym499 + if false { + } else { + r.EncodeInt(int64(x.IPTablesMasqueradeBit)) + } + } + if yyr153 || yy2arr153 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym501 := z.EncBinary() + _ = yym501 + if false { } else { r.EncodeInt(int64(x.IPTablesDropBit)) } @@ -3743,8 +3762,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("iptablesDropBit")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym499 := z.EncBinary() - _ = yym499 + yym502 := z.EncBinary() + _ = yym502 if false { } else { r.EncodeInt(int64(x.IPTablesDropBit)) @@ -3752,12 +3771,12 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } if yyr153 || yy2arr153 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq153[108] { + if yyq153[109] { if x.AllowedUnsafeSysctls == nil { r.EncodeNil() } else { - yym501 := z.EncBinary() - _ = yym501 + yym504 := z.EncBinary() + _ = yym504 if false { } else { z.F.EncSliceStringV(x.AllowedUnsafeSysctls, false, e) @@ -3767,15 +3786,15 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { r.EncodeNil() } } else { - if yyq153[108] { + if yyq153[109] { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("experimentalAllowedUnsafeSysctls")) z.EncSendContainerState(codecSelfer_containerMapValue1234) if x.AllowedUnsafeSysctls == nil { r.EncodeNil() } else { - yym502 := z.EncBinary() - _ = yym502 + yym505 := z.EncBinary() + _ = yym505 if false { } else { z.F.EncSliceStringV(x.AllowedUnsafeSysctls, false, e) @@ -3785,8 +3804,8 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } if yyr153 || yy2arr153 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym504 := z.EncBinary() - _ = yym504 + yym507 := z.EncBinary() + _ = yym507 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.FeatureGates)) @@ -3795,38 +3814,13 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("featureGates")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym505 := z.EncBinary() - _ = yym505 + yym508 := z.EncBinary() + _ = yym508 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.FeatureGates)) } } - if yyr153 || yy2arr153 { - z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq153[110] { - yym507 := z.EncBinary() - _ = yym507 - if false { - } else { - r.EncodeBool(bool(x.EnableCRI)) - } - } else { - r.EncodeBool(false) - } - } else { - if yyq153[110] { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("enableCRI")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym508 := z.EncBinary() - _ = yym508 - if false { - } else { - r.EncodeBool(bool(x.EnableCRI)) - } - } - } if yyr153 || yy2arr153 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) if yyq153[111] { @@ -3834,7 +3828,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym510 if false { } else { - r.EncodeBool(bool(x.ExperimentalFailSwapOn)) + r.EncodeBool(bool(x.EnableCRI)) } } else { r.EncodeBool(false) @@ -3842,13 +3836,13 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } else { if yyq153[111] { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("experimentalFailSwapOn")) + r.EncodeString(codecSelferC_UTF81234, string("enableCRI")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yym511 := z.EncBinary() _ = yym511 if false { } else { - r.EncodeBool(bool(x.ExperimentalFailSwapOn)) + r.EncodeBool(bool(x.EnableCRI)) } } } @@ -3859,7 +3853,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym513 if false { } else { - r.EncodeBool(bool(x.ExperimentalCheckNodeCapabilitiesBeforeMount)) + r.EncodeBool(bool(x.ExperimentalFailSwapOn)) } } else { r.EncodeBool(false) @@ -3867,11 +3861,36 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } else { if yyq153[112] { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("ExperimentalCheckNodeCapabilitiesBeforeMount")) + r.EncodeString(codecSelferC_UTF81234, string("experimentalFailSwapOn")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yym514 := z.EncBinary() _ = yym514 if false { + } else { + r.EncodeBool(bool(x.ExperimentalFailSwapOn)) + } + } + } + if yyr153 || yy2arr153 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq153[113] { + yym516 := z.EncBinary() + _ = yym516 + if false { + } else { + r.EncodeBool(bool(x.ExperimentalCheckNodeCapabilitiesBeforeMount)) + } + } else { + r.EncodeBool(false) + } + } else { + if yyq153[113] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("ExperimentalCheckNodeCapabilitiesBeforeMount")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym517 := z.EncBinary() + _ = yym517 + if false { } else { r.EncodeBool(bool(x.ExperimentalCheckNodeCapabilitiesBeforeMount)) } @@ -3890,25 +3909,25 @@ func (x *KubeletConfiguration) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym515 := z.DecBinary() - _ = yym515 + yym518 := z.DecBinary() + _ = yym518 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct516 := r.ContainerType() - if yyct516 == codecSelferValueTypeMap1234 { - yyl516 := r.ReadMapStart() - if yyl516 == 0 { + yyct519 := r.ContainerType() + if yyct519 == codecSelferValueTypeMap1234 { + yyl519 := r.ReadMapStart() + if yyl519 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl516, d) + x.codecDecodeSelfFromMap(yyl519, d) } - } else if yyct516 == codecSelferValueTypeArray1234 { - yyl516 := r.ReadArrayStart() - if yyl516 == 0 { + } else if yyct519 == codecSelferValueTypeArray1234 { + yyl519 := r.ReadArrayStart() + if yyl519 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl516, d) + x.codecDecodeSelfFromArray(yyl519, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -3920,12 +3939,12 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys517Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys517Slc - var yyhl517 bool = l >= 0 - for yyj517 := 0; ; yyj517++ { - if yyhl517 { - if yyj517 >= l { + var yys520Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys520Slc + var yyhl520 bool = l >= 0 + for yyj520 := 0; ; yyj520++ { + if yyhl520 { + if yyj520 >= l { break } } else { @@ -3934,10 +3953,10 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys517Slc = r.DecodeBytes(yys517Slc, true, true) - yys517 := string(yys517Slc) + yys520Slc = r.DecodeBytes(yys520Slc, true, true) + yys520 := string(yys520Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys517 { + switch yys520 { case "kind": if r.TryDecodeAsNil() { x.Kind = "" @@ -3960,45 +3979,45 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.SyncFrequency = pkg1_unversioned.Duration{} } else { - yyv521 := &x.SyncFrequency - yym522 := z.DecBinary() - _ = yym522 + yyv524 := &x.SyncFrequency + yym525 := z.DecBinary() + _ = yym525 if false { - } else if z.HasExtensions() && z.DecExt(yyv521) { - } else if !yym522 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv521) + } else if z.HasExtensions() && z.DecExt(yyv524) { + } else if !yym525 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv524) } else { - z.DecFallback(yyv521, false) + z.DecFallback(yyv524, false) } } case "fileCheckFrequency": if r.TryDecodeAsNil() { x.FileCheckFrequency = pkg1_unversioned.Duration{} } else { - yyv523 := &x.FileCheckFrequency - yym524 := z.DecBinary() - _ = yym524 + yyv526 := &x.FileCheckFrequency + yym527 := z.DecBinary() + _ = yym527 if false { - } else if z.HasExtensions() && z.DecExt(yyv523) { - } else if !yym524 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv523) + } else if z.HasExtensions() && z.DecExt(yyv526) { + } else if !yym527 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv526) } else { - z.DecFallback(yyv523, false) + z.DecFallback(yyv526, false) } } case "httpCheckFrequency": if r.TryDecodeAsNil() { x.HTTPCheckFrequency = pkg1_unversioned.Duration{} } else { - yyv525 := &x.HTTPCheckFrequency - yym526 := z.DecBinary() - _ = yym526 + yyv528 := &x.HTTPCheckFrequency + yym529 := z.DecBinary() + _ = yym529 if false { - } else if z.HasExtensions() && z.DecExt(yyv525) { - } else if !yym526 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv525) + } else if z.HasExtensions() && z.DecExt(yyv528) { + } else if !yym529 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv528) } else { - z.DecFallback(yyv525, false) + z.DecFallback(yyv528, false) } } case "manifestURL": @@ -4059,15 +4078,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.Authentication = KubeletAuthentication{} } else { - yyv536 := &x.Authentication - yyv536.CodecDecodeSelf(d) + yyv539 := &x.Authentication + yyv539.CodecDecodeSelf(d) } case "authorization": if r.TryDecodeAsNil() { x.Authorization = KubeletAuthorization{} } else { - yyv537 := &x.Authorization - yyv537.CodecDecodeSelf(d) + yyv540 := &x.Authorization + yyv540.CodecDecodeSelf(d) } case "hostnameOverride": if r.TryDecodeAsNil() { @@ -4109,36 +4128,36 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.HostNetworkSources = nil } else { - yyv544 := &x.HostNetworkSources - yym545 := z.DecBinary() - _ = yym545 + yyv547 := &x.HostNetworkSources + yym548 := z.DecBinary() + _ = yym548 if false { } else { - z.F.DecSliceStringX(yyv544, false, d) + z.F.DecSliceStringX(yyv547, false, d) } } case "hostPIDSources": if r.TryDecodeAsNil() { x.HostPIDSources = nil } else { - yyv546 := &x.HostPIDSources - yym547 := z.DecBinary() - _ = yym547 + yyv549 := &x.HostPIDSources + yym550 := z.DecBinary() + _ = yym550 if false { } else { - z.F.DecSliceStringX(yyv546, false, d) + z.F.DecSliceStringX(yyv549, false, d) } } case "hostIPCSources": if r.TryDecodeAsNil() { x.HostIPCSources = nil } else { - yyv548 := &x.HostIPCSources - yym549 := z.DecBinary() - _ = yym549 + yyv551 := &x.HostIPCSources + yym552 := z.DecBinary() + _ = yym552 if false { } else { - z.F.DecSliceStringX(yyv548, false, d) + z.F.DecSliceStringX(yyv551, false, d) } } case "registryPullQPS": @@ -4175,15 +4194,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.MinimumGCAge = pkg1_unversioned.Duration{} } else { - yyv555 := &x.MinimumGCAge - yym556 := z.DecBinary() - _ = yym556 + yyv558 := &x.MinimumGCAge + yym559 := z.DecBinary() + _ = yym559 if false { - } else if z.HasExtensions() && z.DecExt(yyv555) { - } else if !yym556 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv555) + } else if z.HasExtensions() && z.DecExt(yyv558) { + } else if !yym559 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv558) } else { - z.DecFallback(yyv555, false) + z.DecFallback(yyv558, false) } } case "maxPerPodContainerCount": @@ -4250,45 +4269,45 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.StreamingConnectionIdleTimeout = pkg1_unversioned.Duration{} } else { - yyv567 := &x.StreamingConnectionIdleTimeout - yym568 := z.DecBinary() - _ = yym568 + yyv570 := &x.StreamingConnectionIdleTimeout + yym571 := z.DecBinary() + _ = yym571 if false { - } else if z.HasExtensions() && z.DecExt(yyv567) { - } else if !yym568 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv567) + } else if z.HasExtensions() && z.DecExt(yyv570) { + } else if !yym571 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv570) } else { - z.DecFallback(yyv567, false) + z.DecFallback(yyv570, false) } } case "nodeStatusUpdateFrequency": if r.TryDecodeAsNil() { x.NodeStatusUpdateFrequency = pkg1_unversioned.Duration{} } else { - yyv569 := &x.NodeStatusUpdateFrequency - yym570 := z.DecBinary() - _ = yym570 + yyv572 := &x.NodeStatusUpdateFrequency + yym573 := z.DecBinary() + _ = yym573 if false { - } else if z.HasExtensions() && z.DecExt(yyv569) { - } else if !yym570 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv569) + } else if z.HasExtensions() && z.DecExt(yyv572) { + } else if !yym573 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv572) } else { - z.DecFallback(yyv569, false) + z.DecFallback(yyv572, false) } } case "imageMinimumGCAge": if r.TryDecodeAsNil() { x.ImageMinimumGCAge = pkg1_unversioned.Duration{} } else { - yyv571 := &x.ImageMinimumGCAge - yym572 := z.DecBinary() - _ = yym572 + yyv574 := &x.ImageMinimumGCAge + yym575 := z.DecBinary() + _ = yym575 if false { - } else if z.HasExtensions() && z.DecExt(yyv571) { - } else if !yym572 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv571) + } else if z.HasExtensions() && z.DecExt(yyv574) { + } else if !yym575 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv574) } else { - z.DecFallback(yyv571, false) + z.DecFallback(yyv574, false) } } case "imageGCHighThresholdPercent": @@ -4313,15 +4332,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.VolumeStatsAggPeriod = pkg1_unversioned.Duration{} } else { - yyv576 := &x.VolumeStatsAggPeriod - yym577 := z.DecBinary() - _ = yym577 + yyv579 := &x.VolumeStatsAggPeriod + yym580 := z.DecBinary() + _ = yym580 if false { - } else if z.HasExtensions() && z.DecExt(yyv576) { - } else if !yym577 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv576) + } else if z.HasExtensions() && z.DecExt(yyv579) { + } else if !yym580 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv579) } else { - z.DecFallback(yyv576, false) + z.DecFallback(yyv579, false) } } case "networkPluginName": @@ -4430,15 +4449,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.RuntimeRequestTimeout = pkg1_unversioned.Duration{} } else { - yyv595 := &x.RuntimeRequestTimeout - yym596 := z.DecBinary() - _ = yym596 + yyv598 := &x.RuntimeRequestTimeout + yym599 := z.DecBinary() + _ = yym599 if false { - } else if z.HasExtensions() && z.DecExt(yyv595) { - } else if !yym596 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv595) + } else if z.HasExtensions() && z.DecExt(yyv598) { + } else if !yym599 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv598) } else { - z.DecFallback(yyv595, false) + z.DecFallback(yyv598, false) } } case "rktPath": @@ -4577,15 +4596,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.OutOfDiskTransitionFrequency = pkg1_unversioned.Duration{} } else { - yyv619 := &x.OutOfDiskTransitionFrequency - yym620 := z.DecBinary() - _ = yym620 + yyv622 := &x.OutOfDiskTransitionFrequency + yym623 := z.DecBinary() + _ = yym623 if false { - } else if z.HasExtensions() && z.DecExt(yyv619) { - } else if !yym620 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv619) + } else if z.HasExtensions() && z.DecExt(yyv622) { + } else if !yym623 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv622) } else { - z.DecFallback(yyv619, false) + z.DecFallback(yyv622, false) } } case "nodeIP": @@ -4598,12 +4617,12 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.NodeLabels = nil } else { - yyv622 := &x.NodeLabels - yym623 := z.DecBinary() - _ = yym623 + yyv625 := &x.NodeLabels + yym626 := z.DecBinary() + _ = yym626 if false { } else { - z.F.DecMapStringStringX(yyv622, false, d) + z.F.DecMapStringStringX(yyv625, false, d) } } case "nonMasqueradeCIDR": @@ -4640,15 +4659,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.EvictionPressureTransitionPeriod = pkg1_unversioned.Duration{} } else { - yyv629 := &x.EvictionPressureTransitionPeriod - yym630 := z.DecBinary() - _ = yym630 + yyv632 := &x.EvictionPressureTransitionPeriod + yym633 := z.DecBinary() + _ = yym633 if false { - } else if z.HasExtensions() && z.DecExt(yyv629) { - } else if !yym630 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv629) + } else if z.HasExtensions() && z.DecExt(yyv632) { + } else if !yym633 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv632) } else { - z.DecFallback(yyv629, false) + z.DecFallback(yyv632, false) } } case "evictionMaxPodGracePeriod": @@ -4663,6 +4682,12 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode } else { x.EvictionMinimumReclaim = string(r.DecodeString()) } + case "experimentalKernelMemcgNotification": + if r.TryDecodeAsNil() { + x.ExperimentalKernelMemcgNotification = false + } else { + x.ExperimentalKernelMemcgNotification = bool(r.DecodeBool()) + } case "podsPerCore": if r.TryDecodeAsNil() { x.PodsPerCore = 0 @@ -4679,26 +4704,26 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.SystemReserved = nil } else { - yyv635 := &x.SystemReserved - yym636 := z.DecBinary() - _ = yym636 + yyv639 := &x.SystemReserved + yym640 := z.DecBinary() + _ = yym640 if false { - } else if z.HasExtensions() && z.DecExt(yyv635) { + } else if z.HasExtensions() && z.DecExt(yyv639) { } else { - h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv635), d) + h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv639), d) } } case "kubeReserved": if r.TryDecodeAsNil() { x.KubeReserved = nil } else { - yyv637 := &x.KubeReserved - yym638 := z.DecBinary() - _ = yym638 + yyv641 := &x.KubeReserved + yym642 := z.DecBinary() + _ = yym642 if false { - } else if z.HasExtensions() && z.DecExt(yyv637) { + } else if z.HasExtensions() && z.DecExt(yyv641) { } else { - h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv637), d) + h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv641), d) } } case "protectKernelDefaults": @@ -4729,12 +4754,12 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.AllowedUnsafeSysctls = nil } else { - yyv643 := &x.AllowedUnsafeSysctls - yym644 := z.DecBinary() - _ = yym644 + yyv647 := &x.AllowedUnsafeSysctls + yym648 := z.DecBinary() + _ = yym648 if false { } else { - z.F.DecSliceStringX(yyv643, false, d) + z.F.DecSliceStringX(yyv647, false, d) } } case "featureGates": @@ -4762,9 +4787,9 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode x.ExperimentalCheckNodeCapabilitiesBeforeMount = bool(r.DecodeBool()) } default: - z.DecStructFieldNotFound(-1, yys517) - } // end switch yys517 - } // end for yyj517 + z.DecStructFieldNotFound(-1, yys520) + } // end switch yys520 + } // end for yyj520 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -4772,16 +4797,16 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj649 int - var yyb649 bool - var yyhl649 bool = l >= 0 - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + var yyj653 int + var yyb653 bool + var yyhl653 bool = l >= 0 + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4791,13 +4816,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Kind = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4807,13 +4832,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.APIVersion = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4823,13 +4848,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.PodManifestPath = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4837,57 +4862,7 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.SyncFrequency = pkg1_unversioned.Duration{} } else { - yyv653 := &x.SyncFrequency - yym654 := z.DecBinary() - _ = yym654 - if false { - } else if z.HasExtensions() && z.DecExt(yyv653) { - } else if !yym654 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv653) - } else { - z.DecFallback(yyv653, false) - } - } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l - } else { - yyb649 = r.CheckBreak() - } - if yyb649 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.FileCheckFrequency = pkg1_unversioned.Duration{} - } else { - yyv655 := &x.FileCheckFrequency - yym656 := z.DecBinary() - _ = yym656 - if false { - } else if z.HasExtensions() && z.DecExt(yyv655) { - } else if !yym656 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv655) - } else { - z.DecFallback(yyv655, false) - } - } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l - } else { - yyb649 = r.CheckBreak() - } - if yyb649 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.HTTPCheckFrequency = pkg1_unversioned.Duration{} - } else { - yyv657 := &x.HTTPCheckFrequency + yyv657 := &x.SyncFrequency yym658 := z.DecBinary() _ = yym658 if false { @@ -4898,13 +4873,63 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco z.DecFallback(yyv657, false) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.FileCheckFrequency = pkg1_unversioned.Duration{} + } else { + yyv659 := &x.FileCheckFrequency + yym660 := z.DecBinary() + _ = yym660 + if false { + } else if z.HasExtensions() && z.DecExt(yyv659) { + } else if !yym660 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv659) + } else { + z.DecFallback(yyv659, false) + } + } + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l + } else { + yyb653 = r.CheckBreak() + } + if yyb653 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.HTTPCheckFrequency = pkg1_unversioned.Duration{} + } else { + yyv661 := &x.HTTPCheckFrequency + yym662 := z.DecBinary() + _ = yym662 + if false { + } else if z.HasExtensions() && z.DecExt(yyv661) { + } else if !yym662 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv661) + } else { + z.DecFallback(yyv661, false) + } + } + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l + } else { + yyb653 = r.CheckBreak() + } + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4914,13 +4939,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ManifestURL = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4930,13 +4955,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ManifestURLHeader = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4946,13 +4971,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableServer = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4962,13 +4987,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Address = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4978,13 +5003,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Port = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4994,13 +5019,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ReadOnlyPort = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5010,13 +5035,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.TLSCertFile = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5026,13 +5051,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.TLSPrivateKeyFile = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5042,13 +5067,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CertDirectory = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5056,16 +5081,16 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.Authentication = KubeletAuthentication{} } else { - yyv668 := &x.Authentication - yyv668.CodecDecodeSelf(d) + yyv672 := &x.Authentication + yyv672.CodecDecodeSelf(d) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5073,16 +5098,16 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.Authorization = KubeletAuthorization{} } else { - yyv669 := &x.Authorization - yyv669.CodecDecodeSelf(d) + yyv673 := &x.Authorization + yyv673.CodecDecodeSelf(d) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5092,13 +5117,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HostnameOverride = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5108,13 +5133,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.PodInfraContainerImage = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5124,13 +5149,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.DockerEndpoint = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5140,13 +5165,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RootDirectory = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5156,13 +5181,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.SeccompProfileRoot = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5172,13 +5197,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.AllowPrivileged = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5186,51 +5211,7 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.HostNetworkSources = nil } else { - yyv676 := &x.HostNetworkSources - yym677 := z.DecBinary() - _ = yym677 - if false { - } else { - z.F.DecSliceStringX(yyv676, false, d) - } - } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l - } else { - yyb649 = r.CheckBreak() - } - if yyb649 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.HostPIDSources = nil - } else { - yyv678 := &x.HostPIDSources - yym679 := z.DecBinary() - _ = yym679 - if false { - } else { - z.F.DecSliceStringX(yyv678, false, d) - } - } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l - } else { - yyb649 = r.CheckBreak() - } - if yyb649 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.HostIPCSources = nil - } else { - yyv680 := &x.HostIPCSources + yyv680 := &x.HostNetworkSources yym681 := z.DecBinary() _ = yym681 if false { @@ -5238,13 +5219,57 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco z.F.DecSliceStringX(yyv680, false, d) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.HostPIDSources = nil + } else { + yyv682 := &x.HostPIDSources + yym683 := z.DecBinary() + _ = yym683 + if false { + } else { + z.F.DecSliceStringX(yyv682, false, d) + } + } + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l + } else { + yyb653 = r.CheckBreak() + } + if yyb653 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.HostIPCSources = nil + } else { + yyv684 := &x.HostIPCSources + yym685 := z.DecBinary() + _ = yym685 + if false { + } else { + z.F.DecSliceStringX(yyv684, false, d) + } + } + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l + } else { + yyb653 = r.CheckBreak() + } + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5254,13 +5279,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegistryPullQPS = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5270,13 +5295,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegistryBurst = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5286,13 +5311,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EventRecordQPS = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5302,13 +5327,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EventBurst = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5318,13 +5343,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableDebuggingHandlers = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5332,24 +5357,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.MinimumGCAge = pkg1_unversioned.Duration{} } else { - yyv687 := &x.MinimumGCAge - yym688 := z.DecBinary() - _ = yym688 + yyv691 := &x.MinimumGCAge + yym692 := z.DecBinary() + _ = yym692 if false { - } else if z.HasExtensions() && z.DecExt(yyv687) { - } else if !yym688 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv687) + } else if z.HasExtensions() && z.DecExt(yyv691) { + } else if !yym692 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv691) } else { - z.DecFallback(yyv687, false) + z.DecFallback(yyv691, false) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5359,13 +5384,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MaxPerPodContainerCount = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5375,13 +5400,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MaxContainerCount = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5391,13 +5416,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CAdvisorPort = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5407,13 +5432,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HealthzPort = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5423,13 +5448,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HealthzBindAddress = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5439,13 +5464,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.OOMScoreAdj = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5455,13 +5480,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegisterNode = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5471,13 +5496,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ClusterDomain = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5487,13 +5512,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MasterServiceNamespace = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5503,13 +5528,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ClusterDNS = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5517,57 +5542,7 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.StreamingConnectionIdleTimeout = pkg1_unversioned.Duration{} } else { - yyv699 := &x.StreamingConnectionIdleTimeout - yym700 := z.DecBinary() - _ = yym700 - if false { - } else if z.HasExtensions() && z.DecExt(yyv699) { - } else if !yym700 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv699) - } else { - z.DecFallback(yyv699, false) - } - } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l - } else { - yyb649 = r.CheckBreak() - } - if yyb649 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.NodeStatusUpdateFrequency = pkg1_unversioned.Duration{} - } else { - yyv701 := &x.NodeStatusUpdateFrequency - yym702 := z.DecBinary() - _ = yym702 - if false { - } else if z.HasExtensions() && z.DecExt(yyv701) { - } else if !yym702 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv701) - } else { - z.DecFallback(yyv701, false) - } - } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l - } else { - yyb649 = r.CheckBreak() - } - if yyb649 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.ImageMinimumGCAge = pkg1_unversioned.Duration{} - } else { - yyv703 := &x.ImageMinimumGCAge + yyv703 := &x.StreamingConnectionIdleTimeout yym704 := z.DecBinary() _ = yym704 if false { @@ -5578,13 +5553,63 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco z.DecFallback(yyv703, false) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.NodeStatusUpdateFrequency = pkg1_unversioned.Duration{} + } else { + yyv705 := &x.NodeStatusUpdateFrequency + yym706 := z.DecBinary() + _ = yym706 + if false { + } else if z.HasExtensions() && z.DecExt(yyv705) { + } else if !yym706 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv705) + } else { + z.DecFallback(yyv705, false) + } + } + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l + } else { + yyb653 = r.CheckBreak() + } + if yyb653 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ImageMinimumGCAge = pkg1_unversioned.Duration{} + } else { + yyv707 := &x.ImageMinimumGCAge + yym708 := z.DecBinary() + _ = yym708 + if false { + } else if z.HasExtensions() && z.DecExt(yyv707) { + } else if !yym708 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv707) + } else { + z.DecFallback(yyv707, false) + } + } + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l + } else { + yyb653 = r.CheckBreak() + } + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5594,13 +5619,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ImageGCHighThresholdPercent = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5610,13 +5635,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ImageGCLowThresholdPercent = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5626,13 +5651,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.LowDiskSpaceThresholdMB = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5640,24 +5665,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.VolumeStatsAggPeriod = pkg1_unversioned.Duration{} } else { - yyv708 := &x.VolumeStatsAggPeriod - yym709 := z.DecBinary() - _ = yym709 + yyv712 := &x.VolumeStatsAggPeriod + yym713 := z.DecBinary() + _ = yym713 if false { - } else if z.HasExtensions() && z.DecExt(yyv708) { - } else if !yym709 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv708) + } else if z.HasExtensions() && z.DecExt(yyv712) { + } else if !yym713 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv712) } else { - z.DecFallback(yyv708, false) + z.DecFallback(yyv712, false) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5667,13 +5692,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NetworkPluginName = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5683,13 +5708,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NetworkPluginMTU = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5699,13 +5724,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NetworkPluginDir = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5715,13 +5740,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CNIConfDir = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5731,13 +5756,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CNIBinDir = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5747,13 +5772,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.VolumePluginDir = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5763,13 +5788,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CloudProvider = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5779,13 +5804,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CloudConfigFile = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5795,13 +5820,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.KubeletCgroups = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5811,13 +5836,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ExperimentalCgroupsPerQOS = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5827,13 +5852,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CgroupDriver = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5843,13 +5868,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RuntimeCgroups = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5859,13 +5884,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.SystemCgroups = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5875,13 +5900,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CgroupRoot = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5891,13 +5916,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ContainerRuntime = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5907,13 +5932,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RemoteRuntimeEndpoint = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5923,13 +5948,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RemoteImageEndpoint = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5937,24 +5962,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.RuntimeRequestTimeout = pkg1_unversioned.Duration{} } else { - yyv727 := &x.RuntimeRequestTimeout - yym728 := z.DecBinary() - _ = yym728 + yyv731 := &x.RuntimeRequestTimeout + yym732 := z.DecBinary() + _ = yym732 if false { - } else if z.HasExtensions() && z.DecExt(yyv727) { - } else if !yym728 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv727) + } else if z.HasExtensions() && z.DecExt(yyv731) { + } else if !yym732 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv731) } else { - z.DecFallback(yyv727, false) + z.DecFallback(yyv731, false) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5964,13 +5989,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RktPath = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5980,13 +6005,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ExperimentalMounterPath = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5996,13 +6021,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RktAPIEndpoint = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6012,13 +6037,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RktStage1Image = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6028,13 +6053,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.LockFilePath = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6044,13 +6069,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ExitOnLockContention = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6060,13 +6085,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HairpinMode = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6076,13 +6101,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.BabysitDaemons = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6092,13 +6117,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MaxPods = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6108,13 +6133,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NvidiaGPUs = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6124,13 +6149,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.DockerExecHandlerName = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6140,13 +6165,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.PodCIDR = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6156,13 +6181,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ResolverConfig = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6172,13 +6197,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CPUCFSQuota = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6188,13 +6213,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Containerized = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6204,13 +6229,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MaxOpenFiles = int64(r.DecodeInt(64)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6220,13 +6245,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ReconcileCIDR = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6236,13 +6261,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegisterSchedulable = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6252,13 +6277,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ContentType = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6268,13 +6293,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.KubeAPIQPS = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6284,13 +6309,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.KubeAPIBurst = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6300,13 +6325,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.SerializeImagePulls = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6314,24 +6339,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.OutOfDiskTransitionFrequency = pkg1_unversioned.Duration{} } else { - yyv751 := &x.OutOfDiskTransitionFrequency - yym752 := z.DecBinary() - _ = yym752 + yyv755 := &x.OutOfDiskTransitionFrequency + yym756 := z.DecBinary() + _ = yym756 if false { - } else if z.HasExtensions() && z.DecExt(yyv751) { - } else if !yym752 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv751) + } else if z.HasExtensions() && z.DecExt(yyv755) { + } else if !yym756 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv755) } else { - z.DecFallback(yyv751, false) + z.DecFallback(yyv755, false) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6341,13 +6366,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NodeIP = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6355,21 +6380,21 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.NodeLabels = nil } else { - yyv754 := &x.NodeLabels - yym755 := z.DecBinary() - _ = yym755 + yyv758 := &x.NodeLabels + yym759 := z.DecBinary() + _ = yym759 if false { } else { - z.F.DecMapStringStringX(yyv754, false, d) + z.F.DecMapStringStringX(yyv758, false, d) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6379,13 +6404,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NonMasqueradeCIDR = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6395,13 +6420,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableCustomMetrics = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6411,13 +6436,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionHard = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6427,13 +6452,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionSoft = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6443,13 +6468,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionSoftGracePeriod = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6457,24 +6482,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.EvictionPressureTransitionPeriod = pkg1_unversioned.Duration{} } else { - yyv761 := &x.EvictionPressureTransitionPeriod - yym762 := z.DecBinary() - _ = yym762 + yyv765 := &x.EvictionPressureTransitionPeriod + yym766 := z.DecBinary() + _ = yym766 if false { - } else if z.HasExtensions() && z.DecExt(yyv761) { - } else if !yym762 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv761) + } else if z.HasExtensions() && z.DecExt(yyv765) { + } else if !yym766 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv765) } else { - z.DecFallback(yyv761, false) + z.DecFallback(yyv765, false) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6484,13 +6509,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionMaxPodGracePeriod = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6500,13 +6525,29 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionMinimumReclaim = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ExperimentalKernelMemcgNotification = false + } else { + x.ExperimentalKernelMemcgNotification = bool(r.DecodeBool()) + } + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l + } else { + yyb653 = r.CheckBreak() + } + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6516,13 +6557,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.PodsPerCore = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6532,13 +6573,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableControllerAttachDetach = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6546,22 +6587,22 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.SystemReserved = nil } else { - yyv767 := &x.SystemReserved - yym768 := z.DecBinary() - _ = yym768 + yyv772 := &x.SystemReserved + yym773 := z.DecBinary() + _ = yym773 if false { - } else if z.HasExtensions() && z.DecExt(yyv767) { + } else if z.HasExtensions() && z.DecExt(yyv772) { } else { - h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv767), d) + h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv772), d) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6569,22 +6610,22 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.KubeReserved = nil } else { - yyv769 := &x.KubeReserved - yym770 := z.DecBinary() - _ = yym770 + yyv774 := &x.KubeReserved + yym775 := z.DecBinary() + _ = yym775 if false { - } else if z.HasExtensions() && z.DecExt(yyv769) { + } else if z.HasExtensions() && z.DecExt(yyv774) { } else { - h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv769), d) + h.decconfig_ConfigurationMap((*pkg2_config.ConfigurationMap)(yyv774), d) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6594,13 +6635,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ProtectKernelDefaults = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6610,13 +6651,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MakeIPTablesUtilChains = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6626,13 +6667,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.IPTablesMasqueradeBit = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6642,13 +6683,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.IPTablesDropBit = int32(r.DecodeInt(32)) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6656,21 +6697,21 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.AllowedUnsafeSysctls = nil } else { - yyv775 := &x.AllowedUnsafeSysctls - yym776 := z.DecBinary() - _ = yym776 + yyv780 := &x.AllowedUnsafeSysctls + yym781 := z.DecBinary() + _ = yym781 if false { } else { - z.F.DecSliceStringX(yyv775, false, d) + z.F.DecSliceStringX(yyv780, false, d) } } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6680,13 +6721,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.FeatureGates = string(r.DecodeString()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6696,13 +6737,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableCRI = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6712,13 +6753,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ExperimentalFailSwapOn = bool(r.DecodeBool()) } - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6729,17 +6770,17 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco x.ExperimentalCheckNodeCapabilitiesBeforeMount = bool(r.DecodeBool()) } for { - yyj649++ - if yyhl649 { - yyb649 = yyj649 > l + yyj653++ + if yyhl653 { + yyb653 = yyj653 > l } else { - yyb649 = r.CheckBreak() + yyb653 = r.CheckBreak() } - if yyb649 { + if yyb653 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj649-1, "") + z.DecStructFieldNotFound(yyj653-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -6748,8 +6789,8 @@ func (x KubeletAuthorizationMode) CodecEncodeSelf(e *codec1978.Encoder) { var h codecSelfer1234 z, r := codec1978.GenHelperEncoder(e) _, _, _ = h, z, r - yym781 := z.EncBinary() - _ = yym781 + yym786 := z.EncBinary() + _ = yym786 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { @@ -6761,8 +6802,8 @@ func (x *KubeletAuthorizationMode) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym782 := z.DecBinary() - _ = yym782 + yym787 := z.DecBinary() + _ = yym787 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { @@ -6777,30 +6818,30 @@ func (x *KubeletAuthorization) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym783 := z.EncBinary() - _ = yym783 + yym788 := z.EncBinary() + _ = yym788 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep784 := !z.EncBinary() - yy2arr784 := z.EncBasicHandle().StructToArray - var yyq784 [2]bool - _, _, _ = yysep784, yyq784, yy2arr784 - const yyr784 bool = false - var yynn784 int - if yyr784 || yy2arr784 { + yysep789 := !z.EncBinary() + yy2arr789 := z.EncBasicHandle().StructToArray + var yyq789 [2]bool + _, _, _ = yysep789, yyq789, yy2arr789 + const yyr789 bool = false + var yynn789 int + if yyr789 || yy2arr789 { r.EncodeArrayStart(2) } else { - yynn784 = 2 - for _, b := range yyq784 { + yynn789 = 2 + for _, b := range yyq789 { if b { - yynn784++ + yynn789++ } } - r.EncodeMapStart(yynn784) - yynn784 = 0 + r.EncodeMapStart(yynn789) + yynn789 = 0 } - if yyr784 || yy2arr784 { + if yyr789 || yy2arr789 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) x.Mode.CodecEncodeSelf(e) } else { @@ -6809,18 +6850,18 @@ func (x *KubeletAuthorization) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapValue1234) x.Mode.CodecEncodeSelf(e) } - if yyr784 || yy2arr784 { + if yyr789 || yy2arr789 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy787 := &x.Webhook - yy787.CodecEncodeSelf(e) + yy792 := &x.Webhook + yy792.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("webhook")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy788 := &x.Webhook - yy788.CodecEncodeSelf(e) + yy793 := &x.Webhook + yy793.CodecEncodeSelf(e) } - if yyr784 || yy2arr784 { + if yyr789 || yy2arr789 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -6833,25 +6874,25 @@ func (x *KubeletAuthorization) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym789 := z.DecBinary() - _ = yym789 + yym794 := z.DecBinary() + _ = yym794 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct790 := r.ContainerType() - if yyct790 == codecSelferValueTypeMap1234 { - yyl790 := r.ReadMapStart() - if yyl790 == 0 { + yyct795 := r.ContainerType() + if yyct795 == codecSelferValueTypeMap1234 { + yyl795 := r.ReadMapStart() + if yyl795 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl790, d) + x.codecDecodeSelfFromMap(yyl795, d) } - } else if yyct790 == codecSelferValueTypeArray1234 { - yyl790 := r.ReadArrayStart() - if yyl790 == 0 { + } else if yyct795 == codecSelferValueTypeArray1234 { + yyl795 := r.ReadArrayStart() + if yyl795 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl790, d) + x.codecDecodeSelfFromArray(yyl795, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -6863,12 +6904,12 @@ func (x *KubeletAuthorization) codecDecodeSelfFromMap(l int, d *codec1978.Decode var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys791Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys791Slc - var yyhl791 bool = l >= 0 - for yyj791 := 0; ; yyj791++ { - if yyhl791 { - if yyj791 >= l { + var yys796Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys796Slc + var yyhl796 bool = l >= 0 + for yyj796 := 0; ; yyj796++ { + if yyhl796 { + if yyj796 >= l { break } } else { @@ -6877,10 +6918,10 @@ func (x *KubeletAuthorization) codecDecodeSelfFromMap(l int, d *codec1978.Decode } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys791Slc = r.DecodeBytes(yys791Slc, true, true) - yys791 := string(yys791Slc) + yys796Slc = r.DecodeBytes(yys796Slc, true, true) + yys796 := string(yys796Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys791 { + switch yys796 { case "mode": if r.TryDecodeAsNil() { x.Mode = "" @@ -6891,13 +6932,13 @@ func (x *KubeletAuthorization) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.Webhook = KubeletWebhookAuthorization{} } else { - yyv793 := &x.Webhook - yyv793.CodecDecodeSelf(d) + yyv798 := &x.Webhook + yyv798.CodecDecodeSelf(d) } default: - z.DecStructFieldNotFound(-1, yys791) - } // end switch yys791 - } // end for yyj791 + z.DecStructFieldNotFound(-1, yys796) + } // end switch yys796 + } // end for yyj796 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -6905,16 +6946,16 @@ func (x *KubeletAuthorization) codecDecodeSelfFromArray(l int, d *codec1978.Deco var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj794 int - var yyb794 bool - var yyhl794 bool = l >= 0 - yyj794++ - if yyhl794 { - yyb794 = yyj794 > l + var yyj799 int + var yyb799 bool + var yyhl799 bool = l >= 0 + yyj799++ + if yyhl799 { + yyb799 = yyj799 > l } else { - yyb794 = r.CheckBreak() + yyb799 = r.CheckBreak() } - if yyb794 { + if yyb799 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6924,13 +6965,13 @@ func (x *KubeletAuthorization) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Mode = KubeletAuthorizationMode(r.DecodeString()) } - yyj794++ - if yyhl794 { - yyb794 = yyj794 > l + yyj799++ + if yyhl799 { + yyb799 = yyj799 > l } else { - yyb794 = r.CheckBreak() + yyb799 = r.CheckBreak() } - if yyb794 { + if yyb799 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -6938,21 +6979,21 @@ func (x *KubeletAuthorization) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.Webhook = KubeletWebhookAuthorization{} } else { - yyv796 := &x.Webhook - yyv796.CodecDecodeSelf(d) + yyv801 := &x.Webhook + yyv801.CodecDecodeSelf(d) } for { - yyj794++ - if yyhl794 { - yyb794 = yyj794 > l + yyj799++ + if yyhl799 { + yyb799 = yyj799 > l } else { - yyb794 = r.CheckBreak() + yyb799 = r.CheckBreak() } - if yyb794 { + if yyb799 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj794-1, "") + z.DecStructFieldNotFound(yyj799-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -6964,59 +7005,32 @@ func (x *KubeletWebhookAuthorization) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym797 := z.EncBinary() - _ = yym797 + yym802 := z.EncBinary() + _ = yym802 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep798 := !z.EncBinary() - yy2arr798 := z.EncBasicHandle().StructToArray - var yyq798 [2]bool - _, _, _ = yysep798, yyq798, yy2arr798 - const yyr798 bool = false - var yynn798 int - if yyr798 || yy2arr798 { + yysep803 := !z.EncBinary() + yy2arr803 := z.EncBasicHandle().StructToArray + var yyq803 [2]bool + _, _, _ = yysep803, yyq803, yy2arr803 + const yyr803 bool = false + var yynn803 int + if yyr803 || yy2arr803 { r.EncodeArrayStart(2) } else { - yynn798 = 2 - for _, b := range yyq798 { + yynn803 = 2 + for _, b := range yyq803 { if b { - yynn798++ + yynn803++ } } - r.EncodeMapStart(yynn798) - yynn798 = 0 + r.EncodeMapStart(yynn803) + yynn803 = 0 } - if yyr798 || yy2arr798 { + if yyr803 || yy2arr803 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy800 := &x.CacheAuthorizedTTL - yym801 := z.EncBinary() - _ = yym801 - if false { - } else if z.HasExtensions() && z.EncExt(yy800) { - } else if !yym801 && z.IsJSONHandle() { - z.EncJSONMarshal(yy800) - } else { - z.EncFallback(yy800) - } - } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("cacheAuthorizedTTL")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy802 := &x.CacheAuthorizedTTL - yym803 := z.EncBinary() - _ = yym803 - if false { - } else if z.HasExtensions() && z.EncExt(yy802) { - } else if !yym803 && z.IsJSONHandle() { - z.EncJSONMarshal(yy802) - } else { - z.EncFallback(yy802) - } - } - if yyr798 || yy2arr798 { - z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy805 := &x.CacheUnauthorizedTTL + yy805 := &x.CacheAuthorizedTTL yym806 := z.EncBinary() _ = yym806 if false { @@ -7028,9 +7042,9 @@ func (x *KubeletWebhookAuthorization) CodecEncodeSelf(e *codec1978.Encoder) { } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("cacheUnauthorizedTTL")) + r.EncodeString(codecSelferC_UTF81234, string("cacheAuthorizedTTL")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy807 := &x.CacheUnauthorizedTTL + yy807 := &x.CacheAuthorizedTTL yym808 := z.EncBinary() _ = yym808 if false { @@ -7041,7 +7055,34 @@ func (x *KubeletWebhookAuthorization) CodecEncodeSelf(e *codec1978.Encoder) { z.EncFallback(yy807) } } - if yyr798 || yy2arr798 { + if yyr803 || yy2arr803 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy810 := &x.CacheUnauthorizedTTL + yym811 := z.EncBinary() + _ = yym811 + if false { + } else if z.HasExtensions() && z.EncExt(yy810) { + } else if !yym811 && z.IsJSONHandle() { + z.EncJSONMarshal(yy810) + } else { + z.EncFallback(yy810) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("cacheUnauthorizedTTL")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy812 := &x.CacheUnauthorizedTTL + yym813 := z.EncBinary() + _ = yym813 + if false { + } else if z.HasExtensions() && z.EncExt(yy812) { + } else if !yym813 && z.IsJSONHandle() { + z.EncJSONMarshal(yy812) + } else { + z.EncFallback(yy812) + } + } + if yyr803 || yy2arr803 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -7054,25 +7095,25 @@ func (x *KubeletWebhookAuthorization) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym809 := z.DecBinary() - _ = yym809 + yym814 := z.DecBinary() + _ = yym814 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct810 := r.ContainerType() - if yyct810 == codecSelferValueTypeMap1234 { - yyl810 := r.ReadMapStart() - if yyl810 == 0 { + yyct815 := r.ContainerType() + if yyct815 == codecSelferValueTypeMap1234 { + yyl815 := r.ReadMapStart() + if yyl815 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl810, d) + x.codecDecodeSelfFromMap(yyl815, d) } - } else if yyct810 == codecSelferValueTypeArray1234 { - yyl810 := r.ReadArrayStart() - if yyl810 == 0 { + } else if yyct815 == codecSelferValueTypeArray1234 { + yyl815 := r.ReadArrayStart() + if yyl815 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl810, d) + x.codecDecodeSelfFromArray(yyl815, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -7084,12 +7125,12 @@ func (x *KubeletWebhookAuthorization) codecDecodeSelfFromMap(l int, d *codec1978 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys811Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys811Slc - var yyhl811 bool = l >= 0 - for yyj811 := 0; ; yyj811++ { - if yyhl811 { - if yyj811 >= l { + var yys816Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys816Slc + var yyhl816 bool = l >= 0 + for yyj816 := 0; ; yyj816++ { + if yyhl816 { + if yyj816 >= l { break } } else { @@ -7098,44 +7139,44 @@ func (x *KubeletWebhookAuthorization) codecDecodeSelfFromMap(l int, d *codec1978 } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys811Slc = r.DecodeBytes(yys811Slc, true, true) - yys811 := string(yys811Slc) + yys816Slc = r.DecodeBytes(yys816Slc, true, true) + yys816 := string(yys816Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys811 { + switch yys816 { case "cacheAuthorizedTTL": if r.TryDecodeAsNil() { x.CacheAuthorizedTTL = pkg1_unversioned.Duration{} } else { - yyv812 := &x.CacheAuthorizedTTL - yym813 := z.DecBinary() - _ = yym813 + yyv817 := &x.CacheAuthorizedTTL + yym818 := z.DecBinary() + _ = yym818 if false { - } else if z.HasExtensions() && z.DecExt(yyv812) { - } else if !yym813 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv812) + } else if z.HasExtensions() && z.DecExt(yyv817) { + } else if !yym818 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv817) } else { - z.DecFallback(yyv812, false) + z.DecFallback(yyv817, false) } } case "cacheUnauthorizedTTL": if r.TryDecodeAsNil() { x.CacheUnauthorizedTTL = pkg1_unversioned.Duration{} } else { - yyv814 := &x.CacheUnauthorizedTTL - yym815 := z.DecBinary() - _ = yym815 + yyv819 := &x.CacheUnauthorizedTTL + yym820 := z.DecBinary() + _ = yym820 if false { - } else if z.HasExtensions() && z.DecExt(yyv814) { - } else if !yym815 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv814) + } else if z.HasExtensions() && z.DecExt(yyv819) { + } else if !yym820 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv819) } else { - z.DecFallback(yyv814, false) + z.DecFallback(yyv819, false) } } default: - z.DecStructFieldNotFound(-1, yys811) - } // end switch yys811 - } // end for yyj811 + z.DecStructFieldNotFound(-1, yys816) + } // end switch yys816 + } // end for yyj816 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -7143,16 +7184,16 @@ func (x *KubeletWebhookAuthorization) codecDecodeSelfFromArray(l int, d *codec19 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj816 int - var yyb816 bool - var yyhl816 bool = l >= 0 - yyj816++ - if yyhl816 { - yyb816 = yyj816 > l + var yyj821 int + var yyb821 bool + var yyhl821 bool = l >= 0 + yyj821++ + if yyhl821 { + yyb821 = yyj821 > l } else { - yyb816 = r.CheckBreak() + yyb821 = r.CheckBreak() } - if yyb816 { + if yyb821 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7160,24 +7201,24 @@ func (x *KubeletWebhookAuthorization) codecDecodeSelfFromArray(l int, d *codec19 if r.TryDecodeAsNil() { x.CacheAuthorizedTTL = pkg1_unversioned.Duration{} } else { - yyv817 := &x.CacheAuthorizedTTL - yym818 := z.DecBinary() - _ = yym818 + yyv822 := &x.CacheAuthorizedTTL + yym823 := z.DecBinary() + _ = yym823 if false { - } else if z.HasExtensions() && z.DecExt(yyv817) { - } else if !yym818 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv817) + } else if z.HasExtensions() && z.DecExt(yyv822) { + } else if !yym823 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv822) } else { - z.DecFallback(yyv817, false) + z.DecFallback(yyv822, false) } } - yyj816++ - if yyhl816 { - yyb816 = yyj816 > l + yyj821++ + if yyhl821 { + yyb821 = yyj821 > l } else { - yyb816 = r.CheckBreak() + yyb821 = r.CheckBreak() } - if yyb816 { + if yyb821 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7185,29 +7226,29 @@ func (x *KubeletWebhookAuthorization) codecDecodeSelfFromArray(l int, d *codec19 if r.TryDecodeAsNil() { x.CacheUnauthorizedTTL = pkg1_unversioned.Duration{} } else { - yyv819 := &x.CacheUnauthorizedTTL - yym820 := z.DecBinary() - _ = yym820 + yyv824 := &x.CacheUnauthorizedTTL + yym825 := z.DecBinary() + _ = yym825 if false { - } else if z.HasExtensions() && z.DecExt(yyv819) { - } else if !yym820 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv819) + } else if z.HasExtensions() && z.DecExt(yyv824) { + } else if !yym825 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv824) } else { - z.DecFallback(yyv819, false) + z.DecFallback(yyv824, false) } } for { - yyj816++ - if yyhl816 { - yyb816 = yyj816 > l + yyj821++ + if yyhl821 { + yyb821 = yyj821 > l } else { - yyb816 = r.CheckBreak() + yyb821 = r.CheckBreak() } - if yyb816 { + if yyb821 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj816-1, "") + z.DecStructFieldNotFound(yyj821-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -7219,63 +7260,63 @@ func (x *KubeletAuthentication) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym821 := z.EncBinary() - _ = yym821 + yym826 := z.EncBinary() + _ = yym826 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep822 := !z.EncBinary() - yy2arr822 := z.EncBasicHandle().StructToArray - var yyq822 [3]bool - _, _, _ = yysep822, yyq822, yy2arr822 - const yyr822 bool = false - var yynn822 int - if yyr822 || yy2arr822 { + yysep827 := !z.EncBinary() + yy2arr827 := z.EncBasicHandle().StructToArray + var yyq827 [3]bool + _, _, _ = yysep827, yyq827, yy2arr827 + const yyr827 bool = false + var yynn827 int + if yyr827 || yy2arr827 { r.EncodeArrayStart(3) } else { - yynn822 = 3 - for _, b := range yyq822 { + yynn827 = 3 + for _, b := range yyq827 { if b { - yynn822++ + yynn827++ } } - r.EncodeMapStart(yynn822) - yynn822 = 0 + r.EncodeMapStart(yynn827) + yynn827 = 0 } - if yyr822 || yy2arr822 { + if yyr827 || yy2arr827 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy824 := &x.X509 - yy824.CodecEncodeSelf(e) + yy829 := &x.X509 + yy829.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("x509")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy825 := &x.X509 - yy825.CodecEncodeSelf(e) + yy830 := &x.X509 + yy830.CodecEncodeSelf(e) } - if yyr822 || yy2arr822 { + if yyr827 || yy2arr827 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy827 := &x.Webhook - yy827.CodecEncodeSelf(e) + yy832 := &x.Webhook + yy832.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("webhook")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy828 := &x.Webhook - yy828.CodecEncodeSelf(e) + yy833 := &x.Webhook + yy833.CodecEncodeSelf(e) } - if yyr822 || yy2arr822 { + if yyr827 || yy2arr827 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy830 := &x.Anonymous - yy830.CodecEncodeSelf(e) + yy835 := &x.Anonymous + yy835.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("anonymous")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy831 := &x.Anonymous - yy831.CodecEncodeSelf(e) + yy836 := &x.Anonymous + yy836.CodecEncodeSelf(e) } - if yyr822 || yy2arr822 { + if yyr827 || yy2arr827 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -7288,25 +7329,25 @@ func (x *KubeletAuthentication) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym832 := z.DecBinary() - _ = yym832 + yym837 := z.DecBinary() + _ = yym837 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct833 := r.ContainerType() - if yyct833 == codecSelferValueTypeMap1234 { - yyl833 := r.ReadMapStart() - if yyl833 == 0 { + yyct838 := r.ContainerType() + if yyct838 == codecSelferValueTypeMap1234 { + yyl838 := r.ReadMapStart() + if yyl838 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl833, d) + x.codecDecodeSelfFromMap(yyl838, d) } - } else if yyct833 == codecSelferValueTypeArray1234 { - yyl833 := r.ReadArrayStart() - if yyl833 == 0 { + } else if yyct838 == codecSelferValueTypeArray1234 { + yyl838 := r.ReadArrayStart() + if yyl838 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl833, d) + x.codecDecodeSelfFromArray(yyl838, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -7318,12 +7359,12 @@ func (x *KubeletAuthentication) codecDecodeSelfFromMap(l int, d *codec1978.Decod var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys834Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys834Slc - var yyhl834 bool = l >= 0 - for yyj834 := 0; ; yyj834++ { - if yyhl834 { - if yyj834 >= l { + var yys839Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys839Slc + var yyhl839 bool = l >= 0 + for yyj839 := 0; ; yyj839++ { + if yyhl839 { + if yyj839 >= l { break } } else { @@ -7332,35 +7373,35 @@ func (x *KubeletAuthentication) codecDecodeSelfFromMap(l int, d *codec1978.Decod } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys834Slc = r.DecodeBytes(yys834Slc, true, true) - yys834 := string(yys834Slc) + yys839Slc = r.DecodeBytes(yys839Slc, true, true) + yys839 := string(yys839Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys834 { + switch yys839 { case "x509": if r.TryDecodeAsNil() { x.X509 = KubeletX509Authentication{} } else { - yyv835 := &x.X509 - yyv835.CodecDecodeSelf(d) + yyv840 := &x.X509 + yyv840.CodecDecodeSelf(d) } case "webhook": if r.TryDecodeAsNil() { x.Webhook = KubeletWebhookAuthentication{} } else { - yyv836 := &x.Webhook - yyv836.CodecDecodeSelf(d) + yyv841 := &x.Webhook + yyv841.CodecDecodeSelf(d) } case "anonymous": if r.TryDecodeAsNil() { x.Anonymous = KubeletAnonymousAuthentication{} } else { - yyv837 := &x.Anonymous - yyv837.CodecDecodeSelf(d) + yyv842 := &x.Anonymous + yyv842.CodecDecodeSelf(d) } default: - z.DecStructFieldNotFound(-1, yys834) - } // end switch yys834 - } // end for yyj834 + z.DecStructFieldNotFound(-1, yys839) + } // end switch yys839 + } // end for yyj839 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -7368,16 +7409,16 @@ func (x *KubeletAuthentication) codecDecodeSelfFromArray(l int, d *codec1978.Dec var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj838 int - var yyb838 bool - var yyhl838 bool = l >= 0 - yyj838++ - if yyhl838 { - yyb838 = yyj838 > l + var yyj843 int + var yyb843 bool + var yyhl843 bool = l >= 0 + yyj843++ + if yyhl843 { + yyb843 = yyj843 > l } else { - yyb838 = r.CheckBreak() + yyb843 = r.CheckBreak() } - if yyb838 { + if yyb843 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7385,16 +7426,16 @@ func (x *KubeletAuthentication) codecDecodeSelfFromArray(l int, d *codec1978.Dec if r.TryDecodeAsNil() { x.X509 = KubeletX509Authentication{} } else { - yyv839 := &x.X509 - yyv839.CodecDecodeSelf(d) + yyv844 := &x.X509 + yyv844.CodecDecodeSelf(d) } - yyj838++ - if yyhl838 { - yyb838 = yyj838 > l + yyj843++ + if yyhl843 { + yyb843 = yyj843 > l } else { - yyb838 = r.CheckBreak() + yyb843 = r.CheckBreak() } - if yyb838 { + if yyb843 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7402,16 +7443,16 @@ func (x *KubeletAuthentication) codecDecodeSelfFromArray(l int, d *codec1978.Dec if r.TryDecodeAsNil() { x.Webhook = KubeletWebhookAuthentication{} } else { - yyv840 := &x.Webhook - yyv840.CodecDecodeSelf(d) + yyv845 := &x.Webhook + yyv845.CodecDecodeSelf(d) } - yyj838++ - if yyhl838 { - yyb838 = yyj838 > l + yyj843++ + if yyhl843 { + yyb843 = yyj843 > l } else { - yyb838 = r.CheckBreak() + yyb843 = r.CheckBreak() } - if yyb838 { + if yyb843 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7419,21 +7460,21 @@ func (x *KubeletAuthentication) codecDecodeSelfFromArray(l int, d *codec1978.Dec if r.TryDecodeAsNil() { x.Anonymous = KubeletAnonymousAuthentication{} } else { - yyv841 := &x.Anonymous - yyv841.CodecDecodeSelf(d) + yyv846 := &x.Anonymous + yyv846.CodecDecodeSelf(d) } for { - yyj838++ - if yyhl838 { - yyb838 = yyj838 > l + yyj843++ + if yyhl843 { + yyb843 = yyj843 > l } else { - yyb838 = r.CheckBreak() + yyb843 = r.CheckBreak() } - if yyb838 { + if yyb843 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj838-1, "") + z.DecStructFieldNotFound(yyj843-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -7445,33 +7486,33 @@ func (x *KubeletX509Authentication) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym842 := z.EncBinary() - _ = yym842 + yym847 := z.EncBinary() + _ = yym847 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep843 := !z.EncBinary() - yy2arr843 := z.EncBasicHandle().StructToArray - var yyq843 [1]bool - _, _, _ = yysep843, yyq843, yy2arr843 - const yyr843 bool = false - var yynn843 int - if yyr843 || yy2arr843 { + yysep848 := !z.EncBinary() + yy2arr848 := z.EncBasicHandle().StructToArray + var yyq848 [1]bool + _, _, _ = yysep848, yyq848, yy2arr848 + const yyr848 bool = false + var yynn848 int + if yyr848 || yy2arr848 { r.EncodeArrayStart(1) } else { - yynn843 = 1 - for _, b := range yyq843 { + yynn848 = 1 + for _, b := range yyq848 { if b { - yynn843++ + yynn848++ } } - r.EncodeMapStart(yynn843) - yynn843 = 0 + r.EncodeMapStart(yynn848) + yynn848 = 0 } - if yyr843 || yy2arr843 { + if yyr848 || yy2arr848 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym845 := z.EncBinary() - _ = yym845 + yym850 := z.EncBinary() + _ = yym850 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClientCAFile)) @@ -7480,14 +7521,14 @@ func (x *KubeletX509Authentication) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("clientCAFile")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym846 := z.EncBinary() - _ = yym846 + yym851 := z.EncBinary() + _ = yym851 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClientCAFile)) } } - if yyr843 || yy2arr843 { + if yyr848 || yy2arr848 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -7500,25 +7541,25 @@ func (x *KubeletX509Authentication) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym847 := z.DecBinary() - _ = yym847 + yym852 := z.DecBinary() + _ = yym852 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct848 := r.ContainerType() - if yyct848 == codecSelferValueTypeMap1234 { - yyl848 := r.ReadMapStart() - if yyl848 == 0 { + yyct853 := r.ContainerType() + if yyct853 == codecSelferValueTypeMap1234 { + yyl853 := r.ReadMapStart() + if yyl853 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl848, d) + x.codecDecodeSelfFromMap(yyl853, d) } - } else if yyct848 == codecSelferValueTypeArray1234 { - yyl848 := r.ReadArrayStart() - if yyl848 == 0 { + } else if yyct853 == codecSelferValueTypeArray1234 { + yyl853 := r.ReadArrayStart() + if yyl853 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl848, d) + x.codecDecodeSelfFromArray(yyl853, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -7530,12 +7571,12 @@ func (x *KubeletX509Authentication) codecDecodeSelfFromMap(l int, d *codec1978.D var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys849Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys849Slc - var yyhl849 bool = l >= 0 - for yyj849 := 0; ; yyj849++ { - if yyhl849 { - if yyj849 >= l { + var yys854Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys854Slc + var yyhl854 bool = l >= 0 + for yyj854 := 0; ; yyj854++ { + if yyhl854 { + if yyj854 >= l { break } } else { @@ -7544,10 +7585,10 @@ func (x *KubeletX509Authentication) codecDecodeSelfFromMap(l int, d *codec1978.D } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys849Slc = r.DecodeBytes(yys849Slc, true, true) - yys849 := string(yys849Slc) + yys854Slc = r.DecodeBytes(yys854Slc, true, true) + yys854 := string(yys854Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys849 { + switch yys854 { case "clientCAFile": if r.TryDecodeAsNil() { x.ClientCAFile = "" @@ -7555,9 +7596,9 @@ func (x *KubeletX509Authentication) codecDecodeSelfFromMap(l int, d *codec1978.D x.ClientCAFile = string(r.DecodeString()) } default: - z.DecStructFieldNotFound(-1, yys849) - } // end switch yys849 - } // end for yyj849 + z.DecStructFieldNotFound(-1, yys854) + } // end switch yys854 + } // end for yyj854 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -7565,16 +7606,16 @@ func (x *KubeletX509Authentication) codecDecodeSelfFromArray(l int, d *codec1978 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj851 int - var yyb851 bool - var yyhl851 bool = l >= 0 - yyj851++ - if yyhl851 { - yyb851 = yyj851 > l + var yyj856 int + var yyb856 bool + var yyhl856 bool = l >= 0 + yyj856++ + if yyhl856 { + yyb856 = yyj856 > l } else { - yyb851 = r.CheckBreak() + yyb856 = r.CheckBreak() } - if yyb851 { + if yyb856 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7585,17 +7626,17 @@ func (x *KubeletX509Authentication) codecDecodeSelfFromArray(l int, d *codec1978 x.ClientCAFile = string(r.DecodeString()) } for { - yyj851++ - if yyhl851 { - yyb851 = yyj851 > l + yyj856++ + if yyhl856 { + yyb856 = yyj856 > l } else { - yyb851 = r.CheckBreak() + yyb856 = r.CheckBreak() } - if yyb851 { + if yyb856 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj851-1, "") + z.DecStructFieldNotFound(yyj856-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -7607,33 +7648,33 @@ func (x *KubeletWebhookAuthentication) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym853 := z.EncBinary() - _ = yym853 + yym858 := z.EncBinary() + _ = yym858 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep854 := !z.EncBinary() - yy2arr854 := z.EncBasicHandle().StructToArray - var yyq854 [2]bool - _, _, _ = yysep854, yyq854, yy2arr854 - const yyr854 bool = false - var yynn854 int - if yyr854 || yy2arr854 { + yysep859 := !z.EncBinary() + yy2arr859 := z.EncBasicHandle().StructToArray + var yyq859 [2]bool + _, _, _ = yysep859, yyq859, yy2arr859 + const yyr859 bool = false + var yynn859 int + if yyr859 || yy2arr859 { r.EncodeArrayStart(2) } else { - yynn854 = 2 - for _, b := range yyq854 { + yynn859 = 2 + for _, b := range yyq859 { if b { - yynn854++ + yynn859++ } } - r.EncodeMapStart(yynn854) - yynn854 = 0 + r.EncodeMapStart(yynn859) + yynn859 = 0 } - if yyr854 || yy2arr854 { + if yyr859 || yy2arr859 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym856 := z.EncBinary() - _ = yym856 + yym861 := z.EncBinary() + _ = yym861 if false { } else { r.EncodeBool(bool(x.Enabled)) @@ -7642,41 +7683,41 @@ func (x *KubeletWebhookAuthentication) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enabled")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym857 := z.EncBinary() - _ = yym857 + yym862 := z.EncBinary() + _ = yym862 if false { } else { r.EncodeBool(bool(x.Enabled)) } } - if yyr854 || yy2arr854 { + if yyr859 || yy2arr859 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy859 := &x.CacheTTL - yym860 := z.EncBinary() - _ = yym860 + yy864 := &x.CacheTTL + yym865 := z.EncBinary() + _ = yym865 if false { - } else if z.HasExtensions() && z.EncExt(yy859) { - } else if !yym860 && z.IsJSONHandle() { - z.EncJSONMarshal(yy859) + } else if z.HasExtensions() && z.EncExt(yy864) { + } else if !yym865 && z.IsJSONHandle() { + z.EncJSONMarshal(yy864) } else { - z.EncFallback(yy859) + z.EncFallback(yy864) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("cacheTTL")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy861 := &x.CacheTTL - yym862 := z.EncBinary() - _ = yym862 + yy866 := &x.CacheTTL + yym867 := z.EncBinary() + _ = yym867 if false { - } else if z.HasExtensions() && z.EncExt(yy861) { - } else if !yym862 && z.IsJSONHandle() { - z.EncJSONMarshal(yy861) + } else if z.HasExtensions() && z.EncExt(yy866) { + } else if !yym867 && z.IsJSONHandle() { + z.EncJSONMarshal(yy866) } else { - z.EncFallback(yy861) + z.EncFallback(yy866) } } - if yyr854 || yy2arr854 { + if yyr859 || yy2arr859 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -7689,25 +7730,25 @@ func (x *KubeletWebhookAuthentication) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym863 := z.DecBinary() - _ = yym863 + yym868 := z.DecBinary() + _ = yym868 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct864 := r.ContainerType() - if yyct864 == codecSelferValueTypeMap1234 { - yyl864 := r.ReadMapStart() - if yyl864 == 0 { + yyct869 := r.ContainerType() + if yyct869 == codecSelferValueTypeMap1234 { + yyl869 := r.ReadMapStart() + if yyl869 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl864, d) + x.codecDecodeSelfFromMap(yyl869, d) } - } else if yyct864 == codecSelferValueTypeArray1234 { - yyl864 := r.ReadArrayStart() - if yyl864 == 0 { + } else if yyct869 == codecSelferValueTypeArray1234 { + yyl869 := r.ReadArrayStart() + if yyl869 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl864, d) + x.codecDecodeSelfFromArray(yyl869, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -7719,12 +7760,12 @@ func (x *KubeletWebhookAuthentication) codecDecodeSelfFromMap(l int, d *codec197 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys865Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys865Slc - var yyhl865 bool = l >= 0 - for yyj865 := 0; ; yyj865++ { - if yyhl865 { - if yyj865 >= l { + var yys870Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys870Slc + var yyhl870 bool = l >= 0 + for yyj870 := 0; ; yyj870++ { + if yyhl870 { + if yyj870 >= l { break } } else { @@ -7733,10 +7774,10 @@ func (x *KubeletWebhookAuthentication) codecDecodeSelfFromMap(l int, d *codec197 } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys865Slc = r.DecodeBytes(yys865Slc, true, true) - yys865 := string(yys865Slc) + yys870Slc = r.DecodeBytes(yys870Slc, true, true) + yys870 := string(yys870Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys865 { + switch yys870 { case "enabled": if r.TryDecodeAsNil() { x.Enabled = false @@ -7747,21 +7788,21 @@ func (x *KubeletWebhookAuthentication) codecDecodeSelfFromMap(l int, d *codec197 if r.TryDecodeAsNil() { x.CacheTTL = pkg1_unversioned.Duration{} } else { - yyv867 := &x.CacheTTL - yym868 := z.DecBinary() - _ = yym868 + yyv872 := &x.CacheTTL + yym873 := z.DecBinary() + _ = yym873 if false { - } else if z.HasExtensions() && z.DecExt(yyv867) { - } else if !yym868 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv867) + } else if z.HasExtensions() && z.DecExt(yyv872) { + } else if !yym873 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv872) } else { - z.DecFallback(yyv867, false) + z.DecFallback(yyv872, false) } } default: - z.DecStructFieldNotFound(-1, yys865) - } // end switch yys865 - } // end for yyj865 + z.DecStructFieldNotFound(-1, yys870) + } // end switch yys870 + } // end for yyj870 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -7769,16 +7810,16 @@ func (x *KubeletWebhookAuthentication) codecDecodeSelfFromArray(l int, d *codec1 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj869 int - var yyb869 bool - var yyhl869 bool = l >= 0 - yyj869++ - if yyhl869 { - yyb869 = yyj869 > l + var yyj874 int + var yyb874 bool + var yyhl874 bool = l >= 0 + yyj874++ + if yyhl874 { + yyb874 = yyj874 > l } else { - yyb869 = r.CheckBreak() + yyb874 = r.CheckBreak() } - if yyb869 { + if yyb874 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7788,13 +7829,13 @@ func (x *KubeletWebhookAuthentication) codecDecodeSelfFromArray(l int, d *codec1 } else { x.Enabled = bool(r.DecodeBool()) } - yyj869++ - if yyhl869 { - yyb869 = yyj869 > l + yyj874++ + if yyhl874 { + yyb874 = yyj874 > l } else { - yyb869 = r.CheckBreak() + yyb874 = r.CheckBreak() } - if yyb869 { + if yyb874 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7802,29 +7843,29 @@ func (x *KubeletWebhookAuthentication) codecDecodeSelfFromArray(l int, d *codec1 if r.TryDecodeAsNil() { x.CacheTTL = pkg1_unversioned.Duration{} } else { - yyv871 := &x.CacheTTL - yym872 := z.DecBinary() - _ = yym872 + yyv876 := &x.CacheTTL + yym877 := z.DecBinary() + _ = yym877 if false { - } else if z.HasExtensions() && z.DecExt(yyv871) { - } else if !yym872 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv871) + } else if z.HasExtensions() && z.DecExt(yyv876) { + } else if !yym877 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv876) } else { - z.DecFallback(yyv871, false) + z.DecFallback(yyv876, false) } } for { - yyj869++ - if yyhl869 { - yyb869 = yyj869 > l + yyj874++ + if yyhl874 { + yyb874 = yyj874 > l } else { - yyb869 = r.CheckBreak() + yyb874 = r.CheckBreak() } - if yyb869 { + if yyb874 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj869-1, "") + z.DecStructFieldNotFound(yyj874-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -7836,33 +7877,33 @@ func (x *KubeletAnonymousAuthentication) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym873 := z.EncBinary() - _ = yym873 + yym878 := z.EncBinary() + _ = yym878 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep874 := !z.EncBinary() - yy2arr874 := z.EncBasicHandle().StructToArray - var yyq874 [1]bool - _, _, _ = yysep874, yyq874, yy2arr874 - const yyr874 bool = false - var yynn874 int - if yyr874 || yy2arr874 { + yysep879 := !z.EncBinary() + yy2arr879 := z.EncBasicHandle().StructToArray + var yyq879 [1]bool + _, _, _ = yysep879, yyq879, yy2arr879 + const yyr879 bool = false + var yynn879 int + if yyr879 || yy2arr879 { r.EncodeArrayStart(1) } else { - yynn874 = 1 - for _, b := range yyq874 { + yynn879 = 1 + for _, b := range yyq879 { if b { - yynn874++ + yynn879++ } } - r.EncodeMapStart(yynn874) - yynn874 = 0 + r.EncodeMapStart(yynn879) + yynn879 = 0 } - if yyr874 || yy2arr874 { + if yyr879 || yy2arr879 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym876 := z.EncBinary() - _ = yym876 + yym881 := z.EncBinary() + _ = yym881 if false { } else { r.EncodeBool(bool(x.Enabled)) @@ -7871,14 +7912,14 @@ func (x *KubeletAnonymousAuthentication) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enabled")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym877 := z.EncBinary() - _ = yym877 + yym882 := z.EncBinary() + _ = yym882 if false { } else { r.EncodeBool(bool(x.Enabled)) } } - if yyr874 || yy2arr874 { + if yyr879 || yy2arr879 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -7891,25 +7932,25 @@ func (x *KubeletAnonymousAuthentication) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym878 := z.DecBinary() - _ = yym878 + yym883 := z.DecBinary() + _ = yym883 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct879 := r.ContainerType() - if yyct879 == codecSelferValueTypeMap1234 { - yyl879 := r.ReadMapStart() - if yyl879 == 0 { + yyct884 := r.ContainerType() + if yyct884 == codecSelferValueTypeMap1234 { + yyl884 := r.ReadMapStart() + if yyl884 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl879, d) + x.codecDecodeSelfFromMap(yyl884, d) } - } else if yyct879 == codecSelferValueTypeArray1234 { - yyl879 := r.ReadArrayStart() - if yyl879 == 0 { + } else if yyct884 == codecSelferValueTypeArray1234 { + yyl884 := r.ReadArrayStart() + if yyl884 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl879, d) + x.codecDecodeSelfFromArray(yyl884, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -7921,12 +7962,12 @@ func (x *KubeletAnonymousAuthentication) codecDecodeSelfFromMap(l int, d *codec1 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys880Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys880Slc - var yyhl880 bool = l >= 0 - for yyj880 := 0; ; yyj880++ { - if yyhl880 { - if yyj880 >= l { + var yys885Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys885Slc + var yyhl885 bool = l >= 0 + for yyj885 := 0; ; yyj885++ { + if yyhl885 { + if yyj885 >= l { break } } else { @@ -7935,10 +7976,10 @@ func (x *KubeletAnonymousAuthentication) codecDecodeSelfFromMap(l int, d *codec1 } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys880Slc = r.DecodeBytes(yys880Slc, true, true) - yys880 := string(yys880Slc) + yys885Slc = r.DecodeBytes(yys885Slc, true, true) + yys885 := string(yys885Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys880 { + switch yys885 { case "enabled": if r.TryDecodeAsNil() { x.Enabled = false @@ -7946,9 +7987,9 @@ func (x *KubeletAnonymousAuthentication) codecDecodeSelfFromMap(l int, d *codec1 x.Enabled = bool(r.DecodeBool()) } default: - z.DecStructFieldNotFound(-1, yys880) - } // end switch yys880 - } // end for yyj880 + z.DecStructFieldNotFound(-1, yys885) + } // end switch yys885 + } // end for yyj885 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -7956,16 +7997,16 @@ func (x *KubeletAnonymousAuthentication) codecDecodeSelfFromArray(l int, d *code var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj882 int - var yyb882 bool - var yyhl882 bool = l >= 0 - yyj882++ - if yyhl882 { - yyb882 = yyj882 > l + var yyj887 int + var yyb887 bool + var yyhl887 bool = l >= 0 + yyj887++ + if yyhl887 { + yyb887 = yyj887 > l } else { - yyb882 = r.CheckBreak() + yyb887 = r.CheckBreak() } - if yyb882 { + if yyb887 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -7976,17 +8017,17 @@ func (x *KubeletAnonymousAuthentication) codecDecodeSelfFromArray(l int, d *code x.Enabled = bool(r.DecodeBool()) } for { - yyj882++ - if yyhl882 { - yyb882 = yyj882 > l + yyj887++ + if yyhl887 { + yyb887 = yyj887 > l } else { - yyb882 = r.CheckBreak() + yyb887 = r.CheckBreak() } - if yyb882 { + if yyb887 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj882-1, "") + z.DecStructFieldNotFound(yyj887-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -7998,36 +8039,36 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym884 := z.EncBinary() - _ = yym884 + yym889 := z.EncBinary() + _ = yym889 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep885 := !z.EncBinary() - yy2arr885 := z.EncBasicHandle().StructToArray - var yyq885 [14]bool - _, _, _ = yysep885, yyq885, yy2arr885 - const yyr885 bool = false - yyq885[0] = x.Kind != "" - yyq885[1] = x.APIVersion != "" - var yynn885 int - if yyr885 || yy2arr885 { + yysep890 := !z.EncBinary() + yy2arr890 := z.EncBasicHandle().StructToArray + var yyq890 [14]bool + _, _, _ = yysep890, yyq890, yy2arr890 + const yyr890 bool = false + yyq890[0] = x.Kind != "" + yyq890[1] = x.APIVersion != "" + var yynn890 int + if yyr890 || yy2arr890 { r.EncodeArrayStart(14) } else { - yynn885 = 12 - for _, b := range yyq885 { + yynn890 = 12 + for _, b := range yyq890 { if b { - yynn885++ + yynn890++ } } - r.EncodeMapStart(yynn885) - yynn885 = 0 + r.EncodeMapStart(yynn890) + yynn890 = 0 } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq885[0] { - yym887 := z.EncBinary() - _ = yym887 + if yyq890[0] { + yym892 := z.EncBinary() + _ = yym892 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) @@ -8036,23 +8077,23 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { r.EncodeString(codecSelferC_UTF81234, "") } } else { - if yyq885[0] { + if yyq890[0] { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("kind")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym888 := z.EncBinary() - _ = yym888 + yym893 := z.EncBinary() + _ = yym893 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) } } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq885[1] { - yym890 := z.EncBinary() - _ = yym890 + if yyq890[1] { + yym895 := z.EncBinary() + _ = yym895 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) @@ -8061,22 +8102,22 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { r.EncodeString(codecSelferC_UTF81234, "") } } else { - if yyq885[1] { + if yyq890[1] { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym891 := z.EncBinary() - _ = yym891 + yym896 := z.EncBinary() + _ = yym896 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) } } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym893 := z.EncBinary() - _ = yym893 + yym898 := z.EncBinary() + _ = yym898 if false { } else { r.EncodeInt(int64(x.Port)) @@ -8085,17 +8126,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("port")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym894 := z.EncBinary() - _ = yym894 + yym899 := z.EncBinary() + _ = yym899 if false { } else { r.EncodeInt(int64(x.Port)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym896 := z.EncBinary() - _ = yym896 + yym901 := z.EncBinary() + _ = yym901 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Address)) @@ -8104,17 +8145,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("address")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym897 := z.EncBinary() - _ = yym897 + yym902 := z.EncBinary() + _ = yym902 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Address)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym899 := z.EncBinary() - _ = yym899 + yym904 := z.EncBinary() + _ = yym904 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.AlgorithmProvider)) @@ -8123,17 +8164,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("algorithmProvider")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym900 := z.EncBinary() - _ = yym900 + yym905 := z.EncBinary() + _ = yym905 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.AlgorithmProvider)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym902 := z.EncBinary() - _ = yym902 + yym907 := z.EncBinary() + _ = yym907 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.PolicyConfigFile)) @@ -8142,17 +8183,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("policyConfigFile")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym903 := z.EncBinary() - _ = yym903 + yym908 := z.EncBinary() + _ = yym908 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.PolicyConfigFile)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym905 := z.EncBinary() - _ = yym905 + yym910 := z.EncBinary() + _ = yym910 if false { } else { r.EncodeBool(bool(x.EnableProfiling)) @@ -8161,17 +8202,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enableProfiling")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym906 := z.EncBinary() - _ = yym906 + yym911 := z.EncBinary() + _ = yym911 if false { } else { r.EncodeBool(bool(x.EnableProfiling)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym908 := z.EncBinary() - _ = yym908 + yym913 := z.EncBinary() + _ = yym913 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ContentType)) @@ -8180,17 +8221,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("contentType")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym909 := z.EncBinary() - _ = yym909 + yym914 := z.EncBinary() + _ = yym914 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ContentType)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym911 := z.EncBinary() - _ = yym911 + yym916 := z.EncBinary() + _ = yym916 if false { } else { r.EncodeFloat32(float32(x.KubeAPIQPS)) @@ -8199,17 +8240,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("kubeAPIQPS")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym912 := z.EncBinary() - _ = yym912 + yym917 := z.EncBinary() + _ = yym917 if false { } else { r.EncodeFloat32(float32(x.KubeAPIQPS)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym914 := z.EncBinary() - _ = yym914 + yym919 := z.EncBinary() + _ = yym919 if false { } else { r.EncodeInt(int64(x.KubeAPIBurst)) @@ -8218,17 +8259,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("kubeAPIBurst")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym915 := z.EncBinary() - _ = yym915 + yym920 := z.EncBinary() + _ = yym920 if false { } else { r.EncodeInt(int64(x.KubeAPIBurst)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym917 := z.EncBinary() - _ = yym917 + yym922 := z.EncBinary() + _ = yym922 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.SchedulerName)) @@ -8237,17 +8278,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("schedulerName")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym918 := z.EncBinary() - _ = yym918 + yym923 := z.EncBinary() + _ = yym923 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.SchedulerName)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym920 := z.EncBinary() - _ = yym920 + yym925 := z.EncBinary() + _ = yym925 if false { } else { r.EncodeInt(int64(x.HardPodAffinitySymmetricWeight)) @@ -8256,17 +8297,17 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("hardPodAffinitySymmetricWeight")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym921 := z.EncBinary() - _ = yym921 + yym926 := z.EncBinary() + _ = yym926 if false { } else { r.EncodeInt(int64(x.HardPodAffinitySymmetricWeight)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym923 := z.EncBinary() - _ = yym923 + yym928 := z.EncBinary() + _ = yym928 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.FailureDomains)) @@ -8275,25 +8316,25 @@ func (x *KubeSchedulerConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("failureDomains")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym924 := z.EncBinary() - _ = yym924 + yym929 := z.EncBinary() + _ = yym929 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.FailureDomains)) } } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy926 := &x.LeaderElection - yy926.CodecEncodeSelf(e) + yy931 := &x.LeaderElection + yy931.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("leaderElection")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy927 := &x.LeaderElection - yy927.CodecEncodeSelf(e) + yy932 := &x.LeaderElection + yy932.CodecEncodeSelf(e) } - if yyr885 || yy2arr885 { + if yyr890 || yy2arr890 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -8306,25 +8347,25 @@ func (x *KubeSchedulerConfiguration) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym928 := z.DecBinary() - _ = yym928 + yym933 := z.DecBinary() + _ = yym933 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct929 := r.ContainerType() - if yyct929 == codecSelferValueTypeMap1234 { - yyl929 := r.ReadMapStart() - if yyl929 == 0 { + yyct934 := r.ContainerType() + if yyct934 == codecSelferValueTypeMap1234 { + yyl934 := r.ReadMapStart() + if yyl934 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl929, d) + x.codecDecodeSelfFromMap(yyl934, d) } - } else if yyct929 == codecSelferValueTypeArray1234 { - yyl929 := r.ReadArrayStart() - if yyl929 == 0 { + } else if yyct934 == codecSelferValueTypeArray1234 { + yyl934 := r.ReadArrayStart() + if yyl934 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl929, d) + x.codecDecodeSelfFromArray(yyl934, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -8336,12 +8377,12 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromMap(l int, d *codec1978. var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys930Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys930Slc - var yyhl930 bool = l >= 0 - for yyj930 := 0; ; yyj930++ { - if yyhl930 { - if yyj930 >= l { + var yys935Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys935Slc + var yyhl935 bool = l >= 0 + for yyj935 := 0; ; yyj935++ { + if yyhl935 { + if yyj935 >= l { break } } else { @@ -8350,10 +8391,10 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromMap(l int, d *codec1978. } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys930Slc = r.DecodeBytes(yys930Slc, true, true) - yys930 := string(yys930Slc) + yys935Slc = r.DecodeBytes(yys935Slc, true, true) + yys935 := string(yys935Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys930 { + switch yys935 { case "kind": if r.TryDecodeAsNil() { x.Kind = "" @@ -8436,13 +8477,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromMap(l int, d *codec1978. if r.TryDecodeAsNil() { x.LeaderElection = LeaderElectionConfiguration{} } else { - yyv944 := &x.LeaderElection - yyv944.CodecDecodeSelf(d) + yyv949 := &x.LeaderElection + yyv949.CodecDecodeSelf(d) } default: - z.DecStructFieldNotFound(-1, yys930) - } // end switch yys930 - } // end for yyj930 + z.DecStructFieldNotFound(-1, yys935) + } // end switch yys935 + } // end for yyj935 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -8450,16 +8491,16 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj945 int - var yyb945 bool - var yyhl945 bool = l >= 0 - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + var yyj950 int + var yyb950 bool + var yyhl950 bool = l >= 0 + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8469,13 +8510,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.Kind = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8485,13 +8526,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.APIVersion = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8501,13 +8542,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.Port = int32(r.DecodeInt(32)) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8517,13 +8558,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.Address = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8533,13 +8574,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.AlgorithmProvider = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8549,13 +8590,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.PolicyConfigFile = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8565,13 +8606,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.EnableProfiling = bool(r.DecodeBool()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8581,13 +8622,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.ContentType = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8597,13 +8638,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.KubeAPIQPS = float32(r.DecodeFloat(true)) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8613,13 +8654,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.KubeAPIBurst = int32(r.DecodeInt(32)) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8629,13 +8670,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.SchedulerName = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8645,13 +8686,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.HardPodAffinitySymmetricWeight = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8661,13 +8702,13 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 } else { x.FailureDomains = string(r.DecodeString()) } - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8675,21 +8716,21 @@ func (x *KubeSchedulerConfiguration) codecDecodeSelfFromArray(l int, d *codec197 if r.TryDecodeAsNil() { x.LeaderElection = LeaderElectionConfiguration{} } else { - yyv959 := &x.LeaderElection - yyv959.CodecDecodeSelf(d) + yyv964 := &x.LeaderElection + yyv964.CodecDecodeSelf(d) } for { - yyj945++ - if yyhl945 { - yyb945 = yyj945 > l + yyj950++ + if yyhl950 { + yyb950 = yyj950 > l } else { - yyb945 = r.CheckBreak() + yyb950 = r.CheckBreak() } - if yyb945 { + if yyb950 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj945-1, "") + z.DecStructFieldNotFound(yyj950-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -8701,33 +8742,33 @@ func (x *LeaderElectionConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym960 := z.EncBinary() - _ = yym960 + yym965 := z.EncBinary() + _ = yym965 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep961 := !z.EncBinary() - yy2arr961 := z.EncBasicHandle().StructToArray - var yyq961 [4]bool - _, _, _ = yysep961, yyq961, yy2arr961 - const yyr961 bool = false - var yynn961 int - if yyr961 || yy2arr961 { + yysep966 := !z.EncBinary() + yy2arr966 := z.EncBasicHandle().StructToArray + var yyq966 [4]bool + _, _, _ = yysep966, yyq966, yy2arr966 + const yyr966 bool = false + var yynn966 int + if yyr966 || yy2arr966 { r.EncodeArrayStart(4) } else { - yynn961 = 4 - for _, b := range yyq961 { + yynn966 = 4 + for _, b := range yyq966 { if b { - yynn961++ + yynn966++ } } - r.EncodeMapStart(yynn961) - yynn961 = 0 + r.EncodeMapStart(yynn966) + yynn966 = 0 } - if yyr961 || yy2arr961 { + if yyr966 || yy2arr966 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym963 := z.EncBinary() - _ = yym963 + yym968 := z.EncBinary() + _ = yym968 if false { } else { r.EncodeBool(bool(x.LeaderElect)) @@ -8736,43 +8777,16 @@ func (x *LeaderElectionConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("leaderElect")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym964 := z.EncBinary() - _ = yym964 + yym969 := z.EncBinary() + _ = yym969 if false { } else { r.EncodeBool(bool(x.LeaderElect)) } } - if yyr961 || yy2arr961 { + if yyr966 || yy2arr966 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy966 := &x.LeaseDuration - yym967 := z.EncBinary() - _ = yym967 - if false { - } else if z.HasExtensions() && z.EncExt(yy966) { - } else if !yym967 && z.IsJSONHandle() { - z.EncJSONMarshal(yy966) - } else { - z.EncFallback(yy966) - } - } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("leaseDuration")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy968 := &x.LeaseDuration - yym969 := z.EncBinary() - _ = yym969 - if false { - } else if z.HasExtensions() && z.EncExt(yy968) { - } else if !yym969 && z.IsJSONHandle() { - z.EncJSONMarshal(yy968) - } else { - z.EncFallback(yy968) - } - } - if yyr961 || yy2arr961 { - z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy971 := &x.RenewDeadline + yy971 := &x.LeaseDuration yym972 := z.EncBinary() _ = yym972 if false { @@ -8784,9 +8798,9 @@ func (x *LeaderElectionConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("renewDeadline")) + r.EncodeString(codecSelferC_UTF81234, string("leaseDuration")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy973 := &x.RenewDeadline + yy973 := &x.LeaseDuration yym974 := z.EncBinary() _ = yym974 if false { @@ -8797,9 +8811,9 @@ func (x *LeaderElectionConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncFallback(yy973) } } - if yyr961 || yy2arr961 { + if yyr966 || yy2arr966 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy976 := &x.RetryPeriod + yy976 := &x.RenewDeadline yym977 := z.EncBinary() _ = yym977 if false { @@ -8811,9 +8825,9 @@ func (x *LeaderElectionConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("retryPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("renewDeadline")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy978 := &x.RetryPeriod + yy978 := &x.RenewDeadline yym979 := z.EncBinary() _ = yym979 if false { @@ -8824,7 +8838,34 @@ func (x *LeaderElectionConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncFallback(yy978) } } - if yyr961 || yy2arr961 { + if yyr966 || yy2arr966 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy981 := &x.RetryPeriod + yym982 := z.EncBinary() + _ = yym982 + if false { + } else if z.HasExtensions() && z.EncExt(yy981) { + } else if !yym982 && z.IsJSONHandle() { + z.EncJSONMarshal(yy981) + } else { + z.EncFallback(yy981) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("retryPeriod")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy983 := &x.RetryPeriod + yym984 := z.EncBinary() + _ = yym984 + if false { + } else if z.HasExtensions() && z.EncExt(yy983) { + } else if !yym984 && z.IsJSONHandle() { + z.EncJSONMarshal(yy983) + } else { + z.EncFallback(yy983) + } + } + if yyr966 || yy2arr966 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -8837,25 +8878,25 @@ func (x *LeaderElectionConfiguration) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym980 := z.DecBinary() - _ = yym980 + yym985 := z.DecBinary() + _ = yym985 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct981 := r.ContainerType() - if yyct981 == codecSelferValueTypeMap1234 { - yyl981 := r.ReadMapStart() - if yyl981 == 0 { + yyct986 := r.ContainerType() + if yyct986 == codecSelferValueTypeMap1234 { + yyl986 := r.ReadMapStart() + if yyl986 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl981, d) + x.codecDecodeSelfFromMap(yyl986, d) } - } else if yyct981 == codecSelferValueTypeArray1234 { - yyl981 := r.ReadArrayStart() - if yyl981 == 0 { + } else if yyct986 == codecSelferValueTypeArray1234 { + yyl986 := r.ReadArrayStart() + if yyl986 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl981, d) + x.codecDecodeSelfFromArray(yyl986, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -8867,12 +8908,12 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromMap(l int, d *codec1978 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys982Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys982Slc - var yyhl982 bool = l >= 0 - for yyj982 := 0; ; yyj982++ { - if yyhl982 { - if yyj982 >= l { + var yys987Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys987Slc + var yyhl987 bool = l >= 0 + for yyj987 := 0; ; yyj987++ { + if yyhl987 { + if yyj987 >= l { break } } else { @@ -8881,10 +8922,10 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromMap(l int, d *codec1978 } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys982Slc = r.DecodeBytes(yys982Slc, true, true) - yys982 := string(yys982Slc) + yys987Slc = r.DecodeBytes(yys987Slc, true, true) + yys987 := string(yys987Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys982 { + switch yys987 { case "leaderElect": if r.TryDecodeAsNil() { x.LeaderElect = false @@ -8895,51 +8936,51 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromMap(l int, d *codec1978 if r.TryDecodeAsNil() { x.LeaseDuration = pkg1_unversioned.Duration{} } else { - yyv984 := &x.LeaseDuration - yym985 := z.DecBinary() - _ = yym985 + yyv989 := &x.LeaseDuration + yym990 := z.DecBinary() + _ = yym990 if false { - } else if z.HasExtensions() && z.DecExt(yyv984) { - } else if !yym985 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv984) + } else if z.HasExtensions() && z.DecExt(yyv989) { + } else if !yym990 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv989) } else { - z.DecFallback(yyv984, false) + z.DecFallback(yyv989, false) } } case "renewDeadline": if r.TryDecodeAsNil() { x.RenewDeadline = pkg1_unversioned.Duration{} } else { - yyv986 := &x.RenewDeadline - yym987 := z.DecBinary() - _ = yym987 + yyv991 := &x.RenewDeadline + yym992 := z.DecBinary() + _ = yym992 if false { - } else if z.HasExtensions() && z.DecExt(yyv986) { - } else if !yym987 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv986) + } else if z.HasExtensions() && z.DecExt(yyv991) { + } else if !yym992 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv991) } else { - z.DecFallback(yyv986, false) + z.DecFallback(yyv991, false) } } case "retryPeriod": if r.TryDecodeAsNil() { x.RetryPeriod = pkg1_unversioned.Duration{} } else { - yyv988 := &x.RetryPeriod - yym989 := z.DecBinary() - _ = yym989 + yyv993 := &x.RetryPeriod + yym994 := z.DecBinary() + _ = yym994 if false { - } else if z.HasExtensions() && z.DecExt(yyv988) { - } else if !yym989 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv988) + } else if z.HasExtensions() && z.DecExt(yyv993) { + } else if !yym994 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv993) } else { - z.DecFallback(yyv988, false) + z.DecFallback(yyv993, false) } } default: - z.DecStructFieldNotFound(-1, yys982) - } // end switch yys982 - } // end for yyj982 + z.DecStructFieldNotFound(-1, yys987) + } // end switch yys987 + } // end for yyj987 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -8947,16 +8988,16 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromArray(l int, d *codec19 var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj990 int - var yyb990 bool - var yyhl990 bool = l >= 0 - yyj990++ - if yyhl990 { - yyb990 = yyj990 > l + var yyj995 int + var yyb995 bool + var yyhl995 bool = l >= 0 + yyj995++ + if yyhl995 { + yyb995 = yyj995 > l } else { - yyb990 = r.CheckBreak() + yyb995 = r.CheckBreak() } - if yyb990 { + if yyb995 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8966,13 +9007,13 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromArray(l int, d *codec19 } else { x.LeaderElect = bool(r.DecodeBool()) } - yyj990++ - if yyhl990 { - yyb990 = yyj990 > l + yyj995++ + if yyhl995 { + yyb995 = yyj995 > l } else { - yyb990 = r.CheckBreak() + yyb995 = r.CheckBreak() } - if yyb990 { + if yyb995 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -8980,24 +9021,24 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromArray(l int, d *codec19 if r.TryDecodeAsNil() { x.LeaseDuration = pkg1_unversioned.Duration{} } else { - yyv992 := &x.LeaseDuration - yym993 := z.DecBinary() - _ = yym993 + yyv997 := &x.LeaseDuration + yym998 := z.DecBinary() + _ = yym998 if false { - } else if z.HasExtensions() && z.DecExt(yyv992) { - } else if !yym993 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv992) + } else if z.HasExtensions() && z.DecExt(yyv997) { + } else if !yym998 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv997) } else { - z.DecFallback(yyv992, false) + z.DecFallback(yyv997, false) } } - yyj990++ - if yyhl990 { - yyb990 = yyj990 > l + yyj995++ + if yyhl995 { + yyb995 = yyj995 > l } else { - yyb990 = r.CheckBreak() + yyb995 = r.CheckBreak() } - if yyb990 { + if yyb995 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -9005,24 +9046,24 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromArray(l int, d *codec19 if r.TryDecodeAsNil() { x.RenewDeadline = pkg1_unversioned.Duration{} } else { - yyv994 := &x.RenewDeadline - yym995 := z.DecBinary() - _ = yym995 + yyv999 := &x.RenewDeadline + yym1000 := z.DecBinary() + _ = yym1000 if false { - } else if z.HasExtensions() && z.DecExt(yyv994) { - } else if !yym995 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv994) + } else if z.HasExtensions() && z.DecExt(yyv999) { + } else if !yym1000 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv999) } else { - z.DecFallback(yyv994, false) + z.DecFallback(yyv999, false) } } - yyj990++ - if yyhl990 { - yyb990 = yyj990 > l + yyj995++ + if yyhl995 { + yyb995 = yyj995 > l } else { - yyb990 = r.CheckBreak() + yyb995 = r.CheckBreak() } - if yyb990 { + if yyb995 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -9030,29 +9071,29 @@ func (x *LeaderElectionConfiguration) codecDecodeSelfFromArray(l int, d *codec19 if r.TryDecodeAsNil() { x.RetryPeriod = pkg1_unversioned.Duration{} } else { - yyv996 := &x.RetryPeriod - yym997 := z.DecBinary() - _ = yym997 + yyv1001 := &x.RetryPeriod + yym1002 := z.DecBinary() + _ = yym1002 if false { - } else if z.HasExtensions() && z.DecExt(yyv996) { - } else if !yym997 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv996) + } else if z.HasExtensions() && z.DecExt(yyv1001) { + } else if !yym1002 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1001) } else { - z.DecFallback(yyv996, false) + z.DecFallback(yyv1001, false) } } for { - yyj990++ - if yyhl990 { - yyb990 = yyj990 > l + yyj995++ + if yyhl995 { + yyb995 = yyj995 > l } else { - yyb990 = r.CheckBreak() + yyb995 = r.CheckBreak() } - if yyb990 { + if yyb995 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj990-1, "") + z.DecStructFieldNotFound(yyj995-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -9064,36 +9105,36 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode if x == nil { r.EncodeNil() } else { - yym998 := z.EncBinary() - _ = yym998 + yym1003 := z.EncBinary() + _ = yym1003 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep999 := !z.EncBinary() - yy2arr999 := z.EncBasicHandle().StructToArray - var yyq999 [61]bool - _, _, _ = yysep999, yyq999, yy2arr999 - const yyr999 bool = false - yyq999[0] = x.Kind != "" - yyq999[1] = x.APIVersion != "" - var yynn999 int - if yyr999 || yy2arr999 { + yysep1004 := !z.EncBinary() + yy2arr1004 := z.EncBasicHandle().StructToArray + var yyq1004 [61]bool + _, _, _ = yysep1004, yyq1004, yy2arr1004 + const yyr1004 bool = false + yyq1004[0] = x.Kind != "" + yyq1004[1] = x.APIVersion != "" + var yynn1004 int + if yyr1004 || yy2arr1004 { r.EncodeArrayStart(61) } else { - yynn999 = 59 - for _, b := range yyq999 { + yynn1004 = 59 + for _, b := range yyq1004 { if b { - yynn999++ + yynn1004++ } } - r.EncodeMapStart(yynn999) - yynn999 = 0 + r.EncodeMapStart(yynn1004) + yynn1004 = 0 } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq999[0] { - yym1001 := z.EncBinary() - _ = yym1001 + if yyq1004[0] { + yym1006 := z.EncBinary() + _ = yym1006 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) @@ -9102,23 +9143,23 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode r.EncodeString(codecSelferC_UTF81234, "") } } else { - if yyq999[0] { + if yyq1004[0] { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("kind")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1002 := z.EncBinary() - _ = yym1002 + yym1007 := z.EncBinary() + _ = yym1007 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) } } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if yyq999[1] { - yym1004 := z.EncBinary() - _ = yym1004 + if yyq1004[1] { + yym1009 := z.EncBinary() + _ = yym1009 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) @@ -9127,22 +9168,22 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode r.EncodeString(codecSelferC_UTF81234, "") } } else { - if yyq999[1] { + if yyq1004[1] { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1005 := z.EncBinary() - _ = yym1005 + yym1010 := z.EncBinary() + _ = yym1010 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) } } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1007 := z.EncBinary() - _ = yym1007 + yym1012 := z.EncBinary() + _ = yym1012 if false { } else { r.EncodeInt(int64(x.Port)) @@ -9151,17 +9192,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("port")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1008 := z.EncBinary() - _ = yym1008 + yym1013 := z.EncBinary() + _ = yym1013 if false { } else { r.EncodeInt(int64(x.Port)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1010 := z.EncBinary() - _ = yym1010 + yym1015 := z.EncBinary() + _ = yym1015 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Address)) @@ -9170,17 +9211,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("address")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1011 := z.EncBinary() - _ = yym1011 + yym1016 := z.EncBinary() + _ = yym1016 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.Address)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1013 := z.EncBinary() - _ = yym1013 + yym1018 := z.EncBinary() + _ = yym1018 if false { } else { r.EncodeBool(bool(x.UseServiceAccountCredentials)) @@ -9189,17 +9230,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("useServiceAccountCredentials")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1014 := z.EncBinary() - _ = yym1014 + yym1019 := z.EncBinary() + _ = yym1019 if false { } else { r.EncodeBool(bool(x.UseServiceAccountCredentials)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1016 := z.EncBinary() - _ = yym1016 + yym1021 := z.EncBinary() + _ = yym1021 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.CloudProvider)) @@ -9208,17 +9249,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("cloudProvider")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1017 := z.EncBinary() - _ = yym1017 + yym1022 := z.EncBinary() + _ = yym1022 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.CloudProvider)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1019 := z.EncBinary() - _ = yym1019 + yym1024 := z.EncBinary() + _ = yym1024 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.CloudConfigFile)) @@ -9227,17 +9268,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("cloudConfigFile")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1020 := z.EncBinary() - _ = yym1020 + yym1025 := z.EncBinary() + _ = yym1025 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.CloudConfigFile)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1022 := z.EncBinary() - _ = yym1022 + yym1027 := z.EncBinary() + _ = yym1027 if false { } else { r.EncodeInt(int64(x.ConcurrentEndpointSyncs)) @@ -9246,17 +9287,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentEndpointSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1023 := z.EncBinary() - _ = yym1023 + yym1028 := z.EncBinary() + _ = yym1028 if false { } else { r.EncodeInt(int64(x.ConcurrentEndpointSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1025 := z.EncBinary() - _ = yym1025 + yym1030 := z.EncBinary() + _ = yym1030 if false { } else { r.EncodeInt(int64(x.ConcurrentRSSyncs)) @@ -9265,17 +9306,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentRSSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1026 := z.EncBinary() - _ = yym1026 + yym1031 := z.EncBinary() + _ = yym1031 if false { } else { r.EncodeInt(int64(x.ConcurrentRSSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1028 := z.EncBinary() - _ = yym1028 + yym1033 := z.EncBinary() + _ = yym1033 if false { } else { r.EncodeInt(int64(x.ConcurrentRCSyncs)) @@ -9284,17 +9325,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentRCSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1029 := z.EncBinary() - _ = yym1029 + yym1034 := z.EncBinary() + _ = yym1034 if false { } else { r.EncodeInt(int64(x.ConcurrentRCSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1031 := z.EncBinary() - _ = yym1031 + yym1036 := z.EncBinary() + _ = yym1036 if false { } else { r.EncodeInt(int64(x.ConcurrentServiceSyncs)) @@ -9303,17 +9344,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentServiceSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1032 := z.EncBinary() - _ = yym1032 + yym1037 := z.EncBinary() + _ = yym1037 if false { } else { r.EncodeInt(int64(x.ConcurrentServiceSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1034 := z.EncBinary() - _ = yym1034 + yym1039 := z.EncBinary() + _ = yym1039 if false { } else { r.EncodeInt(int64(x.ConcurrentResourceQuotaSyncs)) @@ -9322,17 +9363,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentResourceQuotaSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1035 := z.EncBinary() - _ = yym1035 + yym1040 := z.EncBinary() + _ = yym1040 if false { } else { r.EncodeInt(int64(x.ConcurrentResourceQuotaSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1037 := z.EncBinary() - _ = yym1037 + yym1042 := z.EncBinary() + _ = yym1042 if false { } else { r.EncodeInt(int64(x.ConcurrentDeploymentSyncs)) @@ -9341,17 +9382,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentDeploymentSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1038 := z.EncBinary() - _ = yym1038 + yym1043 := z.EncBinary() + _ = yym1043 if false { } else { r.EncodeInt(int64(x.ConcurrentDeploymentSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1040 := z.EncBinary() - _ = yym1040 + yym1045 := z.EncBinary() + _ = yym1045 if false { } else { r.EncodeInt(int64(x.ConcurrentDaemonSetSyncs)) @@ -9360,17 +9401,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentDaemonSetSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1041 := z.EncBinary() - _ = yym1041 + yym1046 := z.EncBinary() + _ = yym1046 if false { } else { r.EncodeInt(int64(x.ConcurrentDaemonSetSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1043 := z.EncBinary() - _ = yym1043 + yym1048 := z.EncBinary() + _ = yym1048 if false { } else { r.EncodeInt(int64(x.ConcurrentJobSyncs)) @@ -9379,17 +9420,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentJobSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1044 := z.EncBinary() - _ = yym1044 + yym1049 := z.EncBinary() + _ = yym1049 if false { } else { r.EncodeInt(int64(x.ConcurrentJobSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1046 := z.EncBinary() - _ = yym1046 + yym1051 := z.EncBinary() + _ = yym1051 if false { } else { r.EncodeInt(int64(x.ConcurrentNamespaceSyncs)) @@ -9398,17 +9439,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentNamespaceSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1047 := z.EncBinary() - _ = yym1047 + yym1052 := z.EncBinary() + _ = yym1052 if false { } else { r.EncodeInt(int64(x.ConcurrentNamespaceSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1049 := z.EncBinary() - _ = yym1049 + yym1054 := z.EncBinary() + _ = yym1054 if false { } else { r.EncodeInt(int64(x.ConcurrentSATokenSyncs)) @@ -9417,17 +9458,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentSATokenSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1050 := z.EncBinary() - _ = yym1050 + yym1055 := z.EncBinary() + _ = yym1055 if false { } else { r.EncodeInt(int64(x.ConcurrentSATokenSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1052 := z.EncBinary() - _ = yym1052 + yym1057 := z.EncBinary() + _ = yym1057 if false { } else { r.EncodeInt(int64(x.LookupCacheSizeForRC)) @@ -9436,17 +9477,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("lookupCacheSizeForRC")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1053 := z.EncBinary() - _ = yym1053 + yym1058 := z.EncBinary() + _ = yym1058 if false { } else { r.EncodeInt(int64(x.LookupCacheSizeForRC)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1055 := z.EncBinary() - _ = yym1055 + yym1060 := z.EncBinary() + _ = yym1060 if false { } else { r.EncodeInt(int64(x.LookupCacheSizeForRS)) @@ -9455,17 +9496,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("lookupCacheSizeForRS")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1056 := z.EncBinary() - _ = yym1056 + yym1061 := z.EncBinary() + _ = yym1061 if false { } else { r.EncodeInt(int64(x.LookupCacheSizeForRS)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1058 := z.EncBinary() - _ = yym1058 + yym1063 := z.EncBinary() + _ = yym1063 if false { } else { r.EncodeInt(int64(x.LookupCacheSizeForDaemonSet)) @@ -9474,43 +9515,16 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("lookupCacheSizeForDaemonSet")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1059 := z.EncBinary() - _ = yym1059 + yym1064 := z.EncBinary() + _ = yym1064 if false { } else { r.EncodeInt(int64(x.LookupCacheSizeForDaemonSet)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1061 := &x.ServiceSyncPeriod - yym1062 := z.EncBinary() - _ = yym1062 - if false { - } else if z.HasExtensions() && z.EncExt(yy1061) { - } else if !yym1062 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1061) - } else { - z.EncFallback(yy1061) - } - } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("serviceSyncPeriod")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1063 := &x.ServiceSyncPeriod - yym1064 := z.EncBinary() - _ = yym1064 - if false { - } else if z.HasExtensions() && z.EncExt(yy1063) { - } else if !yym1064 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1063) - } else { - z.EncFallback(yy1063) - } - } - if yyr999 || yy2arr999 { - z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1066 := &x.NodeSyncPeriod + yy1066 := &x.ServiceSyncPeriod yym1067 := z.EncBinary() _ = yym1067 if false { @@ -9522,9 +9536,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("nodeSyncPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("serviceSyncPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1068 := &x.NodeSyncPeriod + yy1068 := &x.ServiceSyncPeriod yym1069 := z.EncBinary() _ = yym1069 if false { @@ -9535,9 +9549,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1068) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1071 := &x.RouteReconciliationPeriod + yy1071 := &x.NodeSyncPeriod yym1072 := z.EncBinary() _ = yym1072 if false { @@ -9549,9 +9563,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("routeReconciliationPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("nodeSyncPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1073 := &x.RouteReconciliationPeriod + yy1073 := &x.NodeSyncPeriod yym1074 := z.EncBinary() _ = yym1074 if false { @@ -9562,9 +9576,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1073) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1076 := &x.ResourceQuotaSyncPeriod + yy1076 := &x.RouteReconciliationPeriod yym1077 := z.EncBinary() _ = yym1077 if false { @@ -9576,9 +9590,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("resourceQuotaSyncPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("routeReconciliationPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1078 := &x.ResourceQuotaSyncPeriod + yy1078 := &x.RouteReconciliationPeriod yym1079 := z.EncBinary() _ = yym1079 if false { @@ -9589,9 +9603,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1078) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1081 := &x.NamespaceSyncPeriod + yy1081 := &x.ResourceQuotaSyncPeriod yym1082 := z.EncBinary() _ = yym1082 if false { @@ -9603,9 +9617,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("namespaceSyncPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("resourceQuotaSyncPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1083 := &x.NamespaceSyncPeriod + yy1083 := &x.ResourceQuotaSyncPeriod yym1084 := z.EncBinary() _ = yym1084 if false { @@ -9616,9 +9630,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1083) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1086 := &x.PVClaimBinderSyncPeriod + yy1086 := &x.NamespaceSyncPeriod yym1087 := z.EncBinary() _ = yym1087 if false { @@ -9630,9 +9644,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("pvClaimBinderSyncPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("namespaceSyncPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1088 := &x.PVClaimBinderSyncPeriod + yy1088 := &x.NamespaceSyncPeriod yym1089 := z.EncBinary() _ = yym1089 if false { @@ -9643,9 +9657,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1088) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1091 := &x.MinResyncPeriod + yy1091 := &x.PVClaimBinderSyncPeriod yym1092 := z.EncBinary() _ = yym1092 if false { @@ -9657,9 +9671,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("minResyncPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("pvClaimBinderSyncPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1093 := &x.MinResyncPeriod + yy1093 := &x.PVClaimBinderSyncPeriod yym1094 := z.EncBinary() _ = yym1094 if false { @@ -9670,10 +9684,37 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1093) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1096 := z.EncBinary() - _ = yym1096 + yy1096 := &x.MinResyncPeriod + yym1097 := z.EncBinary() + _ = yym1097 + if false { + } else if z.HasExtensions() && z.EncExt(yy1096) { + } else if !yym1097 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1096) + } else { + z.EncFallback(yy1096) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("minResyncPeriod")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy1098 := &x.MinResyncPeriod + yym1099 := z.EncBinary() + _ = yym1099 + if false { + } else if z.HasExtensions() && z.EncExt(yy1098) { + } else if !yym1099 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1098) + } else { + z.EncFallback(yy1098) + } + } + if yyr1004 || yy2arr1004 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym1101 := z.EncBinary() + _ = yym1101 if false { } else { r.EncodeInt(int64(x.TerminatedPodGCThreshold)) @@ -9682,43 +9723,16 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("terminatedPodGCThreshold")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1097 := z.EncBinary() - _ = yym1097 + yym1102 := z.EncBinary() + _ = yym1102 if false { } else { r.EncodeInt(int64(x.TerminatedPodGCThreshold)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1099 := &x.HorizontalPodAutoscalerSyncPeriod - yym1100 := z.EncBinary() - _ = yym1100 - if false { - } else if z.HasExtensions() && z.EncExt(yy1099) { - } else if !yym1100 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1099) - } else { - z.EncFallback(yy1099) - } - } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("horizontalPodAutoscalerSyncPeriod")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1101 := &x.HorizontalPodAutoscalerSyncPeriod - yym1102 := z.EncBinary() - _ = yym1102 - if false { - } else if z.HasExtensions() && z.EncExt(yy1101) { - } else if !yym1102 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1101) - } else { - z.EncFallback(yy1101) - } - } - if yyr999 || yy2arr999 { - z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1104 := &x.DeploymentControllerSyncPeriod + yy1104 := &x.HorizontalPodAutoscalerSyncPeriod yym1105 := z.EncBinary() _ = yym1105 if false { @@ -9730,9 +9744,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("deploymentControllerSyncPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("horizontalPodAutoscalerSyncPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1106 := &x.DeploymentControllerSyncPeriod + yy1106 := &x.HorizontalPodAutoscalerSyncPeriod yym1107 := z.EncBinary() _ = yym1107 if false { @@ -9743,9 +9757,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1106) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1109 := &x.PodEvictionTimeout + yy1109 := &x.DeploymentControllerSyncPeriod yym1110 := z.EncBinary() _ = yym1110 if false { @@ -9757,9 +9771,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("podEvictionTimeout")) + r.EncodeString(codecSelferC_UTF81234, string("deploymentControllerSyncPeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1111 := &x.PodEvictionTimeout + yy1111 := &x.DeploymentControllerSyncPeriod yym1112 := z.EncBinary() _ = yym1112 if false { @@ -9770,10 +9784,37 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1111) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1114 := z.EncBinary() - _ = yym1114 + yy1114 := &x.PodEvictionTimeout + yym1115 := z.EncBinary() + _ = yym1115 + if false { + } else if z.HasExtensions() && z.EncExt(yy1114) { + } else if !yym1115 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1114) + } else { + z.EncFallback(yy1114) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("podEvictionTimeout")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy1116 := &x.PodEvictionTimeout + yym1117 := z.EncBinary() + _ = yym1117 + if false { + } else if z.HasExtensions() && z.EncExt(yy1116) { + } else if !yym1117 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1116) + } else { + z.EncFallback(yy1116) + } + } + if yyr1004 || yy2arr1004 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym1119 := z.EncBinary() + _ = yym1119 if false { } else { r.EncodeFloat32(float32(x.DeletingPodsQps)) @@ -9782,17 +9823,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("deletingPodsQps")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1115 := z.EncBinary() - _ = yym1115 + yym1120 := z.EncBinary() + _ = yym1120 if false { } else { r.EncodeFloat32(float32(x.DeletingPodsQps)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1117 := z.EncBinary() - _ = yym1117 + yym1122 := z.EncBinary() + _ = yym1122 if false { } else { r.EncodeInt(int64(x.DeletingPodsBurst)) @@ -9801,44 +9842,44 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("deletingPodsBurst")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1118 := z.EncBinary() - _ = yym1118 + yym1123 := z.EncBinary() + _ = yym1123 if false { } else { r.EncodeInt(int64(x.DeletingPodsBurst)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1120 := &x.NodeMonitorGracePeriod - yym1121 := z.EncBinary() - _ = yym1121 + yy1125 := &x.NodeMonitorGracePeriod + yym1126 := z.EncBinary() + _ = yym1126 if false { - } else if z.HasExtensions() && z.EncExt(yy1120) { - } else if !yym1121 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1120) + } else if z.HasExtensions() && z.EncExt(yy1125) { + } else if !yym1126 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1125) } else { - z.EncFallback(yy1120) + z.EncFallback(yy1125) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("nodeMonitorGracePeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1122 := &x.NodeMonitorGracePeriod - yym1123 := z.EncBinary() - _ = yym1123 + yy1127 := &x.NodeMonitorGracePeriod + yym1128 := z.EncBinary() + _ = yym1128 if false { - } else if z.HasExtensions() && z.EncExt(yy1122) { - } else if !yym1123 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1122) + } else if z.HasExtensions() && z.EncExt(yy1127) { + } else if !yym1128 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1127) } else { - z.EncFallback(yy1122) + z.EncFallback(yy1127) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1125 := z.EncBinary() - _ = yym1125 + yym1130 := z.EncBinary() + _ = yym1130 if false { } else { r.EncodeInt(int64(x.RegisterRetryCount)) @@ -9847,43 +9888,16 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("registerRetryCount")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1126 := z.EncBinary() - _ = yym1126 + yym1131 := z.EncBinary() + _ = yym1131 if false { } else { r.EncodeInt(int64(x.RegisterRetryCount)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1128 := &x.NodeStartupGracePeriod - yym1129 := z.EncBinary() - _ = yym1129 - if false { - } else if z.HasExtensions() && z.EncExt(yy1128) { - } else if !yym1129 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1128) - } else { - z.EncFallback(yy1128) - } - } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("nodeStartupGracePeriod")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1130 := &x.NodeStartupGracePeriod - yym1131 := z.EncBinary() - _ = yym1131 - if false { - } else if z.HasExtensions() && z.EncExt(yy1130) { - } else if !yym1131 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1130) - } else { - z.EncFallback(yy1130) - } - } - if yyr999 || yy2arr999 { - z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1133 := &x.NodeMonitorPeriod + yy1133 := &x.NodeStartupGracePeriod yym1134 := z.EncBinary() _ = yym1134 if false { @@ -9895,9 +9909,9 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("nodeMonitorPeriod")) + r.EncodeString(codecSelferC_UTF81234, string("nodeStartupGracePeriod")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1135 := &x.NodeMonitorPeriod + yy1135 := &x.NodeStartupGracePeriod yym1136 := z.EncBinary() _ = yym1136 if false { @@ -9908,10 +9922,37 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncFallback(yy1135) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1138 := z.EncBinary() - _ = yym1138 + yy1138 := &x.NodeMonitorPeriod + yym1139 := z.EncBinary() + _ = yym1139 + if false { + } else if z.HasExtensions() && z.EncExt(yy1138) { + } else if !yym1139 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1138) + } else { + z.EncFallback(yy1138) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("nodeMonitorPeriod")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy1140 := &x.NodeMonitorPeriod + yym1141 := z.EncBinary() + _ = yym1141 + if false { + } else if z.HasExtensions() && z.EncExt(yy1140) { + } else if !yym1141 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1140) + } else { + z.EncFallback(yy1140) + } + } + if yyr1004 || yy2arr1004 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym1143 := z.EncBinary() + _ = yym1143 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ServiceAccountKeyFile)) @@ -9920,17 +9961,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("serviceAccountKeyFile")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1139 := z.EncBinary() - _ = yym1139 + yym1144 := z.EncBinary() + _ = yym1144 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ServiceAccountKeyFile)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1141 := z.EncBinary() - _ = yym1141 + yym1146 := z.EncBinary() + _ = yym1146 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterSigningCertFile)) @@ -9939,17 +9980,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("clusterSigningCertFile")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1142 := z.EncBinary() - _ = yym1142 + yym1147 := z.EncBinary() + _ = yym1147 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterSigningCertFile)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1144 := z.EncBinary() - _ = yym1144 + yym1149 := z.EncBinary() + _ = yym1149 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterSigningKeyFile)) @@ -9958,17 +9999,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("clusterSigningKeyFile")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1145 := z.EncBinary() - _ = yym1145 + yym1150 := z.EncBinary() + _ = yym1150 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterSigningKeyFile)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1147 := z.EncBinary() - _ = yym1147 + yym1152 := z.EncBinary() + _ = yym1152 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ApproveAllKubeletCSRsForGroup)) @@ -9977,17 +10018,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("approveAllKubeletCSRsForGroup")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1148 := z.EncBinary() - _ = yym1148 + yym1153 := z.EncBinary() + _ = yym1153 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ApproveAllKubeletCSRsForGroup)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1150 := z.EncBinary() - _ = yym1150 + yym1155 := z.EncBinary() + _ = yym1155 if false { } else { r.EncodeBool(bool(x.EnableProfiling)) @@ -9996,17 +10037,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enableProfiling")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1151 := z.EncBinary() - _ = yym1151 + yym1156 := z.EncBinary() + _ = yym1156 if false { } else { r.EncodeBool(bool(x.EnableProfiling)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1153 := z.EncBinary() - _ = yym1153 + yym1158 := z.EncBinary() + _ = yym1158 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterName)) @@ -10015,17 +10056,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("clusterName")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1154 := z.EncBinary() - _ = yym1154 + yym1159 := z.EncBinary() + _ = yym1159 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterName)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1156 := z.EncBinary() - _ = yym1156 + yym1161 := z.EncBinary() + _ = yym1161 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterCIDR)) @@ -10034,17 +10075,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("clusterCIDR")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1157 := z.EncBinary() - _ = yym1157 + yym1162 := z.EncBinary() + _ = yym1162 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ClusterCIDR)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1159 := z.EncBinary() - _ = yym1159 + yym1164 := z.EncBinary() + _ = yym1164 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ServiceCIDR)) @@ -10053,17 +10094,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("serviceCIDR")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1160 := z.EncBinary() - _ = yym1160 + yym1165 := z.EncBinary() + _ = yym1165 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ServiceCIDR)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1162 := z.EncBinary() - _ = yym1162 + yym1167 := z.EncBinary() + _ = yym1167 if false { } else { r.EncodeInt(int64(x.NodeCIDRMaskSize)) @@ -10072,17 +10113,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("nodeCIDRMaskSize")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1163 := z.EncBinary() - _ = yym1163 + yym1168 := z.EncBinary() + _ = yym1168 if false { } else { r.EncodeInt(int64(x.NodeCIDRMaskSize)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1165 := z.EncBinary() - _ = yym1165 + yym1170 := z.EncBinary() + _ = yym1170 if false { } else { r.EncodeBool(bool(x.AllocateNodeCIDRs)) @@ -10091,17 +10132,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("allocateNodeCIDRs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1166 := z.EncBinary() - _ = yym1166 + yym1171 := z.EncBinary() + _ = yym1171 if false { } else { r.EncodeBool(bool(x.AllocateNodeCIDRs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1168 := z.EncBinary() - _ = yym1168 + yym1173 := z.EncBinary() + _ = yym1173 if false { } else { r.EncodeBool(bool(x.ConfigureCloudRoutes)) @@ -10110,17 +10151,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("configureCloudRoutes")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1169 := z.EncBinary() - _ = yym1169 + yym1174 := z.EncBinary() + _ = yym1174 if false { } else { r.EncodeBool(bool(x.ConfigureCloudRoutes)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1171 := z.EncBinary() - _ = yym1171 + yym1176 := z.EncBinary() + _ = yym1176 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.RootCAFile)) @@ -10129,17 +10170,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("rootCAFile")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1172 := z.EncBinary() - _ = yym1172 + yym1177 := z.EncBinary() + _ = yym1177 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.RootCAFile)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1174 := z.EncBinary() - _ = yym1174 + yym1179 := z.EncBinary() + _ = yym1179 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ContentType)) @@ -10148,17 +10189,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("contentType")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1175 := z.EncBinary() - _ = yym1175 + yym1180 := z.EncBinary() + _ = yym1180 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.ContentType)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1177 := z.EncBinary() - _ = yym1177 + yym1182 := z.EncBinary() + _ = yym1182 if false { } else { r.EncodeFloat32(float32(x.KubeAPIQPS)) @@ -10167,17 +10208,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("kubeAPIQPS")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1178 := z.EncBinary() - _ = yym1178 + yym1183 := z.EncBinary() + _ = yym1183 if false { } else { r.EncodeFloat32(float32(x.KubeAPIQPS)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1180 := z.EncBinary() - _ = yym1180 + yym1185 := z.EncBinary() + _ = yym1185 if false { } else { r.EncodeInt(int64(x.KubeAPIBurst)) @@ -10186,66 +10227,66 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("kubeAPIBurst")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1181 := z.EncBinary() - _ = yym1181 + yym1186 := z.EncBinary() + _ = yym1186 if false { } else { r.EncodeInt(int64(x.KubeAPIBurst)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1183 := &x.LeaderElection - yy1183.CodecEncodeSelf(e) + yy1188 := &x.LeaderElection + yy1188.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("leaderElection")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1184 := &x.LeaderElection - yy1184.CodecEncodeSelf(e) + yy1189 := &x.LeaderElection + yy1189.CodecEncodeSelf(e) } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1186 := &x.VolumeConfiguration - yy1186.CodecEncodeSelf(e) + yy1191 := &x.VolumeConfiguration + yy1191.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("volumeConfiguration")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1187 := &x.VolumeConfiguration - yy1187.CodecEncodeSelf(e) + yy1192 := &x.VolumeConfiguration + yy1192.CodecEncodeSelf(e) } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1189 := &x.ControllerStartInterval - yym1190 := z.EncBinary() - _ = yym1190 + yy1194 := &x.ControllerStartInterval + yym1195 := z.EncBinary() + _ = yym1195 if false { - } else if z.HasExtensions() && z.EncExt(yy1189) { - } else if !yym1190 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1189) + } else if z.HasExtensions() && z.EncExt(yy1194) { + } else if !yym1195 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1194) } else { - z.EncFallback(yy1189) + z.EncFallback(yy1194) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("controllerStartInterval")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1191 := &x.ControllerStartInterval - yym1192 := z.EncBinary() - _ = yym1192 + yy1196 := &x.ControllerStartInterval + yym1197 := z.EncBinary() + _ = yym1197 if false { - } else if z.HasExtensions() && z.EncExt(yy1191) { - } else if !yym1192 && z.IsJSONHandle() { - z.EncJSONMarshal(yy1191) + } else if z.HasExtensions() && z.EncExt(yy1196) { + } else if !yym1197 && z.IsJSONHandle() { + z.EncJSONMarshal(yy1196) } else { - z.EncFallback(yy1191) + z.EncFallback(yy1196) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1194 := z.EncBinary() - _ = yym1194 + yym1199 := z.EncBinary() + _ = yym1199 if false { } else { r.EncodeBool(bool(x.EnableGarbageCollector)) @@ -10254,17 +10295,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enableGarbageCollector")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1195 := z.EncBinary() - _ = yym1195 + yym1200 := z.EncBinary() + _ = yym1200 if false { } else { r.EncodeBool(bool(x.EnableGarbageCollector)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1197 := z.EncBinary() - _ = yym1197 + yym1202 := z.EncBinary() + _ = yym1202 if false { } else { r.EncodeInt(int64(x.ConcurrentGCSyncs)) @@ -10273,17 +10314,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("concurrentGCSyncs")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1198 := z.EncBinary() - _ = yym1198 + yym1203 := z.EncBinary() + _ = yym1203 if false { } else { r.EncodeInt(int64(x.ConcurrentGCSyncs)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1200 := z.EncBinary() - _ = yym1200 + yym1205 := z.EncBinary() + _ = yym1205 if false { } else { r.EncodeFloat32(float32(x.NodeEvictionRate)) @@ -10292,17 +10333,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("nodeEvictionRate")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1201 := z.EncBinary() - _ = yym1201 + yym1206 := z.EncBinary() + _ = yym1206 if false { } else { r.EncodeFloat32(float32(x.NodeEvictionRate)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1203 := z.EncBinary() - _ = yym1203 + yym1208 := z.EncBinary() + _ = yym1208 if false { } else { r.EncodeFloat32(float32(x.SecondaryNodeEvictionRate)) @@ -10311,17 +10352,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("secondaryNodeEvictionRate")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1204 := z.EncBinary() - _ = yym1204 + yym1209 := z.EncBinary() + _ = yym1209 if false { } else { r.EncodeFloat32(float32(x.SecondaryNodeEvictionRate)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1206 := z.EncBinary() - _ = yym1206 + yym1211 := z.EncBinary() + _ = yym1211 if false { } else { r.EncodeInt(int64(x.LargeClusterSizeThreshold)) @@ -10330,17 +10371,17 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("largeClusterSizeThreshold")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1207 := z.EncBinary() - _ = yym1207 + yym1212 := z.EncBinary() + _ = yym1212 if false { } else { r.EncodeInt(int64(x.LargeClusterSizeThreshold)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1209 := z.EncBinary() - _ = yym1209 + yym1214 := z.EncBinary() + _ = yym1214 if false { } else { r.EncodeFloat32(float32(x.UnhealthyZoneThreshold)) @@ -10349,14 +10390,14 @@ func (x *KubeControllerManagerConfiguration) CodecEncodeSelf(e *codec1978.Encode z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("unhealthyZoneThreshold")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1210 := z.EncBinary() - _ = yym1210 + yym1215 := z.EncBinary() + _ = yym1215 if false { } else { r.EncodeFloat32(float32(x.UnhealthyZoneThreshold)) } } - if yyr999 || yy2arr999 { + if yyr1004 || yy2arr1004 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -10369,25 +10410,25 @@ func (x *KubeControllerManagerConfiguration) CodecDecodeSelf(d *codec1978.Decode var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym1211 := z.DecBinary() - _ = yym1211 + yym1216 := z.DecBinary() + _ = yym1216 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct1212 := r.ContainerType() - if yyct1212 == codecSelferValueTypeMap1234 { - yyl1212 := r.ReadMapStart() - if yyl1212 == 0 { + yyct1217 := r.ContainerType() + if yyct1217 == codecSelferValueTypeMap1234 { + yyl1217 := r.ReadMapStart() + if yyl1217 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl1212, d) + x.codecDecodeSelfFromMap(yyl1217, d) } - } else if yyct1212 == codecSelferValueTypeArray1234 { - yyl1212 := r.ReadArrayStart() - if yyl1212 == 0 { + } else if yyct1217 == codecSelferValueTypeArray1234 { + yyl1217 := r.ReadArrayStart() + if yyl1217 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl1212, d) + x.codecDecodeSelfFromArray(yyl1217, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -10399,12 +10440,12 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys1213Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys1213Slc - var yyhl1213 bool = l >= 0 - for yyj1213 := 0; ; yyj1213++ { - if yyhl1213 { - if yyj1213 >= l { + var yys1218Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys1218Slc + var yyhl1218 bool = l >= 0 + for yyj1218 := 0; ; yyj1218++ { + if yyhl1218 { + if yyj1218 >= l { break } } else { @@ -10413,10 +10454,10 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys1213Slc = r.DecodeBytes(yys1213Slc, true, true) - yys1213 := string(yys1213Slc) + yys1218Slc = r.DecodeBytes(yys1218Slc, true, true) + yys1218 := string(yys1218Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys1213 { + switch yys1218 { case "kind": if r.TryDecodeAsNil() { x.Kind = "" @@ -10541,105 +10582,105 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co if r.TryDecodeAsNil() { x.ServiceSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1234 := &x.ServiceSyncPeriod - yym1235 := z.DecBinary() - _ = yym1235 + yyv1239 := &x.ServiceSyncPeriod + yym1240 := z.DecBinary() + _ = yym1240 if false { - } else if z.HasExtensions() && z.DecExt(yyv1234) { - } else if !yym1235 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1234) + } else if z.HasExtensions() && z.DecExt(yyv1239) { + } else if !yym1240 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1239) } else { - z.DecFallback(yyv1234, false) + z.DecFallback(yyv1239, false) } } case "nodeSyncPeriod": if r.TryDecodeAsNil() { x.NodeSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1236 := &x.NodeSyncPeriod - yym1237 := z.DecBinary() - _ = yym1237 + yyv1241 := &x.NodeSyncPeriod + yym1242 := z.DecBinary() + _ = yym1242 if false { - } else if z.HasExtensions() && z.DecExt(yyv1236) { - } else if !yym1237 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1236) + } else if z.HasExtensions() && z.DecExt(yyv1241) { + } else if !yym1242 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1241) } else { - z.DecFallback(yyv1236, false) + z.DecFallback(yyv1241, false) } } case "routeReconciliationPeriod": if r.TryDecodeAsNil() { x.RouteReconciliationPeriod = pkg1_unversioned.Duration{} } else { - yyv1238 := &x.RouteReconciliationPeriod - yym1239 := z.DecBinary() - _ = yym1239 + yyv1243 := &x.RouteReconciliationPeriod + yym1244 := z.DecBinary() + _ = yym1244 if false { - } else if z.HasExtensions() && z.DecExt(yyv1238) { - } else if !yym1239 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1238) + } else if z.HasExtensions() && z.DecExt(yyv1243) { + } else if !yym1244 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1243) } else { - z.DecFallback(yyv1238, false) + z.DecFallback(yyv1243, false) } } case "resourceQuotaSyncPeriod": if r.TryDecodeAsNil() { x.ResourceQuotaSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1240 := &x.ResourceQuotaSyncPeriod - yym1241 := z.DecBinary() - _ = yym1241 + yyv1245 := &x.ResourceQuotaSyncPeriod + yym1246 := z.DecBinary() + _ = yym1246 if false { - } else if z.HasExtensions() && z.DecExt(yyv1240) { - } else if !yym1241 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1240) + } else if z.HasExtensions() && z.DecExt(yyv1245) { + } else if !yym1246 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1245) } else { - z.DecFallback(yyv1240, false) + z.DecFallback(yyv1245, false) } } case "namespaceSyncPeriod": if r.TryDecodeAsNil() { x.NamespaceSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1242 := &x.NamespaceSyncPeriod - yym1243 := z.DecBinary() - _ = yym1243 + yyv1247 := &x.NamespaceSyncPeriod + yym1248 := z.DecBinary() + _ = yym1248 if false { - } else if z.HasExtensions() && z.DecExt(yyv1242) { - } else if !yym1243 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1242) + } else if z.HasExtensions() && z.DecExt(yyv1247) { + } else if !yym1248 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1247) } else { - z.DecFallback(yyv1242, false) + z.DecFallback(yyv1247, false) } } case "pvClaimBinderSyncPeriod": if r.TryDecodeAsNil() { x.PVClaimBinderSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1244 := &x.PVClaimBinderSyncPeriod - yym1245 := z.DecBinary() - _ = yym1245 + yyv1249 := &x.PVClaimBinderSyncPeriod + yym1250 := z.DecBinary() + _ = yym1250 if false { - } else if z.HasExtensions() && z.DecExt(yyv1244) { - } else if !yym1245 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1244) + } else if z.HasExtensions() && z.DecExt(yyv1249) { + } else if !yym1250 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1249) } else { - z.DecFallback(yyv1244, false) + z.DecFallback(yyv1249, false) } } case "minResyncPeriod": if r.TryDecodeAsNil() { x.MinResyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1246 := &x.MinResyncPeriod - yym1247 := z.DecBinary() - _ = yym1247 + yyv1251 := &x.MinResyncPeriod + yym1252 := z.DecBinary() + _ = yym1252 if false { - } else if z.HasExtensions() && z.DecExt(yyv1246) { - } else if !yym1247 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1246) + } else if z.HasExtensions() && z.DecExt(yyv1251) { + } else if !yym1252 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1251) } else { - z.DecFallback(yyv1246, false) + z.DecFallback(yyv1251, false) } } case "terminatedPodGCThreshold": @@ -10652,45 +10693,45 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co if r.TryDecodeAsNil() { x.HorizontalPodAutoscalerSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1249 := &x.HorizontalPodAutoscalerSyncPeriod - yym1250 := z.DecBinary() - _ = yym1250 + yyv1254 := &x.HorizontalPodAutoscalerSyncPeriod + yym1255 := z.DecBinary() + _ = yym1255 if false { - } else if z.HasExtensions() && z.DecExt(yyv1249) { - } else if !yym1250 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1249) + } else if z.HasExtensions() && z.DecExt(yyv1254) { + } else if !yym1255 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1254) } else { - z.DecFallback(yyv1249, false) + z.DecFallback(yyv1254, false) } } case "deploymentControllerSyncPeriod": if r.TryDecodeAsNil() { x.DeploymentControllerSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1251 := &x.DeploymentControllerSyncPeriod - yym1252 := z.DecBinary() - _ = yym1252 + yyv1256 := &x.DeploymentControllerSyncPeriod + yym1257 := z.DecBinary() + _ = yym1257 if false { - } else if z.HasExtensions() && z.DecExt(yyv1251) { - } else if !yym1252 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1251) + } else if z.HasExtensions() && z.DecExt(yyv1256) { + } else if !yym1257 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1256) } else { - z.DecFallback(yyv1251, false) + z.DecFallback(yyv1256, false) } } case "podEvictionTimeout": if r.TryDecodeAsNil() { x.PodEvictionTimeout = pkg1_unversioned.Duration{} } else { - yyv1253 := &x.PodEvictionTimeout - yym1254 := z.DecBinary() - _ = yym1254 + yyv1258 := &x.PodEvictionTimeout + yym1259 := z.DecBinary() + _ = yym1259 if false { - } else if z.HasExtensions() && z.DecExt(yyv1253) { - } else if !yym1254 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1253) + } else if z.HasExtensions() && z.DecExt(yyv1258) { + } else if !yym1259 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1258) } else { - z.DecFallback(yyv1253, false) + z.DecFallback(yyv1258, false) } } case "deletingPodsQps": @@ -10709,15 +10750,15 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co if r.TryDecodeAsNil() { x.NodeMonitorGracePeriod = pkg1_unversioned.Duration{} } else { - yyv1257 := &x.NodeMonitorGracePeriod - yym1258 := z.DecBinary() - _ = yym1258 + yyv1262 := &x.NodeMonitorGracePeriod + yym1263 := z.DecBinary() + _ = yym1263 if false { - } else if z.HasExtensions() && z.DecExt(yyv1257) { - } else if !yym1258 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1257) + } else if z.HasExtensions() && z.DecExt(yyv1262) { + } else if !yym1263 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1262) } else { - z.DecFallback(yyv1257, false) + z.DecFallback(yyv1262, false) } } case "registerRetryCount": @@ -10730,30 +10771,30 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co if r.TryDecodeAsNil() { x.NodeStartupGracePeriod = pkg1_unversioned.Duration{} } else { - yyv1260 := &x.NodeStartupGracePeriod - yym1261 := z.DecBinary() - _ = yym1261 + yyv1265 := &x.NodeStartupGracePeriod + yym1266 := z.DecBinary() + _ = yym1266 if false { - } else if z.HasExtensions() && z.DecExt(yyv1260) { - } else if !yym1261 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1260) + } else if z.HasExtensions() && z.DecExt(yyv1265) { + } else if !yym1266 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1265) } else { - z.DecFallback(yyv1260, false) + z.DecFallback(yyv1265, false) } } case "nodeMonitorPeriod": if r.TryDecodeAsNil() { x.NodeMonitorPeriod = pkg1_unversioned.Duration{} } else { - yyv1262 := &x.NodeMonitorPeriod - yym1263 := z.DecBinary() - _ = yym1263 + yyv1267 := &x.NodeMonitorPeriod + yym1268 := z.DecBinary() + _ = yym1268 if false { - } else if z.HasExtensions() && z.DecExt(yyv1262) { - } else if !yym1263 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1262) + } else if z.HasExtensions() && z.DecExt(yyv1267) { + } else if !yym1268 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1267) } else { - z.DecFallback(yyv1262, false) + z.DecFallback(yyv1267, false) } } case "serviceAccountKeyFile": @@ -10850,29 +10891,29 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co if r.TryDecodeAsNil() { x.LeaderElection = LeaderElectionConfiguration{} } else { - yyv1279 := &x.LeaderElection - yyv1279.CodecDecodeSelf(d) + yyv1284 := &x.LeaderElection + yyv1284.CodecDecodeSelf(d) } case "volumeConfiguration": if r.TryDecodeAsNil() { x.VolumeConfiguration = VolumeConfiguration{} } else { - yyv1280 := &x.VolumeConfiguration - yyv1280.CodecDecodeSelf(d) + yyv1285 := &x.VolumeConfiguration + yyv1285.CodecDecodeSelf(d) } case "controllerStartInterval": if r.TryDecodeAsNil() { x.ControllerStartInterval = pkg1_unversioned.Duration{} } else { - yyv1281 := &x.ControllerStartInterval - yym1282 := z.DecBinary() - _ = yym1282 + yyv1286 := &x.ControllerStartInterval + yym1287 := z.DecBinary() + _ = yym1287 if false { - } else if z.HasExtensions() && z.DecExt(yyv1281) { - } else if !yym1282 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1281) + } else if z.HasExtensions() && z.DecExt(yyv1286) { + } else if !yym1287 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1286) } else { - z.DecFallback(yyv1281, false) + z.DecFallback(yyv1286, false) } } case "enableGarbageCollector": @@ -10912,9 +10953,9 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromMap(l int, d *co x.UnhealthyZoneThreshold = float32(r.DecodeFloat(true)) } default: - z.DecStructFieldNotFound(-1, yys1213) - } // end switch yys1213 - } // end for yyj1213 + z.DecStructFieldNotFound(-1, yys1218) + } // end switch yys1218 + } // end for yyj1218 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -10922,16 +10963,16 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj1289 int - var yyb1289 bool - var yyhl1289 bool = l >= 0 - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + var yyj1294 int + var yyb1294 bool + var yyhl1294 bool = l >= 0 + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -10941,13 +10982,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.Kind = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -10957,13 +10998,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.APIVersion = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -10973,13 +11014,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.Port = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -10989,13 +11030,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.Address = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11005,13 +11046,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.UseServiceAccountCredentials = bool(r.DecodeBool()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11021,13 +11062,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.CloudProvider = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11037,13 +11078,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.CloudConfigFile = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11053,13 +11094,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentEndpointSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11069,13 +11110,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentRSSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11085,13 +11126,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentRCSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11101,13 +11142,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentServiceSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11117,13 +11158,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentResourceQuotaSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11133,13 +11174,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentDeploymentSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11149,13 +11190,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentDaemonSetSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11165,13 +11206,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentJobSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11181,13 +11222,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentNamespaceSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11197,13 +11238,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentSATokenSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11213,13 +11254,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.LookupCacheSizeForRC = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11229,13 +11270,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.LookupCacheSizeForRS = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11245,13 +11286,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.LookupCacheSizeForDaemonSet = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11259,24 +11300,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.ServiceSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1310 := &x.ServiceSyncPeriod - yym1311 := z.DecBinary() - _ = yym1311 + yyv1315 := &x.ServiceSyncPeriod + yym1316 := z.DecBinary() + _ = yym1316 if false { - } else if z.HasExtensions() && z.DecExt(yyv1310) { - } else if !yym1311 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1310) + } else if z.HasExtensions() && z.DecExt(yyv1315) { + } else if !yym1316 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1315) } else { - z.DecFallback(yyv1310, false) + z.DecFallback(yyv1315, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11284,24 +11325,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.NodeSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1312 := &x.NodeSyncPeriod - yym1313 := z.DecBinary() - _ = yym1313 + yyv1317 := &x.NodeSyncPeriod + yym1318 := z.DecBinary() + _ = yym1318 if false { - } else if z.HasExtensions() && z.DecExt(yyv1312) { - } else if !yym1313 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1312) + } else if z.HasExtensions() && z.DecExt(yyv1317) { + } else if !yym1318 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1317) } else { - z.DecFallback(yyv1312, false) + z.DecFallback(yyv1317, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11309,24 +11350,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.RouteReconciliationPeriod = pkg1_unversioned.Duration{} } else { - yyv1314 := &x.RouteReconciliationPeriod - yym1315 := z.DecBinary() - _ = yym1315 + yyv1319 := &x.RouteReconciliationPeriod + yym1320 := z.DecBinary() + _ = yym1320 if false { - } else if z.HasExtensions() && z.DecExt(yyv1314) { - } else if !yym1315 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1314) + } else if z.HasExtensions() && z.DecExt(yyv1319) { + } else if !yym1320 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1319) } else { - z.DecFallback(yyv1314, false) + z.DecFallback(yyv1319, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11334,24 +11375,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.ResourceQuotaSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1316 := &x.ResourceQuotaSyncPeriod - yym1317 := z.DecBinary() - _ = yym1317 + yyv1321 := &x.ResourceQuotaSyncPeriod + yym1322 := z.DecBinary() + _ = yym1322 if false { - } else if z.HasExtensions() && z.DecExt(yyv1316) { - } else if !yym1317 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1316) + } else if z.HasExtensions() && z.DecExt(yyv1321) { + } else if !yym1322 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1321) } else { - z.DecFallback(yyv1316, false) + z.DecFallback(yyv1321, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11359,24 +11400,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.NamespaceSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1318 := &x.NamespaceSyncPeriod - yym1319 := z.DecBinary() - _ = yym1319 + yyv1323 := &x.NamespaceSyncPeriod + yym1324 := z.DecBinary() + _ = yym1324 if false { - } else if z.HasExtensions() && z.DecExt(yyv1318) { - } else if !yym1319 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1318) + } else if z.HasExtensions() && z.DecExt(yyv1323) { + } else if !yym1324 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1323) } else { - z.DecFallback(yyv1318, false) + z.DecFallback(yyv1323, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11384,73 +11425,7 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.PVClaimBinderSyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1320 := &x.PVClaimBinderSyncPeriod - yym1321 := z.DecBinary() - _ = yym1321 - if false { - } else if z.HasExtensions() && z.DecExt(yyv1320) { - } else if !yym1321 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1320) - } else { - z.DecFallback(yyv1320, false) - } - } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l - } else { - yyb1289 = r.CheckBreak() - } - if yyb1289 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.MinResyncPeriod = pkg1_unversioned.Duration{} - } else { - yyv1322 := &x.MinResyncPeriod - yym1323 := z.DecBinary() - _ = yym1323 - if false { - } else if z.HasExtensions() && z.DecExt(yyv1322) { - } else if !yym1323 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1322) - } else { - z.DecFallback(yyv1322, false) - } - } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l - } else { - yyb1289 = r.CheckBreak() - } - if yyb1289 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.TerminatedPodGCThreshold = 0 - } else { - x.TerminatedPodGCThreshold = int32(r.DecodeInt(32)) - } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l - } else { - yyb1289 = r.CheckBreak() - } - if yyb1289 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.HorizontalPodAutoscalerSyncPeriod = pkg1_unversioned.Duration{} - } else { - yyv1325 := &x.HorizontalPodAutoscalerSyncPeriod + yyv1325 := &x.PVClaimBinderSyncPeriod yym1326 := z.DecBinary() _ = yym1326 if false { @@ -11461,21 +11436,21 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv1325, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.DeploymentControllerSyncPeriod = pkg1_unversioned.Duration{} + x.MinResyncPeriod = pkg1_unversioned.Duration{} } else { - yyv1327 := &x.DeploymentControllerSyncPeriod + yyv1327 := &x.MinResyncPeriod yym1328 := z.DecBinary() _ = yym1328 if false { @@ -11486,13 +11461,79 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv1327, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.TerminatedPodGCThreshold = 0 + } else { + x.TerminatedPodGCThreshold = int32(r.DecodeInt(32)) + } + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l + } else { + yyb1294 = r.CheckBreak() + } + if yyb1294 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.HorizontalPodAutoscalerSyncPeriod = pkg1_unversioned.Duration{} + } else { + yyv1330 := &x.HorizontalPodAutoscalerSyncPeriod + yym1331 := z.DecBinary() + _ = yym1331 + if false { + } else if z.HasExtensions() && z.DecExt(yyv1330) { + } else if !yym1331 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1330) + } else { + z.DecFallback(yyv1330, false) + } + } + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l + } else { + yyb1294 = r.CheckBreak() + } + if yyb1294 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.DeploymentControllerSyncPeriod = pkg1_unversioned.Duration{} + } else { + yyv1332 := &x.DeploymentControllerSyncPeriod + yym1333 := z.DecBinary() + _ = yym1333 + if false { + } else if z.HasExtensions() && z.DecExt(yyv1332) { + } else if !yym1333 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1332) + } else { + z.DecFallback(yyv1332, false) + } + } + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l + } else { + yyb1294 = r.CheckBreak() + } + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11500,24 +11541,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.PodEvictionTimeout = pkg1_unversioned.Duration{} } else { - yyv1329 := &x.PodEvictionTimeout - yym1330 := z.DecBinary() - _ = yym1330 + yyv1334 := &x.PodEvictionTimeout + yym1335 := z.DecBinary() + _ = yym1335 if false { - } else if z.HasExtensions() && z.DecExt(yyv1329) { - } else if !yym1330 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1329) + } else if z.HasExtensions() && z.DecExt(yyv1334) { + } else if !yym1335 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1334) } else { - z.DecFallback(yyv1329, false) + z.DecFallback(yyv1334, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11527,13 +11568,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.DeletingPodsQps = float32(r.DecodeFloat(true)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11543,13 +11584,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.DeletingPodsBurst = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11557,73 +11598,7 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.NodeMonitorGracePeriod = pkg1_unversioned.Duration{} } else { - yyv1333 := &x.NodeMonitorGracePeriod - yym1334 := z.DecBinary() - _ = yym1334 - if false { - } else if z.HasExtensions() && z.DecExt(yyv1333) { - } else if !yym1334 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1333) - } else { - z.DecFallback(yyv1333, false) - } - } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l - } else { - yyb1289 = r.CheckBreak() - } - if yyb1289 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.RegisterRetryCount = 0 - } else { - x.RegisterRetryCount = int32(r.DecodeInt(32)) - } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l - } else { - yyb1289 = r.CheckBreak() - } - if yyb1289 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.NodeStartupGracePeriod = pkg1_unversioned.Duration{} - } else { - yyv1336 := &x.NodeStartupGracePeriod - yym1337 := z.DecBinary() - _ = yym1337 - if false { - } else if z.HasExtensions() && z.DecExt(yyv1336) { - } else if !yym1337 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1336) - } else { - z.DecFallback(yyv1336, false) - } - } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l - } else { - yyb1289 = r.CheckBreak() - } - if yyb1289 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.NodeMonitorPeriod = pkg1_unversioned.Duration{} - } else { - yyv1338 := &x.NodeMonitorPeriod + yyv1338 := &x.NodeMonitorGracePeriod yym1339 := z.DecBinary() _ = yym1339 if false { @@ -11634,13 +11609,79 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * z.DecFallback(yyv1338, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.RegisterRetryCount = 0 + } else { + x.RegisterRetryCount = int32(r.DecodeInt(32)) + } + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l + } else { + yyb1294 = r.CheckBreak() + } + if yyb1294 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.NodeStartupGracePeriod = pkg1_unversioned.Duration{} + } else { + yyv1341 := &x.NodeStartupGracePeriod + yym1342 := z.DecBinary() + _ = yym1342 + if false { + } else if z.HasExtensions() && z.DecExt(yyv1341) { + } else if !yym1342 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1341) + } else { + z.DecFallback(yyv1341, false) + } + } + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l + } else { + yyb1294 = r.CheckBreak() + } + if yyb1294 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.NodeMonitorPeriod = pkg1_unversioned.Duration{} + } else { + yyv1343 := &x.NodeMonitorPeriod + yym1344 := z.DecBinary() + _ = yym1344 + if false { + } else if z.HasExtensions() && z.DecExt(yyv1343) { + } else if !yym1344 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1343) + } else { + z.DecFallback(yyv1343, false) + } + } + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l + } else { + yyb1294 = r.CheckBreak() + } + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11650,13 +11691,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ServiceAccountKeyFile = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11666,13 +11707,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ClusterSigningCertFile = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11682,13 +11723,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ClusterSigningKeyFile = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11698,13 +11739,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ApproveAllKubeletCSRsForGroup = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11714,13 +11755,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.EnableProfiling = bool(r.DecodeBool()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11730,13 +11771,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ClusterName = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11746,13 +11787,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ClusterCIDR = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11762,13 +11803,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ServiceCIDR = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11778,13 +11819,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.NodeCIDRMaskSize = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11794,13 +11835,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.AllocateNodeCIDRs = bool(r.DecodeBool()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11810,13 +11851,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConfigureCloudRoutes = bool(r.DecodeBool()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11826,13 +11867,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.RootCAFile = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11842,13 +11883,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ContentType = string(r.DecodeString()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11858,13 +11899,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.KubeAPIQPS = float32(r.DecodeFloat(true)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11874,13 +11915,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.KubeAPIBurst = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11888,16 +11929,16 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.LeaderElection = LeaderElectionConfiguration{} } else { - yyv1355 := &x.LeaderElection - yyv1355.CodecDecodeSelf(d) + yyv1360 := &x.LeaderElection + yyv1360.CodecDecodeSelf(d) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11905,16 +11946,16 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.VolumeConfiguration = VolumeConfiguration{} } else { - yyv1356 := &x.VolumeConfiguration - yyv1356.CodecDecodeSelf(d) + yyv1361 := &x.VolumeConfiguration + yyv1361.CodecDecodeSelf(d) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11922,24 +11963,24 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * if r.TryDecodeAsNil() { x.ControllerStartInterval = pkg1_unversioned.Duration{} } else { - yyv1357 := &x.ControllerStartInterval - yym1358 := z.DecBinary() - _ = yym1358 + yyv1362 := &x.ControllerStartInterval + yym1363 := z.DecBinary() + _ = yym1363 if false { - } else if z.HasExtensions() && z.DecExt(yyv1357) { - } else if !yym1358 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv1357) + } else if z.HasExtensions() && z.DecExt(yyv1362) { + } else if !yym1363 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv1362) } else { - z.DecFallback(yyv1357, false) + z.DecFallback(yyv1362, false) } } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11949,13 +11990,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.EnableGarbageCollector = bool(r.DecodeBool()) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11965,13 +12006,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.ConcurrentGCSyncs = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11981,13 +12022,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.NodeEvictionRate = float32(r.DecodeFloat(true)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -11997,13 +12038,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.SecondaryNodeEvictionRate = float32(r.DecodeFloat(true)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12013,13 +12054,13 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * } else { x.LargeClusterSizeThreshold = int32(r.DecodeInt(32)) } - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12030,17 +12071,17 @@ func (x *KubeControllerManagerConfiguration) codecDecodeSelfFromArray(l int, d * x.UnhealthyZoneThreshold = float32(r.DecodeFloat(true)) } for { - yyj1289++ - if yyhl1289 { - yyb1289 = yyj1289 > l + yyj1294++ + if yyhl1294 { + yyb1294 = yyj1294 > l } else { - yyb1289 = r.CheckBreak() + yyb1294 = r.CheckBreak() } - if yyb1289 { + if yyb1294 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj1289-1, "") + z.DecStructFieldNotFound(yyj1294-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -12052,33 +12093,33 @@ func (x *VolumeConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { if x == nil { r.EncodeNil() } else { - yym1365 := z.EncBinary() - _ = yym1365 + yym1370 := z.EncBinary() + _ = yym1370 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep1366 := !z.EncBinary() - yy2arr1366 := z.EncBasicHandle().StructToArray - var yyq1366 [4]bool - _, _, _ = yysep1366, yyq1366, yy2arr1366 - const yyr1366 bool = false - var yynn1366 int - if yyr1366 || yy2arr1366 { + yysep1371 := !z.EncBinary() + yy2arr1371 := z.EncBasicHandle().StructToArray + var yyq1371 [4]bool + _, _, _ = yysep1371, yyq1371, yy2arr1371 + const yyr1371 bool = false + var yynn1371 int + if yyr1371 || yy2arr1371 { r.EncodeArrayStart(4) } else { - yynn1366 = 4 - for _, b := range yyq1366 { + yynn1371 = 4 + for _, b := range yyq1371 { if b { - yynn1366++ + yynn1371++ } } - r.EncodeMapStart(yynn1366) - yynn1366 = 0 + r.EncodeMapStart(yynn1371) + yynn1371 = 0 } - if yyr1366 || yy2arr1366 { + if yyr1371 || yy2arr1371 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1368 := z.EncBinary() - _ = yym1368 + yym1373 := z.EncBinary() + _ = yym1373 if false { } else { r.EncodeBool(bool(x.EnableHostPathProvisioning)) @@ -12087,17 +12128,17 @@ func (x *VolumeConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enableHostPathProvisioning")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1369 := z.EncBinary() - _ = yym1369 + yym1374 := z.EncBinary() + _ = yym1374 if false { } else { r.EncodeBool(bool(x.EnableHostPathProvisioning)) } } - if yyr1366 || yy2arr1366 { + if yyr1371 || yy2arr1371 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1371 := z.EncBinary() - _ = yym1371 + yym1376 := z.EncBinary() + _ = yym1376 if false { } else { r.EncodeBool(bool(x.EnableDynamicProvisioning)) @@ -12106,28 +12147,28 @@ func (x *VolumeConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("enableDynamicProvisioning")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1372 := z.EncBinary() - _ = yym1372 + yym1377 := z.EncBinary() + _ = yym1377 if false { } else { r.EncodeBool(bool(x.EnableDynamicProvisioning)) } } - if yyr1366 || yy2arr1366 { + if yyr1371 || yy2arr1371 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yy1374 := &x.PersistentVolumeRecyclerConfiguration - yy1374.CodecEncodeSelf(e) + yy1379 := &x.PersistentVolumeRecyclerConfiguration + yy1379.CodecEncodeSelf(e) } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("persitentVolumeRecyclerConfiguration")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yy1375 := &x.PersistentVolumeRecyclerConfiguration - yy1375.CodecEncodeSelf(e) + yy1380 := &x.PersistentVolumeRecyclerConfiguration + yy1380.CodecEncodeSelf(e) } - if yyr1366 || yy2arr1366 { + if yyr1371 || yy2arr1371 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1377 := z.EncBinary() - _ = yym1377 + yym1382 := z.EncBinary() + _ = yym1382 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.FlexVolumePluginDir)) @@ -12136,14 +12177,14 @@ func (x *VolumeConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("flexVolumePluginDir")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1378 := z.EncBinary() - _ = yym1378 + yym1383 := z.EncBinary() + _ = yym1383 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.FlexVolumePluginDir)) } } - if yyr1366 || yy2arr1366 { + if yyr1371 || yy2arr1371 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -12156,25 +12197,25 @@ func (x *VolumeConfiguration) CodecDecodeSelf(d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym1379 := z.DecBinary() - _ = yym1379 + yym1384 := z.DecBinary() + _ = yym1384 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct1380 := r.ContainerType() - if yyct1380 == codecSelferValueTypeMap1234 { - yyl1380 := r.ReadMapStart() - if yyl1380 == 0 { + yyct1385 := r.ContainerType() + if yyct1385 == codecSelferValueTypeMap1234 { + yyl1385 := r.ReadMapStart() + if yyl1385 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl1380, d) + x.codecDecodeSelfFromMap(yyl1385, d) } - } else if yyct1380 == codecSelferValueTypeArray1234 { - yyl1380 := r.ReadArrayStart() - if yyl1380 == 0 { + } else if yyct1385 == codecSelferValueTypeArray1234 { + yyl1385 := r.ReadArrayStart() + if yyl1385 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl1380, d) + x.codecDecodeSelfFromArray(yyl1385, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -12186,12 +12227,12 @@ func (x *VolumeConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decoder var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys1381Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys1381Slc - var yyhl1381 bool = l >= 0 - for yyj1381 := 0; ; yyj1381++ { - if yyhl1381 { - if yyj1381 >= l { + var yys1386Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys1386Slc + var yyhl1386 bool = l >= 0 + for yyj1386 := 0; ; yyj1386++ { + if yyhl1386 { + if yyj1386 >= l { break } } else { @@ -12200,10 +12241,10 @@ func (x *VolumeConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decoder } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys1381Slc = r.DecodeBytes(yys1381Slc, true, true) - yys1381 := string(yys1381Slc) + yys1386Slc = r.DecodeBytes(yys1386Slc, true, true) + yys1386 := string(yys1386Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys1381 { + switch yys1386 { case "enableHostPathProvisioning": if r.TryDecodeAsNil() { x.EnableHostPathProvisioning = false @@ -12220,8 +12261,8 @@ func (x *VolumeConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decoder if r.TryDecodeAsNil() { x.PersistentVolumeRecyclerConfiguration = PersistentVolumeRecyclerConfiguration{} } else { - yyv1384 := &x.PersistentVolumeRecyclerConfiguration - yyv1384.CodecDecodeSelf(d) + yyv1389 := &x.PersistentVolumeRecyclerConfiguration + yyv1389.CodecDecodeSelf(d) } case "flexVolumePluginDir": if r.TryDecodeAsNil() { @@ -12230,9 +12271,9 @@ func (x *VolumeConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decoder x.FlexVolumePluginDir = string(r.DecodeString()) } default: - z.DecStructFieldNotFound(-1, yys1381) - } // end switch yys1381 - } // end for yyj1381 + z.DecStructFieldNotFound(-1, yys1386) + } // end switch yys1386 + } // end for yyj1386 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -12240,16 +12281,16 @@ func (x *VolumeConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Decod var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj1386 int - var yyb1386 bool - var yyhl1386 bool = l >= 0 - yyj1386++ - if yyhl1386 { - yyb1386 = yyj1386 > l + var yyj1391 int + var yyb1391 bool + var yyhl1391 bool = l >= 0 + yyj1391++ + if yyhl1391 { + yyb1391 = yyj1391 > l } else { - yyb1386 = r.CheckBreak() + yyb1391 = r.CheckBreak() } - if yyb1386 { + if yyb1391 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12259,13 +12300,13 @@ func (x *VolumeConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Decod } else { x.EnableHostPathProvisioning = bool(r.DecodeBool()) } - yyj1386++ - if yyhl1386 { - yyb1386 = yyj1386 > l + yyj1391++ + if yyhl1391 { + yyb1391 = yyj1391 > l } else { - yyb1386 = r.CheckBreak() + yyb1391 = r.CheckBreak() } - if yyb1386 { + if yyb1391 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12275,13 +12316,13 @@ func (x *VolumeConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Decod } else { x.EnableDynamicProvisioning = bool(r.DecodeBool()) } - yyj1386++ - if yyhl1386 { - yyb1386 = yyj1386 > l + yyj1391++ + if yyhl1391 { + yyb1391 = yyj1391 > l } else { - yyb1386 = r.CheckBreak() + yyb1391 = r.CheckBreak() } - if yyb1386 { + if yyb1391 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12289,16 +12330,16 @@ func (x *VolumeConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Decod if r.TryDecodeAsNil() { x.PersistentVolumeRecyclerConfiguration = PersistentVolumeRecyclerConfiguration{} } else { - yyv1389 := &x.PersistentVolumeRecyclerConfiguration - yyv1389.CodecDecodeSelf(d) + yyv1394 := &x.PersistentVolumeRecyclerConfiguration + yyv1394.CodecDecodeSelf(d) } - yyj1386++ - if yyhl1386 { - yyb1386 = yyj1386 > l + yyj1391++ + if yyhl1391 { + yyb1391 = yyj1391 > l } else { - yyb1386 = r.CheckBreak() + yyb1391 = r.CheckBreak() } - if yyb1386 { + if yyb1391 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12309,17 +12350,17 @@ func (x *VolumeConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Decod x.FlexVolumePluginDir = string(r.DecodeString()) } for { - yyj1386++ - if yyhl1386 { - yyb1386 = yyj1386 > l + yyj1391++ + if yyhl1391 { + yyb1391 = yyj1391 > l } else { - yyb1386 = r.CheckBreak() + yyb1391 = r.CheckBreak() } - if yyb1386 { + if yyb1391 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj1386-1, "") + z.DecStructFieldNotFound(yyj1391-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -12331,33 +12372,33 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc if x == nil { r.EncodeNil() } else { - yym1391 := z.EncBinary() - _ = yym1391 + yym1396 := z.EncBinary() + _ = yym1396 if false { } else if z.HasExtensions() && z.EncExt(x) { } else { - yysep1392 := !z.EncBinary() - yy2arr1392 := z.EncBasicHandle().StructToArray - var yyq1392 [7]bool - _, _, _ = yysep1392, yyq1392, yy2arr1392 - const yyr1392 bool = false - var yynn1392 int - if yyr1392 || yy2arr1392 { + yysep1397 := !z.EncBinary() + yy2arr1397 := z.EncBasicHandle().StructToArray + var yyq1397 [7]bool + _, _, _ = yysep1397, yyq1397, yy2arr1397 + const yyr1397 bool = false + var yynn1397 int + if yyr1397 || yy2arr1397 { r.EncodeArrayStart(7) } else { - yynn1392 = 7 - for _, b := range yyq1392 { + yynn1397 = 7 + for _, b := range yyq1397 { if b { - yynn1392++ + yynn1397++ } } - r.EncodeMapStart(yynn1392) - yynn1392 = 0 + r.EncodeMapStart(yynn1397) + yynn1397 = 0 } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1394 := z.EncBinary() - _ = yym1394 + yym1399 := z.EncBinary() + _ = yym1399 if false { } else { r.EncodeInt(int64(x.MaximumRetry)) @@ -12366,17 +12407,17 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("maximumRetry")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1395 := z.EncBinary() - _ = yym1395 + yym1400 := z.EncBinary() + _ = yym1400 if false { } else { r.EncodeInt(int64(x.MaximumRetry)) } } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1397 := z.EncBinary() - _ = yym1397 + yym1402 := z.EncBinary() + _ = yym1402 if false { } else { r.EncodeInt(int64(x.MinimumTimeoutNFS)) @@ -12385,17 +12426,17 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("minimumTimeoutNFS")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1398 := z.EncBinary() - _ = yym1398 + yym1403 := z.EncBinary() + _ = yym1403 if false { } else { r.EncodeInt(int64(x.MinimumTimeoutNFS)) } } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1400 := z.EncBinary() - _ = yym1400 + yym1405 := z.EncBinary() + _ = yym1405 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.PodTemplateFilePathNFS)) @@ -12404,17 +12445,17 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("podTemplateFilePathNFS")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1401 := z.EncBinary() - _ = yym1401 + yym1406 := z.EncBinary() + _ = yym1406 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.PodTemplateFilePathNFS)) } } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1403 := z.EncBinary() - _ = yym1403 + yym1408 := z.EncBinary() + _ = yym1408 if false { } else { r.EncodeInt(int64(x.IncrementTimeoutNFS)) @@ -12423,17 +12464,17 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("incrementTimeoutNFS")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1404 := z.EncBinary() - _ = yym1404 + yym1409 := z.EncBinary() + _ = yym1409 if false { } else { r.EncodeInt(int64(x.IncrementTimeoutNFS)) } } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1406 := z.EncBinary() - _ = yym1406 + yym1411 := z.EncBinary() + _ = yym1411 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.PodTemplateFilePathHostPath)) @@ -12442,17 +12483,17 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("podTemplateFilePathHostPath")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1407 := z.EncBinary() - _ = yym1407 + yym1412 := z.EncBinary() + _ = yym1412 if false { } else { r.EncodeString(codecSelferC_UTF81234, string(x.PodTemplateFilePathHostPath)) } } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1409 := z.EncBinary() - _ = yym1409 + yym1414 := z.EncBinary() + _ = yym1414 if false { } else { r.EncodeInt(int64(x.MinimumTimeoutHostPath)) @@ -12461,17 +12502,17 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("minimumTimeoutHostPath")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1410 := z.EncBinary() - _ = yym1410 + yym1415 := z.EncBinary() + _ = yym1415 if false { } else { r.EncodeInt(int64(x.MinimumTimeoutHostPath)) } } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym1412 := z.EncBinary() - _ = yym1412 + yym1417 := z.EncBinary() + _ = yym1417 if false { } else { r.EncodeInt(int64(x.IncrementTimeoutHostPath)) @@ -12480,14 +12521,14 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecEncodeSelf(e *codec1978.Enc z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("incrementTimeoutHostPath")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1413 := z.EncBinary() - _ = yym1413 + yym1418 := z.EncBinary() + _ = yym1418 if false { } else { r.EncodeInt(int64(x.IncrementTimeoutHostPath)) } } - if yyr1392 || yy2arr1392 { + if yyr1397 || yy2arr1397 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -12500,25 +12541,25 @@ func (x *PersistentVolumeRecyclerConfiguration) CodecDecodeSelf(d *codec1978.Dec var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yym1414 := z.DecBinary() - _ = yym1414 + yym1419 := z.DecBinary() + _ = yym1419 if false { } else if z.HasExtensions() && z.DecExt(x) { } else { - yyct1415 := r.ContainerType() - if yyct1415 == codecSelferValueTypeMap1234 { - yyl1415 := r.ReadMapStart() - if yyl1415 == 0 { + yyct1420 := r.ContainerType() + if yyct1420 == codecSelferValueTypeMap1234 { + yyl1420 := r.ReadMapStart() + if yyl1420 == 0 { z.DecSendContainerState(codecSelfer_containerMapEnd1234) } else { - x.codecDecodeSelfFromMap(yyl1415, d) + x.codecDecodeSelfFromMap(yyl1420, d) } - } else if yyct1415 == codecSelferValueTypeArray1234 { - yyl1415 := r.ReadArrayStart() - if yyl1415 == 0 { + } else if yyct1420 == codecSelferValueTypeArray1234 { + yyl1420 := r.ReadArrayStart() + if yyl1420 == 0 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } else { - x.codecDecodeSelfFromArray(yyl1415, d) + x.codecDecodeSelfFromArray(yyl1420, d) } } else { panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) @@ -12530,12 +12571,12 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromMap(l int, d var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yys1416Slc = z.DecScratchBuffer() // default slice to decode into - _ = yys1416Slc - var yyhl1416 bool = l >= 0 - for yyj1416 := 0; ; yyj1416++ { - if yyhl1416 { - if yyj1416 >= l { + var yys1421Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys1421Slc + var yyhl1421 bool = l >= 0 + for yyj1421 := 0; ; yyj1421++ { + if yyhl1421 { + if yyj1421 >= l { break } } else { @@ -12544,10 +12585,10 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromMap(l int, d } } z.DecSendContainerState(codecSelfer_containerMapKey1234) - yys1416Slc = r.DecodeBytes(yys1416Slc, true, true) - yys1416 := string(yys1416Slc) + yys1421Slc = r.DecodeBytes(yys1421Slc, true, true) + yys1421 := string(yys1421Slc) z.DecSendContainerState(codecSelfer_containerMapValue1234) - switch yys1416 { + switch yys1421 { case "maximumRetry": if r.TryDecodeAsNil() { x.MaximumRetry = 0 @@ -12591,9 +12632,9 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromMap(l int, d x.IncrementTimeoutHostPath = int32(r.DecodeInt(32)) } default: - z.DecStructFieldNotFound(-1, yys1416) - } // end switch yys1416 - } // end for yyj1416 + z.DecStructFieldNotFound(-1, yys1421) + } // end switch yys1421 + } // end for yyj1421 z.DecSendContainerState(codecSelfer_containerMapEnd1234) } @@ -12601,16 +12642,16 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj1424 int - var yyb1424 bool - var yyhl1424 bool = l >= 0 - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + var yyj1429 int + var yyb1429 bool + var yyhl1429 bool = l >= 0 + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12620,13 +12661,13 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, } else { x.MaximumRetry = int32(r.DecodeInt(32)) } - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12636,13 +12677,13 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, } else { x.MinimumTimeoutNFS = int32(r.DecodeInt(32)) } - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12652,13 +12693,13 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, } else { x.PodTemplateFilePathNFS = string(r.DecodeString()) } - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12668,13 +12709,13 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, } else { x.IncrementTimeoutNFS = int32(r.DecodeInt(32)) } - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12684,13 +12725,13 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, } else { x.PodTemplateFilePathHostPath = string(r.DecodeString()) } - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12700,13 +12741,13 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, } else { x.MinimumTimeoutHostPath = int32(r.DecodeInt(32)) } - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -12717,17 +12758,17 @@ func (x *PersistentVolumeRecyclerConfiguration) codecDecodeSelfFromArray(l int, x.IncrementTimeoutHostPath = int32(r.DecodeInt(32)) } for { - yyj1424++ - if yyhl1424 { - yyb1424 = yyj1424 > l + yyj1429++ + if yyhl1429 { + yyb1429 = yyj1429 > l } else { - yyb1424 = r.CheckBreak() + yyb1429 = r.CheckBreak() } - if yyb1424 { + if yyb1429 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj1424-1, "") + z.DecStructFieldNotFound(yyj1429-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -12737,20 +12778,20 @@ func (x codecSelfer1234) encconfig_ConfigurationMap(v pkg2_config.ConfigurationM z, r := codec1978.GenHelperEncoder(e) _, _, _ = h, z, r r.EncodeMapStart(len(v)) - for yyk1432, yyv1432 := range v { + for yyk1437, yyv1437 := range v { z.EncSendContainerState(codecSelfer_containerMapKey1234) - yym1433 := z.EncBinary() - _ = yym1433 + yym1438 := z.EncBinary() + _ = yym1438 if false { } else { - r.EncodeString(codecSelferC_UTF81234, string(yyk1432)) + r.EncodeString(codecSelferC_UTF81234, string(yyk1437)) } z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym1434 := z.EncBinary() - _ = yym1434 + yym1439 := z.EncBinary() + _ = yym1439 if false { } else { - r.EncodeString(codecSelferC_UTF81234, string(yyv1432)) + r.EncodeString(codecSelferC_UTF81234, string(yyv1437)) } } z.EncSendContainerState(codecSelfer_containerMapEnd1234) @@ -12761,63 +12802,63 @@ func (x codecSelfer1234) decconfig_ConfigurationMap(v *pkg2_config.Configuration z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - yyv1435 := *v - yyl1435 := r.ReadMapStart() - yybh1435 := z.DecBasicHandle() - if yyv1435 == nil { - yyrl1435, _ := z.DecInferLen(yyl1435, yybh1435.MaxInitLen, 32) - yyv1435 = make(map[string]string, yyrl1435) - *v = yyv1435 + yyv1440 := *v + yyl1440 := r.ReadMapStart() + yybh1440 := z.DecBasicHandle() + if yyv1440 == nil { + yyrl1440, _ := z.DecInferLen(yyl1440, yybh1440.MaxInitLen, 32) + yyv1440 = make(map[string]string, yyrl1440) + *v = yyv1440 } - var yymk1435 string - var yymv1435 string - var yymg1435 bool - if yybh1435.MapValueReset { + var yymk1440 string + var yymv1440 string + var yymg1440 bool + if yybh1440.MapValueReset { } - if yyl1435 > 0 { - for yyj1435 := 0; yyj1435 < yyl1435; yyj1435++ { + if yyl1440 > 0 { + for yyj1440 := 0; yyj1440 < yyl1440; yyj1440++ { z.DecSendContainerState(codecSelfer_containerMapKey1234) if r.TryDecodeAsNil() { - yymk1435 = "" + yymk1440 = "" } else { - yymk1435 = string(r.DecodeString()) + yymk1440 = string(r.DecodeString()) } - if yymg1435 { - yymv1435 = yyv1435[yymk1435] + if yymg1440 { + yymv1440 = yyv1440[yymk1440] } z.DecSendContainerState(codecSelfer_containerMapValue1234) if r.TryDecodeAsNil() { - yymv1435 = "" + yymv1440 = "" } else { - yymv1435 = string(r.DecodeString()) + yymv1440 = string(r.DecodeString()) } - if yyv1435 != nil { - yyv1435[yymk1435] = yymv1435 + if yyv1440 != nil { + yyv1440[yymk1440] = yymv1440 } } - } else if yyl1435 < 0 { - for yyj1435 := 0; !r.CheckBreak(); yyj1435++ { + } else if yyl1440 < 0 { + for yyj1440 := 0; !r.CheckBreak(); yyj1440++ { z.DecSendContainerState(codecSelfer_containerMapKey1234) if r.TryDecodeAsNil() { - yymk1435 = "" + yymk1440 = "" } else { - yymk1435 = string(r.DecodeString()) + yymk1440 = string(r.DecodeString()) } - if yymg1435 { - yymv1435 = yyv1435[yymk1435] + if yymg1440 { + yymv1440 = yyv1440[yymk1440] } z.DecSendContainerState(codecSelfer_containerMapValue1234) if r.TryDecodeAsNil() { - yymv1435 = "" + yymv1440 = "" } else { - yymv1435 = string(r.DecodeString()) + yymv1440 = string(r.DecodeString()) } - if yyv1435 != nil { - yyv1435[yymk1435] = yymv1435 + if yyv1440 != nil { + yyv1440[yymk1440] = yymv1440 } } } // else len==0: TODO: Should we clear map entries? diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go index 45dd4de00..78a07ec24 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go @@ -424,6 +424,9 @@ type KubeletConfiguration struct { // Comma-delimited list of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure. // +optional EvictionMinimumReclaim string `json:"evictionMinimumReclaim,omitempty"` + // If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling. + // +optional + ExperimentalKernelMemcgNotification bool `json:"experimentalKernelMemcgNotification"` // Maximum number of pods per core. Cannot exceed MaxPods PodsPerCore int32 `json:"podsPerCore"` // enableControllerAttachDetach enables the Attach/Detach controller to diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go index 318cdd03c..7cf8834b4 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/defaults.go @@ -374,6 +374,9 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { if obj.EvictionPressureTransitionPeriod == zeroDuration { obj.EvictionPressureTransitionPeriod = unversioned.Duration{Duration: 5 * time.Minute} } + if obj.ExperimentalKernelMemcgNotification == nil { + obj.ExperimentalKernelMemcgNotification = boolVar(false) + } if obj.SystemReserved == nil { obj.SystemReserved = make(map[string]string) } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go index 1fb829213..7c192a17b 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/types.go @@ -462,6 +462,8 @@ type KubeletConfiguration struct { EvictionMaxPodGracePeriod int32 `json:"evictionMaxPodGracePeriod"` // Comma-delimited list of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure. EvictionMinimumReclaim string `json:"evictionMinimumReclaim"` + // If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling. + ExperimentalKernelMemcgNotification *bool `json:"experimentalKernelMemcgNotification"` // Maximum number of pods per core. Cannot exceed MaxPods PodsPerCore int32 `json:"podsPerCore"` // enableControllerAttachDetach enables the Attach/Detach controller to diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go index a8c1ce522..b76653e91 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go @@ -387,6 +387,9 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu out.EvictionPressureTransitionPeriod = in.EvictionPressureTransitionPeriod out.EvictionMaxPodGracePeriod = in.EvictionMaxPodGracePeriod out.EvictionMinimumReclaim = in.EvictionMinimumReclaim + if err := api.Convert_Pointer_bool_To_bool(&in.ExperimentalKernelMemcgNotification, &out.ExperimentalKernelMemcgNotification, s); err != nil { + return err + } out.PodsPerCore = in.PodsPerCore if err := api.Convert_Pointer_bool_To_bool(&in.EnableControllerAttachDetach, &out.EnableControllerAttachDetach, s); err != nil { return err @@ -556,6 +559,9 @@ func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigu out.EvictionPressureTransitionPeriod = in.EvictionPressureTransitionPeriod out.EvictionMaxPodGracePeriod = in.EvictionMaxPodGracePeriod out.EvictionMinimumReclaim = in.EvictionMinimumReclaim + if err := api.Convert_bool_To_Pointer_bool(&in.ExperimentalKernelMemcgNotification, &out.ExperimentalKernelMemcgNotification, s); err != nil { + return err + } out.PodsPerCore = in.PodsPerCore if err := api.Convert_bool_To_Pointer_bool(&in.EnableControllerAttachDetach, &out.EnableControllerAttachDetach, s); err != nil { return err diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go index 2f5bc2852..a725d641e 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go @@ -403,6 +403,13 @@ func DeepCopy_v1alpha1_KubeletConfiguration(in interface{}, out interface{}, c * out.EvictionPressureTransitionPeriod = in.EvictionPressureTransitionPeriod out.EvictionMaxPodGracePeriod = in.EvictionMaxPodGracePeriod out.EvictionMinimumReclaim = in.EvictionMinimumReclaim + if in.ExperimentalKernelMemcgNotification != nil { + in, out := &in.ExperimentalKernelMemcgNotification, &out.ExperimentalKernelMemcgNotification + *out = new(bool) + **out = **in + } else { + out.ExperimentalKernelMemcgNotification = nil + } out.PodsPerCore = in.PodsPerCore if in.EnableControllerAttachDetach != nil { in, out := &in.EnableControllerAttachDetach, &out.EnableControllerAttachDetach diff --git a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go index 9f9ce1bb3..9c536b684 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go @@ -358,6 +358,7 @@ func DeepCopy_componentconfig_KubeletConfiguration(in interface{}, out interface out.EvictionPressureTransitionPeriod = in.EvictionPressureTransitionPeriod out.EvictionMaxPodGracePeriod = in.EvictionMaxPodGracePeriod out.EvictionMinimumReclaim = in.EvictionMinimumReclaim + out.ExperimentalKernelMemcgNotification = in.ExperimentalKernelMemcgNotification out.PodsPerCore = in.PodsPerCore out.EnableControllerAttachDetach = in.EnableControllerAttachDetach if in.SystemReserved != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/client/cache/reflector.go b/vendor/k8s.io/kubernetes/pkg/client/cache/reflector.go index 8a0d05ab4..b4cd417f1 100644 --- a/vendor/k8s.io/kubernetes/pkg/client/cache/reflector.go +++ b/vendor/k8s.io/kubernetes/pkg/client/cache/reflector.go @@ -259,12 +259,16 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { r.setLastSyncResourceVersion(resourceVersion) resyncerrc := make(chan error, 1) + cancelCh := make(chan struct{}) + defer close(cancelCh) go func() { for { select { case <-resyncCh: case <-stopCh: return + case <-cancelCh: + return } glog.V(4).Infof("%s: forcing resync", r.name) if err := r.store.Resync(); err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/storage/cacher.go b/vendor/k8s.io/kubernetes/pkg/storage/cacher.go index ae64f741d..f7f5febf4 100644 --- a/vendor/k8s.io/kubernetes/pkg/storage/cacher.go +++ b/vendor/k8s.io/kubernetes/pkg/storage/cacher.go @@ -531,17 +531,23 @@ func (c *Cacher) dispatchEvents() { func (c *Cacher) dispatchEvent(event *watchCacheEvent) { triggerValues, supported := c.triggerValues(event) + // TODO: For now we assume we have a given budget for dispatching + // a single event. We should consider changing to the approach with: + // - budget has upper bound at + // - we add to current timeout every second + timeout := time.Duration(250) * time.Millisecond + c.Lock() defer c.Unlock() // Iterate over "allWatchers" no matter what the trigger function is. for _, watcher := range c.watchers.allWatchers { - watcher.add(event) + watcher.add(event, &timeout) } if supported { // Iterate over watchers interested in the given values of the trigger. for _, triggerValue := range triggerValues { for _, watcher := range c.watchers.valueWatchers[triggerValue] { - watcher.add(event) + watcher.add(event, &timeout) } } } else { @@ -554,7 +560,7 @@ func (c *Cacher) dispatchEvent(event *watchCacheEvent) { // Iterate over watchers interested in exact values for all values. for _, watchers := range c.watchers.valueWatchers { for _, watcher := range watchers { - watcher.add(event) + watcher.add(event, &timeout) } } } @@ -728,7 +734,7 @@ func (c *cacheWatcher) stop() { var timerPool sync.Pool -func (c *cacheWatcher) add(event *watchCacheEvent) { +func (c *cacheWatcher) add(event *watchCacheEvent, timeout *time.Duration) { // Try to send the event immediately, without blocking. select { case c.input <- *event: @@ -736,20 +742,16 @@ func (c *cacheWatcher) add(event *watchCacheEvent) { default: } - // OK, block sending, but only for up to 5 seconds. + // OK, block sending, but only for up to . // cacheWatcher.add is called very often, so arrange // to reuse timers instead of constantly allocating. - trace := util.NewTrace( - fmt.Sprintf("cacheWatcher %v: waiting for add (initial result size %v)", - reflect.TypeOf(event.Object).String(), len(c.result))) - defer trace.LogIfLong(50 * time.Millisecond) + startTime := time.Now() - const timeout = 5 * time.Second t, ok := timerPool.Get().(*time.Timer) if ok { - t.Reset(timeout) + t.Reset(*timeout) } else { - t = time.NewTimer(timeout) + t = time.NewTimer(*timeout) } defer timerPool.Put(t) @@ -768,6 +770,10 @@ func (c *cacheWatcher) add(event *watchCacheEvent) { c.forget(false) c.stop() } + + if *timeout = *timeout - time.Since(startTime); *timeout < 0 { + *timeout = 0 + } } // NOTE: sendWatchCacheEvent is assumed to not modify !!! diff --git a/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/BUILD b/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/BUILD index 3caecf81c..433cd4350 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/BUILD @@ -20,7 +20,7 @@ go_library( deps = [ "//pkg/util/clock:go_default_library", "//pkg/util/integer:go_default_library", - "//pkg/util/ratelimit:go_default_library", + "//vendor:github.com/juju/ratelimit", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/throttle.go b/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/throttle.go index 42170a189..881a2f57d 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/throttle.go +++ b/vendor/k8s.io/kubernetes/pkg/util/flowcontrol/throttle.go @@ -19,7 +19,7 @@ package flowcontrol import ( "sync" - "k8s.io/kubernetes/pkg/util/ratelimit" + "github.com/juju/ratelimit" ) type RateLimiter interface { diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go index 2688f8105..dff5353e7 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go @@ -74,9 +74,9 @@ func (mounter *Mounter) Mount(source string, target string, fstype string, optio } return doMount(mounterPath, source, target, fstype, bindRemountOpts) } - // These filesystem types are expected to be supported by the mount utility on the host across all Linux distros. - var defaultMounterFsTypes = sets.NewString("tmpfs", "ext4", "ext3", "ext2") - if !defaultMounterFsTypes.Has(fstype) { + // The list of filesystems that require containerized mounter on GCI image cluster + fsTypesNeedMounter := sets.NewString("nfs", "glusterfs") + if fsTypesNeedMounter.Has(fstype) { mounterPath = mounter.mounterPath } return doMount(mounterPath, source, target, fstype, options) diff --git a/vendor/k8s.io/kubernetes/pkg/util/rand/rand.go b/vendor/k8s.io/kubernetes/pkg/util/rand/rand.go index 134c15260..db109c2cd 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/rand/rand.go +++ b/vendor/k8s.io/kubernetes/pkg/util/rand/rand.go @@ -23,8 +23,6 @@ import ( "time" ) -var letters = []rune("abcdefghijklmnopqrstuvwxyz0123456789") -var numLetters = len(letters) var rng = struct { sync.Mutex rand *rand.Rand @@ -72,12 +70,16 @@ func Perm(n int) []int { return rng.rand.Perm(n) } -// String generates a random alphanumeric string n characters long. This will -// panic if n is less than zero. +// We omit vowels from the set of available characters to reduce the chances +// of "bad words" being formed. +var alphanums = []rune("bcdfghjklmnpqrstvwxz0123456789") + +// String generates a random alphanumeric string, without vowels, which is n +// characters long. This will panic if n is less than zero. func String(length int) string { b := make([]rune, length) for i := range b { - b[i] = letters[Intn(numLetters)] + b[i] = alphanums[Intn(len(alphanums))] } return string(b) } diff --git a/vendor/k8s.io/kubernetes/pkg/util/ratelimit/BUILD b/vendor/k8s.io/kubernetes/pkg/util/ratelimit/BUILD deleted file mode 100644 index 760940e2e..000000000 --- a/vendor/k8s.io/kubernetes/pkg/util/ratelimit/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", - "go_test", - "cgo_library", -) - -go_library( - name = "go_default_library", - srcs = ["bucket.go"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_test", - srcs = ["bucket_test.go"], - library = "go_default_library", - tags = ["automanaged"], - deps = [], -) diff --git a/vendor/k8s.io/kubernetes/pkg/util/ratelimit/bucket.go b/vendor/k8s.io/kubernetes/pkg/util/ratelimit/bucket.go deleted file mode 100644 index 752a251d0..000000000 --- a/vendor/k8s.io/kubernetes/pkg/util/ratelimit/bucket.go +++ /dev/null @@ -1,170 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -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. -*/ - -package ratelimit - -import ( - "math" - "sync" - "time" -) - -// Bucket models a token bucket -type Bucket struct { - unitsPerNano float64 - nanosPerUnit float64 - capacity int64 - - mutex sync.Mutex - available int64 - lastRefill int64 - // fractionalAvailable "buffers" any amounts that flowed into the bucket smaller than one unit - // This lets us retain precision even with pathological refill rates like (1E9 + 1) per second - fractionalAvailable float64 -} - -// NewBucketWithRate creates a new token bucket, with maximum capacity = initial capacity, and a refill rate of qps -// We use floats for refill calculations, which introduces the possibility of truncation and rounding errors. -// For "sensible" qps values though, is is acceptable: jbeda did some tests here https://play.golang.org/p/LSKUOGz2LG -func NewBucketWithRate(qps float64, capacity int64) *Bucket { - unitsPerNano := qps / 1E9 - nanosPerUnit := 1E9 / qps - b := &Bucket{ - unitsPerNano: unitsPerNano, - nanosPerUnit: nanosPerUnit, - capacity: capacity, - available: capacity, - lastRefill: time.Now().UnixNano(), - } - return b -} - -// Take takes n units from the bucket, reducing the available quantity even below zero, -// but then returns the amount of time we should wait -func (b *Bucket) Take(n int64) time.Duration { - b.mutex.Lock() - defer b.mutex.Unlock() - - var d time.Duration - if b.available >= n { - // Fast path when bucket has sufficient availability before refilling - } else { - b.refill() - - if b.available < n { - deficit := n - b.available - d = time.Duration(int64(float64(deficit) * b.nanosPerUnit)) - } - } - - b.available -= n - - return d -} - -// TakeAvailable immediately takes whatever quantity is available, up to max -func (b *Bucket) TakeAvailable(max int64) int64 { - b.mutex.Lock() - defer b.mutex.Unlock() - - var took int64 - if b.available >= max { - // Fast path when bucket has sufficient availability before refilling - took = max - } else { - b.refill() - - took = b.available - - if took < 0 { - took = 0 - } else if took > max { - took = max - } - } - - if took > 0 { - b.available -= took - } - - return took -} - -// Wait combines a call to Take with a sleep call -func (b *Bucket) Wait(n int64) { - d := b.Take(n) - if d != 0 { - time.Sleep(d) - } -} - -// Capacity returns the maximum capacity of the bucket -func (b *Bucket) Capacity() int64 { - return b.capacity -} - -// Available returns the quantity available in the bucket (which may be negative), but does not take it. -// This function is for diagnostic / informational purposes only - the returned capacity may immediately -// be inaccurate if another thread is operating on the bucket concurrently. -func (b *Bucket) Available() int64 { - b.mutex.Lock() - defer b.mutex.Unlock() - - b.refill() - - return b.available -} - -// refill replenishes the bucket based on elapsed time; mutex must be held -func (b *Bucket) refill() { - // Note that we really want a monotonic clock here, but go says no: - // https://github.com/golang/go/issues/12914 - now := time.Now().UnixNano() - - b.refillAtTimestamp(now) -} - -// refillAtTimestamp is the logic of the refill function, for testing -func (b *Bucket) refillAtTimestamp(now int64) { - nanosSinceLastRefill := now - b.lastRefill - if nanosSinceLastRefill <= 0 { - // we really want monotonic - return - } - - // Compute units that have flowed into bucket - refillFloat := (float64(nanosSinceLastRefill) * b.unitsPerNano) + b.fractionalAvailable - if refillFloat > float64(b.capacity) { - // float64 > MaxInt64 can be converted to negative int64; side step this - b.available = b.capacity - - // Don't worry about the fractional units with huge refill rates - } else { - whole, fraction := math.Modf(refillFloat) - refill := int64(whole) - b.fractionalAvailable = fraction - if refill != 0 { - // Refill with overflow - b.available += refill - if b.available >= b.capacity { - b.available = b.capacity - b.fractionalAvailable = 0 - } - } - - } - b.lastRefill = now -} diff --git a/vendor/k8s.io/kubernetes/pkg/util/workqueue/BUILD b/vendor/k8s.io/kubernetes/pkg/util/workqueue/BUILD index af8eb0032..8b8e98d92 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/workqueue/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/workqueue/BUILD @@ -25,8 +25,8 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/util/clock:go_default_library", - "//pkg/util/ratelimit:go_default_library", "//pkg/util/runtime:go_default_library", + "//vendor:github.com/juju/ratelimit", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/util/workqueue/default_rate_limiters.go b/vendor/k8s.io/kubernetes/pkg/util/workqueue/default_rate_limiters.go index 0b5b9bba2..35caed4fa 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/workqueue/default_rate_limiters.go +++ b/vendor/k8s.io/kubernetes/pkg/util/workqueue/default_rate_limiters.go @@ -21,7 +21,7 @@ import ( "sync" "time" - "k8s.io/kubernetes/pkg/util/ratelimit" + "github.com/juju/ratelimit" ) type RateLimiter interface { @@ -35,7 +35,7 @@ type RateLimiter interface { } // DefaultControllerRateLimiter is a no-arg constructor for a default rate limiter for a workqueue. It has -// both overall and per-item rate limiting. The overall is a token bucket and the per-item is exponential +// both overall and per-item rate limitting. The overall is a token bucket and the per-item is exponential func DefaultControllerRateLimiter() RateLimiter { return NewMaxOfRateLimiter( NewItemExponentialFailureRateLimiter(5*time.Millisecond, 1000*time.Second), diff --git a/vendor/k8s.io/kubernetes/pkg/version/base.go b/vendor/k8s.io/kubernetes/pkg/version/base.go index e16da307e..6c8af1c70 100644 --- a/vendor/k8s.io/kubernetes/pkg/version/base.go +++ b/vendor/k8s.io/kubernetes/pkg/version/base.go @@ -39,8 +39,8 @@ var ( // them irrelevant. (Next we'll take it out, which may muck with // scripts consuming the kubectl version output - but most of // these should be looking at gitVersion already anyways.) - gitMajor string = "1" // major version, always numeric - gitMinor string = "5+" // minor version, numeric possibly followed by "+" + gitMajor string = "1" // major version, always numeric + gitMinor string = "5" // minor version, numeric possibly followed by "+" // semantic version, derived by build scripts (see // https://github.com/kubernetes/kubernetes/blob/master/docs/design/versioning.md @@ -51,7 +51,7 @@ var ( // semantic version is a git hash, but the version itself is no // longer the direct output of "git describe", but a slight // translation to be semver compliant. - gitVersion string = "v1.5.0-beta.2+$Format:%h$" + gitVersion string = "v1.5.1+$Format:%h$" gitCommit string = "$Format:%H$" // sha1 from git, output of $(git rev-parse HEAD) gitTreeState string = "not a git tree" // state of git tree, either "clean" or "dirty" diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/util.go b/vendor/k8s.io/kubernetes/pkg/volume/util/util.go index 8b67c5d2f..8122e04dd 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/util.go @@ -94,7 +94,7 @@ func UnmountPath(mountPath string, mounter mount.Interface) error { return err } if notMnt { - glog.V(4).Info("%q is unmounted, deleting the directory", mountPath) + glog.V(4).Infof("%q is unmounted, deleting the directory", mountPath) return os.Remove(mountPath) } return nil diff --git a/vendor/k8s.io/kubernetes/pkg/volume/volume_linux.go b/vendor/k8s.io/kubernetes/pkg/volume/volume_linux.go index 1391e6225..d82c77672 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/volume_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/volume_linux.go @@ -51,6 +51,17 @@ func SetVolumeOwnership(mounter Mounter, fsGroup *int64) error { return err } + // chown and chmod pass through to the underlying file for symlinks. + // Symlinks have a mode of 777 but this really doesn't mean anything. + // The permissions of the underlying file are what matter. + // However, if one reads the mode of a symlink then chmods the symlink + // with that mode, it changes the mode of the underlying file, overridden + // the defaultMode and permissions initialized by the volume plugin, which + // is not what we want; thus, we skip chown/chmod for symlinks. + if info.Mode()&os.ModeSymlink != 0 { + return nil + } + stat, ok := info.Sys().(*syscall.Stat_t) if !ok { return nil From 8191245eee020af2dc24451b1de7fda2574ed167 Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Tue, 10 Jan 2017 09:16:18 -0300 Subject: [PATCH 3/4] Fix interface duplication --- core/pkg/ingress/annotations/authtls/main.go | 21 +++------------- .../ingress/controller/annotations_test.go | 4 ++-- core/pkg/ingress/controller/controller.go | 8 +++---- core/pkg/ingress/controller/util.go | 11 +++++---- core/pkg/ingress/resolver/main.go | 24 +++++++++++++++---- core/pkg/ingress/types.go | 4 ++-- 6 files changed, 37 insertions(+), 35 deletions(-) diff --git a/core/pkg/ingress/annotations/authtls/main.go b/core/pkg/ingress/annotations/authtls/main.go index 79d4b22d5..415b079c8 100644 --- a/core/pkg/ingress/annotations/authtls/main.go +++ b/core/pkg/ingress/annotations/authtls/main.go @@ -21,6 +21,7 @@ import ( "k8s.io/ingress/core/pkg/ingress/annotations/parser" ing_errors "k8s.io/ingress/core/pkg/ingress/errors" + "k8s.io/ingress/core/pkg/ingress/resolver" "k8s.io/ingress/core/pkg/k8s" ) @@ -29,28 +30,12 @@ const ( authTLSSecret = "ingress.kubernetes.io/auth-tls-secret" ) -// AuthCertificate has a method that searchs for a secret -// that contains a SSL certificate. -// The secret must contain 3 keys named: -type AuthCertificate interface { - GetAuthCertificate(string) (*SSLCert, error) -} - -// SSLCert returns external authentication configuration for an Ingress rule -type SSLCert struct { - Secret string `json:"secret"` - CertFileName string `json:"certFilename"` - KeyFileName string `json:"keyFilename"` - CAFileName string `json:"caFilename"` - PemSHA string `json:"pemSha"` -} - type authTLS struct { - certResolver AuthCertificate + certResolver resolver.AuthCertificate } // NewParser creates a new TLS authentication annotation parser -func NewParser(resolver AuthCertificate) parser.IngressAnnotation { +func NewParser(resolver resolver.AuthCertificate) parser.IngressAnnotation { return authTLS{resolver} } diff --git a/core/pkg/ingress/controller/annotations_test.go b/core/pkg/ingress/controller/annotations_test.go index 431e3c1a8..687830288 100644 --- a/core/pkg/ingress/controller/annotations_test.go +++ b/core/pkg/ingress/controller/annotations_test.go @@ -23,8 +23,8 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/util/intstr" - "k8s.io/ingress/core/pkg/ingress/annotations/authtls" "k8s.io/ingress/core/pkg/ingress/defaults" + "k8s.io/ingress/core/pkg/ingress/resolver" ) type mockCfg struct { @@ -38,7 +38,7 @@ func (m mockCfg) GetSecret(string) (*api.Secret, error) { return nil, nil } -func (m mockCfg) GetAuthCertificate(string) (*authtls.SSLCert, error) { +func (m mockCfg) GetAuthCertificate(string) (*resolver.AuthSSLCert, error) { return nil, nil } diff --git a/core/pkg/ingress/controller/controller.go b/core/pkg/ingress/controller/controller.go index 1851bb9b5..76f1bdbe4 100644 --- a/core/pkg/ingress/controller/controller.go +++ b/core/pkg/ingress/controller/controller.go @@ -39,11 +39,11 @@ import ( cache_store "k8s.io/ingress/core/pkg/cache" "k8s.io/ingress/core/pkg/ingress" - "k8s.io/ingress/core/pkg/ingress/annotations/authtls" "k8s.io/ingress/core/pkg/ingress/annotations/healthcheck" "k8s.io/ingress/core/pkg/ingress/annotations/proxy" "k8s.io/ingress/core/pkg/ingress/annotations/service" "k8s.io/ingress/core/pkg/ingress/defaults" + "k8s.io/ingress/core/pkg/ingress/resolver" "k8s.io/ingress/core/pkg/ingress/status" "k8s.io/ingress/core/pkg/k8s" local_strings "k8s.io/ingress/core/pkg/strings" @@ -668,13 +668,13 @@ func (ic *GenericController) getBackendServers() ([]*ingress.Backend, []*ingress } // GetAuthCertificate ... -func (ic GenericController) GetAuthCertificate(secretName string) (*authtls.SSLCert, error) { +func (ic GenericController) GetAuthCertificate(secretName string) (*resolver.AuthSSLCert, error) { bc, exists := ic.sslCertTracker.Get(secretName) if !exists { - return &authtls.SSLCert{}, fmt.Errorf("secret %v does not exists", secretName) + return &resolver.AuthSSLCert{}, fmt.Errorf("secret %v does not exists", secretName) } cert := bc.(*ingress.SSLCert) - return &authtls.SSLCert{ + return &resolver.AuthSSLCert{ Secret: secretName, CertFileName: cert.PemFileName, CAFileName: cert.CAFileName, diff --git a/core/pkg/ingress/controller/util.go b/core/pkg/ingress/controller/util.go index 57b31dba3..439526cba 100644 --- a/core/pkg/ingress/controller/util.go +++ b/core/pkg/ingress/controller/util.go @@ -28,6 +28,9 @@ import ( "k8s.io/ingress/core/pkg/ingress/annotations/parser" ) +// DeniedKeyName name of the key that contains the reason to deny a location +const DeniedKeyName = "Denied" + // newDefaultServer return an BackendServer to be use as default server that returns 503. func newDefaultServer() ingress.Endpoint { return ingress.Endpoint{Address: "127.0.0.1", Port: "8181"} @@ -97,13 +100,11 @@ func IsValidClass(ing *extensions.Ingress, class string) bool { return cc == class } -const denied = "Denied" - func mergeLocationAnnotations(loc *ingress.Location, anns map[string]interface{}) { - if _, ok := anns[denied]; ok { - loc.Denied = anns[denied].(error) + if _, ok := anns[DeniedKeyName]; ok { + loc.Denied = anns[DeniedKeyName].(error) } - delete(anns, denied) + delete(anns, DeniedKeyName) err := mergo.Map(loc, anns) if err != nil { glog.Errorf("unexpected error merging extracted annotations in location type: %v", err) diff --git a/core/pkg/ingress/resolver/main.go b/core/pkg/ingress/resolver/main.go index c345ad289..1e122e236 100644 --- a/core/pkg/ingress/resolver/main.go +++ b/core/pkg/ingress/resolver/main.go @@ -19,7 +19,6 @@ package resolver import ( "k8s.io/kubernetes/pkg/api" - "k8s.io/ingress/core/pkg/ingress/annotations/authtls" "k8s.io/ingress/core/pkg/ingress/defaults" ) @@ -35,9 +34,26 @@ type Secret interface { GetSecret(string) (*api.Secret, error) } -// AuthCertificate has a method that searchs for a secret -// that contains a SSL certificate. +// AuthCertificate resolves a given secret name into an SSL certificate. // The secret must contain 3 keys named: +// ca.crt: contains the certificate chain used for authentication +// tls.crt: (ignored) contains the tls certificate chain, or any other valid base64 data +// tls.key: (ignored) contains the tls secret key, or any other valid base64 data type AuthCertificate interface { - GetAuthCertificate(string) (*authtls.SSLCert, error) + GetAuthCertificate(string) (*AuthSSLCert, error) +} + +// AuthSSLCert contains the necessary information to do certificate based +// authentication of an ingress location +type AuthSSLCert struct { + // Secret contains the name of the secret this was fetched from + Secret string `json:"secret"` + // CertFileName contains the filename the secret's 'tls.crt' was saved to + CertFileName string `json:"certFilename"` + // KeyFileName contains the path the secret's 'tls.key' + KeyFileName string `json:"keyFilename"` + // CAFileName contains the path to the secrets 'ca.crt' + CAFileName string `json:"caFilename"` + // PemSHA contains the SHA1 hash of the 'tls.crt' value + PemSHA string `json:"pemSha"` } diff --git a/core/pkg/ingress/types.go b/core/pkg/ingress/types.go index e26b1e9c5..dc8080987 100644 --- a/core/pkg/ingress/types.go +++ b/core/pkg/ingress/types.go @@ -22,12 +22,12 @@ import ( "k8s.io/ingress/core/pkg/ingress/annotations/auth" "k8s.io/ingress/core/pkg/ingress/annotations/authreq" - "k8s.io/ingress/core/pkg/ingress/annotations/authtls" "k8s.io/ingress/core/pkg/ingress/annotations/ipwhitelist" "k8s.io/ingress/core/pkg/ingress/annotations/proxy" "k8s.io/ingress/core/pkg/ingress/annotations/ratelimit" "k8s.io/ingress/core/pkg/ingress/annotations/rewrite" "k8s.io/ingress/core/pkg/ingress/defaults" + "k8s.io/ingress/core/pkg/ingress/resolver" ) var ( @@ -232,7 +232,7 @@ type Location struct { // CertificateAuth indicates the access to this location requires // external authentication // +optional - CertificateAuth authtls.SSLCert `json:"certificateAuth,omitempty"` + CertificateAuth resolver.AuthSSLCert `json:"certificateAuth,omitempty"` } // SSLPassthroughBackend describes a SSL upstream server configured From 4a2146b8dc4fa92d5024a314055a6573cc8283ac Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Thu, 12 Jan 2017 19:00:42 -0300 Subject: [PATCH 4/4] Address comments about consistency in the code --- core/pkg/ingress/annotations/authtls/main.go | 10 +++++++++- core/pkg/ingress/controller/annotations.go | 15 ++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/core/pkg/ingress/annotations/authtls/main.go b/core/pkg/ingress/annotations/authtls/main.go index 415b079c8..143353249 100644 --- a/core/pkg/ingress/annotations/authtls/main.go +++ b/core/pkg/ingress/annotations/authtls/main.go @@ -17,6 +17,7 @@ limitations under the License. package authtls import ( + "github.com/pkg/errors" "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/ingress/core/pkg/ingress/annotations/parser" @@ -56,5 +57,12 @@ func (a authTLS) Parse(ing *extensions.Ingress) (interface{}, error) { return nil, ing_errors.NewLocationDenied("an empty string is not a valid secret name") } - return a.certResolver.GetAuthCertificate(str) + authCert, err := a.certResolver.GetAuthCertificate(str) + if err != nil { + return nil, ing_errors.LocationDenied{ + Reason: errors.Wrap(err, "error obtaining certificate"), + } + } + + return authCert, nil } diff --git a/core/pkg/ingress/controller/annotations.go b/core/pkg/ingress/controller/annotations.go index 27c0baf1a..00f62f7f5 100644 --- a/core/pkg/ingress/controller/annotations.go +++ b/core/pkg/ingress/controller/annotations.go @@ -71,16 +71,17 @@ func (e *annotationExtractor) Extract(ing *extensions.Ingress) map[string]interf val, err := annotationParser.Parse(ing) glog.V(5).Infof("annotation %v in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), val) if err != nil { - _, de := anns["Denied"] - if errors.IsLocationDenied(err) && !de { - anns["Denied"] = err - glog.Errorf("error reading %v annotation in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), err) - continue - } - if !errors.IsMissingAnnotations(err) { + if errors.IsMissingAnnotations(err) { + continue + } + + _, alreadyDenied := anns[DeniedKeyName] + if !alreadyDenied { + anns[DeniedKeyName] = err glog.Errorf("error reading %v annotation in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), err) continue } + glog.V(5).Infof("error reading %v annotation in Ingress %v/%v: %v", name, ing.GetNamespace(), ing.GetName(), err) }