diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/master/internal.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/master/internal.yaml new file mode 100644 index 00000000000..04f70585496 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/master/internal.yaml @@ -0,0 +1,158 @@ +API: + AdvertiseAddress: 192.168.2.2 + BindPort: 6443 + ControlPlaneEndpoint: "" +APIServerCertSANs: null +APIServerExtraArgs: null +APIServerExtraVolumes: null +AuditPolicyConfiguration: + LogDir: /var/log/kubernetes/audit + LogMaxAge: 2 + Path: "" +AuthorizationModes: +- Node +- RBAC +CIImageRepository: "" +CRISocket: /var/run/dockershim.sock +CertificatesDir: /etc/kubernetes/pki +ClusterName: kubernetes +ControllerManagerExtraArgs: null +ControllerManagerExtraVolumes: null +Etcd: + CAFile: "" + CertFile: "" + DataDir: /var/lib/etcd + Endpoints: null + ExtraArgs: null + Image: "" + KeyFile: "" + PeerCertSANs: null + ServerCertSANs: null +FeatureGates: null +ImagePullPolicy: "" +ImageRepository: k8s.gcr.io +KubeProxy: + Config: + 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: "" + nodePortAddresses: null + oomScoreAdj: -999 + portRange: "" + resourceContainer: /kube-proxy + udpIdleTimeout: 250ms +KubeletConfiguration: + BaseConfig: + address: 0.0.0.0 + 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 + containerLogMaxFiles: 5 + containerLogMaxSize: 10Mi + contentType: application/vnd.kubernetes.protobuf + cpuCFSQuota: true + cpuManagerPolicy: none + cpuManagerReconcilePeriod: 10s + enableControllerAttachDetach: true + enableDebuggingHandlers: true + enforceNodeAllocatable: + - pods + eventBurst: 10 + eventRecordQPS: 5 + evictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% + nodefs.inodesFree: 5% + 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 + kubeAPIBurst: 10 + kubeAPIQPS: 5 + makeIPTablesUtilChains: true + maxOpenFiles: 1000000 + maxPods: 110 + nodeStatusUpdateFrequency: 10s + oomScoreAdj: -999 + podPidsLimit: -1 + port: 10250 + registryBurst: 10 + registryPullQPS: 5 + resolvConf: /etc/resolv.conf + runtimeRequestTimeout: 2m0s + serializeImagePulls: true + staticPodPath: /etc/kubernetes/manifests + streamingConnectionIdleTimeout: 4h0m0s + syncFrequency: 1m0s + volumeStatsAggPeriod: 1m0s +KubernetesVersion: v1.10.2 +Networking: + DNSDomain: cluster.local + PodSubnet: "" + ServiceSubnet: 10.96.0.0/12 +NoTaintMaster: false +NodeName: master-1 +SchedulerExtraArgs: null +SchedulerExtraVolumes: null +Token: s73ybu.6tw6wnqgp5z0wb77 +TokenGroups: +- system:bootstrappers:kubeadm:default-node-token +TokenTTL: 24h0m0s +TokenUsages: +- signing +- authentication +UnifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1.yaml new file mode 100644 index 00000000000..4edd30abbdb --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1.yaml @@ -0,0 +1,148 @@ +api: + advertiseAddress: 192.168.2.2 + bindPort: 6443 + controlPlaneEndpoint: "" +apiVersion: kubeadm.k8s.io/v1alpha1 +auditPolicy: + logDir: /var/log/kubernetes/audit + logMaxAge: 2 + path: "" +authorizationModes: +- Node +- RBAC +certificatesDir: /etc/kubernetes/pki +cloudProvider: "" +clusterName: kubernetes +criSocket: /var/run/dockershim.sock +etcd: + caFile: "" + certFile: "" + dataDir: /var/lib/etcd + endpoints: null + image: "" + keyFile: "" +imageRepository: k8s.gcr.io +kind: MasterConfiguration +kubeProxy: + config: + 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: "" + nodePortAddresses: null + oomScoreAdj: -999 + portRange: "" + resourceContainer: /kube-proxy + udpIdleTimeout: 250ms +kubeletConfiguration: + baseConfig: + address: 0.0.0.0 + 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 + containerLogMaxFiles: 5 + containerLogMaxSize: 10Mi + contentType: application/vnd.kubernetes.protobuf + cpuCFSQuota: true + cpuManagerPolicy: none + cpuManagerReconcilePeriod: 10s + enableControllerAttachDetach: true + enableDebuggingHandlers: true + enforceNodeAllocatable: + - pods + eventBurst: 10 + eventRecordQPS: 5 + evictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% + nodefs.inodesFree: 5% + 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 + kubeAPIBurst: 10 + kubeAPIQPS: 5 + makeIPTablesUtilChains: true + maxOpenFiles: 1000000 + maxPods: 110 + nodeStatusUpdateFrequency: 10s + oomScoreAdj: -999 + podPidsLimit: -1 + port: 10250 + registryBurst: 10 + registryPullQPS: 5 + resolvConf: /etc/resolv.conf + runtimeRequestTimeout: 2m0s + serializeImagePulls: true + staticPodPath: /etc/kubernetes/manifests + streamingConnectionIdleTimeout: 4h0m0s + syncFrequency: 1m0s + volumeStatsAggPeriod: 1m0s +kubernetesVersion: v1.10.2 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +nodeName: master-1 +privilegedPods: false +token: s73ybu.6tw6wnqgp5z0wb77 +tokenGroups: +- system:bootstrappers:kubeadm:default-node-token +tokenTTL: 24h0m0s +tokenUsages: +- signing +- authentication +unifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1_without_TypeMeta.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1_without_TypeMeta.yaml new file mode 100644 index 00000000000..904c942bc41 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha1_without_TypeMeta.yaml @@ -0,0 +1,145 @@ +# This file don't have TypeMeta set. kubeadm should then unmarshal it as a apiVersion=kubeadm.k8s.io/v1alpha1 and kind=MasterConfiguration +api: + advertiseAddress: 192.168.2.2 + bindPort: 6443 + controlPlaneEndpoint: "" +auditPolicy: + logDir: /var/log/kubernetes/audit + logMaxAge: 2 + path: "" +authorizationModes: +- Node +- RBAC +certificatesDir: /etc/kubernetes/pki +cloudProvider: "" +clusterName: kubernetes +criSocket: /var/run/dockershim.sock +etcd: + caFile: "" + certFile: "" + dataDir: /var/lib/etcd + endpoints: null + image: "" + keyFile: "" +imageRepository: k8s.gcr.io +kubeProxy: + config: + 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: "SupportIPVSProxyMode=true,ServiceNodeExclusion=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: "" + nodePortAddresses: null + oomScoreAdj: -999 + portRange: "" + resourceContainer: /kube-proxy + udpIdleTimeout: 250ms +kubeletConfiguration: + baseConfig: + address: 0.0.0.0 + 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 + containerLogMaxFiles: 5 + containerLogMaxSize: 10Mi + contentType: application/vnd.kubernetes.protobuf + cpuCFSQuota: true + cpuManagerPolicy: none + cpuManagerReconcilePeriod: 10s + enableControllerAttachDetach: true + enableDebuggingHandlers: true + enforceNodeAllocatable: + - pods + eventBurst: 10 + eventRecordQPS: 5 + evictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% + nodefs.inodesFree: 5% + 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 + kubeAPIBurst: 10 + kubeAPIQPS: 5 + makeIPTablesUtilChains: true + maxOpenFiles: 1000000 + maxPods: 110 + nodeStatusUpdateFrequency: 10s + oomScoreAdj: -999 + podPidsLimit: -1 + port: 10250 + registryBurst: 10 + registryPullQPS: 5 + resolvConf: /etc/resolv.conf + runtimeRequestTimeout: 2m0s + serializeImagePulls: true + staticPodPath: /etc/kubernetes/manifests + streamingConnectionIdleTimeout: 4h0m0s + syncFrequency: 1m0s + volumeStatsAggPeriod: 1m0s +kubernetesVersion: v1.10.2 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +nodeName: master-1 +privilegedPods: false +token: s73ybu.6tw6wnqgp5z0wb77 +tokenGroups: +- system:bootstrappers:kubeadm:default-node-token +tokenTTL: 24h0m0s +tokenUsages: +- signing +- authentication +unifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha2.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha2.yaml new file mode 100644 index 00000000000..540c5a5392b --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/master/v1alpha2.yaml @@ -0,0 +1,146 @@ +api: + advertiseAddress: 192.168.2.2 + bindPort: 6443 + controlPlaneEndpoint: "" +apiVersion: kubeadm.k8s.io/v1alpha2 +auditPolicy: + logDir: /var/log/kubernetes/audit + logMaxAge: 2 + path: "" +authorizationModes: +- Node +- RBAC +certificatesDir: /etc/kubernetes/pki +clusterName: kubernetes +criSocket: /var/run/dockershim.sock +etcd: + caFile: "" + certFile: "" + dataDir: /var/lib/etcd + endpoints: null + image: "" + keyFile: "" +imageRepository: k8s.gcr.io +kind: MasterConfiguration +kubeProxy: + config: + 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: "" + nodePortAddresses: null + oomScoreAdj: -999 + portRange: "" + resourceContainer: /kube-proxy + udpIdleTimeout: 250ms +kubeletConfiguration: + baseConfig: + address: 0.0.0.0 + 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 + containerLogMaxFiles: 5 + containerLogMaxSize: 10Mi + contentType: application/vnd.kubernetes.protobuf + cpuCFSQuota: true + cpuManagerPolicy: none + cpuManagerReconcilePeriod: 10s + enableControllerAttachDetach: true + enableDebuggingHandlers: true + enforceNodeAllocatable: + - pods + eventBurst: 10 + eventRecordQPS: 5 + evictionHard: + imagefs.available: 15% + memory.available: 100Mi + nodefs.available: 10% + nodefs.inodesFree: 5% + 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 + kubeAPIBurst: 10 + kubeAPIQPS: 5 + makeIPTablesUtilChains: true + maxOpenFiles: 1000000 + maxPods: 110 + nodeStatusUpdateFrequency: 10s + oomScoreAdj: -999 + podPidsLimit: -1 + port: 10250 + registryBurst: 10 + registryPullQPS: 5 + resolvConf: /etc/resolv.conf + runtimeRequestTimeout: 2m0s + serializeImagePulls: true + staticPodPath: /etc/kubernetes/manifests + streamingConnectionIdleTimeout: 4h0m0s + syncFrequency: 1m0s + volumeStatsAggPeriod: 1m0s +kubernetesVersion: v1.10.2 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +nodeName: master-1 +token: s73ybu.6tw6wnqgp5z0wb77 +tokenGroups: +- system:bootstrappers:kubeadm:default-node-token +tokenTTL: 24h0m0s +tokenUsages: +- signing +- authentication +unifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/node/internal.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/node/internal.yaml new file mode 100644 index 00000000000..dce87719dd4 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/node/internal.yaml @@ -0,0 +1,14 @@ +CACertPath: /etc/kubernetes/pki/ca.crt +CRISocket: /var/run/dockershim.sock +ClusterName: kubernetes +DiscoveryFile: "" +DiscoveryTimeout: 5m0s +DiscoveryToken: abcdef.0123456789abcdef +DiscoveryTokenAPIServers: +- kube-apiserver:6443 +DiscoveryTokenCACertHashes: null +DiscoveryTokenUnsafeSkipCAVerification: true +FeatureGates: null +NodeName: master-1 +TLSBootstrapToken: abcdef.0123456789abcdef +Token: abcdef.0123456789abcdef diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/node/v1alpha1.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/node/v1alpha1.yaml new file mode 100644 index 00000000000..a85b233b6d3 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/node/v1alpha1.yaml @@ -0,0 +1,14 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: NodeConfiguration +caCertPath: /etc/kubernetes/pki/ca.crt +clusterName: kubernetes +criSocket: /var/run/dockershim.sock +discoveryFile: "" +discoveryTimeout: 5m0s +discoveryToken: abcdef.0123456789abcdef +discoveryTokenAPIServers: +- kube-apiserver:6443 +discoveryTokenUnsafeSkipCAVerification: true +nodeName: master-1 +tlsBootstrapToken: abcdef.0123456789abcdef +token: abcdef.0123456789abcdef diff --git a/cmd/kubeadm/app/util/config/testdata/conversion/node/v1alpha2.yaml b/cmd/kubeadm/app/util/config/testdata/conversion/node/v1alpha2.yaml new file mode 100644 index 00000000000..8cf55e5da27 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/conversion/node/v1alpha2.yaml @@ -0,0 +1,14 @@ +apiVersion: kubeadm.k8s.io/v1alpha2 +caCertPath: /etc/kubernetes/pki/ca.crt +clusterName: kubernetes +criSocket: /var/run/dockershim.sock +discoveryFile: "" +discoveryTimeout: 5m0s +discoveryToken: abcdef.0123456789abcdef +discoveryTokenAPIServers: +- kube-apiserver:6443 +discoveryTokenUnsafeSkipCAVerification: true +kind: NodeConfiguration +nodeName: master-1 +tlsBootstrapToken: abcdef.0123456789abcdef +token: abcdef.0123456789abcdef diff --git a/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_v1alpha1.yaml b/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_v1alpha1.yaml new file mode 100644 index 00000000000..e36204f99fb --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_v1alpha1.yaml @@ -0,0 +1,78 @@ +api: + advertiseAddress: 192.168.2.2 + bindPort: 6443 + controlPlaneEndpoint: "" +apiVersion: kubeadm.k8s.io/v1alpha1 +auditPolicy: + logDir: /var/log/kubernetes/audit + logMaxAge: 2 + path: "" +authorizationModes: +- Node +- RBAC +certificatesDir: /var/lib/kubernetes/pki +cloudProvider: "" +clusterName: kubernetes +criSocket: /var/run/criruntime.sock +etcd: + caFile: "" + certFile: "" + dataDir: /var/lib/etcd + endpoints: null + image: "" + keyFile: "" +imageRepository: my-company.com +kind: MasterConfiguration +kubeProxy: + config: + 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 + 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: "" + nodePortAddresses: null + oomScoreAdj: -999 + portRange: "" + resourceContainer: /kube-proxy + udpIdleTimeout: 250ms +kubeletConfiguration: {} +kubernetesVersion: v1.10.2 +networking: + dnsDomain: cluster.global + podSubnet: "" + serviceSubnet: 10.196.0.0/12 +nodeName: master-1 +privilegedPods: false +token: s73ybu.6tw6wnqgp5z0wb77 +tokenGroups: +- system:bootstrappers:kubeadm:default-node-token +tokenTTL: 24h0m0s +tokenUsages: +- signing +- authentication +unifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_v1alpha2.yaml b/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_v1alpha2.yaml new file mode 100644 index 00000000000..ee133e25dc6 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/defaulting/master/defaulted_v1alpha2.yaml @@ -0,0 +1,76 @@ +api: + advertiseAddress: 192.168.2.2 + bindPort: 6443 + controlPlaneEndpoint: "" +apiVersion: kubeadm.k8s.io/v1alpha2 +auditPolicy: + logDir: /var/log/kubernetes/audit + logMaxAge: 2 + path: "" +authorizationModes: +- Node +- RBAC +certificatesDir: /var/lib/kubernetes/pki +clusterName: kubernetes +criSocket: /var/run/criruntime.sock +etcd: + caFile: "" + certFile: "" + dataDir: /var/lib/etcd + endpoints: null + image: "" + keyFile: "" +imageRepository: my-company.com +kind: MasterConfiguration +kubeProxy: + config: + 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 + 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: "" + nodePortAddresses: null + oomScoreAdj: -999 + portRange: "" + resourceContainer: /kube-proxy + udpIdleTimeout: 250ms +kubeletConfiguration: {} +kubernetesVersion: v1.10.2 +networking: + dnsDomain: cluster.global + podSubnet: "" + serviceSubnet: 10.196.0.0/12 +nodeName: master-1 +token: s73ybu.6tw6wnqgp5z0wb77 +tokenGroups: +- system:bootstrappers:kubeadm:default-node-token +tokenTTL: 24h0m0s +tokenUsages: +- signing +- authentication +unifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/defaulting/master/incomplete.yaml b/cmd/kubeadm/app/util/config/testdata/defaulting/master/incomplete.yaml new file mode 100644 index 00000000000..405046ee5d3 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/defaulting/master/incomplete.yaml @@ -0,0 +1,13 @@ +api: + advertiseAddress: 192.168.2.2 + bindPort: 6443 +certificatesDir: /var/lib/kubernetes/pki +clusterName: kubernetes +criSocket: /var/run/criruntime.sock +imageRepository: my-company.com +kubernetesVersion: v1.10.2 +networking: + dnsDomain: cluster.global + serviceSubnet: 10.196.0.0/12 +nodeName: master-1 +token: s73ybu.6tw6wnqgp5z0wb77 diff --git a/cmd/kubeadm/app/util/config/testdata/defaulting/node/defaulted_v1alpha1.yaml b/cmd/kubeadm/app/util/config/testdata/defaulting/node/defaulted_v1alpha1.yaml new file mode 100644 index 00000000000..5ffc2205fdf --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/defaulting/node/defaulted_v1alpha1.yaml @@ -0,0 +1,14 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +caCertPath: /etc/kubernetes/pki/ca.crt +clusterName: kubernetes +criSocket: /var/run/dockershim.sock +discoveryFile: "" +discoveryTimeout: 5m0s +discoveryToken: abcdef.0123456789abcdef +discoveryTokenAPIServers: +- kube-apiserver:6443 +discoveryTokenUnsafeSkipCAVerification: true +kind: NodeConfiguration +nodeName: thegopher +tlsBootstrapToken: abcdef.0123456789abcdef +token: abcdef.0123456789abcdef diff --git a/cmd/kubeadm/app/util/config/testdata/defaulting/node/defaulted_v1alpha2.yaml b/cmd/kubeadm/app/util/config/testdata/defaulting/node/defaulted_v1alpha2.yaml new file mode 100644 index 00000000000..4be5386539d --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/defaulting/node/defaulted_v1alpha2.yaml @@ -0,0 +1,14 @@ +apiVersion: kubeadm.k8s.io/v1alpha2 +caCertPath: /etc/kubernetes/pki/ca.crt +clusterName: kubernetes +criSocket: /var/run/dockershim.sock +discoveryFile: "" +discoveryTimeout: 5m0s +discoveryToken: abcdef.0123456789abcdef +discoveryTokenAPIServers: +- kube-apiserver:6443 +discoveryTokenUnsafeSkipCAVerification: true +kind: NodeConfiguration +nodeName: thegopher +tlsBootstrapToken: abcdef.0123456789abcdef +token: abcdef.0123456789abcdef diff --git a/cmd/kubeadm/app/util/config/testdata/defaulting/node/incomplete.yaml b/cmd/kubeadm/app/util/config/testdata/defaulting/node/incomplete.yaml new file mode 100644 index 00000000000..adb46dd5f79 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/defaulting/node/incomplete.yaml @@ -0,0 +1,7 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: NodeConfiguration +discoveryTokenAPIServers: +- kube-apiserver:6443 +discoveryTokenUnsafeSkipCAVerification: true +nodeName: thegopher +token: abcdef.0123456789abcdef diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/testdata/kubeadm196.yaml b/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/after.yaml similarity index 81% rename from cmd/kubeadm/app/apis/kubeadm/v1alpha1/testdata/kubeadm196.yaml rename to cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/after.yaml index 08ee0b485a6..045df0ad360 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/testdata/kubeadm196.yaml +++ b/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/after.yaml @@ -1,6 +1,11 @@ api: advertiseAddress: 172.31.93.180 bindPort: 6443 + controlPlaneEndpoint: "" +apiVersion: kubeadm.k8s.io/v1alpha1 +auditPolicy: + logDir: "" + path: "" authorizationModes: - Node - RBAC @@ -14,6 +19,7 @@ etcd: image: "" keyFile: "" imageRepository: gcr.io/google_containers +kind: MasterConfiguration kubeProxy: config: bindAddress: 0.0.0.0 @@ -32,7 +38,9 @@ kubeProxy: tcpCloseWaitTimeout: 1h0m0s tcpEstablishedTimeout: 24h0m0s enableProfiling: false - featureGates: "" + featureGates: + ServiceNodeExclusion: true + SupportIPVSProxyMode: true healthzBindAddress: 0.0.0.0:10256 hostnameOverride: "" iptables: @@ -41,15 +49,17 @@ kubeProxy: minSyncPeriod: 0s syncPeriod: 30s ipvs: + ExcludeCIDRs: null minSyncPeriod: 0s scheduler: "" syncPeriod: 30s metricsBindAddress: 127.0.0.1:10249 mode: "" + nodePortAddresses: null oomScoreAdj: -999 portRange: "" resourceContainer: /kube-proxy - udpTimeoutMilliseconds: 250ms + udpIdleTimeout: 0s kubeletConfiguration: {} kubernetesVersion: v1.9.6 networking: @@ -57,6 +67,7 @@ networking: podSubnet: 192.168.0.0/16 serviceSubnet: 10.96.0.0/12 nodeName: ip-172-31-93-180.ec2.internal +privilegedPods: false token: 8d69af.cd3e1c58f6228dfc tokenTTL: 24h0m0s unifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/before.yaml b/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/before.yaml new file mode 100644 index 00000000000..986f0167515 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/v1alpha1_upgrade/before.yaml @@ -0,0 +1,64 @@ +# This MasterConfiguration object is wrong in two ways: it hasn't TypeMeta set, and .kubeProxy.config.featureGates is a string as it was in v1.9 +# In v1.10 however, it changed in an inbackwards-compatible way to a map[string]string, so we have to workaround that to unmarshal this object +api: + advertiseAddress: 172.31.93.180 + bindPort: 6443 +authorizationModes: +- Node +- RBAC +certificatesDir: /etc/kubernetes/pki +cloudProvider: aws +etcd: + caFile: "" + certFile: "" + dataDir: /var/lib/etcd + endpoints: null + image: "" + keyFile: "" +imageRepository: gcr.io/google_containers +kubeProxy: + config: + bindAddress: 0.0.0.0 + clientConnection: + acceptContentTypes: "" + burst: 10 + contentType: application/vnd.kubernetes.protobuf + kubeconfig: /var/lib/kube-proxy/kubeconfig.conf + qps: 5 + clusterCIDR: 192.168.0.0/16 + configSyncPeriod: 15m0s + conntrack: + max: null + maxPerCore: 32768 + min: 131072 + tcpCloseWaitTimeout: 1h0m0s + tcpEstablishedTimeout: 24h0m0s + enableProfiling: false + featureGates: "SupportIPVSProxyMode=true,ServiceNodeExclusion=true" + healthzBindAddress: 0.0.0.0:10256 + hostnameOverride: "" + iptables: + masqueradeAll: false + masqueradeBit: 14 + minSyncPeriod: 0s + syncPeriod: 30s + ipvs: + minSyncPeriod: 0s + scheduler: "" + syncPeriod: 30s + metricsBindAddress: 127.0.0.1:10249 + mode: "" + oomScoreAdj: -999 + portRange: "" + resourceContainer: /kube-proxy + udpTimeoutMilliseconds: 250ms +kubeletConfiguration: {} +kubernetesVersion: v1.9.6 +networking: + dnsDomain: cluster.local + podSubnet: 192.168.0.0/16 + serviceSubnet: 10.96.0.0/12 +nodeName: ip-172-31-93-180.ec2.internal +token: 8d69af.cd3e1c58f6228dfc +tokenTTL: 24h0m0s +unifiedControlPlaneImage: "" diff --git a/cmd/kubeadm/app/util/config/testdata/validation/invalid_mastercfg.yaml b/cmd/kubeadm/app/util/config/testdata/validation/invalid_mastercfg.yaml new file mode 100644 index 00000000000..4935ea7213b --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/validation/invalid_mastercfg.yaml @@ -0,0 +1,12 @@ +api: + bindPort: 0 +certificatesDir: relativepath +clusterName: kubernetes +criSocket: relativepath +imageRepository: my-company.com +kubernetesVersion: v1.10.2 +networking: + dnsDomain: cluster.GLOBAL + serviceSubnet: 10.196.1000.0/100 +nodeName: MASTER +token: s7bu.6tw6wn diff --git a/cmd/kubeadm/app/util/config/testdata/validation/invalid_nodecfg.yaml b/cmd/kubeadm/app/util/config/testdata/validation/invalid_nodecfg.yaml new file mode 100644 index 00000000000..a1d863485e5 --- /dev/null +++ b/cmd/kubeadm/app/util/config/testdata/validation/invalid_nodecfg.yaml @@ -0,0 +1,11 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: NodeConfiguration +caCertPath: relativepath +criSocket: relativepath +discoveryFile: relativepath +discoveryTimeout: not-a-time +discoveryTokenAPIServers: +- INVALID_URL +discoveryTokenUnsafeSkipCAVerification: false +nodeName: NODE-1 +token: invalidtoken