From e070cb617ab99a204c8c4907b8db03286121ee8e Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Tue, 16 Feb 2016 11:43:21 -0800 Subject: [PATCH] componentconfig: add external kubelet configuration type --- cmd/kubelet/app/options/options.go | 137 +- cmd/kubelet/app/server.go | 18 +- contrib/mesos/pkg/executor/service/service.go | 2 +- pkg/api/conversion.go | 17 + pkg/apis/componentconfig/register.go | 5 + pkg/apis/componentconfig/types.generated.go | 1482 +++++++++-------- pkg/apis/componentconfig/types.go | 22 +- pkg/apis/componentconfig/v1alpha1/defaults.go | 175 ++ pkg/apis/componentconfig/v1alpha1/register.go | 5 + pkg/apis/componentconfig/v1alpha1/types.go | 257 +++ 10 files changed, 1321 insertions(+), 799 deletions(-) diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index 21aaac71491..d5a33cbc76b 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -19,39 +19,16 @@ package options import ( _ "net/http/pprof" - "path/filepath" - "runtime" - "time" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apis/componentconfig" - "k8s.io/kubernetes/pkg/kubelet/qos" - "k8s.io/kubernetes/pkg/kubelet/rkt" - kubetypes "k8s.io/kubernetes/pkg/kubelet/types" - "k8s.io/kubernetes/pkg/master/ports" + "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" "k8s.io/kubernetes/pkg/util" - "k8s.io/kubernetes/pkg/util/config" + utilconfig "k8s.io/kubernetes/pkg/util/config" "github.com/spf13/pflag" ) -const ( - defaultRootDir = "/var/lib/kubelet" - experimentalFlannelOverlay = false - - // When these values are updated, also update test/e2e/framework/util.go - defaultPodInfraContainerImageName = "gcr.io/google_containers/pause" - defaultPodInfraContainerImageVersion = "3.0" - // Auto detect cloud provider. - AutoDetectCloudProvider = "auto-detect" -) - -// Returns the arch-specific pause image that kubelet should use as the default -func GetDefaultPodInfraContainerImage() string { - return defaultPodInfraContainerImageName + "-" + runtime.GOARCH + ":" + defaultPodInfraContainerImageVersion -} - // KubeletServer encapsulates all of the parameters necessary for starting up // a kubelet. These can either be set via command line or directly. type KubeletServer struct { @@ -67,94 +44,20 @@ type KubeletServer struct { ChaosChance float64 // Crash immediately, rather than eating panics. ReallyCrashForTesting bool - SystemReserved config.ConfigurationMap - KubeReserved config.ConfigurationMap + SystemReserved utilconfig.ConfigurationMap + KubeReserved utilconfig.ConfigurationMap } // NewKubeletServer will create a new KubeletServer with default values. func NewKubeletServer() *KubeletServer { + config := componentconfig.KubeletConfiguration{} + api.Scheme.Convert(&v1alpha1.KubeletConfiguration{}, &config) return &KubeletServer{ - AuthPath: util.NewStringFlag("/var/lib/kubelet/kubernetes_auth"), // deprecated - KubeConfig: util.NewStringFlag("/var/lib/kubelet/kubeconfig"), - - SystemReserved: make(config.ConfigurationMap), - KubeReserved: make(config.ConfigurationMap), - KubeletConfiguration: componentconfig.KubeletConfiguration{ - Address: "0.0.0.0", - CAdvisorPort: 4194, - VolumeStatsAggPeriod: unversioned.Duration{Duration: time.Minute}, - CertDirectory: "/var/run/kubernetes", - CgroupRoot: "", - CloudProvider: AutoDetectCloudProvider, - ConfigureCBR0: false, - ContainerRuntime: "docker", - RuntimeRequestTimeout: unversioned.Duration{Duration: 2 * time.Minute}, - CPUCFSQuota: true, - DockerExecHandlerName: "native", - EventBurst: 10, - EventRecordQPS: 5.0, - EnableControllerAttachDetach: true, - EnableCustomMetrics: false, - EnableDebuggingHandlers: true, - EnableServer: true, - FileCheckFrequency: unversioned.Duration{Duration: 20 * time.Second}, - HealthzBindAddress: "127.0.0.1", - HealthzPort: 10248, - HostNetworkSources: kubetypes.AllSource, - HostPIDSources: kubetypes.AllSource, - HostIPCSources: kubetypes.AllSource, - HTTPCheckFrequency: unversioned.Duration{Duration: 20 * time.Second}, - ImageMinimumGCAge: unversioned.Duration{Duration: 2 * time.Minute}, - ImageGCHighThresholdPercent: 90, - ImageGCLowThresholdPercent: 80, - LowDiskSpaceThresholdMB: 256, - MasterServiceNamespace: api.NamespaceDefault, - MaxContainerCount: -1, - MaxPerPodContainerCount: 1, - MaxOpenFiles: 1000000, - MaxPods: 110, - NvidiaGPUs: 0, - MinimumGCAge: unversioned.Duration{Duration: 0}, - NetworkPluginDir: "/usr/libexec/kubernetes/kubelet-plugins/net/exec/", - NetworkPluginName: "", - NonMasqueradeCIDR: "10.0.0.0/8", - VolumePluginDir: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/", - NodeStatusUpdateFrequency: unversioned.Duration{Duration: 10 * time.Second}, - NodeLabels: make(map[string]string), - OOMScoreAdj: int32(qos.KubeletOOMScoreAdj), - LockFilePath: "", - ExitOnLockContention: false, - PodInfraContainerImage: GetDefaultPodInfraContainerImage(), - Port: ports.KubeletPort, - ReadOnlyPort: ports.KubeletReadOnlyPort, - RegisterNode: true, // will be ignored if no apiserver is configured - RegisterSchedulable: true, - RegistryBurst: 10, - RegistryPullQPS: 5.0, - KubeletCgroups: "", - ResolverConfig: kubetypes.ResolvConfDefault, - RktPath: "", - RktAPIEndpoint: rkt.DefaultRktAPIServiceEndpoint, - RktStage1Image: "", - RootDirectory: defaultRootDir, - RuntimeCgroups: "", - SerializeImagePulls: true, - SeccompProfileRoot: filepath.Join(defaultRootDir, "seccomp"), - StreamingConnectionIdleTimeout: unversioned.Duration{Duration: 4 * time.Hour}, - SyncFrequency: unversioned.Duration{Duration: 1 * time.Minute}, - SystemCgroups: "", - ReconcileCIDR: true, - ContentType: "application/vnd.kubernetes.protobuf", - KubeAPIQPS: 5.0, - KubeAPIBurst: 10, - ExperimentalFlannelOverlay: experimentalFlannelOverlay, - OutOfDiskTransitionFrequency: unversioned.Duration{Duration: 5 * time.Minute}, - HairpinMode: componentconfig.PromiscuousBridge, - BabysitDaemons: false, - EvictionHard: "memory.available<100Mi", - EvictionPressureTransitionPeriod: unversioned.Duration{Duration: 5 * time.Minute}, - PodsPerCore: 0, - }, + AuthPath: util.NewStringFlag("/var/lib/kubelet/kubernetes_auth"), // deprecated + KubeConfig: util.NewStringFlag("/var/lib/kubelet/kubeconfig"), + SystemReserved: make(utilconfig.ConfigurationMap), + KubeReserved: make(utilconfig.ConfigurationMap), + KubeletConfiguration: config, } } @@ -168,8 +71,8 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.ManifestURLHeader, "manifest-url-header", s.ManifestURLHeader, "HTTP header to use when accessing the manifest URL, with the key separated from the value with a ':', as in 'key:value'") fs.BoolVar(&s.EnableServer, "enable-server", s.EnableServer, "Enable the Kubelet's server") fs.Var(componentconfig.IPVar{Val: &s.Address}, "address", "The IP address for the Kubelet to serve on (set to 0.0.0.0 for all interfaces)") - fs.UintVar(&s.Port, "port", s.Port, "The port for the Kubelet to serve on.") - fs.UintVar(&s.ReadOnlyPort, "read-only-port", s.ReadOnlyPort, "The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable)") + fs.IntVar(&s.Port, "port", s.Port, "The port for the Kubelet to serve on.") + fs.IntVar(&s.ReadOnlyPort, "read-only-port", s.ReadOnlyPort, "The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable)") fs.StringVar(&s.TLSCertFile, "tls-cert-file", s.TLSCertFile, ""+ "File containing x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). "+ "If --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key "+ @@ -179,13 +82,13 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { "If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored.") fs.StringVar(&s.HostnameOverride, "hostname-override", s.HostnameOverride, "If non-empty, will use this string as identification instead of the actual hostname.") fs.StringVar(&s.PodInfraContainerImage, "pod-infra-container-image", s.PodInfraContainerImage, "The image whose network/ipc namespaces containers in each pod will use.") - fs.StringVar(&s.DockerEndpoint, "docker-endpoint", s.DockerEndpoint, "If non-empty, use this for the docker endpoint to communicate with") + fs.StringVar(&s.DockerEndpoint, "docker-endpoint", s.DockerEndpoint, "Use this for the docker endpoint to communicate with") fs.StringVar(&s.RootDirectory, "root-dir", s.RootDirectory, "Directory path for managing kubelet files (volume mounts,etc).") fs.StringVar(&s.SeccompProfileRoot, "seccomp-profile-root", s.SeccompProfileRoot, "Directory path for seccomp profiles.") fs.BoolVar(&s.AllowPrivileged, "allow-privileged", s.AllowPrivileged, "If true, allow containers to request privileged mode. [default=false]") - fs.StringVar(&s.HostNetworkSources, "host-network-sources", s.HostNetworkSources, "Comma-separated list of sources from which the Kubelet allows pods to use of host network. [default=\"*\"]") - fs.StringVar(&s.HostPIDSources, "host-pid-sources", s.HostPIDSources, "Comma-separated list of sources from which the Kubelet allows pods to use the host pid namespace. [default=\"*\"]") - fs.StringVar(&s.HostIPCSources, "host-ipc-sources", s.HostIPCSources, "Comma-separated list of sources from which the Kubelet allows pods to use the host ipc namespace. [default=\"*\"]") + fs.StringSliceVar(&s.HostNetworkSources, "host-network-sources", s.HostNetworkSources, "Comma-separated list of sources from which the Kubelet allows pods to use of host network. [default=\"*\"]") + fs.StringSliceVar(&s.HostPIDSources, "host-pid-sources", s.HostPIDSources, "Comma-separated list of sources from which the Kubelet allows pods to use the host pid namespace. [default=\"*\"]") + fs.StringSliceVar(&s.HostIPCSources, "host-ipc-sources", s.HostIPCSources, "Comma-separated list of sources from which the Kubelet allows pods to use the host ipc namespace. [default=\"*\"]") fs.Float64Var(&s.RegistryPullQPS, "registry-qps", s.RegistryPullQPS, "If > 0, limit registry pull QPS to this value. If 0, unlimited. [default=5.0]") fs.Int32Var(&s.RegistryBurst, "registry-burst", s.RegistryBurst, "Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0") fs.Float32Var(&s.EventRecordQPS, "event-qps", s.EventRecordQPS, "If > 0, limit event creations per second to this value. If 0, unlimited.") @@ -201,7 +104,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { fs.Var(&s.AuthPath, "auth-path", "Path to .kubernetes_auth file, specifying how to authenticate to API server.") fs.MarkDeprecated("auth-path", "will be removed in a future version") fs.Var(&s.KubeConfig, "kubeconfig", "Path to a kubeconfig file, specifying how to authenticate to API server (the master location is set by the api-servers flag).") - fs.UintVar(&s.CAdvisorPort, "cadvisor-port", s.CAdvisorPort, "The port of the localhost cAdvisor endpoint") + fs.IntVar(&s.CAdvisorPort, "cadvisor-port", s.CAdvisorPort, "The port of the localhost cAdvisor endpoint") fs.Int32Var(&s.HealthzPort, "healthz-port", s.HealthzPort, "The port of the localhost healthz endpoint") fs.Var(componentconfig.IPVar{Val: &s.HealthzBindAddress}, "healthz-bind-address", "The IP address for the healthz server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces)") fs.Int32Var(&s.OOMScoreAdj, "oom-score-adj", s.OOMScoreAdj, "The oom-score-adj value for kubelet process. Values must be within the range [-1000, 1000]") @@ -212,7 +115,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.ClusterDNS, "cluster-dns", s.ClusterDNS, "IP address for a cluster DNS server. This value is used for containers' DNS server in case of Pods with \"dnsPolicy=ClusterFirst\"") fs.DurationVar(&s.StreamingConnectionIdleTimeout.Duration, "streaming-connection-idle-timeout", s.StreamingConnectionIdleTimeout.Duration, "Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: '5m'") fs.DurationVar(&s.NodeStatusUpdateFrequency.Duration, "node-status-update-frequency", s.NodeStatusUpdateFrequency.Duration, "Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s") - bindableNodeLabels := config.ConfigurationMap(s.NodeLabels) + bindableNodeLabels := utilconfig.ConfigurationMap(s.NodeLabels) fs.Var(&bindableNodeLabels, "node-labels", " Labels to add when registering the node in the cluster. Labels must be key=value pairs separated by ','.") fs.DurationVar(&s.ImageMinimumGCAge.Duration, "minimum-image-ttl-duration", s.ImageMinimumGCAge.Duration, "Minimum age for a unused image before it is garbage collected. Examples: '300ms', '10s' or '2h45m'. Default: '2m'") fs.Int32Var(&s.ImageGCHighThresholdPercent, "image-gc-high-threshold", s.ImageGCHighThresholdPercent, "The percent of disk usage after which image garbage collection is always run. Default: 90%") @@ -259,7 +162,7 @@ func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { fs.BoolVar(&s.ReallyCrashForTesting, "really-crash-for-testing", s.ReallyCrashForTesting, "If true, when panics occur crash. Intended for testing.") fs.Float64Var(&s.ChaosChance, "chaos-chance", s.ChaosChance, "If > 0.0, introduce random client errors and latency. Intended for testing. [default=0.0]") fs.BoolVar(&s.Containerized, "containerized", s.Containerized, "Experimental support for running kubelet in a container. Intended for testing. [default=false]") - fs.Uint64Var(&s.MaxOpenFiles, "max-open-files", s.MaxOpenFiles, "Number of files that can be opened by Kubelet process. [default=1000000]") + fs.Int64Var(&s.MaxOpenFiles, "max-open-files", s.MaxOpenFiles, "Number of files that can be opened by Kubelet process. [default=1000000]") fs.BoolVar(&s.ReconcileCIDR, "reconcile-cidr", s.ReconcileCIDR, "Reconcile node CIDR with the CIDR specified by the API server. No-op if register-node or configure-cbr0 is false. [default=true]") fs.Var(&s.SystemReserved, "system-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail. [default=none]") fs.Var(&s.KubeReserved, "kube-reserved", "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently only cpu and memory are supported. See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail. [default=none]") diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 1cb379a4bbf..41d22881792 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -122,17 +122,17 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API // UnsecuredKubeletConfig returns a KubeletConfig suitable for being run, or an error if the server setup // is not valid. It will not start any background processes, and does not include authentication/authorization func UnsecuredKubeletConfig(s *options.KubeletServer) (*KubeletConfig, error) { - hostNetworkSources, err := kubetypes.GetValidatedSources(strings.Split(s.HostNetworkSources, ",")) + hostNetworkSources, err := kubetypes.GetValidatedSources(s.HostNetworkSources) if err != nil { return nil, err } - hostPIDSources, err := kubetypes.GetValidatedSources(strings.Split(s.HostPIDSources, ",")) + hostPIDSources, err := kubetypes.GetValidatedSources(s.HostPIDSources) if err != nil { return nil, err } - hostIPCSources, err := kubetypes.GetValidatedSources(strings.Split(s.HostIPCSources, ",")) + hostIPCSources, err := kubetypes.GetValidatedSources(s.HostIPCSources) if err != nil { return nil, err } @@ -234,7 +234,7 @@ func UnsecuredKubeletConfig(s *options.KubeletServer) (*KubeletConfig, error) { ManifestURLHeader: manifestURLHeader, MasterServiceNamespace: s.MasterServiceNamespace, MaxContainerCount: int(s.MaxContainerCount), - MaxOpenFiles: s.MaxOpenFiles, + MaxOpenFiles: uint64(s.MaxOpenFiles), MaxPerPodContainerCount: int(s.MaxPerPodContainerCount), MaxPods: int(s.MaxPods), NvidiaGPUs: int(s.NvidiaGPUs), @@ -250,8 +250,8 @@ func UnsecuredKubeletConfig(s *options.KubeletServer) (*KubeletConfig, error) { PodCIDR: s.PodCIDR, ReconcileCIDR: s.ReconcileCIDR, PodInfraContainerImage: s.PodInfraContainerImage, - Port: s.Port, - ReadOnlyPort: s.ReadOnlyPort, + Port: uint(s.Port), + ReadOnlyPort: uint(s.ReadOnlyPort), RegisterNode: s.RegisterNode, RegisterSchedulable: s.RegisterSchedulable, RegistryBurst: int(s.RegistryBurst), @@ -352,7 +352,7 @@ func run(s *options.KubeletServer, kcfg *KubeletConfig) (err error) { } if kcfg.CAdvisorInterface == nil { - kcfg.CAdvisorInterface, err = cadvisor.New(s.CAdvisorPort, kcfg.ContainerRuntime) + kcfg.CAdvisorInterface, err = cadvisor.New(uint(s.CAdvisorPort), kcfg.ContainerRuntime) if err != nil { return err } @@ -553,6 +553,8 @@ func SimpleKubelet(client *clientset.Clientset, evictionConfig := eviction.Config{ PressureTransitionPeriod: evictionPressureTransitionPeriod, } + + c := componentconfig.KubeletConfiguration{} kcfg := KubeletConfig{ Address: net.ParseIP(address), CAdvisorInterface: cadvisorInterface, @@ -594,7 +596,7 @@ func SimpleKubelet(client *clientset.Clientset, NodeStatusUpdateFrequency: nodeStatusUpdateFrequency, OOMAdjuster: oom.NewFakeOOMAdjuster(), OSInterface: osInterface, - PodInfraContainerImage: options.GetDefaultPodInfraContainerImage(), + PodInfraContainerImage: c.PodInfraContainerImage, Port: port, ReadOnlyPort: readOnlyPort, RegisterNode: true, diff --git a/contrib/mesos/pkg/executor/service/service.go b/contrib/mesos/pkg/executor/service/service.go index af59ba29476..c22d53c04f4 100644 --- a/contrib/mesos/pkg/executor/service/service.go +++ b/contrib/mesos/pkg/executor/service/service.go @@ -209,7 +209,7 @@ func (s *KubeletExecutorServer) runKubelet( // create custom cAdvisor interface which return the resource values that Mesos reports ni := <-nodeInfos - cAdvisorInterface, err := NewMesosCadvisor(ni.Cores, ni.Mem, s.CAdvisorPort, kcfg.ContainerRuntime) + cAdvisorInterface, err := NewMesosCadvisor(ni.Cores, ni.Mem, uint(s.CAdvisorPort), kcfg.ContainerRuntime) if err != nil { return err } diff --git a/pkg/api/conversion.go b/pkg/api/conversion.go index 07585d8c35e..304034b1cfb 100644 --- a/pkg/api/conversion.go +++ b/pkg/api/conversion.go @@ -50,10 +50,27 @@ func init() { Convert_string_To_Pointer_string, Convert_labels_Selector_To_string, Convert_fields_Selector_To_string, + Convert_int64_ref_To_int, + Convert_int_To_int64_ref, Convert_resource_Quantity_To_resource_Quantity, ) } +func Convert_int64_ref_To_int(in **int64, out *int, s conversion.Scope) error { + if *in == nil { + *out = 0 + return nil + } + *out = int(**in) + return nil +} + +func Convert_int_To_int64_ref(in *int, out **int64, s conversion.Scope) error { + temp := int64(*in) + *out = &temp + return nil +} + func Convert_Pointer_string_To_string(in **string, out *string, s conversion.Scope) error { if *in == nil { *out = "" diff --git a/pkg/apis/componentconfig/register.go b/pkg/apis/componentconfig/register.go index 599a44eb1fa..f27bf1390ff 100644 --- a/pkg/apis/componentconfig/register.go +++ b/pkg/apis/componentconfig/register.go @@ -46,5 +46,10 @@ func addKnownTypes(scheme *runtime.Scheme) { scheme.AddKnownTypes(SchemeGroupVersion, &KubeProxyConfiguration{}, &KubeSchedulerConfiguration{}, + &KubeletConfiguration{}, ) } + +func (obj *KubeProxyConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *KubeSchedulerConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *KubeletConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/apis/componentconfig/types.generated.go b/pkg/apis/componentconfig/types.generated.go index 0ccd264ff5b..669565c2450 100644 --- a/pkg/apis/componentconfig/types.generated.go +++ b/pkg/apis/componentconfig/types.generated.go @@ -374,7 +374,7 @@ func (x *KubeProxyConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("kubeletCgroups")) + r.EncodeString(codecSelferC_UTF81234, string("resourceContainer")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yym50 := z.EncBinary() _ = yym50 @@ -674,7 +674,7 @@ func (x *KubeProxyConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Deco } else { x.PortRange = string(r.DecodeString()) } - case "kubeletCgroups": + case "resourceContainer": if r.TryDecodeAsNil() { x.ResourceContainer = "" } else { @@ -1175,7 +1175,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [91]bool + var yyq2 [93]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false yyq2[48] = x.CloudProvider != "" @@ -1195,9 +1195,11 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { yyq2[86] = x.EvictionSoftGracePeriod != "" yyq2[87] = true yyq2[88] = x.EvictionMaxPodGracePeriod != 0 + yyq2[91] = x.Kind != "" + yyq2[92] = x.APIVersion != "" var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(91) + r.EncodeArrayStart(93) } else { yynn2 = 74 for _, b := range yyq2 { @@ -1390,7 +1392,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym34 if false { } else { - r.EncodeUint(uint64(x.Port)) + r.EncodeInt(int64(x.Port)) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) @@ -1400,7 +1402,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym35 if false { } else { - r.EncodeUint(uint64(x.Port)) + r.EncodeInt(int64(x.Port)) } } if yyr2 || yy2arr2 { @@ -1409,7 +1411,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym37 if false { } else { - r.EncodeUint(uint64(x.ReadOnlyPort)) + r.EncodeInt(int64(x.ReadOnlyPort)) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) @@ -1419,7 +1421,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym38 if false { } else { - r.EncodeUint(uint64(x.ReadOnlyPort)) + r.EncodeInt(int64(x.ReadOnlyPort)) } } if yyr2 || yy2arr2 { @@ -1595,59 +1597,83 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym67 := z.EncBinary() - _ = yym67 - if false { + if x.HostNetworkSources == nil { + r.EncodeNil() } else { - r.EncodeString(codecSelferC_UTF81234, string(x.HostNetworkSources)) + yym67 := z.EncBinary() + _ = yym67 + if false { + } else { + z.F.EncSliceStringV(x.HostNetworkSources, false, e) + } } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("hostNetworkSources")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym68 := z.EncBinary() - _ = yym68 - if false { + if x.HostNetworkSources == nil { + r.EncodeNil() } else { - r.EncodeString(codecSelferC_UTF81234, string(x.HostNetworkSources)) + yym68 := z.EncBinary() + _ = yym68 + if false { + } else { + z.F.EncSliceStringV(x.HostNetworkSources, false, e) + } } } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym70 := z.EncBinary() - _ = yym70 - if false { + if x.HostPIDSources == nil { + r.EncodeNil() } else { - r.EncodeString(codecSelferC_UTF81234, string(x.HostPIDSources)) + yym70 := z.EncBinary() + _ = yym70 + if false { + } else { + z.F.EncSliceStringV(x.HostPIDSources, false, e) + } } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("hostPIDSources")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym71 := z.EncBinary() - _ = yym71 - if false { + if x.HostPIDSources == nil { + r.EncodeNil() } else { - r.EncodeString(codecSelferC_UTF81234, string(x.HostPIDSources)) + yym71 := z.EncBinary() + _ = yym71 + if false { + } else { + z.F.EncSliceStringV(x.HostPIDSources, false, e) + } } } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - yym73 := z.EncBinary() - _ = yym73 - if false { + if x.HostIPCSources == nil { + r.EncodeNil() } else { - r.EncodeString(codecSelferC_UTF81234, string(x.HostIPCSources)) + yym73 := z.EncBinary() + _ = yym73 + if false { + } else { + z.F.EncSliceStringV(x.HostIPCSources, false, e) + } } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) r.EncodeString(codecSelferC_UTF81234, string("hostIPCSources")) z.EncSendContainerState(codecSelfer_containerMapValue1234) - yym74 := z.EncBinary() - _ = yym74 - if false { + if x.HostIPCSources == nil { + r.EncodeNil() } else { - r.EncodeString(codecSelferC_UTF81234, string(x.HostIPCSources)) + yym74 := z.EncBinary() + _ = yym74 + if false { + } else { + z.F.EncSliceStringV(x.HostIPCSources, false, e) + } } } if yyr2 || yy2arr2 { @@ -1816,7 +1842,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym102 if false { } else { - r.EncodeUint(uint64(x.CAdvisorPort)) + r.EncodeInt(int64(x.CAdvisorPort)) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) @@ -1826,7 +1852,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym103 if false { } else { - r.EncodeUint(uint64(x.CAdvisorPort)) + r.EncodeInt(int64(x.CAdvisorPort)) } } if yyr2 || yy2arr2 { @@ -2299,7 +2325,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { } else { if yyq2[52] { z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("systemContainer")) + r.EncodeString(codecSelferC_UTF81234, string("systemCgroups")) z.EncSendContainerState(codecSelfer_containerMapValue1234) yym177 := z.EncBinary() _ = yym177 @@ -2695,7 +2721,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym235 if false { } else { - r.EncodeUint(uint64(x.MaxOpenFiles)) + r.EncodeInt(int64(x.MaxOpenFiles)) } } else { z.EncSendContainerState(codecSelfer_containerMapKey1234) @@ -2705,7 +2731,7 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { _ = yym236 if false { } else { - r.EncodeUint(uint64(x.MaxOpenFiles)) + r.EncodeInt(int64(x.MaxOpenFiles)) } } if yyr2 || yy2arr2 { @@ -3135,6 +3161,56 @@ func (x *KubeletConfiguration) CodecEncodeSelf(e *codec1978.Encoder) { r.EncodeBool(bool(x.EnableControllerAttachDetach)) } } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[91] { + yym299 := z.EncBinary() + _ = yym299 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[91] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym300 := z.EncBinary() + _ = yym300 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[92] { + yym302 := z.EncBinary() + _ = yym302 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[92] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym303 := z.EncBinary() + _ = yym303 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { @@ -3275,13 +3351,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.Port = 0 } else { - x.Port = uint(r.DecodeUint(codecSelferBitsize1234)) + x.Port = int(r.DecodeInt(codecSelferBitsize1234)) } case "readOnlyPort": if r.TryDecodeAsNil() { x.ReadOnlyPort = 0 } else { - x.ReadOnlyPort = uint(r.DecodeUint(codecSelferBitsize1234)) + x.ReadOnlyPort = int(r.DecodeInt(codecSelferBitsize1234)) } case "tLSCertFile": if r.TryDecodeAsNil() { @@ -3339,21 +3415,39 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode } case "hostNetworkSources": if r.TryDecodeAsNil() { - x.HostNetworkSources = "" + x.HostNetworkSources = nil } else { - x.HostNetworkSources = string(r.DecodeString()) + yyv26 := &x.HostNetworkSources + yym27 := z.DecBinary() + _ = yym27 + if false { + } else { + z.F.DecSliceStringX(yyv26, false, d) + } } case "hostPIDSources": if r.TryDecodeAsNil() { - x.HostPIDSources = "" + x.HostPIDSources = nil } else { - x.HostPIDSources = string(r.DecodeString()) + yyv28 := &x.HostPIDSources + yym29 := z.DecBinary() + _ = yym29 + if false { + } else { + z.F.DecSliceStringX(yyv28, false, d) + } } case "hostIPCSources": if r.TryDecodeAsNil() { - x.HostIPCSources = "" + x.HostIPCSources = nil } else { - x.HostIPCSources = string(r.DecodeString()) + yyv30 := &x.HostIPCSources + yym31 := z.DecBinary() + _ = yym31 + if false { + } else { + z.F.DecSliceStringX(yyv30, false, d) + } } case "registryPullQPS": if r.TryDecodeAsNil() { @@ -3389,15 +3483,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.MinimumGCAge = pkg1_unversioned.Duration{} } else { - yyv34 := &x.MinimumGCAge - yym35 := z.DecBinary() - _ = yym35 + yyv37 := &x.MinimumGCAge + yym38 := z.DecBinary() + _ = yym38 if false { - } else if z.HasExtensions() && z.DecExt(yyv34) { - } else if !yym35 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv34) + } else if z.HasExtensions() && z.DecExt(yyv37) { + } else if !yym38 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv37) } else { - z.DecFallback(yyv34, false) + z.DecFallback(yyv37, false) } } case "maxPerPodContainerCount": @@ -3416,7 +3510,7 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.CAdvisorPort = 0 } else { - x.CAdvisorPort = uint(r.DecodeUint(codecSelferBitsize1234)) + x.CAdvisorPort = int(r.DecodeInt(codecSelferBitsize1234)) } case "healthzPort": if r.TryDecodeAsNil() { @@ -3464,45 +3558,45 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.StreamingConnectionIdleTimeout = pkg1_unversioned.Duration{} } else { - yyv46 := &x.StreamingConnectionIdleTimeout - yym47 := z.DecBinary() - _ = yym47 + yyv49 := &x.StreamingConnectionIdleTimeout + yym50 := z.DecBinary() + _ = yym50 if false { - } else if z.HasExtensions() && z.DecExt(yyv46) { - } else if !yym47 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv46) + } else if z.HasExtensions() && z.DecExt(yyv49) { + } else if !yym50 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv49) } else { - z.DecFallback(yyv46, false) + z.DecFallback(yyv49, false) } } case "nodeStatusUpdateFrequency": if r.TryDecodeAsNil() { x.NodeStatusUpdateFrequency = pkg1_unversioned.Duration{} } else { - yyv48 := &x.NodeStatusUpdateFrequency - yym49 := z.DecBinary() - _ = yym49 + yyv51 := &x.NodeStatusUpdateFrequency + yym52 := z.DecBinary() + _ = yym52 if false { - } else if z.HasExtensions() && z.DecExt(yyv48) { - } else if !yym49 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv48) + } else if z.HasExtensions() && z.DecExt(yyv51) { + } else if !yym52 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv51) } else { - z.DecFallback(yyv48, false) + z.DecFallback(yyv51, false) } } case "imageMinimumGCAge": if r.TryDecodeAsNil() { x.ImageMinimumGCAge = pkg1_unversioned.Duration{} } else { - yyv50 := &x.ImageMinimumGCAge - yym51 := z.DecBinary() - _ = yym51 + yyv53 := &x.ImageMinimumGCAge + yym54 := z.DecBinary() + _ = yym54 if false { - } else if z.HasExtensions() && z.DecExt(yyv50) { - } else if !yym51 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv50) + } else if z.HasExtensions() && z.DecExt(yyv53) { + } else if !yym54 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv53) } else { - z.DecFallback(yyv50, false) + z.DecFallback(yyv53, false) } } case "imageGCHighThresholdPercent": @@ -3527,15 +3621,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.VolumeStatsAggPeriod = pkg1_unversioned.Duration{} } else { - yyv55 := &x.VolumeStatsAggPeriod - yym56 := z.DecBinary() - _ = yym56 + yyv58 := &x.VolumeStatsAggPeriod + yym59 := z.DecBinary() + _ = yym59 if false { - } else if z.HasExtensions() && z.DecExt(yyv55) { - } else if !yym56 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv55) + } else if z.HasExtensions() && z.DecExt(yyv58) { + } else if !yym59 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv58) } else { - z.DecFallback(yyv55, false) + z.DecFallback(yyv58, false) } } case "networkPluginName": @@ -3580,7 +3674,7 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode } else { x.RuntimeCgroups = string(r.DecodeString()) } - case "systemContainer": + case "systemCgroups": if r.TryDecodeAsNil() { x.SystemCgroups = "" } else { @@ -3602,15 +3696,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.RuntimeRequestTimeout = pkg1_unversioned.Duration{} } else { - yyv67 := &x.RuntimeRequestTimeout - yym68 := z.DecBinary() - _ = yym68 + yyv70 := &x.RuntimeRequestTimeout + yym71 := z.DecBinary() + _ = yym71 if false { - } else if z.HasExtensions() && z.DecExt(yyv67) { - } else if !yym68 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv67) + } else if z.HasExtensions() && z.DecExt(yyv70) { + } else if !yym71 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv70) } else { - z.DecFallback(yyv67, false) + z.DecFallback(yyv70, false) } } case "rktPath": @@ -3707,7 +3801,7 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.MaxOpenFiles = 0 } else { - x.MaxOpenFiles = uint64(r.DecodeUint(64)) + x.MaxOpenFiles = int64(r.DecodeInt(64)) } case "reconcileCIDR": if r.TryDecodeAsNil() { @@ -3755,15 +3849,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.OutOfDiskTransitionFrequency = pkg1_unversioned.Duration{} } else { - yyv92 := &x.OutOfDiskTransitionFrequency - yym93 := z.DecBinary() - _ = yym93 + yyv95 := &x.OutOfDiskTransitionFrequency + yym96 := z.DecBinary() + _ = yym96 if false { - } else if z.HasExtensions() && z.DecExt(yyv92) { - } else if !yym93 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv92) + } else if z.HasExtensions() && z.DecExt(yyv95) { + } else if !yym96 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv95) } else { - z.DecFallback(yyv92, false) + z.DecFallback(yyv95, false) } } case "nodeIP": @@ -3776,12 +3870,12 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.NodeLabels = nil } else { - yyv95 := &x.NodeLabels - yym96 := z.DecBinary() - _ = yym96 + yyv98 := &x.NodeLabels + yym99 := z.DecBinary() + _ = yym99 if false { } else { - z.F.DecMapStringStringX(yyv95, false, d) + z.F.DecMapStringStringX(yyv98, false, d) } } case "nonMasqueradeCIDR": @@ -3818,15 +3912,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode if r.TryDecodeAsNil() { x.EvictionPressureTransitionPeriod = pkg1_unversioned.Duration{} } else { - yyv102 := &x.EvictionPressureTransitionPeriod - yym103 := z.DecBinary() - _ = yym103 + yyv105 := &x.EvictionPressureTransitionPeriod + yym106 := z.DecBinary() + _ = yym106 if false { - } else if z.HasExtensions() && z.DecExt(yyv102) { - } else if !yym103 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv102) + } else if z.HasExtensions() && z.DecExt(yyv105) { + } else if !yym106 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv105) } else { - z.DecFallback(yyv102, false) + z.DecFallback(yyv105, false) } } case "evictionMaxPodGracePeriod": @@ -3847,6 +3941,18 @@ func (x *KubeletConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decode } else { x.EnableControllerAttachDetach = bool(r.DecodeBool()) } + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + x.Kind = string(r.DecodeString()) + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + x.APIVersion = string(r.DecodeString()) + } default: z.DecStructFieldNotFound(-1, yys3) } // end switch yys3 @@ -3858,16 +3964,16 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj107 int - var yyb107 bool - var yyhl107 bool = l >= 0 - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + var yyj112 int + var yyb112 bool + var yyhl112 bool = l >= 0 + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -3877,13 +3983,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Config = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -3891,24 +3997,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.SyncFrequency = pkg1_unversioned.Duration{} } else { - yyv109 := &x.SyncFrequency - yym110 := z.DecBinary() - _ = yym110 + yyv114 := &x.SyncFrequency + yym115 := z.DecBinary() + _ = yym115 if false { - } else if z.HasExtensions() && z.DecExt(yyv109) { - } else if !yym110 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv109) + } else if z.HasExtensions() && z.DecExt(yyv114) { + } else if !yym115 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv114) } else { - z.DecFallback(yyv109, false) + z.DecFallback(yyv114, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -3916,24 +4022,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.FileCheckFrequency = pkg1_unversioned.Duration{} } else { - yyv111 := &x.FileCheckFrequency - yym112 := z.DecBinary() - _ = yym112 + yyv116 := &x.FileCheckFrequency + yym117 := z.DecBinary() + _ = yym117 if false { - } else if z.HasExtensions() && z.DecExt(yyv111) { - } else if !yym112 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv111) + } else if z.HasExtensions() && z.DecExt(yyv116) { + } else if !yym117 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv116) } else { - z.DecFallback(yyv111, false) + z.DecFallback(yyv116, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -3941,24 +4047,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.HTTPCheckFrequency = pkg1_unversioned.Duration{} } else { - yyv113 := &x.HTTPCheckFrequency - yym114 := z.DecBinary() - _ = yym114 + yyv118 := &x.HTTPCheckFrequency + yym119 := z.DecBinary() + _ = yym119 if false { - } else if z.HasExtensions() && z.DecExt(yyv113) { - } else if !yym114 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv113) + } else if z.HasExtensions() && z.DecExt(yyv118) { + } else if !yym119 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv118) } else { - z.DecFallback(yyv113, false) + z.DecFallback(yyv118, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -3968,13 +4074,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ManifestURL = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -3984,13 +4090,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ManifestURLHeader = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4000,13 +4106,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableServer = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4016,13 +4122,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Address = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4030,15 +4136,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.Port = 0 } else { - x.Port = uint(r.DecodeUint(codecSelferBitsize1234)) + x.Port = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4046,15 +4152,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.ReadOnlyPort = 0 } else { - x.ReadOnlyPort = uint(r.DecodeUint(codecSelferBitsize1234)) + x.ReadOnlyPort = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4064,13 +4170,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.TLSCertFile = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4080,13 +4186,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.TLSPrivateKeyFile = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4096,13 +4202,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CertDirectory = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4112,13 +4218,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HostnameOverride = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4128,13 +4234,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.PodInfraContainerImage = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4144,13 +4250,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.DockerEndpoint = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4160,13 +4266,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RootDirectory = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4176,13 +4282,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.SeccompProfileRoot = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4192,61 +4298,79 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.AllowPrivileged = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.HostNetworkSources = "" + x.HostNetworkSources = nil } else { - x.HostNetworkSources = string(r.DecodeString()) + yyv135 := &x.HostNetworkSources + yym136 := z.DecBinary() + _ = yym136 + if false { + } else { + z.F.DecSliceStringX(yyv135, false, d) + } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.HostPIDSources = "" + x.HostPIDSources = nil } else { - x.HostPIDSources = string(r.DecodeString()) + yyv137 := &x.HostPIDSources + yym138 := z.DecBinary() + _ = yym138 + if false { + } else { + z.F.DecSliceStringX(yyv137, false, d) + } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.HostIPCSources = "" + x.HostIPCSources = nil } else { - x.HostIPCSources = string(r.DecodeString()) + yyv139 := &x.HostIPCSources + yym140 := z.DecBinary() + _ = yym140 + if false { + } else { + z.F.DecSliceStringX(yyv139, false, d) + } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4256,13 +4380,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegistryPullQPS = float64(r.DecodeFloat(false)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4272,13 +4396,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegistryBurst = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4288,13 +4412,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EventRecordQPS = float32(r.DecodeFloat(true)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4304,13 +4428,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EventBurst = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4320,13 +4444,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableDebuggingHandlers = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4334,24 +4458,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.MinimumGCAge = pkg1_unversioned.Duration{} } else { - yyv138 := &x.MinimumGCAge - yym139 := z.DecBinary() - _ = yym139 + yyv146 := &x.MinimumGCAge + yym147 := z.DecBinary() + _ = yym147 if false { - } else if z.HasExtensions() && z.DecExt(yyv138) { - } else if !yym139 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv138) + } else if z.HasExtensions() && z.DecExt(yyv146) { + } else if !yym147 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv146) } else { - z.DecFallback(yyv138, false) + z.DecFallback(yyv146, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4361,13 +4485,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MaxPerPodContainerCount = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4377,13 +4501,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MaxContainerCount = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4391,15 +4515,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.CAdvisorPort = 0 } else { - x.CAdvisorPort = uint(r.DecodeUint(codecSelferBitsize1234)) + x.CAdvisorPort = int(r.DecodeInt(codecSelferBitsize1234)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4409,13 +4533,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HealthzPort = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4425,13 +4549,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HealthzBindAddress = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4441,13 +4565,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.OOMScoreAdj = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4457,13 +4581,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegisterNode = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4473,13 +4597,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ClusterDomain = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4489,13 +4613,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MasterServiceNamespace = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4505,13 +4629,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ClusterDNS = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4519,24 +4643,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.StreamingConnectionIdleTimeout = pkg1_unversioned.Duration{} } else { - yyv150 := &x.StreamingConnectionIdleTimeout - yym151 := z.DecBinary() - _ = yym151 + yyv158 := &x.StreamingConnectionIdleTimeout + yym159 := z.DecBinary() + _ = yym159 if false { - } else if z.HasExtensions() && z.DecExt(yyv150) { - } else if !yym151 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv150) + } else if z.HasExtensions() && z.DecExt(yyv158) { + } else if !yym159 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv158) } else { - z.DecFallback(yyv150, false) + z.DecFallback(yyv158, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4544,24 +4668,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.NodeStatusUpdateFrequency = pkg1_unversioned.Duration{} } else { - yyv152 := &x.NodeStatusUpdateFrequency - yym153 := z.DecBinary() - _ = yym153 + yyv160 := &x.NodeStatusUpdateFrequency + yym161 := z.DecBinary() + _ = yym161 if false { - } else if z.HasExtensions() && z.DecExt(yyv152) { - } else if !yym153 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv152) + } else if z.HasExtensions() && z.DecExt(yyv160) { + } else if !yym161 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv160) } else { - z.DecFallback(yyv152, false) + z.DecFallback(yyv160, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4569,24 +4693,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.ImageMinimumGCAge = pkg1_unversioned.Duration{} } else { - yyv154 := &x.ImageMinimumGCAge - yym155 := z.DecBinary() - _ = yym155 + yyv162 := &x.ImageMinimumGCAge + yym163 := z.DecBinary() + _ = yym163 if false { - } else if z.HasExtensions() && z.DecExt(yyv154) { - } else if !yym155 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv154) + } else if z.HasExtensions() && z.DecExt(yyv162) { + } else if !yym163 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv162) } else { - z.DecFallback(yyv154, false) + z.DecFallback(yyv162, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4596,13 +4720,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ImageGCHighThresholdPercent = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4612,13 +4736,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ImageGCLowThresholdPercent = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4628,13 +4752,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.LowDiskSpaceThresholdMB = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4642,24 +4766,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.VolumeStatsAggPeriod = pkg1_unversioned.Duration{} } else { - yyv159 := &x.VolumeStatsAggPeriod - yym160 := z.DecBinary() - _ = yym160 + yyv167 := &x.VolumeStatsAggPeriod + yym168 := z.DecBinary() + _ = yym168 if false { - } else if z.HasExtensions() && z.DecExt(yyv159) { - } else if !yym160 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv159) + } else if z.HasExtensions() && z.DecExt(yyv167) { + } else if !yym168 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv167) } else { - z.DecFallback(yyv159, false) + z.DecFallback(yyv167, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4669,13 +4793,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NetworkPluginName = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4685,13 +4809,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NetworkPluginDir = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4701,13 +4825,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.VolumePluginDir = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4717,13 +4841,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CloudProvider = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4733,13 +4857,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CloudConfigFile = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4749,13 +4873,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.KubeletCgroups = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4765,13 +4889,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RuntimeCgroups = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4781,13 +4905,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.SystemCgroups = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4797,13 +4921,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CgroupRoot = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4813,13 +4937,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ContainerRuntime = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4827,24 +4951,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.RuntimeRequestTimeout = pkg1_unversioned.Duration{} } else { - yyv171 := &x.RuntimeRequestTimeout - yym172 := z.DecBinary() - _ = yym172 + yyv179 := &x.RuntimeRequestTimeout + yym180 := z.DecBinary() + _ = yym180 if false { - } else if z.HasExtensions() && z.DecExt(yyv171) { - } else if !yym172 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv171) + } else if z.HasExtensions() && z.DecExt(yyv179) { + } else if !yym180 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv179) } else { - z.DecFallback(yyv171, false) + z.DecFallback(yyv179, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4854,13 +4978,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RktPath = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4870,13 +4994,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RktAPIEndpoint = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4886,13 +5010,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RktStage1Image = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4902,13 +5026,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.LockFilePath = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4918,13 +5042,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ExitOnLockContention = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4934,13 +5058,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ConfigureCBR0 = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4950,13 +5074,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.HairpinMode = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4966,13 +5090,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.BabysitDaemons = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4982,13 +5106,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.MaxPods = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -4998,13 +5122,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NvidiaGPUs = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5014,13 +5138,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.DockerExecHandlerName = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5030,13 +5154,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.PodCIDR = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5046,13 +5170,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ResolverConfig = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5062,13 +5186,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.CPUCFSQuota = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5078,13 +5202,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.Containerized = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5092,15 +5216,15 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.MaxOpenFiles = 0 } else { - x.MaxOpenFiles = uint64(r.DecodeUint(64)) + x.MaxOpenFiles = int64(r.DecodeInt(64)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5110,13 +5234,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ReconcileCIDR = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5126,13 +5250,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.RegisterSchedulable = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5142,13 +5266,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ContentType = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5158,13 +5282,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.KubeAPIQPS = float32(r.DecodeFloat(true)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5174,13 +5298,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.KubeAPIBurst = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5190,13 +5314,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.SerializeImagePulls = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5206,13 +5330,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.ExperimentalFlannelOverlay = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5220,24 +5344,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.OutOfDiskTransitionFrequency = pkg1_unversioned.Duration{} } else { - yyv196 := &x.OutOfDiskTransitionFrequency - yym197 := z.DecBinary() - _ = yym197 + yyv204 := &x.OutOfDiskTransitionFrequency + yym205 := z.DecBinary() + _ = yym205 if false { - } else if z.HasExtensions() && z.DecExt(yyv196) { - } else if !yym197 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv196) + } else if z.HasExtensions() && z.DecExt(yyv204) { + } else if !yym205 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv204) } else { - z.DecFallback(yyv196, false) + z.DecFallback(yyv204, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5247,13 +5371,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NodeIP = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5261,21 +5385,21 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.NodeLabels = nil } else { - yyv199 := &x.NodeLabels - yym200 := z.DecBinary() - _ = yym200 + yyv207 := &x.NodeLabels + yym208 := z.DecBinary() + _ = yym208 if false { } else { - z.F.DecMapStringStringX(yyv199, false, d) + z.F.DecMapStringStringX(yyv207, false, d) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5285,13 +5409,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.NonMasqueradeCIDR = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5301,13 +5425,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableCustomMetrics = bool(r.DecodeBool()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5317,13 +5441,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionHard = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5333,13 +5457,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionSoft = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5349,13 +5473,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionSoftGracePeriod = string(r.DecodeString()) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5363,24 +5487,24 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco if r.TryDecodeAsNil() { x.EvictionPressureTransitionPeriod = pkg1_unversioned.Duration{} } else { - yyv206 := &x.EvictionPressureTransitionPeriod - yym207 := z.DecBinary() - _ = yym207 + yyv214 := &x.EvictionPressureTransitionPeriod + yym215 := z.DecBinary() + _ = yym215 if false { - } else if z.HasExtensions() && z.DecExt(yyv206) { - } else if !yym207 && z.IsJSONHandle() { - z.DecJSONUnmarshal(yyv206) + } else if z.HasExtensions() && z.DecExt(yyv214) { + } else if !yym215 && z.IsJSONHandle() { + z.DecJSONUnmarshal(yyv214) } else { - z.DecFallback(yyv206, false) + z.DecFallback(yyv214, false) } } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5390,13 +5514,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EvictionMaxPodGracePeriod = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5406,13 +5530,13 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.PodsPerCore = int32(r.DecodeInt(32)) } - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -5422,18 +5546,50 @@ func (x *KubeletConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Deco } else { x.EnableControllerAttachDetach = bool(r.DecodeBool()) } + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l + } else { + yyb112 = r.CheckBreak() + } + if yyb112 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + x.Kind = string(r.DecodeString()) + } + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l + } else { + yyb112 = r.CheckBreak() + } + if yyb112 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + x.APIVersion = string(r.DecodeString()) + } for { - yyj107++ - if yyhl107 { - yyb107 = yyj107 > l + yyj112++ + if yyhl112 { + yyb112 = yyj112 > l } else { - yyb107 = r.CheckBreak() + yyb112 = r.CheckBreak() } - if yyb107 { + if yyb112 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj107-1, "") + z.DecStructFieldNotFound(yyj112-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index 66c675070c9..9c85dfe9862 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -58,7 +58,7 @@ type KubeProxyConfiguration struct { PortRange string `json:"portRange"` // resourceContainer is the absolute name of the resource-only container to create and run // the Kube-proxy in (Default: /kube-proxy). - ResourceContainer string `json:"kubeletCgroups"` + ResourceContainer string `json:"resourceContainer"` // udpIdleTimeout is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). // Must be greater than 0. Only applicable for proxyMode=userspace. UDPIdleTimeout unversioned.Duration `json:"udpTimeoutMilliseconds"` @@ -102,6 +102,8 @@ const ( // TODO: curate the ordering and structure of this config object type KubeletConfiguration struct { + unversioned.TypeMeta + // config is the path to the config file or directory of files Config string `json:"config"` // syncFrequency is the max period between synchronizing running @@ -123,10 +125,10 @@ type KubeletConfiguration struct { // for all interfaces) Address string `json:"address"` // port is the port for the Kubelet to serve on. - Port uint `json:"port"` + Port int `json:"port"` // readOnlyPort is the read-only port for the Kubelet to serve on with // no authentication/authorization (set to 0 to disable) - ReadOnlyPort uint `json:"readOnlyPort"` + ReadOnlyPort int `json:"readOnlyPort"` // tLSCertFile is the file containing x509 Certificate for HTTPS. (CA cert, // if any, concatenated after server cert). If tlsCertFile and // tlsPrivateKeyFile are not provided, a self-signed certificate @@ -158,13 +160,13 @@ type KubeletConfiguration struct { AllowPrivileged bool `json:"allowPrivileged"` // hostNetworkSources is a comma-separated list of sources from which the // Kubelet allows pods to use of host network. Defaults to "*". - HostNetworkSources string `json:"hostNetworkSources"` + HostNetworkSources []string `json:"hostNetworkSources"` // hostPIDSources is a comma-separated list of sources from which the // Kubelet allows pods to use the host pid namespace. Defaults to "*". - HostPIDSources string `json:"hostPIDSources"` + HostPIDSources []string `json:"hostPIDSources"` // hostIPCSources is a comma-separated list of sources from which the // Kubelet allows pods to use the host ipc namespace. Defaults to "*". - HostIPCSources string `json:"hostIPCSources"` + HostIPCSources []string `json:"hostIPCSources"` // registryPullQPS is the limit of registry pulls per second. If 0, // unlimited. Set to 0 for no limit. Defaults to 5.0. RegistryPullQPS float64 `json:"registryPullQPS"` @@ -192,7 +194,7 @@ type KubeletConfiguration struct { // to retain globally. Each container takes up some disk space. MaxContainerCount int32 `json:"maxContainerCount"` // cAdvisorPort is the port of the localhost cAdvisor endpoint - CAdvisorPort uint `json:"cAdvisorPort"` + CAdvisorPort int `json:"cAdvisorPort"` // healthzPort is the port of the localhost healthz endpoint HealthzPort int32 `json:"healthzPort"` // healthzBindAddress is the IP address for the healthz server to serve @@ -221,7 +223,7 @@ type KubeletConfiguration struct { // status to master. Note: be cautious when changing the constant, it // must work with nodeMonitorGracePeriod in nodecontroller. NodeStatusUpdateFrequency unversioned.Duration `json:"nodeStatusUpdateFrequency"` - // minimumGCAge is the minimum age for a unused image before it is + // imageMinimumGCAge is the minimum age for a unused image before it is // garbage collected. ImageMinimumGCAge unversioned.Duration `json:"imageMinimumGCAge"` // imageGCHighThresholdPercent is the percent of disk usage after which @@ -257,7 +259,7 @@ type KubeletConfiguration struct { // SystemCgroups is absolute name of cgroups in which to place // all non-kernel processes that are not already in a container. Empty // for no container. Rolling back the flag requires a reboot. - SystemCgroups string `json:"systemContainer,omitempty"` + SystemCgroups string `json:"systemCgroups,omitempty"` // cgroupRoot is the root cgroup to use for pods. This is handled by the // container runtime on a best effort basis. CgroupRoot string `json:"cgroupRoot,omitempty"` @@ -318,7 +320,7 @@ type KubeletConfiguration struct { // containerized should be set to true if kubelet is running in a container. Containerized bool `json:"containerized"` // maxOpenFiles is Number of files that can be opened by Kubelet process. - MaxOpenFiles uint64 `json:"maxOpenFiles"` + MaxOpenFiles int64 `json:"maxOpenFiles"` // reconcileCIDR is Reconcile node CIDR with the CIDR specified by the // API server. No-op if register-node or configure-cbr0 is false. ReconcileCIDR bool `json:"reconcileCIDR"` diff --git a/pkg/apis/componentconfig/v1alpha1/defaults.go b/pkg/apis/componentconfig/v1alpha1/defaults.go index b40b3e4636f..932ec601199 100644 --- a/pkg/apis/componentconfig/v1alpha1/defaults.go +++ b/pkg/apis/componentconfig/v1alpha1/defaults.go @@ -22,15 +22,19 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/kubelet/qos" + kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/runtime" ) +var zeroDuration = unversioned.Duration{} + func addDefaultingFuncs(scheme *runtime.Scheme) { scheme.AddDefaultingFuncs( SetDefaults_KubeProxyConfiguration, SetDefaults_KubeSchedulerConfiguration, SetDefaults_LeaderElectionConfiguration, + SetDefaults_KubeletConfiguration, ) } @@ -112,3 +116,174 @@ func SetDefaults_LeaderElectionConfiguration(obj *LeaderElectionConfiguration) { obj.RetryPeriod = unversioned.Duration{Duration: 2 * time.Second} } } + +func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { + if obj.Address == "" { + obj.Address = "0.0.0.0" + } + if obj.CloudProvider == "" { + obj.CloudProvider = "auto-detect" + } + if obj.CAdvisorPort == 0 { + obj.CAdvisorPort = 4194 + } + if obj.CertDirectory == "" { + obj.CertDirectory = "/var/run/kubernetes" + } + if obj.ConfigureCBR0 == nil { + obj.ConfigureCBR0 = boolVar(false) + } + if obj.ContainerRuntime == "" { + obj.ContainerRuntime = "docker" + } + if obj.CPUCFSQuota == nil { + obj.CPUCFSQuota = boolVar(true) + } + if obj.DockerExecHandlerName == "" { + obj.DockerExecHandlerName = "native" + } + if obj.DockerEndpoint == "" { + obj.DockerEndpoint = "unix:///var/run/docker.sock" + } + if obj.EventBurst == 0 { + obj.EventBurst = 10 + } + if obj.EventRecordQPS == 0 { + obj.EventRecordQPS = 5.0 + } + if obj.EnableDebuggingHandlers == nil { + obj.EnableDebuggingHandlers = boolVar(true) + } + if obj.EnableServer == nil { + obj.EnableServer = boolVar(true) + } + if obj.FileCheckFrequency == zeroDuration { + obj.FileCheckFrequency = unversioned.Duration{20 * time.Second} + } + if obj.HealthzBindAddress == "" { + obj.HealthzBindAddress = "127.0.0.1" + } + if obj.HealthzPort == 0 { + obj.HealthzPort = 10248 + } + if obj.HostNetworkSources == nil { + obj.HostNetworkSources = []string{kubetypes.AllSource} + } + if obj.HostPIDSources == nil { + obj.HostPIDSources = []string{kubetypes.AllSource} + } + if obj.HostIPCSources == nil { + obj.HostIPCSources = []string{kubetypes.AllSource} + } + if obj.HTTPCheckFrequency == zeroDuration { + obj.HTTPCheckFrequency = unversioned.Duration{20 * time.Second} + } + if obj.ImageGCHighThresholdPercent == 0 { + obj.ImageGCHighThresholdPercent = 90 + } + if obj.ImageGCLowThresholdPercent == 0 { + obj.ImageGCLowThresholdPercent = 80 + } + if obj.LowDiskSpaceThresholdMB == 0 { + obj.LowDiskSpaceThresholdMB = 256 + } + if obj.MasterServiceNamespace == "" { + obj.MasterServiceNamespace = api.NamespaceDefault + } + if obj.MaxContainerCount == nil { + temp := int64(100) + obj.MaxContainerCount = &temp + } + if obj.MaxPerPodContainerCount == 0 { + obj.MaxPerPodContainerCount = 2 + } + if obj.MaxOpenFiles == 0 { + obj.MaxOpenFiles = 1000000 + } + if obj.MaxPods == 0 { + obj.MaxPods = 40 + } + if obj.MinimumGCAge == zeroDuration { + obj.MinimumGCAge = unversioned.Duration{1 * time.Minute} + } + if obj.VolumeStatsAggPeriod == zeroDuration { + obj.VolumeStatsAggPeriod = unversioned.Duration{time.Minute} + } + if obj.NetworkPluginDir == "" { + obj.NetworkPluginDir = "/usr/libexec/kubernetes/kubelet-plugins/net/exec/" + } + if obj.NonMasqueradeCIDR == "" { + obj.NonMasqueradeCIDR = "10.0.0.0/8" + } + if obj.VolumePluginDir == "" { + obj.VolumePluginDir = "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/" + } + if obj.NodeStatusUpdateFrequency == zeroDuration { + obj.NodeStatusUpdateFrequency = unversioned.Duration{10 * time.Second} + } + if obj.OOMScoreAdj == 0 { + obj.OOMScoreAdj = int32(qos.KubeletOOMScoreAdj) + } + if obj.PodInfraContainerImage == "" { + //obj.PodInfraContainerImage = kubetypes.PodInfraContainerImage + } + if obj.Port == 0 { + obj.Port = ports.KubeletPort + } + if obj.ReadOnlyPort == 0 { + obj.ReadOnlyPort = ports.KubeletReadOnlyPort + } + if obj.RegisterNode == nil { + obj.RegisterNode = boolVar(true) + } + if obj.ResolverConfig == "" { + obj.ResolverConfig = "/etc/resolv.conf" + } + if obj.RegisterSchedulable == nil { + obj.RegisterSchedulable = boolVar(true) + } + if obj.RegistryBurst == 0 { + obj.RegistryBurst = 10 + } + if obj.RegistryPullQPS == 0 { + obj.RegistryPullQPS = 5.0 + } + if obj.RootDirectory == "" { + obj.RootDirectory = "/var/lib/kubelet" + } + if obj.SerializeImagePulls == nil { + obj.SerializeImagePulls = boolVar(true) + } + if obj.StreamingConnectionIdleTimeout == zeroDuration { + obj.StreamingConnectionIdleTimeout = unversioned.Duration{4 * time.Hour} + } + if obj.SyncFrequency == zeroDuration { + obj.SyncFrequency = unversioned.Duration{1 * time.Minute} + } + if obj.ReconcileCIDR == nil { + obj.ReconcileCIDR = boolVar(true) + } + if obj.KubeAPIQPS == 0 { + obj.KubeAPIQPS = 5.0 + } + if obj.KubeAPIBurst == 0 { + obj.KubeAPIBurst = 10 + } + if obj.ExperimentalFlannelOverlay == nil { + obj.ExperimentalFlannelOverlay = boolVar(false) + } + if obj.OutOfDiskTransitionFrequency == zeroDuration { + obj.OutOfDiskTransitionFrequency = unversioned.Duration{5 * time.Minute} + } + if string(obj.HairpinMode) == "" { + obj.HairpinMode = PromiscuousBridge + } +} + +func boolVar(b bool) *bool { + return &b +} + +var ( + defaultCfg = KubeletConfiguration{} +) diff --git a/pkg/apis/componentconfig/v1alpha1/register.go b/pkg/apis/componentconfig/v1alpha1/register.go index 17fb52a10f1..adf968c8319 100644 --- a/pkg/apis/componentconfig/v1alpha1/register.go +++ b/pkg/apis/componentconfig/v1alpha1/register.go @@ -36,5 +36,10 @@ func addKnownTypes(scheme *runtime.Scheme) { scheme.AddKnownTypes(SchemeGroupVersion, &KubeProxyConfiguration{}, &KubeSchedulerConfiguration{}, + &KubeletConfiguration{}, ) } + +func (obj *KubeProxyConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *KubeSchedulerConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *KubeletConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/apis/componentconfig/v1alpha1/types.go b/pkg/apis/componentconfig/v1alpha1/types.go index 817468a70c8..32f220304cc 100644 --- a/pkg/apis/componentconfig/v1alpha1/types.go +++ b/pkg/apis/componentconfig/v1alpha1/types.go @@ -115,6 +115,24 @@ type KubeSchedulerConfiguration struct { LeaderElection LeaderElectionConfiguration `json:"leaderElection"` } +// HairpinMode denotes how the kubelet should configure networking to handle +// hairpin packets. +type HairpinMode string + +// Enum settings for different ways to handle hairpin packets. +const ( + // Set the hairpin flag on the veth of containers in the respective + // container runtime. + HairpinVeth = "hairpin-veth" + // Make the container bridge promiscuous. This will force it to accept + // hairpin packets, even if the flag isn't set on ports of the bridge. + PromiscuousBridge = "promiscuous-bridge" + // Neither of the above. If the kubelet is started in this hairpin mode + // and kube-proxy is running in iptables mode, hairpin packets will be + // dropped by the container bridge. + HairpinNone = "none" +) + // LeaderElectionConfiguration defines the configuration of leader election // clients for components that can run with leader election enabled. type LeaderElectionConfiguration struct { @@ -139,3 +157,242 @@ type LeaderElectionConfiguration struct { // leader election is enabled. RetryPeriod unversioned.Duration `json:"retryPeriod"` } + +type KubeletConfiguration struct { + unversioned.TypeMeta + + // config is the path to the config file or directory of files + Config string `json:"config"` + // syncFrequency is the max period between synchronizing running + // containers and config + SyncFrequency unversioned.Duration `json:"syncFrequency"` + // fileCheckFrequency is the duration between checking config files for + // new data + FileCheckFrequency unversioned.Duration `json:"fileCheckFrequency"` + // httpCheckFrequency is the duration between checking http for new data + HTTPCheckFrequency unversioned.Duration `json:"httpCheckFrequency"` + // manifestURL is the URL for accessing the container manifest + ManifestURL string `json:"manifestURL"` + // manifestURLHeader is the HTTP header to use when accessing the manifest + // URL, with the key separated from the value with a ':', as in 'key:value' + ManifestURLHeader string `json:"manifestURLHeader"` + // enableServer enables the Kubelet's server + EnableServer *bool `json:"enableServer"` + // address is the IP address for the Kubelet to serve on (set to 0.0.0.0 + // for all interfaces) + Address string `json:"address"` + // port is the port for the Kubelet to serve on. + Port int32 `json:"port"` + // readOnlyPort is the read-only port for the Kubelet to serve on with + // no authentication/authorization (set to 0 to disable) + ReadOnlyPort int32 `json:"readOnlyPort"` + // tLSCertFile is the file containing x509 Certificate for HTTPS. (CA cert, + // if any, concatenated after server cert). If tlsCertFile and + // tlsPrivateKeyFile are not provided, a self-signed certificate + // and key are generated for the public address and saved to the directory + // passed to certDir. + TLSCertFile string `json:"tLSCertFile"` + // tLSPrivateKeyFile is the ile containing x509 private key matching + // tlsCertFile. + TLSPrivateKeyFile string `json:"tLSPrivateKeyFile"` + // certDirectory is the directory where the TLS certs are located (by + // default /var/run/kubernetes). If tlsCertFile and tlsPrivateKeyFile + // are provided, this flag will be ignored. + CertDirectory string `json:"certDirectory"` + // hostnameOverride is the hostname used to identify the kubelet instead + // of the actual hostname. + HostnameOverride string `json:"hostnameOverride"` + // podInfraContainerImage is the image whose network/ipc namespaces + // containers in each pod will use. + PodInfraContainerImage string `json:"podInfraContainerImage"` + // dockerEndpoint is the path to the docker endpoint to communicate with. + DockerEndpoint string `json:"dockerEndpoint"` + // rootDirectory is the directory path to place kubelet files (volume + // mounts,etc). + RootDirectory string `json:"rootDirectory"` + // allowPrivileged enables containers to request privileged mode. + // Defaults to false. + AllowPrivileged *bool `json:"allowPrivileged"` + // hostNetworkSources is a comma-separated list of sources from which the + // Kubelet allows pods to use of host network. Defaults to "*". + HostNetworkSources []string `json:"hostNetworkSources"` + // hostPIDSources is a comma-separated list of sources from which the + // Kubelet allows pods to use the host pid namespace. Defaults to "*". + HostPIDSources []string `json:"hostPIDSources"` + // hostIPCSources is a comma-separated list of sources from which the + // Kubelet allows pods to use the host ipc namespace. Defaults to "*". + HostIPCSources []string `json:"hostIPCSources"` + // registryPullQPS is the limit of registry pulls per second. If 0, + // unlimited. Set to 0 for no limit. Defaults to 5.0. + RegistryPullQPS float64 `json:"registryPullQPS"` + // registryBurst is the maximum size of a bursty pulls, temporarily allows + // pulls to burst to this number, while still not exceeding registryQps. + // Only used if registryQps > 0. + RegistryBurst int64 `json:"registryBurst"` + // eventRecordQPS is the maximum event creations per second. If 0, there + // is no limit enforced. + EventRecordQPS float32 `json:"eventRecordQPS"` + // eventBurst is the maximum size of a bursty event records, temporarily + // allows event records to burst to this number, while still not exceeding + // event-qps. Only used if eventQps > 0 + EventBurst int64 `json:"eventBurst"` + // enableDebuggingHandlers enables server endpoints for log collection + // and local running of containers and commands + EnableDebuggingHandlers *bool `json:"enableDebuggingHandlers"` + // minimumGCAge is the minimum age for a finished container before it is + // garbage collected. + MinimumGCAge unversioned.Duration `json:"minimumGCAge"` + // maxPerPodContainerCount is the maximum number of old instances to + // retain per container. Each container takes up some disk space. + MaxPerPodContainerCount int64 `json:"maxPerPodContainerCount"` + // maxContainerCount is the maximum number of old instances of containers + // to retain globally. Each container takes up some disk space. + MaxContainerCount *int64 `json:"maxContainerCount"` + // cAdvisorPort is the port of the localhost cAdvisor endpoint + CAdvisorPort int32 `json:"cAdvisorPort"` + // healthzPort is the port of the localhost healthz endpoint + HealthzPort int32 `json:"healthzPort"` + // healthzBindAddress is the IP address for the healthz server to serve + // on. + HealthzBindAddress string `json:"healthzBindAddress"` + // oomScoreAdj is The oom-score-adj value for kubelet process. Values + // must be within the range [-1000, 1000]. + OOMScoreAdj int32 `json:"oomScoreAdj"` + // registerNode enables automatic registration with the apiserver. + RegisterNode *bool `json:"registerNode"` + // clusterDomain is the DNS domain for this cluster. If set, kubelet will + // configure all containers to search this domain in addition to the + // host's search domains. + ClusterDomain string `json:"clusterDomain"` + // masterServiceNamespace is The namespace from which the kubernetes + // master services should be injected into pods. + MasterServiceNamespace string `json:"masterServiceNamespace"` + // clusterDNS is the IP address for a cluster DNS server. If set, kubelet + // will configure all containers to use this for DNS resolution in + // addition to the host's DNS servers + ClusterDNS string `json:"clusterDNS"` + // streamingConnectionIdleTimeout is the maximum time a streaming connection + // can be idle before the connection is automatically closed. + StreamingConnectionIdleTimeout unversioned.Duration `json:"streamingConnectionIdleTimeout"` + // nodeStatusUpdateFrequency is the frequency that kubelet posts node + // status to master. Note: be cautious when changing the constant, it + // must work with nodeMonitorGracePeriod in nodecontroller. + NodeStatusUpdateFrequency unversioned.Duration `json:"nodeStatusUpdateFrequency"` + // imageMinimumGCAge is the minimum age for a unused image before it is + // garbage collected. + ImageMinimumGCAge unversioned.Duration `json:"imageMinimumGCAge"` + // imageGCHighThresholdPercent is the percent of disk usage after which + // image garbage collection is always run. The percent is calculated as + // this field value out of 100. + ImageGCHighThresholdPercent int32 `json:"imageGCHighThresholdPercent"` + // imageGCLowThresholdPercent is the percent of disk usage before which + // image garbage collection is never run. Lowest disk usage to garbage + // collect to. The percent is calculated as this field value out of 100. + ImageGCLowThresholdPercent int32 `json:"imageGCLowThresholdPercent"` + // lowDiskSpaceThresholdMB is the absolute free disk space, in MB, to + // maintain. When disk space falls below this threshold, new pods would + // be rejected. + LowDiskSpaceThresholdMB int64 `json:"lowDiskSpaceThresholdMB"` + // How frequently to calculate and cache volume disk usage for all pods + VolumeStatsAggPeriod unversioned.Duration `json:volumeStatsAggPeriod` + // networkPluginName is the name of the network plugin to be invoked for + // various events in kubelet/pod lifecycle + NetworkPluginName string `json:"networkPluginName"` + // networkPluginDir is the full path of the directory in which to search + // for network plugins + NetworkPluginDir string `json:"networkPluginDir"` + // volumePluginDir is the full path of the directory in which to search + // for additional third party volume plugins + VolumePluginDir string `json:"volumePluginDir"` + // cloudProvider is the provider for cloud services. + CloudProvider string `json:"cloudProvider"` + // cloudConfigFile is the path to the cloud provider configuration file. + CloudConfigFile string `json:"cloudConfigFile"` + // kubeletCgroups is the absolute name of cgroups to isolate the kubelet in. + KubeletCgroups string `json:"kubeletCgroups,omitempty"` + // runtimeCgroups are cgroups that container runtime is expected to be isolated in. + RuntimeCgroups string `json:"runtimeCgroups,omitempty"` + // systemCgroups is absolute name of cgroups in which to place + // all non-kernel processes that are not already in a container. Empty + // for no container. Rolling back the flag requires a reboot. + SystemCgroups string `json:"systemCgroups,omitempty"` + // cgroupRoot is the root cgroup to use for pods. This is handled by the + // container runtime on a best effort basis. + CgroupRoot string `json:"cgroupRoot"` + // containerRuntime is the container runtime to use. + ContainerRuntime string `json:"containerRuntime"` + // rktPath is hte path of rkt binary. Leave empty to use the first rkt in + // $PATH. + RktPath string `json:"rktPath"` + // lockFilePath is the path that kubelet will use to as a lock file. + // It uses this file as a lock to synchronize with other kubelet processes + // that may be running. + LockFilePath *string `json:"lockFilePath"` + // rktStage1Image is the image to use as stage1. Local paths and + // http/https URLs are supported. + RktStage1Image string `json:"rktStage1Image"` + // configureCBR0 enables the kublet to configure cbr0 based on + // Node.Spec.PodCIDR. + ConfigureCBR0 *bool `json:"configureCbr0"` + // How should the kubelet configure the container bridge for hairpin packets. + // Setting this flag allows endpoints in a Service to loadbalance back to + // themselves if they should try to access their own Service. Values: + // "promiscuous-bridge": make the container bridge promiscuous. + // "hairpin-veth": set the hairpin flag on container veth interfaces. + // "none": do nothing. + // Setting --configure-cbr0 to false implies that to achieve hairpin NAT + // one must set --hairpin-mode=veth-flag, because bridge assumes the + // existence of a container bridge named cbr0. + HairpinMode string `json:"hairpinMode"` + // maxPods is the number of pods that can run on this Kubelet. + MaxPods int32 `json:"maxPods"` + // dockerExecHandlerName is the handler to use when executing a command + // in a container. Valid values are 'native' and 'nsenter'. Defaults to + // 'native'. + DockerExecHandlerName string `json:"dockerExecHandlerName"` + // The CIDR to use for pod IP addresses, only used in standalone mode. + // In cluster mode, this is obtained from the master. + PodCIDR string `json:"podCIDR"` + // ResolverConfig is the resolver configuration file used as the basis + // for the container DNS resolution configuration."), [] + ResolverConfig string `json:"resolvConf"` + // cpuCFSQuota is Enable CPU CFS quota enforcement for containers that + // specify CPU limits + CPUCFSQuota *bool `json:"cpuCFSQuota"` + // containerized should be set to true if kubelet is running in a container. + Containerized *bool `json:"containerized"` + // maxOpenFiles is Number of files that can be opened by Kubelet process. + MaxOpenFiles int64 `json:"maxOpenFiles"` + // reconcileCIDR is Reconcile node CIDR with the CIDR specified by the + // API server. No-op if register-node or configure-cbr0 is false. + ReconcileCIDR *bool `json:"reconcileCIDR"` + // registerSchedulable tells the kubelet to register the node as + // schedulable. No-op if register-node is false. + RegisterSchedulable *bool `json:"registerSchedulable"` + // kubeAPIQPS is the QPS to use while talking with kubernetes apiserver + KubeAPIQPS float32 `json:"kubeAPIQPS"` + // kubeAPIBurst is the burst to allow while talking with kubernetes + // apiserver + KubeAPIBurst int32 `json:"kubeAPIBurst"` + // serializeImagePulls when enabled, tells the Kubelet to pull images one + // at a time. We recommend *not* changing the default value on nodes that + // run docker daemon with version < 1.9 or an Aufs storage backend. + // Issue #10959 has more details. + SerializeImagePulls *bool `json:"serializeImagePulls"` + // experimentalFlannelOverlay enables experimental support for starting the + // kubelet with the default overlay network (flannel). Assumes flanneld + // is already running in client mode. + ExperimentalFlannelOverlay *bool `json:"experimentalFlannelOverlay"` + // outOfDiskTransitionFrequency is duration for which the kubelet has to + // wait before transitioning out of out-of-disk node condition status. + OutOfDiskTransitionFrequency unversioned.Duration `json:"outOfDiskTransitionFrequency"` + // nodeIP is IP address of the node. If set, kubelet will use this IP + // address for the node. + NodeIP string `json:"nodeIP"` + // nodeLabels to add when registering the node in the cluster. + NodeLabels map[string]string `json:"nodeLabels"` + // nonMasqueradeCIDR configures masquerading: traffic to IPs outside this range will use IP masquerade. + NonMasqueradeCIDR string `json:"nonMasqueradeCIDR"` + // enable gathering custom metrics. + EnableCustomMetrics bool `json:"enableCustomMetrics"` +}