From 19e89c32f59289b021b49ccc380cf9d4cd71c8a8 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Tue, 12 Feb 2019 05:07:53 +0200 Subject: [PATCH] kubeadm: remove nodefs.inodesFree test defaulting on non-Linux Add test files that exclude the field in question under KubeletConfiguration -> evictionHard for non-Linux. Add runtime abstraction for the test files in initconfiguration_tests.go --- .../app/util/config/initconfiguration_test.go | 46 ++-- .../conversion/master/internal_non_linux.yaml | 203 ++++++++++++++++++ .../conversion/master/v1alpha3_non_linux.yaml | 164 ++++++++++++++ .../conversion/master/v1beta1_non_linux.yaml | 165 ++++++++++++++ .../master/defaulted_non_linux.yaml | 151 +++++++++++++ 5 files changed, 714 insertions(+), 15 deletions(-) create mode 100644 cmd/kubeadm/app/util/config/testdata/conversion/master/internal_non_linux.yaml create mode 100644 cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha3_non_linux.yaml create mode 100644 cmd/kubeadm/app/util/config/testdata/conversion/master/v1beta1_non_linux.yaml create mode 100644 cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_non_linux.yaml diff --git a/cmd/kubeadm/app/util/config/initconfiguration_test.go b/cmd/kubeadm/app/util/config/initconfiguration_test.go index c7b6afce99..6e97b67a92 100644 --- a/cmd/kubeadm/app/util/config/initconfiguration_test.go +++ b/cmd/kubeadm/app/util/config/initconfiguration_test.go @@ -22,6 +22,7 @@ import ( "os" "path/filepath" "reflect" + "runtime" "testing" "github.com/pmezard/go-difflib/difflib" @@ -33,12 +34,16 @@ import ( ) const ( - master_v1alpha3YAML = "testdata/conversion/master/v1alpha3.yaml" - master_v1beta1YAML = "testdata/conversion/master/v1beta1.yaml" - master_internalYAML = "testdata/conversion/master/internal.yaml" - master_incompleteYAML = "testdata/defaulting/master/incomplete.yaml" - master_defaultedYAML = "testdata/defaulting/master/defaulted.yaml" - master_invalidYAML = "testdata/validation/invalid_mastercfg.yaml" + master_v1alpha3YAML = "testdata/conversion/master/v1alpha3.yaml" + master_v1alpha3YAMLNonLinux = "testdata/conversion/master/v1alpha3_non_linux.yaml" + master_v1beta1YAML = "testdata/conversion/master/v1beta1.yaml" + master_v1beta1YAMLNonLinux = "testdata/conversion/master/v1beta1_non_linux.yaml" + master_internalYAML = "testdata/conversion/master/internal.yaml" + master_internalYAMLNonLinux = "testdata/conversion/master/internal_non_linux.yaml" + master_incompleteYAML = "testdata/defaulting/master/incomplete.yaml" + master_defaultedYAML = "testdata/defaulting/master/defaulted.yaml" + master_defaultedYAMLNonLinux = "testdata/defaulting/master/defaulted_non_linux.yaml" + master_invalidYAML = "testdata/validation/invalid_mastercfg.yaml" ) func diff(expected, actual []byte) string { @@ -126,6 +131,17 @@ func TestLoadInitConfigurationFromFile(t *testing.T) { } func TestInitConfigurationMarshallingFromFile(t *testing.T) { + master_v1alpha3YAMLAbstracted := master_v1alpha3YAML + master_v1beta1YAMLAbstracted := master_v1beta1YAML + master_internalYAMLAbstracted := master_internalYAML + master_defaultedYAMLAbstracted := master_defaultedYAML + if runtime.GOOS != "linux" { + master_v1alpha3YAMLAbstracted = master_v1alpha3YAMLNonLinux + master_v1beta1YAMLAbstracted = master_v1beta1YAMLNonLinux + master_internalYAMLAbstracted = master_internalYAMLNonLinux + master_defaultedYAMLAbstracted = master_defaultedYAMLNonLinux + } + var tests = []struct { name, in, out string groupVersion schema.GroupVersion @@ -135,26 +151,26 @@ func TestInitConfigurationMarshallingFromFile(t *testing.T) { // and then marshals the internal object to the expected groupVersion { // v1alpha3 -> internal name: "v1alpha3ToInternal", - in: master_v1alpha3YAML, - out: master_internalYAML, + in: master_v1alpha3YAMLAbstracted, + out: master_internalYAMLAbstracted, groupVersion: kubeadm.SchemeGroupVersion, }, { // v1beta1 -> internal name: "v1beta1ToInternal", - in: master_v1beta1YAML, - out: master_internalYAML, + in: master_v1beta1YAMLAbstracted, + out: master_internalYAMLAbstracted, groupVersion: kubeadm.SchemeGroupVersion, }, { // v1alpha3 -> internal -> v1beta1 name: "v1alpha3Tov1beta1", - in: master_v1alpha3YAML, - out: master_v1beta1YAML, + in: master_v1alpha3YAMLAbstracted, + out: master_v1beta1YAMLAbstracted, groupVersion: kubeadmapiv1beta1.SchemeGroupVersion, }, { // v1beta1 -> internal -> v1beta1 name: "v1beta1Tov1beta1", - in: master_v1beta1YAML, - out: master_v1beta1YAML, + in: master_v1beta1YAMLAbstracted, + out: master_v1beta1YAMLAbstracted, groupVersion: kubeadmapiv1beta1.SchemeGroupVersion, }, // These tests are reading one file that has only a subset of the fields populated, loading it using LoadInitConfigurationFromFile, @@ -162,7 +178,7 @@ func TestInitConfigurationMarshallingFromFile(t *testing.T) { { // v1beta1 -> default -> validate -> internal -> v1beta1 name: "incompleteYAMLToDefaultedv1beta1", in: master_incompleteYAML, - out: master_defaultedYAML, + out: master_defaultedYAMLAbstracted, groupVersion: kubeadmapiv1beta1.SchemeGroupVersion, }, { // v1alpha3 -> validation should fail diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/master/internal_non_linux.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/master/internal_non_linux.yaml new file mode 100644 index 0000000000..e070df6031 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/master/internal_non_linux.yaml @@ -0,0 +1,203 @@ +APIServer: + CertSANs: null + ExtraArgs: + authorization-mode: Node,RBAC,Webhook + ExtraVolumes: + - HostPath: /host/read-only + MountPath: /mount/read-only + Name: ReadOnlyVolume + PathType: "" + ReadOnly: true + - HostPath: /host/writable + MountPath: /mount/writable + Name: WritableVolume + PathType: "" + ReadOnly: false + TimeoutForControlPlane: 4m0s +BootstrapTokens: +- Description: "" + Expires: null + Groups: + - system:bootstrappers:kubeadm:default-node-token + TTL: 24h0m0s + Token: s73ybu.6tw6wnqgp5z0wb77 + Usages: + - signing + - authentication +CIImageRepository: "" +CertificatesDir: /etc/kubernetes/pki +ClusterName: kubernetes +ComponentConfigs: + KubeProxy: + BindAddress: 0.0.0.0 + ClientConnection: + AcceptContentTypes: "" + Burst: 10 + ContentType: application/vnd.kubernetes.protobuf + Kubeconfig: /var/lib/kube-proxy/kubeconfig.conf + QPS: 5 + ClusterCIDR: "" + ConfigSyncPeriod: 15m0s + Conntrack: + Max: null + MaxPerCore: 32768 + Min: 131072 + TCPCloseWaitTimeout: 1h0m0s + TCPEstablishedTimeout: 24h0m0s + EnableProfiling: false + FeatureGates: + ServiceNodeExclusion: true + SupportIPVSProxyMode: true + HealthzBindAddress: 0.0.0.0:10256 + HostnameOverride: "" + IPTables: + MasqueradeAll: false + MasqueradeBit: 14 + MinSyncPeriod: 0s + SyncPeriod: 30s + IPVS: + ExcludeCIDRs: null + MinSyncPeriod: 0s + Scheduler: "" + SyncPeriod: 30s + MetricsBindAddress: 127.0.0.1:10249 + Mode: iptables + NodePortAddresses: null + OOMScoreAdj: -999 + PortRange: "" + ResourceContainer: /kube-proxy + UDPIdleTimeout: 250ms + Kubelet: + Address: 1.2.3.4 + Authentication: + Anonymous: + Enabled: false + Webhook: + CacheTTL: 2m0s + Enabled: true + X509: + ClientCAFile: /etc/kubernetes/pki/ca.crt + Authorization: + Mode: Webhook + Webhook: + CacheAuthorizedTTL: 5m0s + CacheUnauthorizedTTL: 30s + CPUCFSQuota: true + CPUCFSQuotaPeriod: 0s + CPUManagerPolicy: none + CPUManagerReconcilePeriod: 10s + CgroupDriver: cgroupfs + CgroupRoot: "" + CgroupsPerQOS: true + ClusterDNS: + - 10.96.0.10 + ClusterDomain: cluster.local + ConfigMapAndSecretChangeDetectionStrategy: Watch + ContainerLogMaxFiles: 5 + ContainerLogMaxSize: 10Mi + ContentType: application/vnd.kubernetes.protobuf + EnableContentionProfiling: false + EnableControllerAttachDetach: true + EnableDebuggingHandlers: true + EnforceNodeAllocatable: + - pods + EventBurst: 10 + EventRecordQPS: 5 + EvictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% + EvictionMaxPodGracePeriod: 0 + EvictionMinimumReclaim: null + EvictionPressureTransitionPeriod: 5m0s + EvictionSoft: null + EvictionSoftGracePeriod: null + FailSwapOn: true + FeatureGates: null + FileCheckFrequency: 20s + HTTPCheckFrequency: 20s + HairpinMode: promiscuous-bridge + HealthzBindAddress: 127.0.0.1 + HealthzPort: 10248 + IPTablesDropBit: 15 + IPTablesMasqueradeBit: 14 + ImageGCHighThresholdPercent: 85 + ImageGCLowThresholdPercent: 80 + ImageMinimumGCAge: 2m0s + KubeAPIBurst: 10 + KubeAPIQPS: 5 + KubeReserved: null + KubeReservedCgroup: "" + KubeletCgroups: "" + MakeIPTablesUtilChains: true + MaxOpenFiles: 1000000 + MaxPods: 110 + NodeLeaseDurationSeconds: 40 + NodeStatusReportFrequency: 1m0s + NodeStatusUpdateFrequency: 10s + OOMScoreAdj: -999 + PodCIDR: "" + PodPidsLimit: -1 + PodsPerCore: 0 + Port: 10250 + ProtectKernelDefaults: false + QOSReserved: null + ReadOnlyPort: 0 + RegistryBurst: 10 + RegistryPullQPS: 5 + ResolverConfig: /etc/resolv.conf + RotateCertificates: true + RuntimeRequestTimeout: 2m0s + SerializeImagePulls: true + ServerTLSBootstrap: false + StaticPodPath: /etc/kubernetes/manifests + StaticPodURL: "" + StaticPodURLHeader: null + StreamingConnectionIdleTimeout: 4h0m0s + SyncFrequency: 1m0s + SystemCgroups: "" + SystemReserved: null + SystemReservedCgroup: "" + TLSCertFile: "" + TLSCipherSuites: null + TLSMinVersion: "" + TLSPrivateKeyFile: "" + VolumeStatsAggPeriod: 1m0s +ControlPlaneEndpoint: "" +ControllerManager: + ExtraArgs: null + ExtraVolumes: null +DNS: + ImageRepository: "" + ImageTag: "" + Type: CoreDNS +Etcd: + External: null + Local: + DataDir: /var/lib/etcd + ExtraArgs: null + ImageRepository: "" + ImageTag: "" + PeerCertSANs: null + ServerCertSANs: null +FeatureGates: null +ImageRepository: k8s.gcr.io +KubernetesVersion: v1.12.2 +LocalAPIEndpoint: + AdvertiseAddress: 192.168.2.2 + BindPort: 6443 +Networking: + DNSDomain: cluster.local + PodSubnet: "" + ServiceSubnet: 10.96.0.0/12 +NodeRegistration: + CRISocket: /var/run/dockershim.sock + KubeletExtraArgs: null + Name: master-1 + Taints: + - effect: NoSchedule + key: node-role.kubernetes.io/master +Scheduler: + ExtraArgs: null + ExtraVolumes: null +UseHyperKubeImage: true diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha3_non_linux.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha3_non_linux.yaml new file mode 100644 index 0000000000..7666f3202b --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha3_non_linux.yaml @@ -0,0 +1,164 @@ +apiEndpoint: + advertiseAddress: 192.168.2.2 + bindPort: 6443 +apiVersion: kubeadm.k8s.io/v1alpha3 +bootstrapTokens: +- groups: + - system:bootstrappers:kubeadm:default-node-token + token: s73ybu.6tw6wnqgp5z0wb77 + ttl: 24h0m0s + usages: + - signing + - authentication +kind: InitConfiguration +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: master-1 + taints: + - effect: NoSchedule + key: node-role.kubernetes.io/master +--- +apiServerExtraArgs: + authorization-mode: Node,RBAC,Webhook +apiServerExtraVolumes: +- hostPath: /host/read-only + mountPath: /mount/read-only + name: ReadOnlyVolume +- hostPath: /host/writable + mountPath: /mount/writable + name: WritableVolume + writable: true +apiVersion: kubeadm.k8s.io/v1alpha3 +auditPolicy: + logDir: /var/log/kubernetes/audit + logMaxAge: 2 + path: "" +certificatesDir: /etc/kubernetes/pki +clusterName: kubernetes +controlPlaneEndpoint: "" +etcd: + local: + dataDir: /var/lib/etcd + image: "" +imageRepository: k8s.gcr.io +kind: ClusterConfiguration +kubernetesVersion: v1.12.2 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +unifiedControlPlaneImage: "k8s.gcr.io/hyperkube:v1.12.2" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +bindAddress: 0.0.0.0 +clientConnection: + acceptContentTypes: "" + burst: 10 + contentType: application/vnd.kubernetes.protobuf + kubeconfig: /var/lib/kube-proxy/kubeconfig.conf + qps: 5 +clusterCIDR: "" +configSyncPeriod: 15m0s +conntrack: + max: null + maxPerCore: 32768 + min: 131072 + tcpCloseWaitTimeout: 1h0m0s + tcpEstablishedTimeout: 24h0m0s +enableProfiling: false +featureGates: + ServiceNodeExclusion: true + SupportIPVSProxyMode: true +healthzBindAddress: 0.0.0.0:10256 +hostnameOverride: "" +iptables: + masqueradeAll: false + masqueradeBit: 14 + minSyncPeriod: 0s + syncPeriod: 30s +ipvs: + excludeCIDRs: null + minSyncPeriod: 0s + scheduler: "" + syncPeriod: 30s +kind: KubeProxyConfiguration +metricsBindAddress: 127.0.0.1:10249 +mode: iptables +nodePortAddresses: null +oomScoreAdj: -999 +portRange: "" +resourceContainer: /kube-proxy +udpIdleTimeout: 250ms +--- +address: 1.2.3.4 +apiVersion: kubelet.config.k8s.io/v1beta1 +authentication: + anonymous: + enabled: false + webhook: + cacheTTL: 2m0s + enabled: true + x509: + clientCAFile: /etc/kubernetes/pki/ca.crt +authorization: + mode: Webhook + webhook: + cacheAuthorizedTTL: 5m0s + cacheUnauthorizedTTL: 30s +cgroupDriver: cgroupfs +cgroupsPerQOS: true +clusterDNS: +- 10.96.0.10 +clusterDomain: cluster.local +configMapAndSecretChangeDetectionStrategy: Watch +containerLogMaxFiles: 5 +containerLogMaxSize: 10Mi +contentType: application/vnd.kubernetes.protobuf +cpuCFSQuota: true +cpuCFSQuotaPeriod: 0s +cpuManagerPolicy: none +cpuManagerReconcilePeriod: 10s +enableControllerAttachDetach: true +enableDebuggingHandlers: true +enforceNodeAllocatable: +- pods +eventBurst: 10 +eventRecordQPS: 5 +evictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% +evictionPressureTransitionPeriod: 5m0s +failSwapOn: true +fileCheckFrequency: 20s +hairpinMode: promiscuous-bridge +healthzBindAddress: 127.0.0.1 +healthzPort: 10248 +httpCheckFrequency: 20s +imageGCHighThresholdPercent: 85 +imageGCLowThresholdPercent: 80 +imageMinimumGCAge: 2m0s +iptablesDropBit: 15 +iptablesMasqueradeBit: 14 +kind: KubeletConfiguration +kubeAPIBurst: 10 +kubeAPIQPS: 5 +makeIPTablesUtilChains: true +maxOpenFiles: 1000000 +maxPods: 110 +nodeLeaseDurationSeconds: 40 +nodeStatusReportFrequency: 1m0s +nodeStatusUpdateFrequency: 10s +oomScoreAdj: -999 +podPidsLimit: -1 +port: 10250 +registryBurst: 10 +registryPullQPS: 5 +resolvConf: /etc/resolv.conf +rotateCertificates: true +runtimeRequestTimeout: 2m0s +serializeImagePulls: true +staticPodPath: /etc/kubernetes/manifests +streamingConnectionIdleTimeout: 4h0m0s +syncFrequency: 1m0s +volumeStatsAggPeriod: 1m0s diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/master/v1beta1_non_linux.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1beta1_non_linux.yaml new file mode 100644 index 0000000000..4000e587df --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1beta1_non_linux.yaml @@ -0,0 +1,165 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +bootstrapTokens: +- groups: + - system:bootstrappers:kubeadm:default-node-token + token: s73ybu.6tw6wnqgp5z0wb77 + ttl: 24h0m0s + usages: + - signing + - authentication +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 192.168.2.2 + bindPort: 6443 +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: master-1 + taints: + - effect: NoSchedule + key: node-role.kubernetes.io/master +--- +apiServer: + extraArgs: + authorization-mode: Node,RBAC,Webhook + extraVolumes: + - hostPath: /host/read-only + mountPath: /mount/read-only + name: ReadOnlyVolume + readOnly: true + - hostPath: /host/writable + mountPath: /mount/writable + name: WritableVolume + timeoutForControlPlane: 4m0s +apiVersion: kubeadm.k8s.io/v1beta1 +certificatesDir: /etc/kubernetes/pki +clusterName: kubernetes +controlPlaneEndpoint: "" +controllerManager: {} +dns: + type: CoreDNS +etcd: + local: + dataDir: /var/lib/etcd +imageRepository: k8s.gcr.io +kind: ClusterConfiguration +kubernetesVersion: v1.12.2 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +scheduler: {} +useHyperKubeImage: true +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +bindAddress: 0.0.0.0 +clientConnection: + acceptContentTypes: "" + burst: 10 + contentType: application/vnd.kubernetes.protobuf + kubeconfig: /var/lib/kube-proxy/kubeconfig.conf + qps: 5 +clusterCIDR: "" +configSyncPeriod: 15m0s +conntrack: + max: null + maxPerCore: 32768 + min: 131072 + tcpCloseWaitTimeout: 1h0m0s + tcpEstablishedTimeout: 24h0m0s +enableProfiling: false +featureGates: + ServiceNodeExclusion: true + SupportIPVSProxyMode: true +healthzBindAddress: 0.0.0.0:10256 +hostnameOverride: "" +iptables: + masqueradeAll: false + masqueradeBit: 14 + minSyncPeriod: 0s + syncPeriod: 30s +ipvs: + excludeCIDRs: null + minSyncPeriod: 0s + scheduler: "" + syncPeriod: 30s +kind: KubeProxyConfiguration +metricsBindAddress: 127.0.0.1:10249 +mode: iptables +nodePortAddresses: null +oomScoreAdj: -999 +portRange: "" +resourceContainer: /kube-proxy +udpIdleTimeout: 250ms +--- +address: 1.2.3.4 +apiVersion: kubelet.config.k8s.io/v1beta1 +authentication: + anonymous: + enabled: false + webhook: + cacheTTL: 2m0s + enabled: true + x509: + clientCAFile: /etc/kubernetes/pki/ca.crt +authorization: + mode: Webhook + webhook: + cacheAuthorizedTTL: 5m0s + cacheUnauthorizedTTL: 30s +cgroupDriver: cgroupfs +cgroupsPerQOS: true +clusterDNS: +- 10.96.0.10 +clusterDomain: cluster.local +configMapAndSecretChangeDetectionStrategy: Watch +containerLogMaxFiles: 5 +containerLogMaxSize: 10Mi +contentType: application/vnd.kubernetes.protobuf +cpuCFSQuota: true +cpuCFSQuotaPeriod: 0s +cpuManagerPolicy: none +cpuManagerReconcilePeriod: 10s +enableControllerAttachDetach: true +enableDebuggingHandlers: true +enforceNodeAllocatable: +- pods +eventBurst: 10 +eventRecordQPS: 5 +evictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% +evictionPressureTransitionPeriod: 5m0s +failSwapOn: true +fileCheckFrequency: 20s +hairpinMode: promiscuous-bridge +healthzBindAddress: 127.0.0.1 +healthzPort: 10248 +httpCheckFrequency: 20s +imageGCHighThresholdPercent: 85 +imageGCLowThresholdPercent: 80 +imageMinimumGCAge: 2m0s +iptablesDropBit: 15 +iptablesMasqueradeBit: 14 +kind: KubeletConfiguration +kubeAPIBurst: 10 +kubeAPIQPS: 5 +makeIPTablesUtilChains: true +maxOpenFiles: 1000000 +maxPods: 110 +nodeLeaseDurationSeconds: 40 +nodeStatusReportFrequency: 1m0s +nodeStatusUpdateFrequency: 10s +oomScoreAdj: -999 +podPidsLimit: -1 +port: 10250 +registryBurst: 10 +registryPullQPS: 5 +resolvConf: /etc/resolv.conf +rotateCertificates: true +runtimeRequestTimeout: 2m0s +serializeImagePulls: true +staticPodPath: /etc/kubernetes/manifests +streamingConnectionIdleTimeout: 4h0m0s +syncFrequency: 1m0s +volumeStatsAggPeriod: 1m0s diff --git a/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_non_linux.yaml b/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_non_linux.yaml new file mode 100644 index 0000000000..ba7d7808a0 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_non_linux.yaml @@ -0,0 +1,151 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +bootstrapTokens: +- groups: + - system:bootstrappers:kubeadm:default-node-token + token: s73ybu.6tw6wnqgp5z0wb77 + ttl: 24h0m0s + usages: + - signing + - authentication +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 192.168.2.2 + bindPort: 6443 +nodeRegistration: + criSocket: /var/run/criruntime.sock + name: master-1 + taints: + - effect: NoSchedule + key: node-role.kubernetes.io/master +--- +apiServer: + timeoutForControlPlane: 4m0s +apiVersion: kubeadm.k8s.io/v1beta1 +certificatesDir: /var/lib/kubernetes/pki +clusterName: kubernetes +controlPlaneEndpoint: "" +controllerManager: {} +dns: + type: CoreDNS +etcd: + local: + dataDir: /var/lib/etcd +imageRepository: my-company.com +kind: ClusterConfiguration +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.global + podSubnet: 10.148.0.0/16 + serviceSubnet: 10.196.0.0/12 +scheduler: {} +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +bindAddress: 0.0.0.0 +clientConnection: + acceptContentTypes: "" + burst: 10 + contentType: application/vnd.kubernetes.protobuf + kubeconfig: /var/lib/kube-proxy/kubeconfig.conf + qps: 5 +clusterCIDR: 10.148.0.0/16 +configSyncPeriod: 15m0s +conntrack: + max: null + maxPerCore: 32768 + min: 131072 + tcpCloseWaitTimeout: 1h0m0s + tcpEstablishedTimeout: 24h0m0s +enableProfiling: false +healthzBindAddress: 0.0.0.0:10256 +hostnameOverride: "" +iptables: + masqueradeAll: false + masqueradeBit: 14 + minSyncPeriod: 0s + syncPeriod: 30s +ipvs: + excludeCIDRs: null + minSyncPeriod: 0s + scheduler: "" + syncPeriod: 30s +kind: KubeProxyConfiguration +metricsBindAddress: 127.0.0.1:10249 +mode: "" +nodePortAddresses: null +oomScoreAdj: -999 +portRange: "" +resourceContainer: /kube-proxy +udpIdleTimeout: 250ms +--- +address: 0.0.0.0 +apiVersion: kubelet.config.k8s.io/v1beta1 +authentication: + anonymous: + enabled: false + webhook: + cacheTTL: 2m0s + enabled: true + x509: + clientCAFile: /etc/kubernetes/pki/ca.crt +authorization: + mode: Webhook + webhook: + cacheAuthorizedTTL: 5m0s + cacheUnauthorizedTTL: 30s +cgroupDriver: cgroupfs +cgroupsPerQOS: true +clusterDNS: +- 10.192.0.10 +clusterDomain: cluster.global +configMapAndSecretChangeDetectionStrategy: Watch +containerLogMaxFiles: 5 +containerLogMaxSize: 10Mi +contentType: application/vnd.kubernetes.protobuf +cpuCFSQuota: true +cpuCFSQuotaPeriod: 100ms +cpuManagerPolicy: none +cpuManagerReconcilePeriod: 10s +enableControllerAttachDetach: true +enableDebuggingHandlers: true +enforceNodeAllocatable: +- pods +eventBurst: 10 +eventRecordQPS: 5 +evictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% +evictionPressureTransitionPeriod: 5m0s +failSwapOn: true +fileCheckFrequency: 20s +hairpinMode: promiscuous-bridge +healthzBindAddress: 127.0.0.1 +healthzPort: 10248 +httpCheckFrequency: 20s +imageGCHighThresholdPercent: 85 +imageGCLowThresholdPercent: 80 +imageMinimumGCAge: 2m0s +iptablesDropBit: 15 +iptablesMasqueradeBit: 14 +kind: KubeletConfiguration +kubeAPIBurst: 10 +kubeAPIQPS: 5 +makeIPTablesUtilChains: true +maxOpenFiles: 1000000 +maxPods: 110 +nodeLeaseDurationSeconds: 40 +nodeStatusReportFrequency: 1m0s +nodeStatusUpdateFrequency: 10s +oomScoreAdj: -999 +podPidsLimit: -1 +port: 10250 +registryBurst: 10 +registryPullQPS: 5 +resolvConf: /etc/resolv.conf +rotateCertificates: true +runtimeRequestTimeout: 2m0s +serializeImagePulls: true +staticPodPath: /etc/kubernetes/manifests +streamingConnectionIdleTimeout: 4h0m0s +syncFrequency: 1m0s +volumeStatsAggPeriod: 1m0s