mirror of https://github.com/k3s-io/k3s
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.gopull/564/head
parent
805a9e7036
commit
19e89c32f5
|
@ -22,6 +22,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"runtime"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/pmezard/go-difflib/difflib"
|
"github.com/pmezard/go-difflib/difflib"
|
||||||
|
@ -33,12 +34,16 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
master_v1alpha3YAML = "testdata/conversion/master/v1alpha3.yaml"
|
master_v1alpha3YAML = "testdata/conversion/master/v1alpha3.yaml"
|
||||||
master_v1beta1YAML = "testdata/conversion/master/v1beta1.yaml"
|
master_v1alpha3YAMLNonLinux = "testdata/conversion/master/v1alpha3_non_linux.yaml"
|
||||||
master_internalYAML = "testdata/conversion/master/internal.yaml"
|
master_v1beta1YAML = "testdata/conversion/master/v1beta1.yaml"
|
||||||
master_incompleteYAML = "testdata/defaulting/master/incomplete.yaml"
|
master_v1beta1YAMLNonLinux = "testdata/conversion/master/v1beta1_non_linux.yaml"
|
||||||
master_defaultedYAML = "testdata/defaulting/master/defaulted.yaml"
|
master_internalYAML = "testdata/conversion/master/internal.yaml"
|
||||||
master_invalidYAML = "testdata/validation/invalid_mastercfg.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 {
|
func diff(expected, actual []byte) string {
|
||||||
|
@ -126,6 +131,17 @@ func TestLoadInitConfigurationFromFile(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInitConfigurationMarshallingFromFile(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 {
|
var tests = []struct {
|
||||||
name, in, out string
|
name, in, out string
|
||||||
groupVersion schema.GroupVersion
|
groupVersion schema.GroupVersion
|
||||||
|
@ -135,26 +151,26 @@ func TestInitConfigurationMarshallingFromFile(t *testing.T) {
|
||||||
// and then marshals the internal object to the expected groupVersion
|
// and then marshals the internal object to the expected groupVersion
|
||||||
{ // v1alpha3 -> internal
|
{ // v1alpha3 -> internal
|
||||||
name: "v1alpha3ToInternal",
|
name: "v1alpha3ToInternal",
|
||||||
in: master_v1alpha3YAML,
|
in: master_v1alpha3YAMLAbstracted,
|
||||||
out: master_internalYAML,
|
out: master_internalYAMLAbstracted,
|
||||||
groupVersion: kubeadm.SchemeGroupVersion,
|
groupVersion: kubeadm.SchemeGroupVersion,
|
||||||
},
|
},
|
||||||
{ // v1beta1 -> internal
|
{ // v1beta1 -> internal
|
||||||
name: "v1beta1ToInternal",
|
name: "v1beta1ToInternal",
|
||||||
in: master_v1beta1YAML,
|
in: master_v1beta1YAMLAbstracted,
|
||||||
out: master_internalYAML,
|
out: master_internalYAMLAbstracted,
|
||||||
groupVersion: kubeadm.SchemeGroupVersion,
|
groupVersion: kubeadm.SchemeGroupVersion,
|
||||||
},
|
},
|
||||||
{ // v1alpha3 -> internal -> v1beta1
|
{ // v1alpha3 -> internal -> v1beta1
|
||||||
name: "v1alpha3Tov1beta1",
|
name: "v1alpha3Tov1beta1",
|
||||||
in: master_v1alpha3YAML,
|
in: master_v1alpha3YAMLAbstracted,
|
||||||
out: master_v1beta1YAML,
|
out: master_v1beta1YAMLAbstracted,
|
||||||
groupVersion: kubeadmapiv1beta1.SchemeGroupVersion,
|
groupVersion: kubeadmapiv1beta1.SchemeGroupVersion,
|
||||||
},
|
},
|
||||||
{ // v1beta1 -> internal -> v1beta1
|
{ // v1beta1 -> internal -> v1beta1
|
||||||
name: "v1beta1Tov1beta1",
|
name: "v1beta1Tov1beta1",
|
||||||
in: master_v1beta1YAML,
|
in: master_v1beta1YAMLAbstracted,
|
||||||
out: master_v1beta1YAML,
|
out: master_v1beta1YAMLAbstracted,
|
||||||
groupVersion: kubeadmapiv1beta1.SchemeGroupVersion,
|
groupVersion: kubeadmapiv1beta1.SchemeGroupVersion,
|
||||||
},
|
},
|
||||||
// These tests are reading one file that has only a subset of the fields populated, loading it using LoadInitConfigurationFromFile,
|
// 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
|
{ // v1beta1 -> default -> validate -> internal -> v1beta1
|
||||||
name: "incompleteYAMLToDefaultedv1beta1",
|
name: "incompleteYAMLToDefaultedv1beta1",
|
||||||
in: master_incompleteYAML,
|
in: master_incompleteYAML,
|
||||||
out: master_defaultedYAML,
|
out: master_defaultedYAMLAbstracted,
|
||||||
groupVersion: kubeadmapiv1beta1.SchemeGroupVersion,
|
groupVersion: kubeadmapiv1beta1.SchemeGroupVersion,
|
||||||
},
|
},
|
||||||
{ // v1alpha3 -> validation should fail
|
{ // v1alpha3 -> validation should fail
|
||||||
|
|
203
cmd/kubeadm/app/util/config/testdata/conversion/master/internal_non_linux.yaml
vendored
Normal file
203
cmd/kubeadm/app/util/config/testdata/conversion/master/internal_non_linux.yaml
vendored
Normal file
|
@ -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
|
164
cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha3_non_linux.yaml
vendored
Normal file
164
cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha3_non_linux.yaml
vendored
Normal file
|
@ -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
|
165
cmd/kubeadm/app/util/config/testdata/conversion/master/v1beta1_non_linux.yaml
vendored
Normal file
165
cmd/kubeadm/app/util/config/testdata/conversion/master/v1beta1_non_linux.yaml
vendored
Normal file
|
@ -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
|
151
cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_non_linux.yaml
vendored
Normal file
151
cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_non_linux.yaml
vendored
Normal file
|
@ -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
|
Loading…
Reference in New Issue