Skip to content

Commit a1f0157

Browse files
committed
bootstrapper: plumb ip-family through kubeadm, kubelet and control-plane alias
1 parent 1939182 commit a1f0157

File tree

14 files changed

+595
-100
lines changed

14 files changed

+595
-100
lines changed

pkg/drivers/kic/oci/network_create.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func CreateNetworkWithIPFamily(ociBin, networkName, subnet, subnetv6, staticIP,
163163
klog.Errorf("error creating dual-stack network %s: %v", networkName, err)
164164
return nil, fmt.Errorf("un-retryable: %w", err)
165165
}
166-
return nil, fmt.Errorf("failed to create %s network %s (dual): %w", ociBin, networkName, lastErr)
166+
return nil, fmt.Errorf("failed to create %s network %s (dual): %v", ociBin, networkName, lastErr)
167167
}
168168

169169
// ipv6-only (no IPv4)

pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ bootstrapTokens:
3636
nodeRegistration:
3737
criSocket: {{if .CRISocket}}{{.CRISocket}}{{else}}/var/run/dockershim.sock{{end}}
3838
name: "{{.NodeName}}"
39+
{{- if .NodeIP }}
3940
kubeletExtraArgs:
4041
node-ip: {{.NodeIP}}
42+
{{- end }}
4143
taints: []
4244
---
4345
apiVersion: kubeadm.k8s.io/v1beta1
@@ -93,7 +95,7 @@ staticPodPath: {{.StaticPodPath}}
9395
apiVersion: kubeproxy.config.k8s.io/v1alpha1
9496
kind: KubeProxyConfiguration
9597
clusterCIDR: "{{.PodSubnet }}"
96-
metricsBindAddress: 0.0.0.0:10249
98+
metricsBindAddress: {{.KubeProxyMetricsBindAddress}}
9799
conntrack:
98100
maxPerCore: 0
99101
# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"

pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta2.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var V1Beta2 = template.Must(template.New("configTmpl-v1beta2").Funcs(template.Fu
2424
}).Parse(`apiVersion: kubeadm.k8s.io/v1beta2
2525
kind: InitConfiguration
2626
localAPIEndpoint:
27-
advertiseAddress: {{.AdvertiseAddress}}
27+
advertiseAddress: "{{.AdvertiseAddress}}"
2828
bindPort: {{.APIServerPort}}
2929
bootstrapTokens:
3030
- groups:
@@ -36,16 +36,28 @@ bootstrapTokens:
3636
nodeRegistration:
3737
criSocket: {{if .CRISocket}}{{.CRISocket}}{{else}}/var/run/dockershim.sock{{end}}
3838
name: "{{.NodeName}}"
39+
{{- if .NodeIP }}
3940
kubeletExtraArgs:
40-
node-ip: {{.NodeIP}}
41+
node-ip: "{{.NodeIP}}"
42+
{{- end }}
4143
taints: []
4244
---
4345
apiVersion: kubeadm.k8s.io/v1beta2
4446
kind: ClusterConfiguration
4547
{{ if .ImageRepository}}imageRepository: {{.ImageRepository}}
4648
{{end}}{{range .ComponentOptions}}{{.Component}}:
49+
{{- if eq .Component "apiServer" }}
50+
{{- if $.APIServerCertSANs }}
51+
certSANs:
52+
{{- range $.APIServerCertSANs }}
53+
- "{{ . }}"
54+
{{- end }}
55+
{{- end }}
56+
{{- end }}
4757
{{- range $k, $v := .Pairs }}
58+
{{- if not (and (eq .Component "apiServer") (eq $k "certSANs")) }}
4859
{{$k}}: {{$v}}
60+
{{- end }}
4961
{{- end}}
5062
extraArgs:
5163
{{- range $i, $val := printMapInOrder .ExtraArgs ": " }}
@@ -72,7 +84,7 @@ kubernetesVersion: {{.KubernetesVersion}}
7284
networking:
7385
dnsDomain: {{if .DNSDomain}}{{.DNSDomain}}{{else}}cluster.local{{end}}
7486
podSubnet: "{{.PodSubnet }}"
75-
serviceSubnet: {{.ServiceCIDR}}
87+
serviceSubnet: "{{.ServiceCIDR}}"
7688
---
7789
apiVersion: kubelet.config.k8s.io/v1beta1
7890
kind: KubeletConfiguration
@@ -96,7 +108,7 @@ staticPodPath: {{.StaticPodPath}}
96108
apiVersion: kubeproxy.config.k8s.io/v1alpha1
97109
kind: KubeProxyConfiguration
98110
clusterCIDR: "{{.PodSubnet }}"
99-
metricsBindAddress: 0.0.0.0:10249
111+
metricsBindAddress: "{{.KubeProxyMetricsBindAddress}}"
100112
conntrack:
101113
maxPerCore: 0
102114
# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"

pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta3.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var V1Beta3 = template.Must(template.New("configTmpl-v1beta3").Funcs(template.Fu
2424
}).Parse(`apiVersion: kubeadm.k8s.io/v1beta3
2525
kind: InitConfiguration
2626
localAPIEndpoint:
27-
advertiseAddress: {{.AdvertiseAddress}}
27+
advertiseAddress: "{{.AdvertiseAddress}}"
2828
bindPort: {{.APIServerPort}}
2929
bootstrapTokens:
3030
- groups:
@@ -36,16 +36,28 @@ bootstrapTokens:
3636
nodeRegistration:
3737
criSocket: {{if .CRISocket}}{{if .PrependCriSocketUnix}}unix://{{end}}{{.CRISocket}}{{else}}{{if .PrependCriSocketUnix}}unix://{{end}}/var/run/dockershim.sock{{end}}
3838
name: "{{.NodeName}}"
39+
{{- if .NodeIP }}
3940
kubeletExtraArgs:
40-
node-ip: {{.NodeIP}}
41+
node-ip: "{{.NodeIP}}"
42+
{{- end }}
4143
taints: []
4244
---
4345
apiVersion: kubeadm.k8s.io/v1beta3
4446
kind: ClusterConfiguration
4547
{{ if .ImageRepository}}imageRepository: {{.ImageRepository}}
4648
{{end}}{{range .ComponentOptions}}{{.Component}}:
49+
{{- if eq .Component "apiServer" }}
50+
{{- if $.APIServerCertSANs }}
51+
certSANs:
52+
{{- range $.APIServerCertSANs }}
53+
- "{{ . }}"
54+
{{- end }}
55+
{{- end }}
56+
{{- end }}
4757
{{- range $k, $v := .Pairs }}
58+
{{- if not (and (eq .Component "apiServer") (eq $k "certSANs")) }}
4859
{{$k}}: {{$v}}
60+
{{- end }}
4961
{{- end}}
5062
extraArgs:
5163
{{- range $i, $val := printMapInOrder .ExtraArgs ": " }}
@@ -70,7 +82,7 @@ kubernetesVersion: {{.KubernetesVersion}}
7082
networking:
7183
dnsDomain: {{if .DNSDomain}}{{.DNSDomain}}{{else}}cluster.local{{end}}
7284
podSubnet: "{{.PodSubnet }}"
73-
serviceSubnet: {{.ServiceCIDR}}
85+
serviceSubnet: "{{.ServiceCIDR}}"
7486
---
7587
apiVersion: kubelet.config.k8s.io/v1beta1
7688
kind: KubeletConfiguration
@@ -95,7 +107,7 @@ resolvConf: /etc/kubelet-resolv.conf{{end}}
95107
apiVersion: kubeproxy.config.k8s.io/v1alpha1
96108
kind: KubeProxyConfiguration
97109
clusterCIDR: "{{.PodSubnet }}"
98-
metricsBindAddress: 0.0.0.0:10249
110+
metricsBindAddress: "{{.KubeProxyMetricsBindAddress}}"
99111
conntrack:
100112
maxPerCore: 0
101113
# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"

pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta4.go

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var V1Beta4 = template.Must(template.New("configTmpl-v1beta4").Funcs(template.Fu
2424
}).Parse(`apiVersion: kubeadm.k8s.io/v1beta4
2525
kind: InitConfiguration
2626
localAPIEndpoint:
27-
advertiseAddress: {{.AdvertiseAddress}}
27+
advertiseAddress: "{{.AdvertiseAddress}}"
2828
bindPort: {{.APIServerPort}}
2929
bootstrapTokens:
3030
- groups:
@@ -36,20 +36,34 @@ bootstrapTokens:
3636
nodeRegistration:
3737
criSocket: {{if .CRISocket}}{{if .PrependCriSocketUnix}}unix://{{end}}{{.CRISocket}}{{else}}{{if .PrependCriSocketUnix}}unix://{{end}}/var/run/dockershim.sock{{end}}
3838
name: "{{.NodeName}}"
39+
{{- if .NodeIP }}
3940
kubeletExtraArgs:
4041
- name: "node-ip"
4142
value: "{{.NodeIP}}"
43+
{{- end }}
4244
taints: []
4345
---
4446
apiVersion: kubeadm.k8s.io/v1beta4
4547
kind: ClusterConfiguration
4648
{{ if .ImageRepository}}imageRepository: {{.ImageRepository}}
47-
{{end}}{{range .ComponentOptions}}{{.Component}}:
48-
{{- range $k, $v := .Pairs }}
49+
{{end}}{{range .ComponentOptions }}
50+
{{- $co := . }}
51+
{{$co.Component}}:
52+
{{- if eq $co.Component "apiServer" }}
53+
{{- if $.APIServerCertSANs }}
54+
certSANs:
55+
{{- range $.APIServerCertSANs }}
56+
- "{{ . }}"
57+
{{- end }}
58+
{{- end }}
59+
{{- end }}
60+
{{- range $k, $v := $co.Pairs }}
61+
{{- if not (and (eq $co.Component "apiServer") (eq $k "certSANs")) }}
4962
{{$k}}: {{$v}}
63+
{{- end }}
5064
{{- end}}
5165
extraArgs:
52-
{{- range $key, $val := .ExtraArgs }}
66+
{{- range $key, $val := $co.ExtraArgs }}
5367
- name: "{{$key}}"
5468
value: "{{$val}}"
5569
{{- end}}
@@ -59,7 +73,7 @@ kind: ClusterConfiguration
5973
{{end -}}{{end -}}
6074
certificatesDir: {{.CertDir}}
6175
clusterName: mk
62-
controlPlaneEndpoint: {{.ControlPlaneAddress}}:{{.APIServerPort}}
76+
controlPlaneEndpoint: "{{.ControlPlaneEndpoint}}"
6377
etcd:
6478
local:
6579
dataDir: {{.EtcdDataDir}}
@@ -73,7 +87,7 @@ kubernetesVersion: {{.KubernetesVersion}}
7387
networking:
7488
dnsDomain: {{if .DNSDomain}}{{.DNSDomain}}{{else}}cluster.local{{end}}
7589
podSubnet: "{{.PodSubnet }}"
76-
serviceSubnet: {{.ServiceCIDR}}
90+
serviceSubnet: "{{.ServiceCIDR}}"
7791
---
7892
apiVersion: kubelet.config.k8s.io/v1beta1
7993
kind: KubeletConfiguration
@@ -98,7 +112,7 @@ resolvConf: /etc/kubelet-resolv.conf{{end}}
98112
apiVersion: kubeproxy.config.k8s.io/v1alpha1
99113
kind: KubeProxyConfiguration
100114
clusterCIDR: "{{.PodSubnet }}"
101-
metricsBindAddress: 0.0.0.0:10249
115+
metricsBindAddress: "{{.KubeProxyMetricsBindAddress}}"
102116
conntrack:
103117
maxPerCore: 0
104118
# Skip setting "net.netfilter.nf_conntrack_tcp_timeout_established"

0 commit comments

Comments
 (0)