Skip to content

Commit 9fa264d

Browse files
committed
mco: set KUBELET_NODE_IPS environment variable for kubelet
1 parent e07503a commit 9fa264d

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed

pkg/asset/machines/arbiter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ func (m *Arbiter) Generate(ctx context.Context, dependencies asset.Parents) erro
202202
// Reference: https://github.com/openshift/cluster-network-operator/blob/fc3e0e25b4cfa43e14122bdcdd6d7f2585017d75/pkg/network/cluster_config.go#L45-L52
203203
if ic.Networking != nil && len(ic.Networking.ServiceNetwork) == 2 {
204204
// Only configure kernel args for dual-stack clusters.
205-
ignIPv6, err := machineconfig.ForDualStackAddresses("arbiter")
205+
ignIPv6, err := machineconfig.ForDualStackAddresses("arbiter", ic)
206206
if err != nil {
207207
return fmt.Errorf("failed to create ignition to configure IPv6 for arbiter machines: %w", err)
208208
}

pkg/asset/machines/machineconfig/ipv6.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,42 @@ import (
44
"fmt"
55

66
igntypes "github.com/coreos/ignition/v2/config/v3_2/types"
7+
"github.com/vincent-petithory/dataurl"
78
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9+
"k8s.io/utils/ptr"
810

911
mcfgv1 "github.com/openshift/api/machineconfiguration/v1"
1012
"github.com/openshift/installer/pkg/asset/ignition"
13+
"github.com/openshift/installer/pkg/types"
1114
)
1215

1316
// ForDualStackAddresses creates the MachineConfig to tell kernel to configure the IP addresses with DHCP and DHCPV6.
14-
func ForDualStackAddresses(role string) (*mcfgv1.MachineConfig, error) {
17+
func ForDualStackAddresses(role string, ic *types.InstallConfig) (*mcfgv1.MachineConfig, error) {
18+
kubeletAddr := "0.0.0.0"
19+
if ic.InfraStack() == mcfgv1.IPFamiliesDualStackIPv6Primary {
20+
kubeletAddr = "::"
21+
}
22+
1523
ignConfig := igntypes.Config{
1624
Ignition: igntypes.Ignition{
1725
Version: igntypes.MaxVersion.String(),
1826
},
27+
Storage: igntypes.Storage{
28+
Files: []igntypes.File{
29+
{
30+
Node: igntypes.Node{
31+
Path: "/etc/kubernetes/kubelet-workaround",
32+
Overwrite: ptr.To(true),
33+
},
34+
FileEmbedded1: igntypes.FileEmbedded1{
35+
Mode: ptr.To(644),
36+
Contents: igntypes.Resource{
37+
Source: ptr.To(dataurl.EncodeBytes([]byte(fmt.Sprintf("KUBELET_NODE_IPS=%s", kubeletAddr)))),
38+
},
39+
},
40+
},
41+
},
42+
},
1943
}
2044

2145
rawExt, err := ignition.ConvertToRawExtension(ignConfig)

pkg/asset/machines/master.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ func (m *Master) Generate(ctx context.Context, dependencies asset.Parents) error
608608
// Reference: https://github.com/openshift/cluster-network-operator/blob/fc3e0e25b4cfa43e14122bdcdd6d7f2585017d75/pkg/network/cluster_config.go#L45-L52
609609
if ic.Networking != nil && len(ic.Networking.ServiceNetwork) == 2 {
610610
// Only configure kernel args for dual-stack clusters.
611-
ignIPv6, err := machineconfig.ForDualStackAddresses("master")
611+
ignIPv6, err := machineconfig.ForDualStackAddresses("master", ic)
612612
if err != nil {
613613
return errors.Wrap(err, "failed to create ignition to configure IPv6 for master machines")
614614
}

pkg/asset/machines/worker.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ func (w *Worker) Generate(ctx context.Context, dependencies asset.Parents) error
439439
// Reference: https://github.com/openshift/cluster-network-operator/blob/fc3e0e25b4cfa43e14122bdcdd6d7f2585017d75/pkg/network/cluster_config.go#L45-L52
440440
if ic.Networking != nil && len(ic.Networking.ServiceNetwork) == 2 {
441441
// Only configure kernel args for dual-stack clusters.
442-
ignIPv6, err := machineconfig.ForDualStackAddresses("worker")
442+
ignIPv6, err := machineconfig.ForDualStackAddresses("worker", ic)
443443
if err != nil {
444444
return errors.Wrap(err, "failed to create ignition to configure IPv6 for worker machines")
445445
}

0 commit comments

Comments
 (0)