mirror of https://github.com/kubernetes/kops.git
feat: prevent systemd-networkd from removing Cilium routes on restart
Signed-off-by: (╯°□°)╯︵ uᴉǝssnH ɐɟɐʇsoW <mostafa.hussein91@gmail.com>
This commit is contained in:
parent
babe2008c4
commit
fa2006d79a
|
@ -27,6 +27,7 @@ import (
|
|||
"k8s.io/kops/nodeup/pkg/model"
|
||||
"k8s.io/kops/upup/pkg/fi"
|
||||
"k8s.io/kops/upup/pkg/fi/nodeup/nodetasks"
|
||||
"k8s.io/kops/util/pkg/distributions"
|
||||
)
|
||||
|
||||
// CiliumBuilder writes Cilium's assets
|
||||
|
@ -57,6 +58,24 @@ func (b *CiliumBuilder) Build(c *fi.NodeupModelBuilderContext) error {
|
|||
return fmt.Errorf("failed to create cgroupv2 mount unit: %w", err)
|
||||
}
|
||||
|
||||
if (b.Distribution.IsUbuntu() && b.Distribution.Version() >= 22.04) ||
|
||||
b.Distribution == distributions.DistributionAmazonLinux2023 {
|
||||
// Make systemd-networkd ignore foreign settings, else it may
|
||||
// unexpectedly delete IP rules and routes added by CNI
|
||||
contents := `
|
||||
# Do not clobber any routes or rules added by CNI.
|
||||
[Network]
|
||||
ManageForeignRoutes=no
|
||||
ManageForeignRoutingPolicyRules=no
|
||||
`
|
||||
c.AddTask(&nodetasks.File{
|
||||
Path: "/usr/lib/systemd/networkd.conf.d/40-disable-manage-foreign-routes.conf",
|
||||
Contents: fi.NewStringResource(contents),
|
||||
Type: nodetasks.FileType_File,
|
||||
OnChangeExecute: [][]string{{"systemctl", "restart", "systemd-networkd"}},
|
||||
})
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue